OAI/Algebra/Finitistic/Bar/MultibarBlocks.lean
24 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.DerivedBar.Multibar.countline 12Source documentation
falserecords a D slot,truean X slot. The leading D is separate.def count : List Bool → ℕ | [] => 0 | false :: p => count p | true :: p => count p + 1 /-- Number of ordered pairs consisting of a D slot followed by an X slot. -/
- def
OAI.DerivedBar.Multibar.inversionsline 18Source documentation
Number of ordered pairs consisting of a D slot followed by an X slot.
def inversions : List Bool → ℕ | [] => 0 | false :: p => count p + inversions p | true :: p => inversions p /-- The r+1 block lengths, with no empty-list ambiguity at r=0. -/
Mentions: OAI.DerivedBar.Multibar.count
- def
OAI.DerivedBar.Multibar.Blocksline 24Source documentation
The r+1 block lengths, with no empty-list ambiguity at r=0.
def Blocks : ℕ → Type | 0 => ℕ | r+1 => ℕ × Blocks r
- def
OAI.DerivedBar.Multibar.totalline 28 - def
OAI.DerivedBar.Multibar.exponentline 33Source documentation
This recursive sum is exactly Σⱼ (r-j)iⱼ.
def exponent : (r : ℕ) → Blocks r → ℕ | 0, _ => 0 | r+1, (i, tail) => (r+1)*i + exponent r tail
Mentions: OAI.DerivedBar.Multibar.Blocks
- def
OAI.DerivedBar.Multibar.patternline 37 - theorem
OAI.DerivedBar.Multibar.count_basesline 41 - theorem
OAI.DerivedBar.Multibar.inversions_basesline 47 - theorem
OAI.DerivedBar.Multibar.count_patternline 56 - theorem
OAI.DerivedBar.Multibar.length_patternline 64Source documentation
The actual word length agrees with source cohomological degree -r-Σiⱼ.
@[simp] theorem length_pattern (r : ℕ) (b : Blocks r) : (pattern r b).length = r + total r b := by …Mentions: OAI.DerivedBar.Multibar.Blocks, OAI.DerivedBar.Multibar.pattern, OAI.DerivedBar.Multibar.total
- theorem
OAI.DerivedBar.Multibar.inversions_patternline 76Source documentation
The combinatorial rescaling is exactly the component factor in prop:bar-splitting.
@[simp] theorem inversions_pattern (r : ℕ) (b : Blocks r) : inversions (pattern r b) = exponent r b := by …Mentions: OAI.DerivedBar.Multibar.Blocks, OAI.DerivedBar.Multibar.inversions, OAI.DerivedBar.Multibar.pattern, OAI.DerivedBar.Multibar.exponent
- def
OAI.DerivedBar.Multibar.patternTermline 93Source documentation
Genuine iterated tensors over k for a prescribed D/X pattern, ending in N. No ordinary tensor over D is used in these bar terms.
@[reducible] def patternTerm : List Bool → ModuleCat k | [] => ModuleCat.of k N | false :: p => ModuleCat.of k (D ⊗[k] patternTerm p) | true :: p => ModuleCat.of k (X ⊗[k] patternTerm p) /-- Inclusion of each D/X tensor into the actual A bar term. -/
- def
OAI.DerivedBar.Multibar.embedline 99Source documentation
Inclusion of each D/X tensor into the actual A bar term.
def embed : (p : List Bool) → patternTerm k D X N p →ₗ[k] DerivedBar.term k (TrivSqZeroExt D X) N p.length | [] => LinearMap.id | false :: p => TensorProduct.map (inlAlgHom k D X).toLinearMap (embed p) | true :: p => TensorProduct.map ((inrHom D X).restrictScalars k) (embed p) /-- Slotwise projection back to the prescribed tensor; this proves no tensor relations were lost. -/Mentions: OAI.DerivedBar.Multibar.patternTerm, OAI.DerivedBar.term
- def
OAI.DerivedBar.Multibar.extractline 106Source documentation
Slotwise projection back to the prescribed tensor; this proves no tensor relations were lost.
def extract : (p : List Bool) → DerivedBar.term k (TrivSqZeroExt D X) N p.length →ₗ[k] patternTerm k D X N p | [] => LinearMap.id | false :: p => TensorProduct.map (fstHom k D X).toLinearMap (extract p) | true :: p => TensorProduct.map ((sndHom D X).restrictScalars k) (extract p) /-- Every block inclusion has an actual linear left inverse. -/Mentions: OAI.DerivedBar.term, OAI.DerivedBar.Multibar.patternTerm
- theorem
OAI.DerivedBar.Multibar.extract_embedline 113Source documentation
Every block inclusion has an actual linear left inverse.
theorem extract_embed (p : List Bool) (v : patternTerm k D X N p) : extract k D X N p (embed k D X N p v) = v := by …Mentions: OAI.DerivedBar.Multibar.patternTerm, OAI.DerivedBar.Multibar.extract, OAI.DerivedBar.Multibar.embed
- theorem
OAI.DerivedBar.Multibar.embed_memline 127Source documentation
Each tensor embeds into its correct count subspace.
theorem embed_mem (p : List Bool) (v : patternTerm k D X N p) : embed k D X N p v ∈ SquareZero.weight k D X N p.length (count p) := by …Mentions: OAI.DerivedBar.Multibar.patternTerm, OAI.DerivedBar.Multibar.embed, OAI.DerivedBar.SquareZero.weight, OAI.DerivedBar.Multibar.count
- theorem
OAI.DerivedBar.Multibar.signedProjection_embedline 143Source documentation
Evaluation of the constructed sign operator on genuine pattern tensors.
theorem signedProjection_embed (p : List Bool) (v : patternTerm k D X N p) : SquareZero.signedProjection k D X N p.length (count p) (embed k D X N p v) = (-1 : k)^(inversions p) • embed k D X N p v := by …Mentions: OAI.DerivedBar.Multibar.patternTerm, OAI.DerivedBar.SquareZero.signedProjection, OAI.DerivedBar.Multibar.count, OAI.DerivedBar.Multibar.embed, OAI.DerivedBar.Multibar.inversions
- abbrev
OAI.DerivedBar.Multibar.blockTermline 166Source documentation
The source block tensor, including the exterior D coefficient.
abbrev blockTerm (r : ℕ) (b : Blocks r) := D ⊗[k] patternTerm k D X N (pattern r b)
Mentions: OAI.DerivedBar.Multibar.Blocks, OAI.DerivedBar.Multibar.patternTerm, OAI.DerivedBar.Multibar.pattern
- def
OAI.DerivedBar.Multibar.blockEmbedline 168 - def
OAI.DerivedBar.Multibar.blockExtractline 172 - theorem
OAI.DerivedBar.Multibar.blockExtract_embedline 177 - theorem
OAI.DerivedBar.Multibar.blockEmbed_injectiveline 186Source documentation
Actual block tensors inject, with no D-flatness hypothesis.
theorem blockEmbed_injective (r : ℕ) (b : Blocks r) : Function.Injective (blockEmbed k D X N r b) := …Mentions: OAI.DerivedBar.Multibar.Blocks, OAI.DerivedBar.Multibar.blockEmbed
- theorem
OAI.DerivedBar.Multibar.blockEmbed_memline 190 - theorem
OAI.DerivedBar.Multibar.sign_on_blockline 200Source documentation
The D-linear rescaling on each source block is exactly (-1)^(Σⱼ(r-j)iⱼ).
theorem sign_on_block (r : ℕ) (b : Blocks r) (v : blockTerm k D X N r b) : SquareZero.twoSidedSignedProjection k D X N (pattern r b).length r (blockEmbed k D X N r b v) = (-1 : k)^(exponent r b) • blockEmbed k D X N r b v := by …Mentions: OAI.DerivedBar.Multibar.Blocks, OAI.DerivedBar.Multibar.blockTerm, OAI.DerivedBar.SquareZero.twoSidedSignedProjection, OAI.DerivedBar.Multibar.pattern, OAI.DerivedBar.Multibar.blockEmbed, OAI.DerivedBar.Multibar.exponent