PFR/Mathlib/LinearAlgebra/Basis/VectorSpace.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Polynomial Freiman-Ruzsa proof paper, arXiv v2

1 declarations, 0 contain sorry, 0 declared as axioms

Imports (2)
Imported by 2 files
  1. theorem Submodule.exists_equiv_fst_sndModFst Given a submodule $E$ of $B \times F$, there is an equivalence $f : E \to B' \times F'$ given by the projections $E \to B$ and $E \to F$ "modulo" some $φ : B \to F$ line 16 source

    Source documentation

    Given a submodule $E$ of $B \times F$, there is an equivalence $f : E \to B' \times F'$ given by the projections $E \to B$ and $E \to F$ "modulo" some $φ : B \to F$.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: DivisionRing, AddCommGroup, Module, Submodule, Prod, Exists, LinearEquiv, RingHom.id, Subtype, Membership.mem, LinearMap, And, Eq, Prod.fst, Prod.snd, HSub.hSub, LinearEquiv.symm, Prod.mk, HAdd.hAdd

    Proof uses: LinearMap.fst, Submodule.map, LinearMap.submoduleMap, LinearMap.range, Top.top, Iff.mpr, Function.Surjective, LinearMap.range_eq_top, LinearMap.submoduleMap_surjective, LinearMap.comp, LinearMap.id, LinearMap.exists_rightInverse_of_surjective, Submodule.subtype, LinearMap.exists_extend, LinearMap.domRestrict, LinearMap.snd, LinearMap.rangeRestrict, IsCompl, LinearMap.ker, IsCompl.of_eq and 46 more

    93 instances, coercions and auxiliary constants left out.

    Tactic trace: 44 steps

    Open to load the checked before-and-after goal states.

    theorem exists_equiv_fst_sndModFst (E : Submodule R (B × F)) :
        ∃ (B' : Submodule R B) (F' : Submodule R F) (f : E ≃ₗ[R] B' × F') (φ : B →ₗ[R] F),
        (∀ x, (f x).1.val = x.val.1 ∧ (f x).2.val = x.val.2 - φ x.val.1) ∧
        (∀ (x₁ : B') (x₂ : F'), (f.symm (x₁, x₂)).val = (x₁.val, x₂.val + φ x₁.val)) := by
    …