CrowellExactSequence.FiniteFamilyExactness

17 Theorem | 1 Definition | 2 Abbreviation

This module proves exactness for the finite-family coordinate maps.

import
Imported by

Declarations

abbrev blanchfieldLyndonFiniteFamilyMap (generators : X → M) :
    (X → R) →ₗ[R] M :=
  finiteFamilyLinearMap (R := R) generators

The Blanchfield--Lyndon finite-family map associated to a chosen boundary-generating family.

theorem blanchfieldLyndonFiniteFamilyMap_apply (generators : X → M) (x : X → R) :
    blanchfieldLyndonFiniteFamilyMap (R := R) generators x = ∑ i, x i • generators i

The Blanchfield--Lyndon finite-family boundary map is evaluated on the canonical generators and then extended linearly to the coordinate module.

Show proof
theorem blanchfieldLyndonFiniteFamilyMap_single (generators : X → M) (i : X) :
    blanchfieldLyndonFiniteFamilyMap (R := R) generators (Pi.single i 1) = generators i

A Blanchfield--Lyndon finite-family map sends a coordinate basis vector to its generator.

Show proof
theorem blanchfieldLyndonFiniteFamilyMap_range_eq_span (generators : X → M) :
    LinearMap.range (blanchfieldLyndonFiniteFamilyMap (R := R) generators) =
      Submodule.span R (Set.range generators)

The image of the Blanchfield--Lyndon finite-family map is the span of its boundary-generating family.

Show proof
theorem blanchfieldLyndonFiniteFamilyMap_surjective_of_span_eq_top
    (generators : X → M)
    (hspan : Submodule.span R (Set.range generators) = ⊤) :
    Function.Surjective (blanchfieldLyndonFiniteFamilyMap (R := R) generators)

The Blanchfield--Lyndon finite-family map is surjective when its target family spans the codomain.

Show proof
theorem blanchfieldLyndonFiniteFamilyMap_surjective_iff_span_eq_top
    (generators : X → M) :
    Function.Surjective (blanchfieldLyndonFiniteFamilyMap (R := R) generators) ↔
      Submodule.span R (Set.range generators) = ⊤

The Blanchfield--Lyndon finite-family map is onto exactly when its boundary generators span.

Show proof
def IsFourTermExactSequence {A B C D : Type*} [Zero C] [Zero D]
    (f : A → B) (g : B → C) (h : C → D) : Prop :=
  Function.Injective f ∧ Function.Exact f g ∧ Function.Exact g h ∧ Function.Surjective h

A four-term exact sequence, formulated at the function level. This packages injectivity of \(f\), exactness at the two middle terms, and surjectivity of the final map.

abbrev IsBlanchfieldLyndonExactSequence {A B C D : Type*} [Zero C] [Zero D]
    (f : A → B) (g : B → C) (h : C → D) : Prop :=
  IsFourTermExactSequence f g h

The Blanchfield--Lyndon exactness predicate is the four-term coordinate exactness condition under its standard name.

theorem injective (hexact : IsFourTermExactSequence f g h) :
    Function.Injective f

A four-term exact sequence gives injectivity of the first map.

Show proof
theorem exact_head_tail (hexact : IsFourTermExactSequence f g h) :
    Function.Exact f g

A four-term exact sequence gives exactness at its left middle term.

Show proof
theorem exact_tail_augmentation (hexact : IsFourTermExactSequence f g h) :
    Function.Exact g h

A four-term exact sequence gives exactness at the augmentation-side map.

Show proof
theorem tail_surjective (hexact : IsFourTermExactSequence f g h) :
    Function.Surjective h

A four-term exact sequence gives final surjectivity.

Show proof
theorem injective (hexact : IsBlanchfieldLyndonExactSequence f g h) :
    Function.Injective f

A four-term exact sequence gives injectivity of the first map.

Show proof
theorem exact_head_tail (hexact : IsBlanchfieldLyndonExactSequence f g h) :
    Function.Exact f g

A four-term exact sequence gives exactness at its left middle term.

Show proof
theorem exact_tail_augmentation (hexact : IsBlanchfieldLyndonExactSequence f g h) :
    Function.Exact g h

A four-term exact sequence gives exactness at the augmentation-side map.

Show proof
theorem augmentation_surjective (hexact : IsBlanchfieldLyndonExactSequence f g h) :
    Function.Surjective h

A Blanchfield--Lyndon exact sequence gives augmentation surjectivity.

Show proof
theorem Function.Exact.linearEquiv_symm_comp_comp
    (e : B ≃ₗ[R] B') {f : A → B'} {g : B' → C}
    (hexact : Function.Exact f g) :
    Function.Exact (fun x : A => e.symm (f x)) (fun y : B => g (e y))

Transport function exactness across a linear equivalence on the middle type.

Show proof
theorem Function.Exact.linearEquiv_symm_comp_comp_iff
    (e : B ≃ₗ[R] B') {f : A → B'} {g : B' → C} :
    Function.Exact (fun x : A => e.symm (f x)) (fun y : B => g (e y)) ↔
      Function.Exact f g

Transporting exactness through a linear equivalence is equivalent to composing with the equivalence and its inverse.

Show proof
theorem Function.Exact.comp_linearEquiv
    (e : B ≃ₗ[R] B') {g : B' → C} {h : C → D}
    (hexact : Function.Exact g h) :
    Function.Exact (fun y : B => g (e y)) h

Exactness is preserved when the tail map of an exact pair is composed with a linear equivalence on the middle term.

Show proof
theorem IsBlanchfieldLyndonExactSequence.linearEquiv_symm_comp_comp
    (e : B ≃ₗ[R] B') {f : A → B'} {g : B' → C} {h : C → D}
    (hexact : IsBlanchfieldLyndonExactSequence f g h) :
    IsBlanchfieldLyndonExactSequence
      (fun x : A => e.symm (f x)) (fun y : B => g (e y)) h

Transport a full BL exact sequence across a linear equivalence on the coordinate middle term.

Show proof