Encyclopedia Foundation Foundation Circle Winding Chain Closed Singular One Cycle List Boundary Generate
ARTICLE 3 claims 3 theorems
Foundation Circle Winding Chain Closed Singular One Cycle List Boundary Generate
A winding number measures how many times a loop wraps around a circle; a formal proof shows this invariant respects the basic rules of adding and subtracting paths.
The winding invariant
The winding number is a classical idea from topology. For any closed loop drawn on a circle, it counts how many times the loop goes around, with direction taken into account. A loop that goes around once counterclockwise has winding number 1, twice has 2, and a loop that goes out and back without completing a turn has 0. The invariant is additive: if you travel one loop and then another, the winding numbers add. It is also homotopy invariant: if you can continuously deform one loop into another without lifting it off the circle, the winding numbers are equal.
In the Recognition Science framework, the winding invariant is lifted from loops to the formal building blocks of topology called singular 1-simplices, which are continuous maps from a line segment into the circle. The framework's machine-checked library of formal theorems assigns a real number, the displacement, to each such map by reparameterising the segment and taking the path displacement. The key theorem, simplexDisplacement_boundary, states that for every singular 2-simplex, a continuous map from a filled triangle into the circle, the alternating face sum of the displacements of its three edges is zero: disp(δ₀F) − disp(δ₁F) + disp(δ₂F) = 0. The proof is a telescoping argument: the boundary walk from vertex 0 to 1 to 2 is homotopic rel endpoints to the direct edge from 0 to 2 inside the convex standard 2-simplex, and pushing that homotopy through F combines additivity with homotopy invariance to give the vanishing alternating sum.
This single fact makes the winding invariant a homology invariant. A 1-cycle is a formal sum of singular 1-simplices whose boundary is zero, meaning the edges connect head to tail in a closed loop. The theorem shows that the winding number of any such cycle is unchanged when you add a boundary, the edge of a filled triangle. Together with the fact that the once-around generator has winding 1, this gives a winding homomorphism on 1-cycles that is a left inverse to the fundamental class, the split-injective half of H₁(S¹; ℤ) ≅ ℤ. The converse, that every 1-cycle is homologous to an integer multiple of the fundamental cycle, is the generation half and requires a simplicial prism or subdivision operator that the library does not yet provide.
The theorem establishes that the winding invariant is well-defined on homology classes: it cannot distinguish a cycle from one that differs by a boundary. This is the foundation for any later claim that the winding number is a complete invariant of loops on the circle. The framework does not claim that every 1-cycle is generated by the fundamental loop, nor that the full homology group is isomorphic to the integers. Those statements remain open targets, requiring further formal development.
THEOREM simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.lean
/-- **The displacement of a singular `1`-simplex**: the lift-independent angular
travel `2π × (winding number)`, obtained from the path-level displacement. -/
def simplexDisplacement (f : OneSimplex) : ℝ := pathDisplacement (oneSimplexPath f)
THEOREM simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.lean
/-- **The displacement of a singular `1`-simplex**: the lift-independent angular
travel `2π × (winding number)`, obtained from the path-level displacement. -/
def simplexDisplacement (f : OneSimplex) : ℝ := pathDisplacement (oneSimplexPath f)
THEOREM simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.lean
/-- **The displacement of a singular `1`-simplex**: the lift-independent angular
travel `2π × (winding number)`, obtained from the path-level displacement. -/
def simplexDisplacement (f : OneSimplex) : ℝ := pathDisplacement (oneSimplexPath f)
What this page does not claim
The theorem does not prove that every 1-cycle is generated by the fundamental loop. The theorem does not establish the full isomorphism H₁(S¹; ℤ) ≅ ℤ, only the split-injective half. The theorem does not claim that the winding number is a complete invariant of loops on the circle.
Verify this page
Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:
$ lake env lean IndisputableMonolith/Foundation/CircleWindingChain.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)
A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.
Derived articles
This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:
- What is the simplicial prism or subdivision operator that would prove the generation half of H₁(S¹; ℤ) ≅ ℤ?
- How does the winding invariant on singular simplices relate to the path-level winding invariant of CircleWinding?
- What further formal development is needed to show that every 1-cycle is homologous to an integer multiple of the fundamental cycle?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.lean
/-- **The displacement of a singular `1`-simplex**: the lift-independent angular travel `2π × (winding number)`, obtained from the path-level displacement. -/ def simplexDisplacement (f : OneSimplex) : ℝ := pathDisplacement (oneSimplexPath f)for every singular 2-simplex, a continuous map from a filled triangle into the circle, the alternating face sum of the displacements of its three edges is zero simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.leanTHEOREM simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.lean
/-- **The displacement of a singular `1`-simplex**: the lift-independent angular travel `2π × (winding number)`, obtained from the path-level displacement. -/ def simplexDisplacement (f : OneSimplex) : ℝ := pathDisplacement (oneSimplexPath f)the winding number of any such cycle is unchanged when you add a boundary simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.leanTHEOREM simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.lean
/-- **The displacement of a singular `1`-simplex**: the lift-independent angular travel `2π × (winding number)`, obtained from the path-level displacement. -/ def simplexDisplacement (f : OneSimplex) : ℝ := pathDisplacement (oneSimplexPath f)the once-around generator has winding 1 simplexDisplacement · IndisputableMonolith/Foundation/CircleWindingChain.lean