OAI/AlgebraicTopology/IntegralHomology/TupleChains.lean
36 declarations, 0 contain sorry, 0 declared as axioms
Tuple chains, subdivision, chain maps, and support control.
- def
OAI.Kaplansky.tupleSSetline 19Source documentation
Ordered tuples, with deletion and repetition of vertices.
def tupleSSet (E : Type) : SSet.{0} where … - abbrev
OAI.Kaplansky.tupleChainsline 23 - abbrev
OAI.Kaplansky.tupleGenline 24 - theorem
OAI.Kaplansky.tupleChains_hom_extline 28Source documentation
Maps from tuple chains are determined by their values on tuple generators.
theorem tupleChains_hom_ext {E : Type} {n : ℕ} {T : ModuleCat.{0} ℤ} {f g : (tupleChains E).X n ⟶ T} (h : ∀ v : Fin (n+1) → E, tupleGen v ≫ f = tupleGen v ≫ g) : f = g := …Mentions: OAI.Kaplansky.tupleChains, OAI.Kaplansky.tupleGen
- theorem
OAI.Kaplansky.tupleGen_dline 34 - def
OAI.Kaplansky.tupleConeline 40Source documentation
Prepending a fixed vertex, extended linearly on actual free chains.
def tupleCone {E : Type} (p : E) (n : ℕ) : (tupleChains E).X n ⟶ (tupleChains E).X (n+1) := …Mentions: OAI.Kaplansky.tupleChains
- theorem
OAI.Kaplansky.tupleGen_coneline 45 - def
OAI.Kaplansky.tupleAugmentationline 50Source documentation
Augmentation of zero-chains.
def tupleAugmentation (E : Type) : (tupleChains E).X 0 ⟶ ModuleCat.of ℤ ℤ := …
Mentions: OAI.Kaplansky.tupleChains
- theorem
OAI.Kaplansky.tupleGen_augmentationline 54 - theorem
OAI.Kaplansky.tuple_d_augmentationline 59 - theorem
OAI.Kaplansky.tupleCone_d_zeroline 67 - theorem
OAI.Kaplansky.tupleCone_dline 85Source documentation
The cone boundary identity in positive degree.
theorem tupleCone_d {E : Type} (p : E) (n : ℕ) : tupleCone p (n+1) ≫ (tupleChains E).d (n+2) (n+1) = 𝟙 _ - (tupleChains E).d (n+1) n ≫ tupleCone p n := by …Mentions: OAI.Kaplansky.tupleCone, OAI.Kaplansky.tupleChains
- def
OAI.Kaplansky.tupleSubdivisionMapline 109Source documentation
A center is chosen for each positive-dimensional tuple. The chain identity does not require a metric; barycenters will supply mesh control.
def tupleSubdivisionMap (b : ∀ n : ℕ, (Fin (n+2) → E) → E) : ∀ n, (tupleChains E).X n ⟶ (tupleChains E).X n := fun n => match n with …Mentions: OAI.Kaplansky.tupleChains
- theorem
OAI.Kaplansky.tupleSubdivisionMap_zeroline 116 - theorem
OAI.Kaplansky.tupleGen_subdivision_succline 120 - theorem
OAI.Kaplansky.tupleSubdivisionMap_dline 129Source documentation
Subdivision commutes with the actual alternating boundary.
theorem tupleSubdivisionMap_d (b : ∀ n : ℕ, (Fin (n+2) → E) → E) (n : ℕ) : tupleSubdivisionMap b (n+1) ≫ (tupleChains E).d (n+1) n = (tupleChains E).d (n+1) n ≫ tupleSubdivisionMap b n := by …Mentions: OAI.Kaplansky.tupleSubdivisionMap, OAI.Kaplansky.tupleChains
- def
OAI.Kaplansky.tupleSubdivisionline 149Source documentation
A constructed chain endomorphism, for any supplied centers.
def tupleSubdivision (b : ∀ n : ℕ, (Fin (n+2) → E) → E) : tupleChains E ⟶ tupleChains E := …Mentions: OAI.Kaplansky.tupleChains
- def
OAI.Kaplansky.tupleSubdivisionPrismline 155Source documentation
The prism is filled by a cone after subtracting its prescribed boundary. This recursion constructs the homotopy; it is not a homotopy premise.
def tupleSubdivisionPrism (b : ∀ n : ℕ, (Fin (n+2) → E) → E) : ∀ n, (tupleChains E).X n ⟶ (tupleChains E).X (n+1) := fun n => match n with …Mentions: OAI.Kaplansky.tupleChains
- theorem
OAI.Kaplansky.tupleSubdivisionPrism_zeroline 164 - theorem
OAI.Kaplansky.tupleGen_prism_succline 168 - theorem
OAI.Kaplansky.tupleCone_cycleline 177Source documentation
A cone fills every positive-dimensional cycle in tuple chains.
theorem tupleCone_cycle (p : E) (n : ℕ) {A : ModuleCat.{0} ℤ} (z : A ⟶ (tupleChains E).X (n+1)) (hz : z ≫ (tupleChains E).d (n+1) n = 0) : z ≫ tupleCone p (n+1) ≫ (tupleChains E).d (n+2) (n+1) = z := by …Mentions: OAI.Kaplansky.tupleChains, OAI.Kaplansky.tupleCone
- theorem
OAI.Kaplansky.tupleSubdivisionPrism_equationline 185Source documentation
The full positive-degree chain-homotopy equation.
theorem tupleSubdivisionPrism_equation (b : ∀ n : ℕ, (Fin (n+2) → E) → E) (n : ℕ) : tupleSubdivisionPrism b (n+1) ≫ (tupleChains E).d (n+2) (n+1) = 𝟙 _ - tupleSubdivisionMap b (n+1) - (tupleChains E).d (n+1) n ≫ tupleSubdivisionPrism b n := by …Mentions: OAI.Kaplansky.tupleSubdivisionPrism, OAI.Kaplansky.tupleChains, OAI.Kaplansky.tupleSubdivisionMap
- def
OAI.Kaplansky.chainHomotopyOfComponentsline 227 - def
OAI.Kaplansky.tupleSubdivisionHomotopyline 244Source documentation
Subdivision is chain homotopic to the identity.
def tupleSubdivisionHomotopy (b : ∀ n : ℕ, (Fin (n+2) → E) → E) : Homotopy (𝟙 (tupleChains E)) (tupleSubdivision b) := …Mentions: OAI.Kaplansky.tupleChains, OAI.Kaplansky.tupleSubdivision
- def
OAI.Kaplansky.tupleSSetMapline 257Source documentation
Applying a function to each vertex defines a simplicial map.
def tupleSSetMap (f : E → F) : tupleSSet E ⟶ tupleSSet F where …
Mentions: OAI.Kaplansky.tupleSSet
- abbrev
OAI.Kaplansky.tupleChainMapline 260 - theorem
OAI.Kaplansky.tupleGen_mapline 264 - theorem
OAI.Kaplansky.tupleCone_mapline 270 - theorem
OAI.Kaplansky.tupleSubdivisionMap_naturalityline 279Source documentation
Naturality of subdivision for center-preserving vertex maps.
theorem tupleSubdivisionMap_naturality (b : ∀ n : ℕ, (Fin (n+2) → E) → E) (c : ∀ n : ℕ, (Fin (n+2) → F) → F) (f : E → F) (hb : ∀ n v, f (b n v) = c n (f ∘ v)) (n : ℕ) : tupleSubdivisionMap b n ≫ (tupleChainMap f).f n = (tupleChainMap f).f n ≫ tupleSubdivisionMap c n := by …Mentions: OAI.Kaplansky.tupleSubdivisionMap, OAI.Kaplansky.tupleChainMap
- theorem
OAI.Kaplansky.tupleSubdivisionPrism_naturalityline 298Source documentation
The explicit subdivision homotopy has the same naturality.
theorem tupleSubdivisionPrism_naturality (b : ∀ n : ℕ, (Fin (n+2) → E) → E) (c : ∀ n : ℕ, (Fin (n+2) → F) → F) (f : E → F) (hb : ∀ n v, f (b n v) = c n (f ∘ v)) (n : ℕ) : tupleSubdivisionPrism b n ≫ (tupleChainMap f).f (n+1) = (tupleChainMap f).f n ≫ tupleSubdivisionPrism c n := by …Mentions: OAI.Kaplansky.tupleSubdivisionPrism, OAI.Kaplansky.tupleChainMap
- def
OAI.Kaplansky.tupleChainSpanline 324Source documentation
Integral chains spanned by tuples satisfying a specified support condition.
def tupleChainSpan {n : ℕ} (P : (Fin (n+1) → E) → Prop) : Submodule ℤ ((tupleChains E).X n) := …Mentions: OAI.Kaplansky.tupleChains
- theorem
OAI.Kaplansky.tupleGen_mem_spanline 328 - theorem
OAI.Kaplansky.tupleChainSpan_mapline 334Source documentation
To control a linear operator on supported chains, it suffices to control each supported generator.
theorem tupleChainSpan_map {n m : ℕ} {P : (Fin (n+1) → E) → Prop} {Q : (Fin (m+1) → F) → Prop} (L : (tupleChains E).X n ⟶ (tupleChains F).X m) (hL : ∀ v, P v → L (tupleGen v (1 : ℤ)) ∈ tupleChainSpan Q) {c : (tupleChains E).X n} (hc : c ∈ tupleChainSpan P) : L c ∈ tupleChainSpan Q := by …Mentions: OAI.Kaplansky.tupleChains, OAI.Kaplansky.tupleGen, OAI.Kaplansky.tupleChainSpan
- theorem
OAI.Kaplansky.tupleChainSpan_monoline 345 - theorem
OAI.Kaplansky.tupleCone_mem_spanline 353Source documentation
Coning preserves the support condition exactly when prepending its vertex preserves the generator condition.
theorem tupleCone_mem_span {n : ℕ} (p : E) {P : (Fin (n+1) → E) → Prop} {Q : (Fin (n+2) → E) → Prop} (h : ∀ v, P v → Q (Fin.cons p v)) {c : (tupleChains E).X n} (hc : c ∈ tupleChainSpan P) : tupleCone p n c ∈ tupleChainSpan Q := by …Mentions: OAI.Kaplansky.tupleChains, OAI.Kaplansky.tupleChainSpan, OAI.Kaplansky.tupleCone
- theorem
OAI.Kaplansky.tupleSubdivision_gen_valueline 364Source documentation
The recursive subdivision formula evaluated as an actual chain.
theorem tupleSubdivision_gen_value (b : ∀ n : ℕ, (Fin (n+2) → E) → E) {n : ℕ} (v : Fin (n+2) → E) : tupleSubdivisionMap b (n+1) (tupleGen v (1 : ℤ)) = ∑ i : Fin (n+2), (-1 : ℤ)^i.val • tupleCone (b n v) n (tupleSubdivisionMap b n (tupleGen (v ∘ i.succAbove) (1 : ℤ))) := by …Mentions: OAI.Kaplansky.tupleSubdivisionMap, OAI.Kaplansky.tupleGen, OAI.Kaplansky.tupleCone