File: Mathlib/Algebra/DualQuaternion.lean

full_name: Quaternion.dualNumberEquiv
code: /-- The dual quaternions can be equivalently represented as a quaternion with dual coefficients,
or as a dual number with quaternion coefficients.

See also `Matrix.dualNumberEquiv` for a similar result. -/
def dualNumberEquiv : Quaternion (DualNumber R) ≃ₐ[R] DualNumber (Quaternion R) 
goal: Quaternion (DualNumber R) ≃ₐ[R] DualNumber (Quaternion R)

full_name: Quaternion.re_fst_dualNumberEquiv
code: @[simp]
theorem re_fst_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).fst.re = q.re.fst 
goal: (TrivSqZeroExt.fst (Quaternion.dualNumberEquiv q)).re = TrivSqZeroExt.fst q.re

full_name: Quaternion.imI_fst_dualNumberEquiv
code: @[simp]
theorem imI_fst_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).fst.imI = q.imI.fst 
goal: (TrivSqZeroExt.fst (Quaternion.dualNumberEquiv q)).imI = TrivSqZeroExt.fst q.imI

full_name: Quaternion.imJ_fst_dualNumberEquiv
code: @[simp]
theorem imJ_fst_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).fst.imJ = q.imJ.fst 
goal: (TrivSqZeroExt.fst (Quaternion.dualNumberEquiv q)).imJ = TrivSqZeroExt.fst q.imJ

full_name: Quaternion.imK_fst_dualNumberEquiv
code: @[simp]
theorem imK_fst_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).fst.imK = q.imK.fst 
goal: (TrivSqZeroExt.fst (Quaternion.dualNumberEquiv q)).imK = TrivSqZeroExt.fst q.imK

full_name: Quaternion.re_snd_dualNumberEquiv
code: @[simp]
theorem re_snd_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).snd.re = q.re.snd 
goal: (TrivSqZeroExt.snd (Quaternion.dualNumberEquiv q)).re = TrivSqZeroExt.snd q.re

full_name: Quaternion.imI_snd_dualNumberEquiv
code: @[simp]
theorem imI_snd_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).snd.imI = q.imI.snd 
goal: (TrivSqZeroExt.snd (Quaternion.dualNumberEquiv q)).imI = TrivSqZeroExt.snd q.imI

full_name: Quaternion.imJ_snd_dualNumberEquiv
code: @[simp]
theorem imJ_snd_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).snd.imJ = q.imJ.snd 
goal: (TrivSqZeroExt.snd (Quaternion.dualNumberEquiv q)).imJ = TrivSqZeroExt.snd q.imJ

full_name: Quaternion.imK_snd_dualNumberEquiv
code: @[simp]
theorem imK_snd_dualNumberEquiv (q : Quaternion (DualNumber R)) :
    (dualNumberEquiv q).snd.imK = q.imK.snd 
goal: (TrivSqZeroExt.snd (Quaternion.dualNumberEquiv q)).imK = TrivSqZeroExt.snd q.imK

full_name: Quaternion.fst_re_dualNumberEquiv_symm
code: @[simp]
theorem fst_re_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).re.fst = d.fst.re 
goal: TrivSqZeroExt.fst (Quaternion.dualNumberEquiv.symm d).re = (TrivSqZeroExt.fst d).re

full_name: Quaternion.fst_imI_dualNumberEquiv_symm
code: @[simp]
theorem fst_imI_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).imI.fst = d.fst.imI 
goal: TrivSqZeroExt.fst (Quaternion.dualNumberEquiv.symm d).imI = (TrivSqZeroExt.fst d).imI

full_name: Quaternion.fst_imJ_dualNumberEquiv_symm
code: @[simp]
theorem fst_imJ_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).imJ.fst = d.fst.imJ 
goal: TrivSqZeroExt.fst (Quaternion.dualNumberEquiv.symm d).imJ = (TrivSqZeroExt.fst d).imJ

full_name: Quaternion.fst_imK_dualNumberEquiv_symm
code: @[simp]
theorem fst_imK_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).imK.fst = d.fst.imK 
goal: TrivSqZeroExt.fst (Quaternion.dualNumberEquiv.symm d).imK = (TrivSqZeroExt.fst d).imK

full_name: Quaternion.snd_re_dualNumberEquiv_symm
code: @[simp]
theorem snd_re_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).re.snd = d.snd.re 
goal: TrivSqZeroExt.snd (Quaternion.dualNumberEquiv.symm d).re = (TrivSqZeroExt.snd d).re

full_name: Quaternion.snd_imI_dualNumberEquiv_symm
code: @[simp]
theorem snd_imI_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).imI.snd = d.snd.imI 
goal: TrivSqZeroExt.snd (Quaternion.dualNumberEquiv.symm d).imI = (TrivSqZeroExt.snd d).imI

full_name: Quaternion.snd_imJ_dualNumberEquiv_symm
code: @[simp]
theorem snd_imJ_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).imJ.snd = d.snd.imJ 
goal: TrivSqZeroExt.snd (Quaternion.dualNumberEquiv.symm d).imJ = (TrivSqZeroExt.snd d).imJ

full_name: Quaternion.snd_imK_dualNumberEquiv_symm
code: @[simp]
theorem snd_imK_dualNumberEquiv_symm (d : DualNumber (Quaternion R)) :
    (dualNumberEquiv.symm d).imK.snd = d.snd.imK 
goal: TrivSqZeroExt.snd (Quaternion.dualNumberEquiv.symm d).imK = (TrivSqZeroExt.snd d).imK