TauLib.BookI.Boundary.Quaternions
TauLib.Boundary.Quaternions
The elliptic quaternions: TauQuaternion = R_tau-algebra {1,i,j,k}.
Registry Cross-References
-
[I.D87] TauQuaternion — Elliptic quaternions over constructive reals
-
[I.T44] Division Algebra — Hamilton product, i^2=j^2=k^2=ijk=-1
-
[I.R22] Hurwitz — Only R, C, H, O are normed division algebras
Ground Truth Sources
- Hamilton product structure: (a1+b1i+c1j+d1k)(a2+b2i+c2j+d2k)
Mathematical Content
TauQuaternion is the 4-dimensional R_tau-algebra with basis {1,i,j,k} satisfying i^2 = j^2 = k^2 = ijk = -1. This is a non-commutative division algebra (the Hamilton quaternions over the constructive reals).
All operations are defined in terms of TauReal arithmetic. Equivalence is componentwise TauReal.equiv. The key results are:
-
i^2 = j^2 = k^2 = -1 (up to equiv)
-
ijk = -1 (up to equiv)
-
Non-commutativity: ij != ji
-
Additive ring axioms (componentwise from TauReal)
-
Multiplicative identity (one_mul, mul_one)
Tau.Boundary.TauQuaternion
source structure Tau.Boundary.TauQuaternion :Type
[I.D87] TauQuaternion: elliptic quaternions over constructive reals. Components: w (scalar/real), x (i), y (j), z (k).
- w : TauReal
- x : TauReal
- y : TauReal
- z : TauReal Instances For
Tau.Boundary.TauQuaternion.equiv
source def Tau.Boundary.TauQuaternion.equiv (a b : TauQuaternion) :Prop
Two TauQuaternions are equivalent if all four components agree. Equations
- a.equiv b = (a.w.equiv b.w ∧ a.x.equiv b.x ∧ a.y.equiv b.y ∧ a.z.equiv b.z) Instances For
Tau.Boundary.TauQuaternion.equiv_refl
source theorem Tau.Boundary.TauQuaternion.equiv_refl (a : TauQuaternion) :a.equiv a
TauQuaternion equivalence is reflexive.
Tau.Boundary.TauQuaternion.equiv_symm
source **theorem Tau.Boundary.TauQuaternion.equiv_symm {a b : TauQuaternion}
(h : a.equiv b) :b.equiv a**
TauQuaternion equivalence is symmetric.
Tau.Boundary.TauQuaternion.zero
source def Tau.Boundary.TauQuaternion.zero :TauQuaternion
Quaternion zero: (0, 0, 0, 0). Equations
- Tau.Boundary.TauQuaternion.zero = { w := Tau.Boundary.TauReal.zero, x := Tau.Boundary.TauReal.zero, y := Tau.Boundary.TauReal.zero, z := Tau.Boundary.TauReal.zero } Instances For
Tau.Boundary.TauQuaternion.one
source def Tau.Boundary.TauQuaternion.one :TauQuaternion
Quaternion one: (1, 0, 0, 0). Equations
- Tau.Boundary.TauQuaternion.one = { w := Tau.Boundary.TauReal.one, x := Tau.Boundary.TauReal.zero, y := Tau.Boundary.TauReal.zero, z := Tau.Boundary.TauReal.zero } Instances For
Tau.Boundary.TauQuaternion.qi
source def Tau.Boundary.TauQuaternion.qi :TauQuaternion
Quaternion i: (0, 1, 0, 0). Equations
- Tau.Boundary.TauQuaternion.qi = { w := Tau.Boundary.TauReal.zero, x := Tau.Boundary.TauReal.one, y := Tau.Boundary.TauReal.zero, z := Tau.Boundary.TauReal.zero } Instances For
Tau.Boundary.TauQuaternion.qj
source def Tau.Boundary.TauQuaternion.qj :TauQuaternion
Quaternion j: (0, 0, 1, 0). Equations
- Tau.Boundary.TauQuaternion.qj = { w := Tau.Boundary.TauReal.zero, x := Tau.Boundary.TauReal.zero, y := Tau.Boundary.TauReal.one, z := Tau.Boundary.TauReal.zero } Instances For
Tau.Boundary.TauQuaternion.qk
source def Tau.Boundary.TauQuaternion.qk :TauQuaternion
Quaternion k: (0, 0, 0, 1). Equations
- Tau.Boundary.TauQuaternion.qk = { w := Tau.Boundary.TauReal.zero, x := Tau.Boundary.TauReal.zero, y := Tau.Boundary.TauReal.zero, z := Tau.Boundary.TauReal.one } Instances For
Tau.Boundary.TauQuaternion.add
source def Tau.Boundary.TauQuaternion.add (a b : TauQuaternion) :TauQuaternion
Quaternion addition: componentwise. Equations
- a.add b = { w := a.w.add b.w, x := a.x.add b.x, y := a.y.add b.y, z := a.z.add b.z } Instances For
Tau.Boundary.TauQuaternion.negate
source def Tau.Boundary.TauQuaternion.negate (a : TauQuaternion) :TauQuaternion
Quaternion negation: componentwise. Equations
- a.negate = { w := a.w.negate, x := a.x.negate, y := a.y.negate, z := a.z.negate } Instances For
Tau.Boundary.TauQuaternion.mul
source def Tau.Boundary.TauQuaternion.mul (a b : TauQuaternion) :TauQuaternion
Hamilton product: (a1 + b1i + c1j + d1k)(a2 + b2i + c2j + d2k) = (a1a2 - b1b2 - c1c2 - d1d2)
-
(a1b2 + b1a2 + c1d2 - d1c2)i
-
(a1c2 - b1d2 + c1a2 + d1b2)j
-
(a1d2 + b1c2 - c1b2 + d1a2)k
Equations
- One or more equations did not get rendered due to their size. Instances For
Tau.Boundary.TauQuaternion.conj
source def Tau.Boundary.TauQuaternion.conj (a : TauQuaternion) :TauQuaternion
Quaternion conjugation: conj(a + bi + cj + dk) = a - bi - cj - dk. Equations
- a.conj = { w := a.w, x := a.x.negate, y := a.y.negate, z := a.z.negate } Instances For
Tau.Boundary.TauQuaternion.normSq
source def Tau.Boundary.TauQuaternion.normSq (a : TauQuaternion) :TauReal
Quaternion norm squared: |a|^2 = w^2 + x^2 + y^2 + z^2. Equations
- a.normSq = ((a.w.mul a.w).add (a.x.mul a.x)).add ((a.y.mul a.y).add (a.z.mul a.z)) Instances For
Tau.Boundary.TauQuaternion.neg_one
source def Tau.Boundary.TauQuaternion.neg_one :TauQuaternion
The negation of one: (-1, 0, 0, 0). Equations
- Tau.Boundary.TauQuaternion.neg_one = Tau.Boundary.TauQuaternion.one.negate Instances For
Tau.Boundary.qi_squared
source theorem Tau.Boundary.qi_squared :(TauQuaternion.qi.mul TauQuaternion.qi).equiv TauQuaternion.neg_one
i^2 = -1: qi * qi is equivalent to negate one.
Tau.Boundary.qj_squared
source theorem Tau.Boundary.qj_squared :(TauQuaternion.qj.mul TauQuaternion.qj).equiv TauQuaternion.neg_one
j^2 = -1: qj * qj is equivalent to negate one.
Tau.Boundary.qk_squared
source theorem Tau.Boundary.qk_squared :(TauQuaternion.qk.mul TauQuaternion.qk).equiv TauQuaternion.neg_one
k^2 = -1: qk * qk is equivalent to negate one.
Tau.Boundary.ijk_relation
source theorem Tau.Boundary.ijk_relation :((TauQuaternion.qi.mul TauQuaternion.qj).mul TauQuaternion.qk).equiv TauQuaternion.neg_one
ijk = -1: qi * qj * qk is equivalent to negate one.
Tau.Boundary.non_commutativity_witness
source theorem Tau.Boundary.non_commutativity_witness :¬(TauQuaternion.qi.mul TauQuaternion.qj).equiv (TauQuaternion.qj.mul TauQuaternion.qi)
Non-commutativity witness: qi * qj and qj * qi differ in the z-component. qi * qj has z = 1 while qj * qi has z = -1.
Tau.Boundary.tauquat_add_comm
source theorem Tau.Boundary.tauquat_add_comm (a b : TauQuaternion) :(a.add b).equiv (b.add a)
Quaternion addition is commutative (up to equiv).
Tau.Boundary.tauquat_add_assoc
source theorem Tau.Boundary.tauquat_add_assoc (a b c : TauQuaternion) :((a.add b).add c).equiv (a.add (b.add c))
Quaternion addition is associative (up to equiv).
Tau.Boundary.tauquat_add_zero
source theorem Tau.Boundary.tauquat_add_zero (a : TauQuaternion) :(a.add TauQuaternion.zero).equiv a
Quaternion zero is a right identity for addition (up to equiv).
Tau.Boundary.tauquat_add_negate
source theorem Tau.Boundary.tauquat_add_negate (a : TauQuaternion) :(a.add a.negate).equiv TauQuaternion.zero
Quaternion negation is a right inverse for addition (up to equiv).
Tau.Boundary.tauquat_mul_one
source theorem Tau.Boundary.tauquat_mul_one (a : TauQuaternion) :(a.mul TauQuaternion.one).equiv a
One is a right identity for quaternion multiplication (up to equiv).
Tau.Boundary.tauquat_one_mul
source theorem Tau.Boundary.tauquat_one_mul (a : TauQuaternion) :(TauQuaternion.one.mul a).equiv a
One is a left identity for quaternion multiplication (up to equiv).