FLT/Data/QHat.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
57 declarations, 0 contain sorry, 0 declared as axioms
The profinite completion of ℤ and the finite adeles of ℚ
A self-contained construction of ZHat, the profinite completion of ℤ,
defined as the inverse limit of the rings ℤ/Nℤ together with the natural
reduction maps. We also define the finite adele ring QHat as
ZHat ⊗_ℤ ℚ.
Main definitions
ZHat: the profinite completion ofℤ, defined explicitly as compatible systems of elements ofℤ/Nℤ.QHat: the finite adele ringQHat = ZHat ⊗_ℤ ℚ.
Imports (6)
Imported by 3 files
- def
ZHatWe define the profinite completion of ℤ explicitly as compatible elements of ℤ/Nℤ for all positive integersNline 41 sourceSource documentation
We define the profinite completion of ℤ explicitly as compatible elements of ℤ/Nℤ for all positive integers
N. We declare it as a subring of∏_{N ≥ 1} (ℤ/Nℤ), and then promote it to a type.def ZHat : Type := { … - instance
ZHat.(instance at line 67)line 67 source - def
ZHat.toZModThe canonical "reduce mod M" map fromZHattoℤ/Mℤline 72 sourceSource documentation
The canonical "reduce mod M" map from
ZHattoℤ/Mℤ.def toZMod (M : ℕ+) : ZHat →+* ZMod M where …
Mentions: ZHat
- lemma
ZHat.toZMod_defline 79 source - lemma
ZHat.propline 81 source - lemma
ZHat.extline 84 source - lemma
ZHat.zero_valline 87 source - lemma
ZHat.one_valline 88 source - lemma
ZHat.ofNat_valline 89 source - lemma
ZHat.natCast_valline 91 source - lemma
ZHat.intCast_valline 92 source - instance
ZHat.commRingline 94 source - lemma
ZHat.zeroNeOneline 97 source - instance
ZHat.nontrivialline 103 source - instance
ZHat.charZeroline 106 source - def
ZHat.eA nonarchimedean analogue `0! line 118 sourceSource documentation
A nonarchimedean analogue
0! + 1! + 2! + ⋯ofe = 1/0! + 1/1! + 1/2! + ⋯. It is defined as the function whose value atZMod nis the sum ofi!for0 ≤ i < n.def e : ZHat := ⟨fun (n : ℕ+) ↦ ∑ i ∈ range (n : ℕ), i !, by …
Mentions: ZHat
- lemma
ZHat.e_defline 130 source - lemma
ZHat._root_.Nat.sum_factorial_lt_factorial_succline 132 source - lemma
ZHat._root_.Nat.sum_factorial_lt_two_mul_factorialline 144 source - lemma
ZHat.e_factorial_succline 156 source - lemma
ZHat.e_not_in_IntNonarchimedean $e$ is not an integer line 167 sourceSource documentation
Nonarchimedean $e$ is not an integer.
lemma e_not_in_Int : ∀ a : ℤ, e ≠ a := by …
Mentions: ZHat.e
- lemma
ZHat.torsionfree_auxline 220 source - lemma
ZHat.nat_mul_applyline 228 source - lemma
ZHat.pnat_mul_applyline 231 source - theorem
ZHat.eq_zero_of_mul_eq_zeroline 234 source - lemma
ZHat.torsionfreeZHat is torsion-free line 248 sourceSource comment
ZHat is torsion-free. LaTeX proof in the notes.lemma torsionfree (N : ℕ+) : Function.Injective (fun z : ZHat ↦ N * z) := by …
Mentions: ZHat
- instance
ZHat.ZHat_flatline 254 source - lemma
ZHat.y_mul_N_eq_zline 272 source - lemma
ZHat.multiplesLaTeX proof in the notes line 283 sourceSource comment
LaTeX proof in the notes.lemma multiples (N : ℕ+) (z : ZHat) : (∃ (y : ZHat), N * y = z) ↔ z N = 0 := by …
Mentions: ZHat
- lemma
ZHat.nat_denseZHathas division by positive naturals, with remainder a smaller natural line 312 sourceSource comment
`ZHat` has division by positive naturals, with remainder a smaller natural. In other words, the naturals are dense in `ZHat`.lemma nat_dense (N : ℕ+) (z : ZHat) : ∃ (q : ZHat) (r : ℕ), z = N * q + r ∧ r < N := by …
Mentions: ZHat
- abbrev
QHatThe "profinite completion" of ℚ is defined to beℚ ⊗ ZHat, withZHatthe profinite completion ofℤline 324 sourceSource documentation
The "profinite completion" of ℚ is defined to be
ℚ ⊗ ZHat, withZHatthe profinite completion ofℤ.abbrev QHat := ℚ ⊗[ℤ] ZHat
Mentions: ZHat
- example
(example at line 326)line 326 source - lemma
QHat.canonicalFormline 330 source - def
QHat.IsCoprimeAn elementzofℤ̂is coprime toNif its image inℤ/Nℤis a unit line 352 sourceSource documentation
An element
zofℤ̂is coprime toNif its image inℤ/Nℤis a unit.def IsCoprime (N : ℕ+) (z : ZHat) : Prop := IsUnit (z N) …
Mentions: ZHat
- lemma
QHat.isUnit_iff_coprimeline 355 source - lemma
QHat.isCoprime_iff_coprimeline 367 source - abbrev
QHat.i₂The canonical inclusionℤ̂ → ℚ̂ := ℚ ⊗_ℤ ℤ̂sendingzto1 ⊗ zline 372 sourceSource documentation
The canonical inclusion
ℤ̂ → ℚ̂ := ℚ ⊗_ℤ ℤ̂sendingzto1 ⊗ z.noncomputable abbrev i₂ : ZHat →ₐ[ℤ] QHat := Algebra.TensorProduct.includeRight
- lemma
QHat.injective_zHatline 373 source - instance
QHat.nontrivial_QHatline 386 source - abbrev
QHat.i₁The canonical inclusionℚ → ℚ̂ = ℚ ⊗_ℤ ℤ̂sendingqtoq ⊗ 1line 390 sourceSource documentation
The canonical inclusion
ℚ → ℚ̂ = ℚ ⊗_ℤ ℤ̂sendingqtoq ⊗ 1.noncomputable abbrev i₁ : ℚ →ₐ[ℤ] QHat := Algebra.TensorProduct.includeLeft
Mentions: QHat
- lemma
QHat.injective_ratline 391 source - theorem
QHat.PNat.lcm_commline 394 source - lemma
QHat.lowestTermsline 398 source - abbrev
QHat.ratsubThe image ofℚinsideℚ̂as an additive subgroup line 543 sourceSource documentation
The image of
ℚinsideℚ̂as an additive subgroup.noncomputable abbrev ratsub : AddSubgroup QHat := …
Mentions: QHat
- abbrev
QHat.zHatsubThe image ofℤ̂insideℚ̂as an additive subgroup line 547 sourceSource documentation
The image of
ℤ̂insideℚ̂as an additive subgroup.noncomputable abbrev zHatsub : AddSubgroup QHat := …
Mentions: QHat
- abbrev
QHat.zsubThe image ofℤinsideℚ̂as an additive subgroup line 551 sourceSource documentation
The image of
ℤinsideℚ̂as an additive subgroup.noncomputable abbrev zsub : AddSubgroup QHat := …
Mentions: QHat
- lemma
QHat.ZMod.isUnit_natAbsline 554 source - lemma
QHat._root_.Algebra.TensorProduct.one_tmul_intCastline 559 source - lemma
QHat.rat_meet_zHatline 565 source - lemma
QHat.rat_join_zHatline 591 source - abbrev
QHat.unitsratsubThe image ofℚˣinsideℚ̂ˣas a subgroup line 617 sourceSource documentation
The image of
ℚˣinsideℚ̂ˣas a subgroup.noncomputable abbrev unitsratsub : Subgroup QHatˣ := …
- abbrev
QHat.unitszHatsubThe image ofℤ̂ˣinsideℚ̂ˣas a subgroup line 621 sourceSource documentation
The image of
ℤ̂ˣinsideℚ̂ˣas a subgroup.noncomputable abbrev unitszHatsub : Subgroup QHatˣ := …
- abbrev
QHat.unitszsubThe image ofℤˣinsideℚ̂ˣas a subgroup line 625 sourceSource documentation
The image of
ℤˣinsideℚ̂ˣas a subgroup.noncomputable abbrev unitszsub : Subgroup QHatˣ := …
- lemma
QHat.unitsrat_meet_unitszHatline 629 source - lemma
QHat._root_.Algebra.TensorProduct.intCast_tmul_oneline 693 source - lemma
QHat._root_.Algebra.TensorProduct.one_tmul_natCastline 700 source - lemma
QHat.unitsrat_join_unitszHatthis needs that ℤ is a PID line 707 sourceSource comment
this needs that ℤ is a PID.depends on sorry (Lean reported 2 error(s) in this file) what this means
Statement uses:
Eq,Subgroup,Units, QHat,Int,Rat, ZHat,Max.max, QHat.unitsratsub, QHat.unitszHatsub,Top.topProof uses:
Eq.mpr,LE.le,id,congrArg,propext,eq_top_iff,Membership.mem,PNat,Exists,TensorProduct.tmul,HDiv.hDiv,OfNat.ofNat, QHat.canonicalForm,Inv.inv,TensorProduct,HMul.hMul,rfl,AlgHom, QHat.i₂,Algebra.TensorProduct.includeRightand 112 more206 instances, coercions and auxiliary constants left out.
Tactic trace: 95 steps
Open to load the checked before-and-after goal states.
lemma unitsrat_join_unitszHat : unitsratsub ⊔ unitszHatsub = ⊤ := by …
Mentions: QHat.unitsratsub, QHat.unitszHatsub