FLT/Data/HurwitzRatHat.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
14 declarations, 4 contain sorry, 0 declared as axioms
Adelic Hurwitz quaternions
Base changes of the Hurwitz integers to ℚ and to ZHat, providing a
quaternion algebra over the rationals and its profinite completion as
free rank-4 modules over the corresponding base ring.
Main definitions
HurwitzRat: the rational quaternionsℚ + ℚi + ℚj + ℚk.HurwitzHat: the profinite Hurwitz quaternions, a free rank-4 module overZHat.
Imports (4)
Imported by 1 file
- def
HurwitzHatThe base change of the Hurwitz quaternions to ZHat line 32 sourceSource documentation
The base change of the Hurwitz quaternions to ZHat.
standard axioms: Classical.choice, Quot.sound, propext what this means
Proof uses:
TensorProduct,Int, Hurwitz, ZHat10 instances, coercions and auxiliary constants left out.
noncomputable def HurwitzHat : Type := 𝓞 ⊗[ℤ] ZHat …
Mentions: ZHat
- instance
HurwitzHat.(instance at line 39)line 39 source - def
HurwitzRatThe quaternion algebra ℚ + ℚi + ℚj + ℚk line 44 sourceSource documentation
The quaternion algebra ℚ + ℚi + ℚj + ℚk.
standard axioms: Classical.choice, Quot.sound, propext what this means
Proof uses:
TensorProduct,Int,Rat, Hurwitz8 instances, coercions and auxiliary constants left out.
noncomputable def HurwitzRat : Type := ℚ ⊗[ℤ] 𝓞 …
- instance
HurwitzRat.(instance at line 51)line 51 source - def
HurwitzRatHatThe "profinite Hurwitz quaternions" over the finite adeles of ℚ; a free rank 4 module generated by 1, i, j, and (1+i+j+k)/2 line 59 sourceSource documentation
The "profinite Hurwitz quaternions" over the finite adeles of ℚ; a free rank 4 module generated by 1, i, j, and (1+i+j+k)/2.
standard axioms: Classical.choice, Quot.sound, propext what this means
Proof uses:
TensorProduct,Int, HurwitzRat, ZHat12 instances, coercions and auxiliary constants left out.
noncomputable def HurwitzRatHat : Type := D ⊗[ℤ] ZHat …
Mentions: ZHat
- instance
HurwitzRatHat.(instance at line 67)line 67 source - abbrev
HurwitzRatHat.j₁The inclusion from D=ℚ+ℚi+ℚj+ℚk to D ⊗ 𝔸, with 𝔸 the finite adeles of ℚ line 70 sourceSource documentation
The inclusion from D=ℚ+ℚi+ℚj+ℚk to D ⊗ 𝔸, with 𝔸 the finite adeles of ℚ.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
AlgHom,Int, HurwitzRat, HurwitzRatHatProof uses:
Algebra.TensorProduct.includeLeft, ZHat14 instances, coercions and auxiliary constants left out.
noncomputable abbrev j₁ : D →ₐ[ℤ] D^ := Algebra.TensorProduct.includeLeft
- lemma
HurwitzRatHat.injective_hRatsorry line 73 sourcedepends on sorry what this means
Statement uses:
Function.Injective, HurwitzRat, HurwitzRatHat,AlgHom,Int, HurwitzRatHat.j₁Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat15 instances, coercions and auxiliary constants left out.
- instance
HurwitzRatHat.(instance at line 77)line 77 sourceSource comment
this stopped working in 4.29noncomputable instance : Ring (ℚ ⊗[ℤ] 𝓞^) := Algebra.TensorProduct.instRing
- instance
HurwitzRatHat.(instance at line 80)line 80 sourceSource comment
this stopped working in 4.29noncomputable instance : Ring (D ⊗[ℤ] ZHat) := Algebra.TensorProduct.instRing
Mentions: ZHat
- abbrev
HurwitzRatHat.j₂The inclusion from the profinite Hurwitz quaternions to to 𝔸+𝔸i+𝔸j+𝔸k, with 𝔸 the finite adeles of ℚ line 85 sourceSource documentation
The inclusion from the profinite Hurwitz quaternions to to 𝔸+𝔸i+𝔸j+𝔸k, with 𝔸 the finite adeles of ℚ.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
AlgHom,Int, HurwitzHat, HurwitzRatHatProof uses:
AlgHom.comp,TensorProduct,Rat, Hurwitz, ZHat,AlgEquiv.symm,Algebra.TensorProduct.assoc,Algebra.TensorProduct.includeRight30 instances, coercions and auxiliary constants left out.
noncomputable abbrev j₂ : 𝓞^ →ₐ[ℤ] D^ := …
- lemma
HurwitzRatHat.injective_zHatsorry line 89 sourcedepends on sorry what this means
Statement uses:
Function.Injective, HurwitzHat, HurwitzRatHat,AlgHom,Int, HurwitzRatHat.j₂Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat15 instances, coercions and auxiliary constants left out.
- lemma
HurwitzRatHat.canonicalFormshould I rearrange tensors? sorry line 93 sourceSource comment
should I rearrange tensors? Not sure if D^ should be (ℚ ⊗ 𝓞) ⊗ ℤhat or ℚ ⊗ (𝓞 ⊗ Zhat)depends on sorry what this means
Statement uses: HurwitzRatHat,
Exists,PNat, HurwitzHat,Eq,HMul.hMul,AlgHom,Int, HurwitzRat, HurwitzRatHat.j₁,TensorProduct.tmul,Rat, Hurwitz,Inv.inv,OfNat.ofNat, HurwitzRatHat.j₂Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,Nat47 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
lemma canonicalForm (z : D^) : ∃ (N : ℕ+) (z' : 𝓞^), z = j₁ ((N⁻¹ : ℚ) ⊗ₜ 1 : D) * j₂ z' := by …
Mentions: HurwitzRatHat.j₁, HurwitzRatHat.j₂
- lemma
HurwitzRatHat.completed_unitssorry line 96 sourcedepends on sorry what this means
Statement uses:
Units, HurwitzRatHat,Exists, HurwitzRat, HurwitzHat,Eq,HMul.hMul,AlgHom,Int, HurwitzRatHat.j₁, HurwitzRatHat.j₂Proof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous,OfNat.ofNat,Nat27 instances, coercions and auxiliary constants left out.