FLT/Mathlib/NumberTheory/Padics/PadicIntegers.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

16 declarations, 0 contain sorry, 0 declared as axioms

TODO

Imports (3)
Imported by 3 files
  1. lemma PadicInt.coe_coeRingHom line 31 source

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

    Statement uses: Nat, Fact, Nat.Prime, Eq, PadicInt, Padic, RingHom, PadicInt.Coe.ringHom, Membership.mem, Subring, PadicInt.subring

    Proof uses: rfl

    24 instances, coercions and auxiliary constants left out.

  2. lemma PadicInt.coe_injective line 33 source

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

    Statement uses: Nat, Fact, Nat.Prime, Function.Injective, Subtype, Padic, Membership.mem, Subring, PadicInt.subring

    Proof uses: Subtype.val_injective

    11 instances, coercions and auxiliary constants left out.

  3. instance PadicInt.(instance at line 37) line 37 source
  4. lemma PadicInt.nnnorm_p line 39 source

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

    Statement uses: Nat, Fact, Nat.Prime, Eq, NNReal, NNNorm.nnnorm, PadicInt, Inv.inv

    Proof uses: Eq.mpr, NNReal.mk, Real, Norm.norm, LE.le, OfNat.ofNat, norm_nonneg, PadicInt.norm_p, id, congrFun', congrArg, NNReal.mk.congr_simp, Eq.refl

    43 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  5. lemma PadicInt.nnnorm_units line 41 source

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

    Statement uses: Nat, Fact, Nat.Prime, Units, PadicInt, Eq, NNReal, NNNorm.nnnorm, OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, True, congrFun', congrArg, Real.toNNReal, Norm.norm, Real, PadicInt.norm_units, Real.toNNReal_one, eq_self

    31 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

  6. lemma PadicInt.exists_unit_mul_p_pow_eq line 44 source

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

    Statement uses: Nat, Fact, Nat.Prime, PadicInt, Ne, OfNat.ofNat, Exists, Units, Eq, HMul.hMul, HPow.hPow

    Proof uses: Exists.intro, PadicInt.unitCoeff, PadicInt.valuation, Eq.symm, PadicInt.unitCoeff_spec

    38 instances, coercions and auxiliary constants left out.

  7. lemma PadicInt.image_coe_smul_set line 47 source

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

    Statement uses: Nat, Fact, Nat.Prime, PadicInt, Set, Eq, Padic, Set.image, Membership.mem, Subring, PadicInt.subring, HSMul.hSMul

    Proof uses: Set.image_comm, rfl

    37 instances, coercions and auxiliary constants left out.

  8. instance PadicInt.(instance at line 51) line 51 source

    Source comment

    Yaël: Do we really want this as a coercion?
    noncomputable instance : Coe ℤ_[p]ˣ ℚ_[p]ˣ where coe := Units.map Coe.ringHom.toMonoidHom
  9. lemma PadicInt._root_.AddSubgroup.comap_smul_one line 53 source
  10. lemma PadicInt.index_span_p_pow line 66 source

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

    Statement uses: Nat, Fact, Nat.Prime, PadicInt, Ne, OfNat.ofNat, Eq, NNReal, AddSubgroup.index, Submodule.toAddSubgroup, Ideal.span, Singleton.singleton, Set, HPow.hPow, PadicInt.valuation, Inv.inv, NNNorm.nnnorm, Padic, Membership.mem, Subring and 1 more

    Proof uses: RingEquiv, HasQuotient.Quotient, Ideal, RingHom.ker, ZMod, RingHom, PadicInt.toZModPow, RingHom.quotientKerEquivOfSurjective, ZMod.ringHom_surjective, Nat.card, Nat.card_congr, RingEquiv.toEquiv, Ideal.quotEquivOfEq, PadicInt.ker_toZModPow, AddSubgroup, rfl, of_eq_true, Eq.trans, Real, True and 18 more

    123 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  11. lemma PadicInt.smul_submodule_one_index line 83 source

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

    Statement uses: Nat, Fact, Nat.Prime, PadicInt, Eq, NNReal, AddSubgroup.index, Submodule.toAddSubgroup, HSMul.hSMul, Submodule, OfNat.ofNat, Inv.inv, NNNorm.nnnorm, Padic, Membership.mem, Subring, PadicInt.subring

    Proof uses: dite, Classical.propDecidable, of_eq_true, Eq.trans, True, congr, congrArg, Nat.card, Bot.bot, AddSubgroup, Top.top, Ideal, Ideal.one_eq_top, zero_smul, AddSubgroup.index_bot, Nat.card_eq_zero_of_infinite, CharP.cast_eq_zero, nnnorm_zero, inv_zero, eq_self and 20 more

    133 instances, coercions and auxiliary constants left out.

    Tactic trace: 7 steps

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

  12. lemma PadicInt.smul_submodule_one_relIndex x • S has index ‖x‖⁻¹ in S, where S is the copy of ℤ_[p] inside ℚ_[p] line 94 source

    Source documentation

    x • S has index ‖x‖⁻¹ in S, where S is the copy of ℤ_[p] inside ℚ_[p]

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

    Statement uses: Nat, Fact, Nat.Prime, PadicInt, Eq, NNReal, AddSubgroup.relIndex, Padic, HSMul.hSMul, AddSubgroup, Submodule.toAddSubgroup, OfNat.ofNat, Submodule, Inv.inv, NNNorm.nnnorm, Membership.mem, Subring, PadicInt.subring

    Proof uses: AddSubgroup.index, PadicInt.smul_submodule_one_index, AddMonoidHom, RingHom.toAddMonoidHom, PadicInt.Coe.ringHom, AddSubgroup.comap, Top.top, AddSubgroup.map, AddSubgroup.relIndex_comap, AddSubgroup.ext, of_eq_true, Iff, Eq.trans, Exists, True, congr, congrArg, RingHom, And, funext and 15 more

    131 instances, coercions and auxiliary constants left out.

    Tactic trace: 14 steps

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

    lemma smul_submodule_one_relIndex :
        (x • (1 : Submodule ℤ_[p] ℚ_[p]).toAddSubgroup).relIndex
          (1 : Submodule ℤ_[p] ℚ_[p]).toAddSubgroup = ‖x.val‖₊⁻¹ := by
    …
  13. lemma PadicInt.smul_submodule_one_isFiniteRelIndex x • S has finite in S, where S is the copy of ℤ_[p] inside ℚ_[p] line 120 source

    Source documentation

    x • S has finite in S, where S is the copy of ℤ_[p] inside ℚ_[p]

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

    Statement uses: Nat, Fact, Nat.Prime, PadicInt, Ne, OfNat.ofNat, AddSubgroup.IsFiniteRelIndex, Padic, HSMul.hSMul, AddSubgroup, Submodule.toAddSubgroup, Submodule

    Proof uses: AddSubgroup.IsFiniteRelIndex.mk, Eq.mpr, AddSubgroup.relIndex, NNReal, id, Eq, congrArg, Eq.symm, propext, Nat.cast_ne_zero, of_eq_true, Eq.trans, Inv.inv, NNNorm.nnnorm, Membership.mem, Subring, PadicInt.subring, True, congrFun', PadicInt.smul_submodule_one_relIndex and 4 more

    102 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    lemma smul_submodule_one_isFiniteRelIndex (hx : x ≠ 0) :
        (x • (1 : Submodule ℤ_[p] ℚ_[p]).toAddSubgroup).IsFiniteRelIndex
        (1 : Submodule ℤ_[p] ℚ_[p]).toAddSubgroup where
    …
  14. instance PadicInt.(instance at line 128) line 128 source

    Source comment

    Yaël: Do we really want this as a coercion?
    noncomputable instance : Coe ℤ_[p]⁰ ℚ_[p]ˣ where
    …
  15. lemma PadicInt.closure_nonZeroDivisors_padicInt Non-zero p-adic integers generate non-zero p-adic numbers as a group line 134 source

    Source documentation

    Non-zero p-adic integers generate non-zero p-adic numbers as a group.

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

    Statement uses: Nat, Fact, Nat.Prime, Eq, Subgroup, Units, Padic, Subgroup.closure, Set.range, Subtype, PadicInt, Membership.mem, Submonoid, nonZeroDivisors, Units.mk0, Subring, PadicInt.subring, Top.top

    Proof uses: Eq.mpr, id, congrArg, rfl, propext, Subgroup.eq_top_iff', Exists, And, HDiv.hDiv, RingHom, Algebra.algebraMap, IsFractionRing.div_surjective, Not, OfNat.ofNat, False, False.elim, Eq.mp, Eq.trans, congrFun', zero_div and 13 more

    79 instances, coercions and auxiliary constants left out.

    Tactic trace: 11 steps

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

    lemma closure_nonZeroDivisors_padicInt :
        Subgroup.closure (Set.range ((↑) : ℤ_[p]⁰ → ℚ_[p]ˣ)) = ⊤ := by
    …
  16. lemma Padic.submodule_one_eq_closedBall line 153 source

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

    Statement uses: Nat, Fact, Nat.Prime, Eq, Set, Padic, Submodule, PadicInt, OfNat.ofNat, Metric.closedBall, Real

    Proof uses: Set.ext, Eq.mpr, Iff, Membership.mem, Exists, Subring, PadicInt.subring, LE.le, Norm.norm, id, congr, congrArg, Eq.trans, RingHom, Algebra.algebraMap, Dist.dist, congrFun', dist_zero_right, of_eq_true, True and 9 more

    67 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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