Encyclopedia Foundation Foundation Singular Subdivision T Op Chain Homotopy Succ
Foundation Singular Subdivision T Op Chain Homotopy Succ
A machine-checked theorem shows that repeatedly subdividing a shape's building blocks changes its boundary in a precise, controlled way.
The subdivision identity
In algebraic topology, a chain complex is a sequence of abelian groups connected by boundary maps. The boundary of a boundary is always zero, which is the algebraic heart of homology. The Recognition Science library, a machine-checked collection of formal theorems, works with these objects on topological spaces, using recognition, a discrete record of events, as its foundational lens.
The declaration tOp_chain_homotopy_succ is a theorem about two operations on these chain complexes: tOp, which adds a cone over a space, and sdOp, which subdivides a simplex into smaller pieces. The theorem states that for any topological space X and any natural number n, the boundary of the cone plus the cone of the boundary equals the identity map minus the subdivision operator. In symbols: bnd X n ∘ tOp X n + tOp X (n+1) ∘ bnd X (n+1) = 1 - sdOp X (n+1).
This identity is a chain homotopy. It shows that the cone construction and the subdivision operator are related in a way that preserves the algebraic structure of the complex. The theorem is proved in the Lean 4 proof assistant, with the proof checking out against the kernel's standard axioms. It is a formal result about the library's own definitions of these operations, not a claim about any particular topological space's geometry.
What the theorem does not claim is that subdivision leaves the chain complex unchanged. The right-hand side is the identity minus the subdivision operator, not the identity itself. The theorem also does not claim that the cone construction is a functor, nor that it commutes with the boundary map in the naive sense. Those are separate statements, each with its own proof in the library.
For the Recognition Science framework, this identity is a stepping stone. It is one of the lemmas that will be used to show that the subdivision operator induces the identity on homology, a standard result in algebraic topology. The theorem's value is that it provides a formal, machine-checked foundation for that argument, within the framework's own axiomatic system.
THEOREM tOp_chain_homotopy_succ · IndisputableMonolith/Foundation/SingularSubdivision.lean
/-- The chain homotopy identity in positive degrees:
`∂ ∘ T + T ∘ ∂ = id − S` on the degree-`(n+1)` singular chain group. -/
theorem tOp_chain_homotopy_succ (X : TopCat.{0}) (n : ℕ) :
bnd X n ≫ tOp X n + tOp X (n + 1) ≫ bnd X (n + 1) =
𝟙 (Cgrp X (n + 1)) - sdOp X (n + 1) := by
apply Sigma.hom_ext
intro s
rw [Preadditive.comp_add, Preadditive.comp_sub, Category.comp_id]
-- second summand: `T ∘ ∂` transported to `toChain σ (T (∂ id))`
have h2 : gen X (n + 1) s ≫ (bnd X n ≫ tOp X n) =
toChain (simplexEquiv X (n + 1) s) (n + 1)
(atee (baryFn (n + 1)) n (abnd n (asimplex (idTuple (n + 1))))) := by
rw [← Category.assoc, gen_d, Preadditive.sum_comp, abnd_asimplex, map_sum,
map_sum]
refine Finset.sum_congr rfl fun k _ => ?_
rw [Preadditive.zsmul_comp, map_smul, map_smul]
congr 1
rw [δ_eq_pushSimplex, gen_pushSimplex_comp_tOp]
-- first summand: `∂ ∘ T` transported to `toChain σ (∂ (T id))`
have h1 : gen X (n + 1) s ≫ (tOp X (n + 1) ≫ bnd X (n + 1)) =
toChain (simplexEquiv X (n + 1) s) (n + 1)
(abnd (n + 1) (atee (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1))))) := by
rw [← Category.assoc, gen_tOp]
have h := LinearMap.congr_fun
(toChain_comp_abnd (simplexEquiv X (n + 1) s) (n + 1))
(atee (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1))))
rw [LinearMap.comp_apply, LinearMap.comp_apply] at h
exact h
rw [h2, h1, ← map_add, gen_sdOp]
have hhom := LinearMap.congr_fun (abnd_comp_atee (baryFn (n + 1)) n)
(asimplex (idTuple (n + 1)))
simp only [LinearMap.add_apply, LinearMap.comp_apply, LinearMap.sub_apply,
LinearMap.id_apply] at hhom
have hsum : atee (baryFn (n + 1)) n (abnd n (asimplex (idTuple (n + 1)))) +
abnd (n + 1) (atee (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1)))) =
asimplex (idTuple (n + 1)) -
asub (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1))) := by
exact (add_comm _ _).trans hhom
rw [hsum, map_sub, toChain_asimplex_idTuple]
rfl
What this page does not claim
The theorem does not claim that subdivision leaves the chain complex unchanged. The theorem does not claim that the cone construction is a functor. The theorem does not claim that the cone commutes with the boundary map in the naive sense.
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/SingularSubdivision.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 precise definition of the cone operation tOp in the Recognition Science library?
- How does the subdivision operator sdOp relate to the standard barycentric subdivision in algebraic topology?
- What is the next theorem in the library that uses this chain homotopy identity?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM tOp_chain_homotopy_succ · IndisputableMonolith/Foundation/SingularSubdivision.lean
/-- The chain homotopy identity in positive degrees: `∂ ∘ T + T ∘ ∂ = id − S` on the degree-`(n+1)` singular chain group. -/ theorem tOp_chain_homotopy_succ (X : TopCat.{0}) (n : ℕ) : bnd X n ≫ tOp X n + tOp X (n + 1) ≫ bnd X (n + 1) = 𝟙 (Cgrp X (n + 1)) - sdOp X (n + 1) := by apply Sigma.hom_ext intro s rw [Preadditive.comp_add, Preadditive.comp_sub, Category.comp_id] -- second summand: `T ∘ ∂` transported to `toChain σ (T (∂ id))` have h2 : gen X (n + 1) s ≫ (bnd X n ≫ tOp X n) = toChain (simplexEquiv X (n + 1) s) (n + 1) (atee (baryFn (n + 1)) n (abnd n (asimplex (idTuple (n + 1))))) := by rw [← Category.assoc, gen_d, Preadditive.sum_comp, abnd_asimplex, map_sum, map_sum] refine Finset.sum_congr rfl fun k _ => ?_ rw [Preadditive.zsmul_comp, map_smul, map_smul] congr 1 rw [δ_eq_pushSimplex, gen_pushSimplex_comp_tOp] -- first summand: `∂ ∘ T` transported to `toChain σ (∂ (T id))` have h1 : gen X (n + 1) s ≫ (tOp X (n + 1) ≫ bnd X (n + 1)) = toChain (simplexEquiv X (n + 1) s) (n + 1) (abnd (n + 1) (atee (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1))))) := by rw [← Category.assoc, gen_tOp] have h := LinearMap.congr_fun (toChain_comp_abnd (simplexEquiv X (n + 1) s) (n + 1)) (atee (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1)))) rw [LinearMap.comp_apply, LinearMap.comp_apply] at h exact h rw [h2, h1, ← map_add, gen_sdOp] have hhom := LinearMap.congr_fun (abnd_comp_atee (baryFn (n + 1)) n) (asimplex (idTuple (n + 1))) simp only [LinearMap.add_apply, LinearMap.comp_apply, LinearMap.sub_apply, LinearMap.id_apply] at hhom have hsum : atee (baryFn (n + 1)) n (abnd n (asimplex (idTuple (n + 1)))) + abnd (n + 1) (atee (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1)))) = asimplex (idTuple (n + 1)) - asub (baryFn (n + 1)) (n + 1) (asimplex (idTuple (n + 1))) := by exact (add_comm _ _).trans hhom rw [hsum, map_sub, toChain_asimplex_idTuple] rflThe theorem states that for any topological space X and any natural number n, the boundary of the cone plus the cone of the boundary equals the identity map minus the subdivision operator. tOp_chain_homotopy_succ · IndisputableMonolith/Foundation/SingularSubdivision.lean