FLT/NumberField/Padics/RestrictedProduct.lean
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
11 declarations, 0 contain sorry, 0 declared as axioms
ℚ inside the restricted product of the ℚ_p
We embed ℚ diagonally in the restricted product Πʳ_p [ℚ_[p], ℤ_[p]],
and identify rationals with their image (the elements with bounded
p-denominator).
Imports (11)
- FLT.Mathlib.Topology.Algebra.RestrictedProduct.Basic
- Mathlib.NumberTheory.Padics.PadicIntegers
- Mathlib.CategoryTheory.Category.Init
- Mathlib.Combinatorics.Matroid.Init
- Mathlib.Data.Nat.Totient
- Mathlib.Data.Sym.Sym2.Init
- Mathlib.NumberTheory.NumberField.Basic
- Mathlib.NumberTheory.Padics.RingHoms
- Mathlib.Tactic.NormNum.GCD
- Mathlib.Tactic.Positivity.Finset
- Mathlib.RingTheory.DedekindDomain.Basic
Imported by 2 files
- theorem
Padic.setOf_norm_one_lt_finiteline 39 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Rat,Set.Finite,Nat.Primes,Set.ofPred,LT.lt,Real,OfNat.ofNat,Norm.norm,Padic,Nat,Nat.Prime,Padic.instFactPrimeValNatProof uses:
Set.Finite.subset,Not,Dvd.dvd,Rat.den,False,Set.Finite.of_finite_image,Subtype,Finset,Nat.primeFactors,of_eq_true,Set.image,Membership.mem,Set,Eq,Eq.mpr,And,id,Eq.trans,Ne,congrArgand 18 more39 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
RestrictedProduct.padic_valuation_neg_of_mem_indexSupportline 52 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,Membership.mem,Finset, RestrictedProduct.indexSupport,Subtype,LT.lt,Int,Padic.valuation,OfNat.ofNatProof uses:
Mathlib.Tactic.Contrapose.contrapose₁,Eq.mpr,Not,LE.le,id,Eq,implies_congr,Eq.refl,Eq.trans,congrArg,Real,Norm.norm39 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- def
RestrictedProduct.padicNatDenThe smallest positive naturaln : ℕfor whichx p * nis ap-adic integer for allpline 59 sourceSource documentation
The smallest positive natural
n : ℕfor whichx p * nis ap-adic integer for allp.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofiniteProof uses:
Finset.prod, RestrictedProduct.indexSupport,Subtype,HPow.hPow,Int.natAbs,Padic.valuation19 instances, coercions and auxiliary constants left out.
noncomputable def padicNatDen (x : Πʳ (p : Nat.Primes), [ℚ_[p], subring p]) : ℕ := … - theorem
RestrictedProduct.padicNatDen_ne_zeroline 63 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,Ne, RestrictedProduct.padicNatDen,OfNat.ofNatProof uses:
Eq.mpr,Finset.prod, RestrictedProduct.indexSupport,Subtype,HPow.hPow,Int.natAbs,Padic.valuation,id,Eq,congrArg,RestrictedProduct.padicNatDen.eq_1,Membership.mem,Finset,propext,Finset.prod_ne_zero_iff,of_eq_true,Not,Eq.trans,False,Trueand 8 more50 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
RestrictedProduct.padicNatDen_norm_of_memline 70 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,Membership.mem,Finset, RestrictedProduct.indexSupport,Eq,Real,Norm.norm, RestrictedProduct.padicNatDen,HPow.hPow,Int,Neg.neg,Int.natAbsand 1 moreProof uses:
Eq.mpr,Finset.prod,Subtype,id,congrFun',congrArg,Eq.trans,Nat.cast_prod,Finset.prod_congr,Eq.refl,Nat.cast_pow,norm_prod,norm_pow,Finset.prod_eq_single_of_mem,Ne,OfNat.ofNat,Iff.mpr,Nat.Coprime,Padic.norm_natCast_eq_one_iff,Nat.coprime_primesand 21 more122 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- theorem
RestrictedProduct.padicNatDen_norm_of_notMemline 82 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,Not,Membership.mem,Finset, RestrictedProduct.indexSupport,Eq,Real,Norm.norm, RestrictedProduct.padicNatDen,OfNat.ofNatProof uses:
Eq.mpr,Finset.prod,Subtype,HPow.hPow,Int.natAbs,Padic.valuation,id,congrFun',congrArg,Eq.trans,Nat.cast_prod,Finset.prod_congr,Eq.refl,Nat.cast_pow,norm_prod,norm_pow,Finset.prod_eq_one,Iff.mpr,Nat.Coprime,Padic.norm_natCast_eq_one_iffand 9 more63 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- theorem
RestrictedProduct.padicNatDen_norm_mul_le_oneline 92 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,LE.le,Real,Norm.norm,HMul.hMul,Rat, RestrictedProduct.padicNatDen,OfNat.ofNatProof uses:
dite,Membership.mem,Finset, RestrictedProduct.indexSupport,Subtype,Eq,Classical.propDecidable,of_eq_true,Eq.trans,True,congrFun',congrArg,congr,Rat.cast_natCast,MulZeroClass.mul_zero,norm_zero,Not,Eq.mpr,HPow.hPow,Intand 30 more151 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- def
RestrictedProduct.padicNumThe element of(p : Nat.Primes) → ℤ_[p]obtained by multiplying bypadicNatDenline 104 sourceSource documentation
The element of
(p : Nat.Primes) → ℤ_[p]obtained by multiplying bypadicNatDen.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,PadicIntProof uses:
Subtype.mk,Membership.mem,HMul.hMul, RestrictedProduct.padicNatDen, RestrictedProduct.padicNatDen_norm_mul_le_one22 instances, coercions and auxiliary constants left out.
noncomputable def padicNum (x : Πʳ (p : Nat.Primes), [ℚ_[p], subring p]) (p : Nat.Primes) : ℤ_[p] := …
- theorem
RestrictedProduct.padic_exists_sub_mem_padicIntline 108 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,Exists,Rat,Membership.mem,HSub.hSubProof uses:
Subtype,Finset, RestrictedProduct.indexSupport,ZMod,HPow.hPow,Int.natAbs,Padic.valuation,RingHom,PadicInt,PadicInt.toZModPow, RestrictedProduct.padicNum,Pairwise,Nat.Coprime,Ne,Nat.coprime_pow_primes,Subtype.property,Eq.mpr,Not,Eq,idand 124 more206 instances, coercions and auxiliary constants left out.
Tactic trace: 28 steps
Open to load the checked before-and-after goal states.
- instance
RestrictedProduct.(instance at line 145)line 145 source - theorem
RestrictedProduct.padic_exists_sub_mem_structureSubringline 155 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RestrictedProduct,Nat.Primes,Padic,Nat,Nat.Prime,RestrictedProduct.instFactPrimeValNat,Subring,PadicInt.subring,Filter.cofinite,Exists,Rat,Membership.mem,Subtype, RestrictedProduct.structureSubring,HSub.hSub,RingHom,Algebra.algebraMapProof uses: RestrictedProduct.padic_exists_sub_mem_padicInt,
Exists.intro,Iff.mpr, RestrictedProduct.mem_structureSubring_iff,Eq.mpr,LE.le,Real,Norm.norm,OfNat.ofNat,id,Eq,Eq.mp,Neg.neg,Eq.trans,congrArg,neg_sub,Subring.neg_mem72 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.