FLT/HenselianLocalRing/EtaleDecomposition.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, Pinned FLT blueprint introduction

3 declarations, 0 contain sorry, 0 declared as axioms

Etale local decompsition of finite extensions

Imports (1)
Imported by 2 files
  1. theorem Algebra.exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq_aux A key induction step of exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq line 25 source

    Source documentation

    A key induction step of exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq.

    private theorem exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq_aux.{v, u}
        {R : Type u} {S : Type (max u v)} [CommRing R] [CommRing S] [Algebra R S]
        (p : Ideal R) [p.IsPrime] (q : Ideal S)
        (R' : Type u) [CommRing R'] [Algebra R R'] [Algebra.Etale R R'] (P : Ideal R')
        [P.IsPrime] [P.LiesOver p] (e : R' ⊗[R] S) (P' : Ideal (R' ⊗[R] S))
        [P'.IsPrime] [P'.LiesOver P]
        (hP'q : Ideal.comap Algebra.TensorProduct.includeRight.toRingHom P' = q)
        (heP' : e ∉ P') (hpP : Function.Bijective
          (Ideal.ResidueField.mapₐ p P (Algebra.ofId _ _) (P.over_def p)))
        (H : ∀ (P'' : Ideal (R' ⊗[R] S)), P''.IsPrime → P''.LiesOver P → e ∉ P'' → P'' = P')
        (R'' : Type u) [CommRing R''] [Algebra R' R''] [Algebra R R''] [IsScalarTower R R' R'']
        [Algebra.Etale R' R''] (Q : Ideal R'')
    …
  2. lemma Algebra.ncard_primesOver_quotient_singleton_lt_of_notMem line 94 source

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

    Statement uses: CommRing, Algebra, Ideal, Ideal.IsPrime, Ideal.LiesOver, Not, Membership.mem, Set.Finite, Ideal.primesOver, LT.lt, Nat, Set.ncard, HasQuotient.Quotient, Ideal.span, Singleton.singleton, Set

    Proof uses: Eq.mpr, Set.image, Ideal.comap, RingHom, Ideal.Quotient.mk, id, Eq, congrArg, Eq.symm, Set.ncard_image_of_injective, Ideal.comap_injective_of_surjective, Ideal.Quotient.mk_surjective, Set.ncard_lt_ncard, Iff.mpr, And, LE.le, Exists, Set.ssubset_iff_exists, And.intro, inferInstance and 9 more

    53 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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

  3. lemma Algebra.exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq' A less universe polymorphic version of exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq line 109 source

    Source documentation

    A less universe polymorphic version of exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq. Use that instead.

    private lemma exists_etale_completeOrthogonalIdempotents_forall_liesOver_eq'.{u, v}
        {R : Type u} {S : Type max u v} [CommRing R] [CommRing S] [Algebra R S] [Module.Finite R S]
        (p : Ideal R) [p.IsPrime] :
        ∃ (R' : Type u) (_ : CommRing R') (_ : Algebra R R') (_ : Algebra.Etale R R') (P : Ideal R')
          (_ : P.IsPrime) (_ : P.LiesOver p) (n : ℕ) (e : Fin (n + 1) → R' ⊗[R] S)
          (_ : CompleteOrthogonalIdempotents e) (P' : Fin n → Ideal (R' ⊗[R] S))
          (_ : ∀ i, (P' i).IsPrime) (_ : ∀ i, (P' i).LiesOver P),
          Function.Bijective (Ideal.ResidueField.mapₐ p P (Algebra.ofId _ _) (P.over_def p)) ∧
          (∀ i, e i.castSucc ∉ P' i) ∧
          ∀ (P'' : Ideal (R' ⊗[R] S)), P''.IsPrime → P''.LiesOver P →
            e (.last n) ∈ P'' ∧ ∀ i, e i.castSucc ∉ P'' → P'' = P' i := by
    …