Beginning of Section SurQuaternions
Theorem. (quaternion_tag_fresh)
∀z, CSNo z∀uz, {3}u
Proof:
Let z be given.
Assume Hz.
Apply Sing_nat_fresh_extension 3 nat_3 In_1_3 z to the current goal.
We will prove ExtendedSNoElt_ 3 z.
An exact proof term for the current goal is CSNo_ExtendedSNoElt_3 z Hz.
Definition. We define CSNo_pair to be pair_tag {3} of type setsetset.
Proof:
An exact proof term for the current goal is pair_tag_0 {3} CSNo quaternion_tag_fresh.
Theorem. (CSNo_pair_prop_1)
∀x1 y1 x2 y2, CSNo x1CSNo x2CSNo_pair x1 y1 = CSNo_pair x2 y2x1 = x2
Proof:
An exact proof term for the current goal is pair_tag_prop_1 {3} CSNo quaternion_tag_fresh.
Theorem. (CSNo_pair_prop_2)
∀x1 y1 x2 y2, CSNo x1CSNo y1CSNo x2CSNo y2CSNo_pair x1 y1 = CSNo_pair x2 y2y1 = y2
Proof:
An exact proof term for the current goal is pair_tag_prop_2 {3} CSNo quaternion_tag_fresh.
Definition. We define HSNo to be CD_carr {3} CSNo of type setprop.
Theorem. (HSNo_I)
∀x y, CSNo xCSNo yHSNo (CSNo_pair x y)
Proof:
An exact proof term for the current goal is CD_carr_I {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_E)
∀z, HSNo z∀p : setprop, (∀x y, CSNo xCSNo yz = CSNo_pair x yp (CSNo_pair x y))p z
Proof:
An exact proof term for the current goal is CD_carr_E {3} CSNo quaternion_tag_fresh.
Theorem. (CSNo_HSNo)
∀x, CSNo xHSNo x
Proof:
An exact proof term for the current goal is CD_carr_0ext {3} CSNo quaternion_tag_fresh CSNo_0.
Proof:
Apply CSNo_HSNo to the current goal.
An exact proof term for the current goal is CSNo_0.
Proof:
Apply CSNo_HSNo to the current goal.
An exact proof term for the current goal is CSNo_1.
Let ctag : setsetλalpha ⇒ SetAdjoin alpha {3}
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term ctag.
Theorem. (HSNo_ExtendedSNoElt_4)
∀z, HSNo zExtendedSNoElt_ 4 z
Proof:
Let z be given.
Assume Hz.
Apply HSNo_E z Hz to the current goal.
Let x and y be given.
Assume Hx: CSNo x.
Assume Hy: CSNo y.
Assume Hzxy: z = CSNo_pair x y.
Let v be given.
Assume Hv: v (CSNo_pair x y).
Apply UnionE_impred (CSNo_pair x y) v Hv to the current goal.
Let u be given.
Assume H1: v u.
Assume H2: u CSNo_pair x y.
Apply binunionE x {w ''|w ∈ y} u H2 to the current goal.
Assume H3: u x.
We prove the intermediate claim L1: v x.
An exact proof term for the current goal is UnionI x v u H1 H3.
We will prove ordinal v∃i ∈ 4, v = {i}.
An exact proof term for the current goal is extension_SNoElt_mon 3 4 (ordsuccI1 3) x (CSNo_ExtendedSNoElt_3 x Hx) v L1.
Assume H3: u {w ''|w ∈ y}.
Apply ReplE_impred y ctag u H3 to the current goal.
Let w be given.
Assume Hw: w y.
Assume H4: u = w ''.
We prove the intermediate claim L2: v w ''.
rewrite the current goal using H4 (from right to left).
An exact proof term for the current goal is H1.
Apply binunionE w {{3}} v L2 to the current goal.
Assume H5: v w.
We prove the intermediate claim L3: v y.
An exact proof term for the current goal is UnionI y v w H5 Hw.
An exact proof term for the current goal is extension_SNoElt_mon 3 4 (ordsuccI1 3) y (CSNo_ExtendedSNoElt_3 y Hy) v L3.
Assume H5: v {{3}}.
We will prove ordinal v∃i ∈ 4, v = {i}.
Apply orIR to the current goal.
We use 3 to witness the existential quantifier.
Apply andI to the current goal.
We will prove 3 4.
An exact proof term for the current goal is In_3_4.
We will prove v = {3}.
An exact proof term for the current goal is SingE {3} v H5.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_CSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_CSNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_CSNo.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term div_CSNo.
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term conj_CSNo.
Let i ≝ Complex_i
Definition. We define Quaternion_j to be CSNo_pair 0 1 of type set.
Definition. We define Quaternion_k to be CSNo_pair 0 i of type set.
Let j ≝ Quaternion_j
Let k ≝ Quaternion_k
Definition. We define HSNo_proj0 to be CD_proj0 {3} CSNo of type setset.
Definition. We define HSNo_proj1 to be CD_proj1 {3} CSNo of type setset.
Let p0 : setsetHSNo_proj0
Let p1 : setsetHSNo_proj1
Let pa : setsetsetCSNo_pair
Theorem. (HSNo_proj0_1)
∀z, HSNo zCSNo (p0 z)∃y, CSNo yz = pa (p0 z) y
Proof:
An exact proof term for the current goal is CD_proj0_1 {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_proj0_2)
∀x y, CSNo xCSNo yp0 (pa x y) = x
Proof:
An exact proof term for the current goal is CD_proj0_2 {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_proj1_1)
∀z, HSNo zCSNo (p1 z)z = pa (p0 z) (p1 z)
Proof:
An exact proof term for the current goal is CD_proj1_1 {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_proj1_2)
∀x y, CSNo xCSNo yp1 (pa x y) = y
Proof:
An exact proof term for the current goal is CD_proj1_2 {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_proj0R)
∀z, HSNo zCSNo (p0 z)
Proof:
An exact proof term for the current goal is CD_proj0R {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_proj1R)
∀z, HSNo zCSNo (p1 z)
Proof:
An exact proof term for the current goal is CD_proj1R {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_proj0p1)
∀z, HSNo zz = pa (p0 z) (p1 z)
Proof:
An exact proof term for the current goal is CD_proj0proj1_eta {3} CSNo quaternion_tag_fresh.
Theorem. (HSNo_proj0proj1_split)
∀z w, HSNo zHSNo wp0 z = p0 wp1 z = p1 wz = w
Proof:
An exact proof term for the current goal is CD_proj0proj1_split {3} CSNo quaternion_tag_fresh.
Definition. We define HSNoLev to be λz ⇒ CSNoLev (p0 z)CSNoLev (p1 z) of type setset.
Theorem. (HSNoLev_ordinal)
∀z, HSNo zordinal (HSNoLev z)
Proof:
Let z be given.
Assume Hz.
Apply HSNo_E z Hz to the current goal.
Let x and y be given.
Assume Hx Hy.
Assume Hzxy: z = pa x y.
We will prove ordinal (CSNoLev (p0 (pa x y))CSNoLev (p1 (pa x y))).
rewrite the current goal using HSNo_proj0_2 x y Hx Hy (from left to right).
rewrite the current goal using HSNo_proj1_2 x y Hx Hy (from left to right).
We will prove ordinal (CSNoLev xCSNoLev y).
An exact proof term for the current goal is ordinal_binunion (CSNoLev x) (CSNoLev y) (CSNoLev_ordinal x Hx) (CSNoLev_ordinal y Hy).
Definition. We define minus_HSNo to be CD_minus {3} CSNo minus_CSNo of type setset.
Definition. We define conj_HSNo to be CD_conj {3} CSNo minus_CSNo conj_CSNo of type setset.
Definition. We define add_HSNo to be CD_add {3} CSNo add_CSNo of type setsetset.
Definition. We define mul_HSNo to be CD_mul {3} CSNo minus_CSNo conj_CSNo add_CSNo mul_CSNo of type setsetset.
Definition. We define exp_HSNo_nat to be CD_exp_nat {3} CSNo minus_CSNo conj_CSNo add_CSNo mul_CSNo of type setsetset.
Let plus' ≝ add_HSNo
Let mult' ≝ mul_HSNo
Notation. We use :-: as a prefix operator with priority 358 corresponding to applying term minus_HSNo.
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term conj_HSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_HSNo.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_HSNo.
Notation. We use :^: as an infix operator with priority 355 and which associates to the right corresponding to applying term exp_HSNo_nat.
Proof:
Apply CSNo_HSNo to the current goal.
An exact proof term for the current goal is CSNo_Complex_i.
Proof:
We will prove HSNo (pa 0 1).
Apply HSNo_I to the current goal.
An exact proof term for the current goal is CSNo_0.
An exact proof term for the current goal is CSNo_1.
Proof:
We will prove HSNo (pa 0 i).
Apply HSNo_I to the current goal.
An exact proof term for the current goal is CSNo_0.
An exact proof term for the current goal is CSNo_Complex_i.
Proof:
An exact proof term for the current goal is CD_minus_CD {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_minus_CSNo.
Theorem. (minus_HSNo_proj0)
∀z, HSNo zp0 (:-: z) = - p0 z
Proof:
An exact proof term for the current goal is CD_minus_proj0 {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_minus_CSNo.
Theorem. (minus_HSNo_proj1)
∀z, HSNo zp1 (:-: z) = - p1 z
Proof:
An exact proof term for the current goal is CD_minus_proj1 {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_minus_CSNo.
Proof:
An exact proof term for the current goal is CD_conj_CD {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_minus_CSNo conj_CSNo CSNo_conj_CSNo.
Theorem. (conj_HSNo_proj0)
∀z, HSNo zp0 (z '') = (p0 z) '
Proof:
An exact proof term for the current goal is CD_conj_proj0 {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_minus_CSNo conj_CSNo CSNo_conj_CSNo.
Theorem. (conj_HSNo_proj1)
∀z, HSNo zp1 (z '') = - p1 z
Proof:
An exact proof term for the current goal is CD_conj_proj1 {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_minus_CSNo conj_CSNo CSNo_conj_CSNo.
Theorem. (HSNo_add_HSNo)
∀z w, HSNo zHSNo wHSNo (add_HSNo z w)
Proof:
An exact proof term for the current goal is CD_add_CD {3} CSNo quaternion_tag_fresh add_CSNo CSNo_add_CSNo.
Theorem. (add_HSNo_proj0)
∀z w, HSNo zHSNo wp0 (plus' z w) = p0 z + p0 w
Proof:
An exact proof term for the current goal is CD_add_proj0 {3} CSNo quaternion_tag_fresh add_CSNo CSNo_add_CSNo.
Theorem. (add_HSNo_proj1)
∀z w, HSNo zHSNo wp1 (plus' z w) = p1 z + p1 w
Proof:
An exact proof term for the current goal is CD_add_proj1 {3} CSNo quaternion_tag_fresh add_CSNo CSNo_add_CSNo.
Theorem. (HSNo_mul_HSNo)
∀z w, HSNo zHSNo wHSNo (z w)
Proof:
An exact proof term for the current goal is CD_mul_CD {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo.
Theorem. (mul_HSNo_proj0)
∀z w, HSNo zHSNo wp0 (mult' z w) = p0 z * p0 w + - (p1 w ' * p1 z)
Proof:
An exact proof term for the current goal is CD_mul_proj0 {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo.
Theorem. (mul_HSNo_proj1)
∀z w, HSNo zHSNo wp1 (mult' z w) = p1 w * p0 z + p1 z * p0 w '
Proof:
An exact proof term for the current goal is CD_mul_proj1 {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo.
Theorem. (CSNo_HSNo_proj0)
∀x, CSNo xp0 x = x
Proof:
An exact proof term for the current goal is CD_proj0_F {3} CSNo quaternion_tag_fresh CSNo_0.
Theorem. (CSNo_HSNo_proj1)
∀x, CSNo xp1 x = 0
Proof:
An exact proof term for the current goal is CD_proj1_F {3} CSNo quaternion_tag_fresh CSNo_0.
Proof:
An exact proof term for the current goal is CSNo_HSNo_proj0 0 CSNo_0.
Proof:
An exact proof term for the current goal is CSNo_HSNo_proj1 0 CSNo_0.
Proof:
An exact proof term for the current goal is CSNo_HSNo_proj0 1 CSNo_1.
Proof:
An exact proof term for the current goal is CSNo_HSNo_proj1 1 CSNo_1.
Proof:
An exact proof term for the current goal is CSNo_HSNo_proj0 i CSNo_Complex_i.
Proof:
An exact proof term for the current goal is CSNo_HSNo_proj1 i CSNo_Complex_i.
Proof:
An exact proof term for the current goal is HSNo_proj0_2 0 1 CSNo_0 CSNo_1.
Proof:
An exact proof term for the current goal is HSNo_proj1_2 0 1 CSNo_0 CSNo_1.
Proof:
An exact proof term for the current goal is HSNo_proj0_2 0 i CSNo_0 CSNo_Complex_i.
Proof:
An exact proof term for the current goal is HSNo_proj1_2 0 i CSNo_0 CSNo_Complex_i.
Theorem. (minus_HSNo_minus_CSNo)
∀x, CSNo x:-: x = - x
Proof:
An exact proof term for the current goal is CD_minus_F_eq {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_0 minus_CSNo_0.
Proof:
rewrite the current goal using minus_HSNo_minus_CSNo 0 CSNo_0 (from left to right).
An exact proof term for the current goal is minus_CSNo_0.
Theorem. (conj_HSNo_conj_CSNo)
∀x, CSNo xx '' = x '
Proof:
An exact proof term for the current goal is CD_conj_F_eq {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_0 minus_CSNo_0 conj_CSNo.
Theorem. (conj_HSNo_id_SNo)
∀x, SNo xx '' = x
Proof:
Let x be given.
Assume Hx.
rewrite the current goal using conj_HSNo_conj_CSNo x (SNo_CSNo x Hx) (from left to right).
We will prove x ' = x.
An exact proof term for the current goal is conj_CSNo_id_SNo x Hx.
Proof:
rewrite the current goal using conj_HSNo_conj_CSNo 0 CSNo_0 (from left to right).
An exact proof term for the current goal is conj_CSNo_0.
Proof:
rewrite the current goal using conj_HSNo_conj_CSNo 1 CSNo_1 (from left to right).
An exact proof term for the current goal is conj_CSNo_1.
Theorem. (add_HSNo_add_CSNo)
∀x y, CSNo xCSNo yx + y = x + y
Proof:
An exact proof term for the current goal is CD_add_F_eq {3} CSNo quaternion_tag_fresh add_CSNo CSNo_0 (add_CSNo_0L 0 CSNo_0).
Theorem. (mul_HSNo_mul_CSNo)
∀x y, CSNo xCSNo yx y = x * y
Proof:
An exact proof term for the current goal is CD_mul_F_eq {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_0 CSNo_conj_CSNo CSNo_mul_CSNo minus_CSNo_0 add_CSNo_0R mul_CSNo_0L mul_CSNo_0R.
Proof:
An exact proof term for the current goal is CD_minus_invol {3} CSNo quaternion_tag_fresh minus_CSNo CSNo_minus_CSNo minus_CSNo_invol.
Theorem. (conj_HSNo_invol)
∀z, HSNo zz '' '' = z
Proof:
An exact proof term for the current goal is CD_conj_invol {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo CSNo_minus_CSNo CSNo_conj_CSNo minus_CSNo_invol conj_CSNo_invol.
Theorem. (conj_minus_HSNo)
∀z, HSNo z(:-: z) '' = :-: (z '')
Proof:
An exact proof term for the current goal is CD_conj_minus {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo CSNo_minus_CSNo CSNo_conj_CSNo conj_minus_CSNo.
Theorem. (minus_add_HSNo)
∀z w, HSNo zHSNo w:-: (z + w) = :-: z + :-: w
Proof:
An exact proof term for the current goal is CD_minus_add {3} CSNo quaternion_tag_fresh minus_CSNo add_CSNo CSNo_minus_CSNo CSNo_add_CSNo minus_add_CSNo.
Theorem. (conj_add_HSNo)
∀z w, HSNo zHSNo w(z + w) '' = z '' + w ''
Proof:
An exact proof term for the current goal is CD_conj_add {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo minus_add_CSNo conj_add_CSNo.
Theorem. (add_HSNo_com)
∀z w, HSNo zHSNo wz + w = w + z
Proof:
An exact proof term for the current goal is CD_add_com {3} CSNo quaternion_tag_fresh add_CSNo add_CSNo_com.
Theorem. (add_HSNo_assoc)
∀z w v, HSNo zHSNo wHSNo v(z + w) + v = z + (w + v)
Proof:
Apply CD_add_assoc {3} CSNo quaternion_tag_fresh add_CSNo CSNo_add_CSNo add_CSNo_assoc to the current goal.
Theorem. (add_HSNo_0L)
∀z, HSNo zadd_HSNo 0 z = z
Proof:
An exact proof term for the current goal is CD_add_0L {3} CSNo quaternion_tag_fresh add_CSNo CSNo_0 add_CSNo_0L.
Theorem. (add_HSNo_0R)
∀z, HSNo zadd_HSNo z 0 = z
Proof:
An exact proof term for the current goal is CD_add_0R {3} CSNo quaternion_tag_fresh add_CSNo CSNo_0 add_CSNo_0R.
Proof:
An exact proof term for the current goal is CD_add_minus_linv {3} CSNo quaternion_tag_fresh minus_CSNo add_CSNo CSNo_minus_CSNo add_CSNo_minus_CSNo_linv.
Proof:
An exact proof term for the current goal is CD_add_minus_rinv {3} CSNo quaternion_tag_fresh minus_CSNo add_CSNo CSNo_minus_CSNo add_CSNo_minus_CSNo_rinv.
Theorem. (mul_HSNo_0R)
∀z, HSNo zz 0 = 0
Proof:
An exact proof term for the current goal is CD_mul_0R {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_0 minus_CSNo_0 conj_CSNo_0 (add_CSNo_0L 0 CSNo_0) mul_CSNo_0L mul_CSNo_0R.
Theorem. (mul_HSNo_0L)
∀z, HSNo z0 z = 0
Proof:
An exact proof term for the current goal is CD_mul_0L {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_0 CSNo_conj_CSNo minus_CSNo_0 (add_CSNo_0L 0 CSNo_0) mul_CSNo_0L mul_CSNo_0R.
Theorem. (mul_HSNo_1R)
∀z, HSNo zz 1 = z
Proof:
An exact proof term for the current goal is CD_mul_1R {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_0 CSNo_1 minus_CSNo_0 conj_CSNo_0 conj_CSNo_1 add_CSNo_0L add_CSNo_0R mul_CSNo_0L mul_CSNo_1R.
Theorem. (mul_HSNo_1L)
∀z, HSNo z1 z = z
Proof:
An exact proof term for the current goal is CD_mul_1L {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_0 CSNo_1 CSNo_conj_CSNo minus_CSNo_0 add_CSNo_0R mul_CSNo_0L mul_CSNo_0R mul_CSNo_1L mul_CSNo_1R.
Theorem. (conj_mul_HSNo)
∀z w, HSNo zHSNo w(z w) '' = w '' z ''
Proof:
An exact proof term for the current goal is CD_conj_mul {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo minus_CSNo_invol conj_CSNo_invol conj_minus_CSNo conj_add_CSNo minus_add_CSNo add_CSNo_com conj_mul_CSNo minus_mul_CSNo_distrR minus_mul_CSNo_distrL.
Theorem. (mul_HSNo_distrL)
∀z w u, HSNo zHSNo wHSNo uz (w + u) = z w + z u
Proof:
An exact proof term for the current goal is CD_add_mul_distrL {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo minus_add_CSNo conj_add_CSNo add_CSNo_assoc add_CSNo_com mul_CSNo_distrL mul_CSNo_distrR.
Theorem. (mul_HSNo_distrR)
∀z w u, HSNo zHSNo wHSNo u(z + w) u = z u + w u
Proof:
An exact proof term for the current goal is CD_add_mul_distrR {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo minus_add_CSNo add_CSNo_assoc add_CSNo_com mul_CSNo_distrL mul_CSNo_distrR.
Theorem. (minus_mul_HSNo_distrR)
∀z w, HSNo zHSNo wz (:-: w) = :-: z w
Proof:
An exact proof term for the current goal is CD_minus_mul_distrR {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo conj_minus_CSNo minus_add_CSNo minus_mul_CSNo_distrR minus_mul_CSNo_distrL.
Theorem. (minus_mul_HSNo_distrL)
∀z w, HSNo zHSNo w(:-: z) w = :-: z w
Proof:
An exact proof term for the current goal is CD_minus_mul_distrL {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo minus_add_CSNo minus_mul_CSNo_distrR minus_mul_CSNo_distrL.
Proof:
An exact proof term for the current goal is CD_exp_nat_0 {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo.
Theorem. (exp_HSNo_nat_S)
∀z n, nat_p nz(ordsucc n) = z zn
Proof:
An exact proof term for the current goal is CD_exp_nat_S {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo.
Theorem. (exp_HSNo_nat_1)
∀z, HSNo zz1 = z
Proof:
An exact proof term for the current goal is CD_exp_nat_1 {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_0 CSNo_1 minus_CSNo_0 conj_CSNo_0 conj_CSNo_1 add_CSNo_0L add_CSNo_0R mul_CSNo_0L mul_CSNo_1R.
Theorem. (exp_HSNo_nat_2)
∀z, HSNo zz2 = z z
Proof:
An exact proof term for the current goal is CD_exp_nat_2 {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_0 CSNo_1 minus_CSNo_0 conj_CSNo_0 conj_CSNo_1 add_CSNo_0L add_CSNo_0R mul_CSNo_0L mul_CSNo_1R.
Theorem. (HSNo_exp_HSNo_nat)
∀z, HSNo z∀n, nat_p nHSNo (zn)
Proof:
An exact proof term for the current goal is CD_exp_nat_CD {3} CSNo quaternion_tag_fresh minus_CSNo conj_CSNo add_CSNo mul_CSNo CSNo_minus_CSNo CSNo_conj_CSNo CSNo_add_CSNo CSNo_mul_CSNo CSNo_0 CSNo_1.
Theorem. (add_CSNo_com_3b_1_2)
∀x y z, CSNo xCSNo yCSNo z(x + y) + z = (x + z) + y
Proof:
Let x, y and z be given.
Assume Hx Hy Hz.
We will prove (x + y) + z = (x + z) + y.
rewrite the current goal using add_CSNo_assoc x y z Hx Hy Hz (from left to right).
We will prove x + y + z = (x + z) + y.
rewrite the current goal using add_CSNo_assoc x z y Hx Hz Hy (from left to right).
We will prove x + y + z = x + z + y.
Use f_equal.
An exact proof term for the current goal is add_CSNo_com y z Hy Hz.
Theorem. (add_CSNo_com_4_inner_mid)
∀x y z w, CSNo xCSNo yCSNo zCSNo w(x + y) + (z + w) = (x + z) + (y + w)
Proof:
Let x, y, z and w be given.
Assume Hx Hy Hz Hw.
rewrite the current goal using add_CSNo_assoc (x + y) z w (CSNo_add_CSNo x y Hx Hy) Hz Hw (from right to left).
We will prove ((x + y) + z) + w = (x + z) + (y + w).
rewrite the current goal using add_CSNo_com_3b_1_2 x y z Hx Hy Hz (from left to right).
We will prove ((x + z) + y) + w = (x + z) + (y + w).
An exact proof term for the current goal is add_CSNo_assoc (x + z) y w (CSNo_add_CSNo x z Hx Hz) Hy Hw.
Theorem. (add_CSNo_rotate_4_0312)
∀x y z w, CSNo xCSNo yCSNo zCSNo w(x + y) + (z + w) = (x + w) + (y + z)
Proof:
Let x, y, z and w be given.
Assume Hx Hy Hz Hw.
rewrite the current goal using add_CSNo_com z w Hz Hw (from left to right).
We will prove (x + y) + (w + z) = (x + w) + (y + z).
An exact proof term for the current goal is add_CSNo_com_4_inner_mid x y w z Hx Hy Hw Hz.
Proof:
rewrite the current goal using mul_HSNo_mul_CSNo i i CSNo_Complex_i CSNo_Complex_i (from left to right).
rewrite the current goal using minus_HSNo_minus_CSNo 1 CSNo_1 (from left to right).
We will prove i * i = - 1.
An exact proof term for the current goal is Complex_i_sqr.
Proof:
We prove the intermediate claim Ljj: HSNo (j j).
An exact proof term for the current goal is HSNo_mul_HSNo j j HSNo_Quaternion_j HSNo_Quaternion_j.
We prove the intermediate claim Lm1: HSNo (:-: 1).
An exact proof term for the current goal is HSNo_minus_HSNo 1 HSNo_1.
Apply HSNo_proj0proj1_split (j j) (:-: 1) Ljj Lm1 to the current goal.
We will prove p0 (j j) = p0 (:-: 1).
rewrite the current goal using mul_HSNo_proj0 j j HSNo_Quaternion_j HSNo_Quaternion_j (from left to right).
rewrite the current goal using minus_HSNo_proj0 1 HSNo_1 (from left to right).
We will prove p0 j * p0 j + - p1 j ' * p1 j = - p0 1.
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
rewrite the current goal using CSNo_HSNo_proj0 1 CSNo_1 (from left to right).
We will prove 0 * 0 + - 1 ' * 1 = - 1.
rewrite the current goal using conj_CSNo_1 (from left to right).
rewrite the current goal using mul_CSNo_0L 0 CSNo_0 (from left to right).
rewrite the current goal using mul_CSNo_1L 1 CSNo_1 (from left to right).
We will prove 0 + - 1 = - 1.
An exact proof term for the current goal is add_CSNo_0L (- 1) (CSNo_minus_CSNo 1 CSNo_1).
We will prove p1 (j j) = p1 (:-: 1).
rewrite the current goal using mul_HSNo_proj1 j j HSNo_Quaternion_j HSNo_Quaternion_j (from left to right).
rewrite the current goal using minus_HSNo_proj1 1 HSNo_1 (from left to right).
We will prove p1 j * p0 j + p1 j * p0 j ' = - p1 1.
rewrite the current goal using HSNo_p1_1 (from left to right).
rewrite the current goal using minus_CSNo_0 (from left to right).
We will prove p1 j * p0 j + p1 j * p0 j ' = 0.
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
We will prove 1 * 0 + 1 * 0 ' = 0.
rewrite the current goal using conj_CSNo_0 (from left to right).
We will prove 1 * 0 + 1 * 0 = 0.
rewrite the current goal using mul_CSNo_0R 1 CSNo_1 (from left to right).
An exact proof term for the current goal is add_CSNo_0L 0 CSNo_0.
Proof:
We prove the intermediate claim Lkk: HSNo (k k).
An exact proof term for the current goal is HSNo_mul_HSNo k k HSNo_Quaternion_k HSNo_Quaternion_k.
We prove the intermediate claim Lm1: HSNo (:-: 1).
An exact proof term for the current goal is HSNo_minus_HSNo 1 HSNo_1.
Apply HSNo_proj0proj1_split (k k) (:-: 1) Lkk Lm1 to the current goal.
We will prove p0 (k k) = p0 (:-: 1).
rewrite the current goal using mul_HSNo_proj0 k k HSNo_Quaternion_k HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_HSNo_proj0 1 HSNo_1 (from left to right).
We will prove p0 k * p0 k + - p1 k ' * p1 k = - p0 1.
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
rewrite the current goal using CSNo_HSNo_proj0 1 CSNo_1 (from left to right).
We will prove 0 * 0 + - i ' * i = - 1.
rewrite the current goal using mul_CSNo_0L 0 CSNo_0 (from left to right).
rewrite the current goal using conj_CSNo_i (from left to right).
We will prove 0 + - (- i) * i = - 1.
rewrite the current goal using minus_mul_CSNo_distrL (- i) i (CSNo_minus_CSNo i CSNo_Complex_i) CSNo_Complex_i (from right to left).
We will prove 0 + (- - i) * i = - 1.
rewrite the current goal using minus_CSNo_invol i CSNo_Complex_i (from left to right).
We will prove 0 + i * i = - 1.
rewrite the current goal using Complex_i_sqr (from left to right).
We will prove 0 + - 1 = - 1.
An exact proof term for the current goal is add_CSNo_0L (- 1) (CSNo_minus_CSNo 1 CSNo_1).
We will prove p1 (k k) = p1 (:-: 1).
rewrite the current goal using mul_HSNo_proj1 k k HSNo_Quaternion_k HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_HSNo_proj1 1 HSNo_1 (from left to right).
We will prove p1 k * p0 k + p1 k * p0 k ' = - p1 1.
rewrite the current goal using HSNo_p1_1 (from left to right).
rewrite the current goal using minus_CSNo_0 (from left to right).
We will prove p1 k * p0 k + p1 k * p0 k ' = 0.
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
We will prove i * 0 + i * 0 ' = 0.
rewrite the current goal using conj_CSNo_0 (from left to right).
We will prove i * 0 + i * 0 = 0.
rewrite the current goal using mul_CSNo_0R i CSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_CSNo_0L 0 CSNo_0.
Proof:
We prove the intermediate claim Lij: HSNo (i j).
An exact proof term for the current goal is HSNo_mul_HSNo i j HSNo_Complex_i HSNo_Quaternion_j.
Apply HSNo_proj0proj1_split (i j) k Lij HSNo_Quaternion_k to the current goal.
We will prove p0 (i j) = p0 k.
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using mul_HSNo_proj0 i j HSNo_Complex_i HSNo_Quaternion_j (from left to right).
We will prove p0 i * p0 j + - (p1 j ' * p1 i) = 0.
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
We will prove i * 0 + - (1 ' * 0) = 0.
rewrite the current goal using mul_CSNo_0R i CSNo_Complex_i (from left to right).
rewrite the current goal using mul_CSNo_0R (1 ') (CSNo_conj_CSNo 1 CSNo_1) (from left to right).
We will prove 0 + - 0 = 0.
rewrite the current goal using minus_CSNo_0 (from left to right).
An exact proof term for the current goal is add_CSNo_0L 0 CSNo_0.
We will prove p1 (i j) = p1 k.
rewrite the current goal using HSNo_p1_k (from left to right).
rewrite the current goal using mul_HSNo_proj1 i j HSNo_Complex_i HSNo_Quaternion_j (from left to right).
We will prove p1 j * p0 i + p1 i * p0 j ' = i.
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
We will prove 1 * i + 0 * 0 ' = i.
rewrite the current goal using mul_CSNo_1L i CSNo_Complex_i (from left to right).
rewrite the current goal using mul_CSNo_0L (0 ') (CSNo_conj_CSNo 0 CSNo_0) (from left to right).
We will prove i + 0 = i.
An exact proof term for the current goal is add_CSNo_0R i CSNo_Complex_i.
Proof:
We prove the intermediate claim Ljk: HSNo (j k).
An exact proof term for the current goal is HSNo_mul_HSNo j k HSNo_Quaternion_j HSNo_Quaternion_k.
Apply HSNo_proj0proj1_split (j k) i Ljk HSNo_Complex_i to the current goal.
We will prove p0 (j k) = p0 i.
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using mul_HSNo_proj0 j k HSNo_Quaternion_j HSNo_Quaternion_k (from left to right).
We will prove p0 j * p0 k + - (p1 k ' * p1 j) = i.
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
We will prove 0 * 0 + - (i ' * 1) = i.
rewrite the current goal using mul_CSNo_0R 0 CSNo_0 (from left to right).
rewrite the current goal using mul_CSNo_1R (i ') (CSNo_conj_CSNo i CSNo_Complex_i) (from left to right).
We will prove 0 + - (i ') = i.
rewrite the current goal using conj_CSNo_i (from left to right).
We will prove 0 + - - i = i.
rewrite the current goal using minus_CSNo_invol i CSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_CSNo_0L i CSNo_Complex_i.
We will prove p1 (j k) = p1 i.
rewrite the current goal using HSNo_p1_i (from left to right).
rewrite the current goal using mul_HSNo_proj1 j k HSNo_Quaternion_j HSNo_Quaternion_k (from left to right).
We will prove p1 k * p0 j + p1 j * p0 k ' = 0.
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
We will prove i * 0 + 1 * 0 ' = 0.
rewrite the current goal using conj_CSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_CSNo_0R i CSNo_Complex_i (from left to right).
rewrite the current goal using mul_CSNo_0R 1 CSNo_1 (from left to right).
An exact proof term for the current goal is add_CSNo_0R 0 CSNo_0.
Proof:
We prove the intermediate claim Lki: HSNo (k i).
An exact proof term for the current goal is HSNo_mul_HSNo k i HSNo_Quaternion_k HSNo_Complex_i.
Apply HSNo_proj0proj1_split (k i) j Lki HSNo_Quaternion_j to the current goal.
We will prove p0 (k i) = p0 j.
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using mul_HSNo_proj0 k i HSNo_Quaternion_k HSNo_Complex_i (from left to right).
We will prove p0 k * p0 i + - (p1 i ' * p1 k) = 0.
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
We will prove 0 * i + - (0 ' * i) = 0.
rewrite the current goal using conj_CSNo_id_SNo 0 SNo_0 (from left to right).
We will prove 0 * i + - (0 * i) = 0.
rewrite the current goal using mul_CSNo_0L i CSNo_Complex_i (from left to right).
We will prove 0 + - 0 = 0.
rewrite the current goal using minus_CSNo_0 (from left to right).
An exact proof term for the current goal is add_CSNo_0R 0 CSNo_0.
We will prove p1 (k i) = p1 j.
rewrite the current goal using HSNo_p1_j (from left to right).
rewrite the current goal using mul_HSNo_proj1 k i HSNo_Quaternion_k HSNo_Complex_i (from left to right).
We will prove p1 i * p0 k + p1 k * p0 i ' = 1.
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
We will prove 0 * 0 + i * (i ') = 1.
rewrite the current goal using mul_CSNo_0L 0 CSNo_0 (from left to right).
rewrite the current goal using conj_CSNo_i (from left to right).
We will prove 0 + i * (- i) = 1.
rewrite the current goal using minus_mul_CSNo_distrR i i CSNo_Complex_i CSNo_Complex_i (from left to right).
We will prove 0 + - i * i = 1.
rewrite the current goal using Complex_i_sqr (from left to right).
We will prove 0 + - - 1 = 1.
rewrite the current goal using minus_CSNo_invol 1 CSNo_1 (from left to right).
An exact proof term for the current goal is add_CSNo_0L 1 CSNo_1.
Proof:
We prove the intermediate claim Lji: HSNo (j i).
An exact proof term for the current goal is HSNo_mul_HSNo j i HSNo_Quaternion_j HSNo_Complex_i.
Apply HSNo_proj0proj1_split (j i) (:-: k) Lji (HSNo_minus_HSNo k HSNo_Quaternion_k) to the current goal.
We will prove p0 (j i) = p0 (:-: k).
rewrite the current goal using minus_HSNo_proj0 k HSNo_Quaternion_k (from left to right).
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using mul_HSNo_proj0 j i HSNo_Quaternion_j HSNo_Complex_i (from left to right).
We will prove p0 j * p0 i + - (p1 i ' * p1 j) = - 0.
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
We will prove 0 * i + - (0 ' * 1) = - 0.
rewrite the current goal using conj_CSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_CSNo_0L i CSNo_Complex_i (from left to right).
rewrite the current goal using mul_CSNo_0L 1 CSNo_1 (from left to right).
We will prove 0 + - 0 = - 0.
An exact proof term for the current goal is add_CSNo_0L (- 0) (CSNo_minus_CSNo 0 CSNo_0).
We will prove p1 (j i) = p1 (:-: k).
rewrite the current goal using minus_HSNo_proj1 k HSNo_Quaternion_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
rewrite the current goal using mul_HSNo_proj1 j i HSNo_Quaternion_j HSNo_Complex_i (from left to right).
We will prove p1 i * p0 j + p1 j * p0 i ' = - i.
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
We will prove 0 * 0 + 1 * i ' = - i.
rewrite the current goal using mul_CSNo_0R 0 CSNo_0 (from left to right).
rewrite the current goal using mul_CSNo_1L (i ') (CSNo_conj_CSNo i CSNo_Complex_i) (from left to right).
rewrite the current goal using conj_CSNo_i (from left to right).
We will prove 0 + - i = - i.
An exact proof term for the current goal is add_CSNo_0L (- i) (CSNo_minus_CSNo i CSNo_Complex_i).
Proof:
We prove the intermediate claim Lkj: HSNo (k j).
An exact proof term for the current goal is HSNo_mul_HSNo k j HSNo_Quaternion_k HSNo_Quaternion_j.
Apply HSNo_proj0proj1_split (k j) (:-: i) Lkj (HSNo_minus_HSNo i HSNo_Complex_i) to the current goal.
We will prove p0 (k j) = p0 (:-: i).
rewrite the current goal using minus_HSNo_proj0 i HSNo_Complex_i (from left to right).
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using mul_HSNo_proj0 k j HSNo_Quaternion_k HSNo_Quaternion_j (from left to right).
We will prove p0 k * p0 j + - (p1 j ' * p1 k) = - i.
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
We will prove 0 * 0 + - (1 ' * i) = - i.
rewrite the current goal using mul_CSNo_0R 0 CSNo_0 (from left to right).
rewrite the current goal using conj_CSNo_id_SNo 1 SNo_1 (from left to right).
rewrite the current goal using mul_CSNo_1L i CSNo_Complex_i (from left to right).
We will prove 0 + - i = - i.
An exact proof term for the current goal is add_CSNo_0L (- i) (CSNo_minus_CSNo i CSNo_Complex_i).
We will prove p1 (k j) = p1 (:-: i).
rewrite the current goal using minus_HSNo_proj1 i HSNo_Complex_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
rewrite the current goal using mul_HSNo_proj1 k j HSNo_Quaternion_k HSNo_Quaternion_j (from left to right).
We will prove p1 j * p0 k + p1 k * p0 j ' = - 0.
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
We will prove 1 * 0 + i * 0 ' = - 0.
rewrite the current goal using conj_CSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using minus_CSNo_0 (from left to right).
rewrite the current goal using mul_CSNo_0R 1 CSNo_1 (from left to right).
rewrite the current goal using mul_CSNo_0R i CSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_CSNo_0R 0 CSNo_0.
Proof:
We prove the intermediate claim Lik: HSNo (i k).
An exact proof term for the current goal is HSNo_mul_HSNo i k HSNo_Complex_i HSNo_Quaternion_k.
Apply HSNo_proj0proj1_split (i k) (:-: j) Lik (HSNo_minus_HSNo j HSNo_Quaternion_j) to the current goal.
We will prove p0 (i k) = p0 (:-: j).
rewrite the current goal using minus_HSNo_proj0 j HSNo_Quaternion_j (from left to right).
rewrite the current goal using HSNo_p0_j (from left to right).
rewrite the current goal using mul_HSNo_proj0 i k HSNo_Complex_i HSNo_Quaternion_k (from left to right).
We will prove p0 i * p0 k + - (p1 k ' * p1 i) = - 0.
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
We will prove i * 0 + - (i ' * 0) = - 0.
rewrite the current goal using mul_CSNo_0R i CSNo_Complex_i (from left to right).
rewrite the current goal using mul_CSNo_0R (i ') (CSNo_conj_CSNo i CSNo_Complex_i) (from left to right).
We will prove 0 + - 0 = - 0.
An exact proof term for the current goal is add_CSNo_0L (- 0) (CSNo_minus_CSNo 0 CSNo_0).
We will prove p1 (i k) = p1 (:-: j).
rewrite the current goal using minus_HSNo_proj1 j HSNo_Quaternion_j (from left to right).
rewrite the current goal using HSNo_p1_j (from left to right).
rewrite the current goal using mul_HSNo_proj1 i k HSNo_Complex_i HSNo_Quaternion_k (from left to right).
We will prove p1 k * p0 i + p1 i * p0 k ' = - 1.
rewrite the current goal using HSNo_p0_i (from left to right).
rewrite the current goal using HSNo_p1_i (from left to right).
rewrite the current goal using HSNo_p0_k (from left to right).
rewrite the current goal using HSNo_p1_k (from left to right).
We will prove i * i + 0 * 0 ' = - 1.
rewrite the current goal using mul_CSNo_0L (0 ') (CSNo_conj_CSNo 0 CSNo_0) (from left to right).
rewrite the current goal using Complex_i_sqr (from left to right).
We will prove - 1 + 0 = - 1.
An exact proof term for the current goal is add_CSNo_0R (- 1) (CSNo_minus_CSNo 1 CSNo_1).
Theorem. (add_CSNo_rotate_3_1)
∀x y z, CSNo xCSNo yCSNo zx + y + z = z + x + y
Proof:
Let x, y and z be given.
Assume Hx Hy Hz.
We will prove x + (y + z) = z + (x + y).
Use transitivity with x + (z + y), (x + z) + y, and (z + x) + y.
Use f_equal.
An exact proof term for the current goal is add_CSNo_com y z Hy Hz.
Use symmetry.
An exact proof term for the current goal is add_CSNo_assoc x z y Hx Hz Hy.
Use f_equal.
An exact proof term for the current goal is add_CSNo_com x z Hx Hz.
An exact proof term for the current goal is add_CSNo_assoc z x y Hz Hx Hy.
Theorem. (mul_CSNo_rotate_3_1)
∀x y z, CSNo xCSNo yCSNo zx * y * z = z * x * y
Proof:
Let x, y and z be given.
Assume Hx Hy Hz.
We will prove x * (y * z) = z * (x * y).
Use transitivity with x * (z * y), (x * z) * y, and (z * x) * y.
Use f_equal.
An exact proof term for the current goal is mul_CSNo_com y z Hy Hz.
An exact proof term for the current goal is mul_CSNo_assoc x z y Hx Hz Hy.
Use f_equal.
An exact proof term for the current goal is mul_CSNo_com x z Hx Hz.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_assoc z x y Hz Hx Hy.
Theorem. (mul_HSNo_assoc)
∀z w v, HSNo zHSNo wHSNo vz (w v) = (z w) v
Proof:
Let z, w and v be given.
Assume Hz Hw Hv.
We prove the intermediate claim Lwv: HSNo (mult' w v).
An exact proof term for the current goal is HSNo_mul_HSNo w v Hw Hv.
We prove the intermediate claim Lzw: HSNo (mult' z w).
An exact proof term for the current goal is HSNo_mul_HSNo z w Hz Hw.
We prove the intermediate claim Lzwv1: HSNo (mult' z (mult' w v)).
An exact proof term for the current goal is HSNo_mul_HSNo z (mult' w v) Hz Lwv.
We prove the intermediate claim Lzwv2: HSNo (mult' (mult' z w) v).
An exact proof term for the current goal is HSNo_mul_HSNo (mult' z w) v Lzw Hv.
We prove the intermediate claim Lp0zR: CSNo (p0 z).
An exact proof term for the current goal is HSNo_proj0R z Hz.
We prove the intermediate claim Lp0wR: CSNo (p0 w).
An exact proof term for the current goal is HSNo_proj0R w Hw.
We prove the intermediate claim Lp0vR: CSNo (p0 v).
An exact proof term for the current goal is HSNo_proj0R v Hv.
We prove the intermediate claim Lp1zR: CSNo (p1 z).
An exact proof term for the current goal is HSNo_proj1R z Hz.
We prove the intermediate claim Lp1wR: CSNo (p1 w).
An exact proof term for the current goal is HSNo_proj1R w Hw.
We prove the intermediate claim Lp1vR: CSNo (p1 v).
An exact proof term for the current goal is HSNo_proj1R v Hv.
We prove the intermediate claim L1: CSNo (p0 w ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L2: CSNo (p1 w ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L3: CSNo (p1 v ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L4: CSNo (p0 v ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L5: CSNo (p0 v ' ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L6: CSNo (p1 w ' ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L7: CSNo (p1 w * p0 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L8: CSNo (p0 z * p0 w).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L9: CSNo (p0 w * p0 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L10: CSNo (p0 w * p0 v).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L11: CSNo (p1 v * p0 w).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L12: CSNo ((p1 v * p0 w) ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L13: CSNo ((p0 w * p0 v) ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L14: CSNo (p1 z * p0 w ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L15: CSNo (p0 z * p0 v ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L16: CSNo (p0 v ' * p0 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L17: CSNo (p1 v * p1 w ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L18: CSNo (p1 v ' * p1 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L19: CSNo (p1 w ' * p1 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L20: CSNo (p1 v ' * p1 w).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L21: CSNo (p1 w * p0 v ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L22: CSNo (p0 w ' * p1 v ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L23: CSNo (p0 v ' ' * p1 w).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L24: CSNo ((p1 w * p0 v ') ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L25: CSNo ((p1 v ' * p1 w) ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L26: CSNo (- p1 w ' * p1 z).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L27: CSNo (p0 w ' * p0 v ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L28: CSNo (p0 v ' * p0 w ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L29: CSNo (- p1 v ' * p1 w).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L30: CSNo (p1 w ' * p1 w ' ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L31: CSNo ((- p1 v ' * p1 w) ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L32: CSNo (p1 v * p0 z * p0 w).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L33: CSNo (p1 v * p0 w * p0 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L34: CSNo (p0 z * p0 w * p0 v).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L35: CSNo (- (p1 v ' * p1 w) ').
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L36: CSNo (p1 v * p1 w ' * p1 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L37: CSNo (p1 w * p0 z * p0 v ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L38: CSNo (p1 w * p0 v ' * p0 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L39: CSNo (p1 z * p1 v * p1 w ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L40: CSNo (p0 z * p1 v ' * p1 w).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L41: CSNo (p0 v * p1 w ' * p1 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L42: CSNo (- p1 v * p1 w ' * p1 z).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L43: CSNo (p1 z * p0 w ' * p0 v ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L44: CSNo (p1 z * p0 v ' * p0 w ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L45: CSNo (- p1 z * p1 v * p1 w ').
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L46: CSNo (- p0 z * p1 v ' * p1 w).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L47: CSNo (p0 w ' * p1 v ' * p1 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L48: CSNo (- p0 v * p1 w ' * p1 z).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L49: CSNo (- p0 w ' * p1 v ' * p1 z).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L50: CSNo (p1 w * p0 z + p1 z * p0 w ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L51: CSNo (p1 v * p0 w + p1 w * p0 v ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L52: CSNo (p0 z * p0 w + - p1 w ' * p1 z).
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L53: CSNo (p0 w * p0 v + - p1 v ' * p1 w).
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L54: CSNo ((p1 v * p0 w + p1 w * p0 v ') ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L55: CSNo ((p0 w * p0 v + - p1 v ' * p1 w) ').
Apply CSNo_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L56: CSNo (p0 w ' * p1 v ' + p0 v ' ' * p1 w).
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L57: CSNo ((p1 v * p0 w) ' + (p1 w * p0 v ') ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L58: CSNo ((p1 v * p0 w + p1 w * p0 v ') * p0 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L59: CSNo (p0 v ' * p0 w ' + - (p1 v ' * p1 w) ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L60: CSNo ((p0 w * p0 v) ' + (- p1 v ' * p1 w) ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L61: CSNo (p1 v * (p0 z * p0 w + - p1 w ' * p1 z)).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L62: CSNo ((p1 w * p0 z + p1 z * p0 w ') * p0 v ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L63: CSNo (p0 z * (p0 w * p0 v + - p1 v ' * p1 w)).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L64: CSNo ((p1 v * p0 w + p1 w * p0 v ') ' * p1 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L65: CSNo (p1 z * (p0 w * p0 v + - p1 v ' * p1 w) ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L66: CSNo (- (p1 v * p0 w + p1 w * p0 v ') ' * p1 z).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L67: CSNo (p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L68: CSNo (p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L69: CSNo (- p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z).
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L70: CSNo (- p1 v * p1 w ' * p1 z + p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L71: CSNo (p1 w * p0 v ' * p0 z + p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L72: CSNo (- p0 z * p1 v ' * p1 w + - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z).
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L73: CSNo (p1 v * (p0 z * p0 w + - p1 w ' * p1 z) + (p1 w * p0 z + p1 z * p0 w ') * p0 v ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L74: CSNo ((p1 v * p0 w + p1 w * p0 v ') * p0 z + p1 z * (p0 w * p0 v + - p1 v ' * p1 w) ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L75: CSNo (p0 z * (p0 w * p0 v + - p1 v ' * p1 w) + - (p1 v * p0 w + p1 w * p0 v ') ' * p1 z).
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L76: CSNo (p1 v * p0 z * p0 w + - p1 v * p1 w ' * p1 z + p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L77: CSNo (p1 v * p0 w * p0 z + p1 w * p0 v ' * p0 z + p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L78: CSNo (p0 z * p0 w * p0 v + - p0 z * p1 v ' * p1 w + - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z).
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L79: CSNo (p0 v * p1 w ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L80: CSNo (p1 z * p0 v).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L81: CSNo (p1 w ' * p1 z * p0 v).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L82: CSNo (- p1 w ' * p1 z * p0 v).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L83: CSNo (p1 v ' * p1 w * p0 z).
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L84: CSNo (p1 v ' * p1 z * p0 w ').
Apply CSNo_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L85: CSNo (- p1 v ' * p1 w * p0 z).
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L86: CSNo (- p1 v ' * p1 z * p0 w ').
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L87: CSNo (- p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L88: CSNo (- p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w ').
Apply CSNo_add_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
We prove the intermediate claim L89: CSNo (- p1 v ').
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
We prove the intermediate claim L90: CSNo (- p1 v * p1 w ').
Apply CSNo_minus_CSNo to the current goal.
An exact proof term for the current goal is ??.
Apply HSNo_proj0proj1_split (mult' z (mult' w v)) (mult' (mult' z w) v) Lzwv1 Lzwv2 to the current goal.
We will prove p0 (mult' z (mult' w v)) = p0 (mult' (mult' z w) v).
Use transitivity with p0 z * p0 (mult' w v) + - p1 (mult' w v) ' * p1 z, p0 z * (p0 w * p0 v + - p1 v ' * p1 w) + - (p1 v * p0 w + p1 w * p0 v ') ' * p1 z, p0 z * p0 w * p0 v + - p0 z * p1 v ' * p1 w + - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z, p0 z * p0 w * p0 v + - p1 w ' * p1 z * p0 v + - p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w ', (p0 z * p0 w + - p1 w ' * p1 z) * p0 v + - p1 v ' * (p1 w * p0 z + p1 z * p0 w '), and p0 (mult' z w) * p0 v + - p1 v ' * p1 (mult' z w).
An exact proof term for the current goal is mul_HSNo_proj0 z (mult' w v) Hz Lwv.
We will prove p0 z * p0 (mult' w v) + - p1 (mult' w v) ' * p1 z = p0 z * (p0 w * p0 v + - p1 v ' * p1 w) + - (p1 v * p0 w + p1 w * p0 v ') ' * p1 z.
Use f_equal.
Use f_equal.
An exact proof term for the current goal is mul_HSNo_proj0 w v Hw Hv.
Use f_equal.
Use f_equal.
Use f_equal.
An exact proof term for the current goal is mul_HSNo_proj1 w v Hw Hv.
We will prove p0 z * (p0 w * p0 v + - p1 v ' * p1 w) + - (p1 v * p0 w + p1 w * p0 v ') ' * p1 z = p0 z * p0 w * p0 v + - p0 z * p1 v ' * p1 w + - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z.
rewrite the current goal using add_CSNo_assoc (p0 z * p0 w * p0 v) (- p0 z * p1 v ' * p1 w) (- p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z) ?? ?? ?? (from right to left).
Use f_equal.
We will prove p0 z * (p0 w * p0 v + - p1 v ' * p1 w) = p0 z * p0 w * p0 v + - p0 z * p1 v ' * p1 w.
rewrite the current goal using mul_CSNo_distrL (p0 z) (p0 w * p0 v) (- p1 v ' * p1 w) ?? ?? ?? (from left to right).
We will prove p0 z * p0 w * p0 v + p0 z * (- p1 v ' * p1 w) = p0 z * p0 w * p0 v + - p0 z * p1 v ' * p1 w.
Use f_equal.
We will prove p0 z * (- p1 v ' * p1 w) = - p0 z * p1 v ' * p1 w.
An exact proof term for the current goal is minus_mul_CSNo_distrR (p0 z) (p1 v ' * p1 w) ?? ??.
We will prove - (p1 v * p0 w + p1 w * p0 v ') ' * p1 z = - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z.
Use transitivity with and - (p0 w ' * p1 v ' * p1 z + p0 v * p1 w ' * p1 z).
Use f_equal.
We will prove (p1 v * p0 w + p1 w * p0 v ') ' * p1 z = p0 w ' * p1 v ' * p1 z + p0 v * p1 w ' * p1 z.
Use transitivity with and (p0 w ' * p1 v ' + p0 v * p1 w ') * p1 z.
Use f_equal.
We will prove (p1 v * p0 w + p1 w * p0 v ') ' = p0 w ' * p1 v ' + p0 v * p1 w '.
Use transitivity with and (p1 v * p0 w) ' + (p1 w * p0 v ') '.
An exact proof term for the current goal is conj_add_CSNo (p1 v * p0 w) (p1 w * p0 v ') ?? ??.
We will prove (p1 v * p0 w) ' + (p1 w * p0 v ') ' = p0 w ' * p1 v ' + p0 v * p1 w '.
Use f_equal.
An exact proof term for the current goal is conj_mul_CSNo (p1 v) (p0 w) ?? ??.
rewrite the current goal using conj_mul_CSNo (p1 w) (p0 v ') ?? ?? (from left to right).
We will prove p0 v ' ' * p1 w ' = p0 v * p1 w '.
Use f_equal.
An exact proof term for the current goal is conj_CSNo_invol (p0 v) ??.
We will prove (p0 w ' * p1 v ' + p0 v * p1 w ') * p1 z = p0 w ' * p1 v ' * p1 z + p0 v * p1 w ' * p1 z.
rewrite the current goal using mul_CSNo_distrR (p0 w ' * p1 v ') (p0 v * p1 w ') (p1 z) ?? ?? ?? (from left to right).
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_assoc (p0 w ') (p1 v ') (p1 z) ?? ?? ??.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_assoc (p0 v) (p1 w ') (p1 z) ?? ?? ??.
We will prove - (p0 w ' * p1 v ' * p1 z + p0 v * p1 w ' * p1 z) = - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z.
An exact proof term for the current goal is minus_add_CSNo (p0 w ' * p1 v ' * p1 z) (p0 v * p1 w ' * p1 z) ?? ??.
We will prove p0 z * p0 w * p0 v + - p0 z * p1 v ' * p1 w + - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z = p0 z * p0 w * p0 v + - p1 w ' * p1 z * p0 v + - p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w '.
Use f_equal.
We will prove - p0 z * p1 v ' * p1 w + - p0 w ' * p1 v ' * p1 z + - p0 v * p1 w ' * p1 z = - p1 w ' * p1 z * p0 v + - p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w '.
rewrite the current goal using add_CSNo_rotate_3_1 (- p0 z * p1 v ' * p1 w) (- p0 w ' * p1 v ' * p1 z) (- p0 v * p1 w ' * p1 z) ?? ?? ?? (from left to right).
We will prove - p0 v * p1 w ' * p1 z + - p0 z * p1 v ' * p1 w + - p0 w ' * p1 v ' * p1 z = - p1 w ' * p1 z * p0 v + - p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w '.
Use f_equal.
We will prove - p0 v * p1 w ' * p1 z = - p1 w ' * p1 z * p0 v.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_rotate_3_1 (p1 w ') (p1 z) (p0 v) ?? ?? ??.
Use f_equal.
We will prove - p0 z * p1 v ' * p1 w = - p1 v ' * p1 w * p0 z.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_rotate_3_1 (p1 v ') (p1 w) (p0 z) ?? ?? ??.
We will prove - p0 w ' * p1 v ' * p1 z = - p1 v ' * p1 z * p0 w '.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_rotate_3_1 (p1 v ') (p1 z) (p0 w ') ?? ?? ??.
We will prove p0 z * p0 w * p0 v + - p1 w ' * p1 z * p0 v + - p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w ' = (p0 z * p0 w + - p1 w ' * p1 z) * p0 v + - p1 v ' * (p1 w * p0 z + p1 z * p0 w ').
rewrite the current goal using add_CSNo_assoc (p0 z * p0 w * p0 v) (- p1 w ' * p1 z * p0 v) (- p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w ') ?? ?? ?? (from right to left).
Use f_equal.
We will prove p0 z * p0 w * p0 v + - p1 w ' * p1 z * p0 v = (p0 z * p0 w + - p1 w ' * p1 z) * p0 v.
rewrite the current goal using mul_CSNo_assoc (p0 z) (p0 w) (p0 v) ?? ?? ?? (from left to right).
We will prove (p0 z * p0 w) * p0 v + - p1 w ' * p1 z * p0 v = (p0 z * p0 w + - p1 w ' * p1 z) * p0 v.
rewrite the current goal using mul_CSNo_assoc (p1 w ') (p1 z) (p0 v) ?? ?? ?? (from left to right).
rewrite the current goal using minus_mul_CSNo_distrL (p1 w ' * p1 z) (p0 v) ?? ?? (from right to left).
We will prove (p0 z * p0 w) * p0 v + (- p1 w ' * p1 z) * p0 v = (p0 z * p0 w + - p1 w ' * p1 z) * p0 v.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_distrR (p0 z * p0 w) (- p1 w ' * p1 z) (p0 v) ?? ?? ??.
We will prove - p1 v ' * p1 w * p0 z + - p1 v ' * p1 z * p0 w ' = - p1 v ' * (p1 w * p0 z + p1 z * p0 w ').
rewrite the current goal using minus_mul_CSNo_distrL (p1 v ') (p1 w * p0 z) ?? ?? (from right to left).
rewrite the current goal using minus_mul_CSNo_distrL (p1 v ') (p1 z * p0 w ') ?? ?? (from right to left).
rewrite the current goal using mul_CSNo_distrL (- p1 v ') (p1 w * p0 z) (p1 z * p0 w ') ?? ?? ?? (from right to left).
An exact proof term for the current goal is minus_mul_CSNo_distrL (p1 v ') (p1 w * p0 z + p1 z * p0 w ') ?? ??.
We will prove (p0 z * p0 w + - p1 w ' * p1 z) * p0 v + - p1 v ' * (p1 w * p0 z + p1 z * p0 w ') = p0 (mult' z w) * p0 v + - p1 v ' * p1 (mult' z w).
Use f_equal.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_HSNo_proj0 z w Hz Hw.
Use f_equal.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_HSNo_proj1 z w Hz Hw.
Use symmetry.
An exact proof term for the current goal is mul_HSNo_proj0 (mult' z w) v Lzw Hv.
We will prove p1 (mult' z (mult' w v)) = p1 (mult' (mult' z w) v).
Use transitivity with p1 (mult' w v) * p0 z + p1 z * p0 (mult' w v) ', (p1 v * p0 w + p1 w * p0 v ') * p0 z + p1 z * (p0 w * p0 v + - (p1 v ' * p1 w)) ', (p1 v * p0 w + p1 w * p0 v ') * p0 z + p1 z * (p0 v ' * p0 w ' + - p1 v * p1 w '), p1 v * p0 w * p0 z + p1 w * p0 v ' * p0 z + p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w ', p1 v * p0 z * p0 w + - p1 v * p1 w ' * p1 z + p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v ', p1 v * (p0 z * p0 w + - p1 w ' * p1 z) + (p1 w * p0 z + p1 z * p0 w ') * p0 v ', and p1 v * p0 (mult' z w) + p1 (mult' z w) * p0 v '.
An exact proof term for the current goal is mul_HSNo_proj1 z (mult' w v) Hz Lwv.
We will prove p1 (mult' w v) * p0 z + p1 z * p0 (mult' w v) ' = (p1 v * p0 w + p1 w * p0 v ') * p0 z + p1 z * (p0 w * p0 v + - (p1 v ' * p1 w)) '.
Use f_equal.
Use f_equal.
An exact proof term for the current goal is mul_HSNo_proj1 w v Hw Hv.
Use f_equal.
Use f_equal.
An exact proof term for the current goal is mul_HSNo_proj0 w v Hw Hv.
We will prove (p1 v * p0 w + p1 w * p0 v ') * p0 z + p1 z * (p0 w * p0 v + - (p1 v ' * p1 w)) ' = (p1 v * p0 w + p1 w * p0 v ') * p0 z + p1 z * (p0 v ' * p0 w ' + - p1 v * p1 w ').
Use f_equal.
Use f_equal.
We will prove (p0 w * p0 v + - (p1 v ' * p1 w)) ' = p0 v ' * p0 w ' + - p1 v * p1 w '.
rewrite the current goal using conj_add_CSNo (p0 w * p0 v) (- (p1 v ' * p1 w)) ?? ?? (from left to right).
rewrite the current goal using conj_minus_CSNo (p1 v ' * p1 w) ?? (from left to right).
We will prove (p0 w * p0 v) ' + - (p1 v ' * p1 w) ' = p0 v ' * p0 w ' + - p1 v * p1 w '.
Use f_equal.
An exact proof term for the current goal is conj_mul_CSNo (p0 w) (p0 v) ?? ??.
Use f_equal.
rewrite the current goal using conj_mul_CSNo (p1 v ') (p1 w) ?? ?? (from left to right).
We will prove p1 w ' * p1 v ' ' = p1 v * p1 w '.
rewrite the current goal using conj_CSNo_invol (p1 v) ?? (from left to right).
We will prove p1 w ' * p1 v = p1 v * p1 w '.
An exact proof term for the current goal is mul_CSNo_com (p1 w ') (p1 v) ?? ??.
We will prove (p1 v * p0 w + p1 w * p0 v ') * p0 z + p1 z * (p0 v ' * p0 w ' + - p1 v * p1 w ') = p1 v * p0 w * p0 z + p1 w * p0 v ' * p0 z + p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w '.
rewrite the current goal using add_CSNo_assoc (p1 v * p0 w * p0 z) (p1 w * p0 v ' * p0 z) (p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w ') ?? ?? ?? (from right to left).
Use f_equal.
We will prove (p1 v * p0 w + p1 w * p0 v ') * p0 z = p1 v * p0 w * p0 z + p1 w * p0 v ' * p0 z.
rewrite the current goal using mul_CSNo_distrR (p1 v * p0 w) (p1 w * p0 v ') (p0 z) ?? ?? ?? (from left to right).
rewrite the current goal using mul_CSNo_assoc (p1 v) (p0 w) (p0 z) ?? ?? ?? (from left to right).
rewrite the current goal using mul_CSNo_assoc (p1 w) (p0 v ') (p0 z) ?? ?? ?? (from left to right).
Use reflexivity.
We will prove p1 z * (p0 v ' * p0 w ' + - p1 v * p1 w ') = p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w '.
rewrite the current goal using mul_CSNo_distrL (p1 z) (p0 v ' * p0 w ') (- p1 v * p1 w ') ?? ?? ?? (from left to right).
Use f_equal.
We will prove p1 z * (- p1 v * p1 w ') = - p1 z * p1 v * p1 w '.
An exact proof term for the current goal is minus_mul_CSNo_distrR (p1 z) (p1 v * p1 w ') ?? ??.
We will prove p1 v * p0 w * p0 z + p1 w * p0 v ' * p0 z + p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w ' = p1 v * p0 z * p0 w + - p1 v * p1 w ' * p1 z + p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v '.
Use f_equal.
Use f_equal.
An exact proof term for the current goal is mul_CSNo_com (p0 w) (p0 z) ?? ??.
We will prove p1 w * p0 v ' * p0 z + p1 z * p0 v ' * p0 w ' + - p1 z * p1 v * p1 w ' = - p1 v * p1 w ' * p1 z + p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v '.
rewrite the current goal using add_CSNo_rotate_3_1 (p1 w * p0 v ' * p0 z) (p1 z * p0 v ' * p0 w ') (- p1 z * p1 v * p1 w ') ?? ?? ?? (from left to right).
Use f_equal.
We will prove - p1 z * p1 v * p1 w ' = - p1 v * p1 w ' * p1 z.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_CSNo_rotate_3_1 (p1 v) (p1 w ') (p1 z) ?? ?? ??.
Use f_equal.
We will prove p1 w * p0 v ' * p0 z = p1 w * p0 z * p0 v '.
Use f_equal.
An exact proof term for the current goal is mul_CSNo_com (p0 v ') (p0 z) ?? ??.
We will prove p1 z * p0 v ' * p0 w ' = p1 z * p0 w ' * p0 v '.
Use f_equal.
An exact proof term for the current goal is mul_CSNo_com (p0 v ') (p0 w ') ?? ??.
We will prove p1 v * p0 z * p0 w + - p1 v * p1 w ' * p1 z + p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v ' = p1 v * (p0 z * p0 w + - p1 w ' * p1 z) + (p1 w * p0 z + p1 z * p0 w ') * p0 v '.
rewrite the current goal using add_CSNo_assoc (p1 v * p0 z * p0 w) (- p1 v * p1 w ' * p1 z) (p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v ') ?? ?? ?? (from right to left).
Use f_equal.
We will prove p1 v * p0 z * p0 w + - p1 v * p1 w ' * p1 z = p1 v * (p0 z * p0 w + - p1 w ' * p1 z).
rewrite the current goal using mul_CSNo_distrL (p1 v) (p0 z * p0 w) (- p1 w ' * p1 z) ?? ?? ?? (from left to right).
We will prove p1 v * p0 z * p0 w + - p1 v * p1 w ' * p1 z = p1 v * p0 z * p0 w + p1 v * (- p1 w ' * p1 z).
Use f_equal.
We will prove - p1 v * p1 w ' * p1 z = p1 v * (- p1 w ' * p1 z).
Use symmetry.
An exact proof term for the current goal is minus_mul_CSNo_distrR (p1 v) (p1 w ' * p1 z) ?? ??.
We will prove p1 w * p0 z * p0 v ' + p1 z * p0 w ' * p0 v ' = (p1 w * p0 z + p1 z * p0 w ') * p0 v '.
rewrite the current goal using mul_CSNo_assoc (p1 w) (p0 z) (p0 v ') ?? ?? ?? (from left to right).
rewrite the current goal using mul_CSNo_assoc (p1 z) (p0 w ') (p0 v ') ?? ?? ?? (from left to right).
Use symmetry.
An exact proof term for the current goal is mul_CSNo_distrR (p1 w * p0 z) (p1 z * p0 w ') (p0 v ') ?? ?? ??.
We will prove p1 v * (p0 z * p0 w + - p1 w ' * p1 z) + (p1 w * p0 z + p1 z * p0 w ') * p0 v ' = p1 v * p0 (mult' z w) + p1 (mult' z w) * p0 v '.
Use f_equal.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_HSNo_proj0 z w Hz Hw.
Use f_equal.
Use symmetry.
An exact proof term for the current goal is mul_HSNo_proj1 z w Hz Hw.
Use symmetry.
We will prove p1 (mult' (mult' z w) v) = p1 v * p0 (mult' z w) + p1 (mult' z w) * p0 v '.
An exact proof term for the current goal is mul_HSNo_proj1 (mult' z w) v Lzw Hv.
Proof:
rewrite the current goal using conj_HSNo_conj_CSNo i CSNo_Complex_i (from left to right).
rewrite the current goal using minus_HSNo_minus_CSNo i CSNo_Complex_i (from left to right).
We will prove i ' = - i.
An exact proof term for the current goal is conj_CSNo_i.
Proof:
We will prove p0 (j '') = p0 (:-: j).
rewrite the current goal using conj_HSNo_proj0 j HSNo_Quaternion_j (from left to right).
rewrite the current goal using minus_HSNo_proj0 j HSNo_Quaternion_j (from left to right).
We will prove p0 j ' = - p0 j.
rewrite the current goal using HSNo_p0_j (from left to right).
We will prove 0 ' = - 0.
rewrite the current goal using minus_CSNo_0 (from left to right).
An exact proof term for the current goal is conj_CSNo_id_SNo 0 SNo_0.
We will prove p1 (j '') = p1 (:-: j).
rewrite the current goal using conj_HSNo_proj1 j HSNo_Quaternion_j (from left to right).
rewrite the current goal using minus_HSNo_proj1 j HSNo_Quaternion_j (from left to right).
We will prove - p1 j = - p1 j.
Use reflexivity.
Proof:
We will prove p0 (k '') = p0 (:-: k).
rewrite the current goal using conj_HSNo_proj0 k HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_HSNo_proj0 k HSNo_Quaternion_k (from left to right).
We will prove p0 k ' = - p0 k.
rewrite the current goal using HSNo_p0_k (from left to right).
We will prove 0 ' = - 0.
rewrite the current goal using minus_CSNo_0 (from left to right).
An exact proof term for the current goal is conj_CSNo_id_SNo 0 SNo_0.
We will prove p1 (k '') = p1 (:-: k).
rewrite the current goal using conj_HSNo_proj1 k HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_HSNo_proj1 k HSNo_Quaternion_k (from left to right).
We will prove - p1 k = - p1 k.
Use reflexivity.
End of Section SurQuaternions
Beginning of Section Quaternions
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_HSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_HSNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_HSNo.
Let i ≝ Complex_i
Let j ≝ Quaternion_j
Let k ≝ Quaternion_k
Let p0 : setsetHSNo_proj0
Let p1 : setsetHSNo_proj1
Let pa : setsetsetCSNo_pair
Definition. We define quaternion to be {pa (u 0) (u 1)|u ∈ complexcomplex} of type set.
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
We will prove pa x y quaternion.
rewrite the current goal using tuple_2_0_eq x y (from right to left).
rewrite the current goal using tuple_2_1_eq x y (from right to left) at position 2.
We will prove pa ((x,y) 0) ((x,y) 1) quaternion.
Apply ReplI (complexcomplex) (λu ⇒ pa (u 0) (u 1)) to the current goal.
We will prove (x,y) complexcomplex.
An exact proof term for the current goal is tuple_2_setprod complex complex x Hx y Hy.
Theorem. (quaternion_E)
∀zquaternion, ∀p : prop, (∀x ycomplex, z = pa x yp)p
Proof:
Let z be given.
Assume Hz.
Let p be given.
Assume Hp.
Apply ReplE_impred (complexcomplex) (λu ⇒ pa (u 0) (u 1)) z Hz to the current goal.
Let u be given.
Assume Hu: u complexcomplex.
Assume Hzu: z = pa (u 0) (u 1).
An exact proof term for the current goal is Hp (u 0) (ap0_Sigma complex (λ_ ⇒ complex) u Hu) (u 1) (ap1_Sigma complex (λ_ ⇒ complex) u Hu) Hzu.
Proof:
Let z be given.
Assume Hz.
Apply quaternion_E z Hz to the current goal.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
Assume Hzxy: z = pa x y.
We will prove HSNo z.
rewrite the current goal using Hzxy (from left to right).
Apply HSNo_I to the current goal.
An exact proof term for the current goal is complex_CSNo x Hx.
An exact proof term for the current goal is complex_CSNo y Hy.
Proof:
Let x be given.
Assume Hx: x complex.
We will prove x quaternion.
rewrite the current goal using CSNo_pair_0 x (from right to left).
We will prove pa x 0 quaternion.
Apply quaternion_I to the current goal.
An exact proof term for the current goal is Hx.
An exact proof term for the current goal is complex_0.
Proof:
An exact proof term for the current goal is complex_quaternion 0 complex_0.
Proof:
An exact proof term for the current goal is complex_quaternion 1 complex_1.
Proof:
An exact proof term for the current goal is complex_quaternion i complex_i.
Proof:
We will prove pa 0 1 quaternion.
Apply quaternion_I to the current goal.
An exact proof term for the current goal is complex_0.
An exact proof term for the current goal is complex_1.
Proof:
We will prove pa 0 i quaternion.
Apply quaternion_I to the current goal.
An exact proof term for the current goal is complex_0.
An exact proof term for the current goal is complex_i.
Theorem. (quaternion_p0_eq)
∀x ycomplex, p0 (pa x y) = x
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
An exact proof term for the current goal is HSNo_proj0_2 x y (complex_CSNo x Hx) (complex_CSNo y Hy).
Theorem. (quaternion_p1_eq)
∀x ycomplex, p1 (pa x y) = y
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
An exact proof term for the current goal is HSNo_proj1_2 x y (complex_CSNo x Hx) (complex_CSNo y Hy).
Proof:
Let z be given.
Assume Hz.
Apply quaternion_E z Hz to the current goal.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy Hzxy.
rewrite the current goal using Hzxy (from left to right).
We will prove p0 (pa x y) complex.
rewrite the current goal using quaternion_p0_eq x Hx y Hy (from left to right).
We will prove x complex.
An exact proof term for the current goal is Hx.
Proof:
Let z be given.
Assume Hz.
Apply quaternion_E z Hz to the current goal.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy Hzxy.
rewrite the current goal using Hzxy (from left to right).
We will prove p1 (pa x y) complex.
rewrite the current goal using quaternion_p1_eq x Hx y Hy (from left to right).
We will prove y complex.
An exact proof term for the current goal is Hy.
Theorem. (quaternion_proj0proj1_split)
∀z wquaternion, p0 z = p0 wp1 z = p1 wz = w
Proof:
Let z be given.
Assume Hz.
Let w be given.
Assume Hw.
An exact proof term for the current goal is HSNo_proj0proj1_split z w (quaternion_HSNo z Hz) (quaternion_HSNo w Hw).
Proof:
Let z be given.
Assume Hz.
We will prove pa (minus_CSNo (p0 z)) (minus_CSNo (p1 z)) quaternion.
Apply quaternion_I to the current goal.
Apply complex_minus_CSNo to the current goal.
An exact proof term for the current goal is quaternion_p0_complex z Hz.
Apply complex_minus_CSNo to the current goal.
An exact proof term for the current goal is quaternion_p1_complex z Hz.
Proof:
Let z be given.
Assume Hz.
We will prove pa (conj_CSNo (p0 z)) (minus_CSNo (p1 z)) quaternion.
Apply quaternion_I to the current goal.
Apply complex_conj_CSNo to the current goal.
An exact proof term for the current goal is quaternion_p0_complex z Hz.
Apply complex_minus_CSNo to the current goal.
An exact proof term for the current goal is quaternion_p1_complex z Hz.
Proof:
Let z be given.
Assume Hz.
Let w be given.
Assume Hw.
We will prove pa (add_CSNo (p0 z) (p0 w)) (add_CSNo (p1 z) (p1 w)) quaternion.
Apply quaternion_I to the current goal.
Apply complex_add_CSNo to the current goal.
An exact proof term for the current goal is quaternion_p0_complex z Hz.
An exact proof term for the current goal is quaternion_p0_complex w Hw.
Apply complex_add_CSNo to the current goal.
An exact proof term for the current goal is quaternion_p1_complex z Hz.
An exact proof term for the current goal is quaternion_p1_complex w Hw.
Proof:
Let z be given.
Assume Hz.
Let w be given.
Assume Hw.
We will prove pa (add_CSNo (mul_CSNo (p0 z) (p0 w)) (minus_CSNo (mul_CSNo (conj_CSNo (p1 w)) (p1 z)))) (add_CSNo (mul_CSNo (p1 w) (p0 z)) (mul_CSNo (p1 z) (conj_CSNo (p0 w)))) quaternion.
We prove the intermediate claim Lz0: p0 z complex.
An exact proof term for the current goal is quaternion_p0_complex z Hz.
We prove the intermediate claim Lz1: p1 z complex.
An exact proof term for the current goal is quaternion_p1_complex z Hz.
We prove the intermediate claim Lw0: p0 w complex.
An exact proof term for the current goal is quaternion_p0_complex w Hw.
We prove the intermediate claim Lw1: p1 w complex.
An exact proof term for the current goal is quaternion_p1_complex w Hw.
Apply quaternion_I to the current goal.
Apply complex_add_CSNo to the current goal.
Apply complex_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
Apply complex_minus_CSNo to the current goal.
Apply complex_mul_CSNo to the current goal.
Apply complex_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
Apply complex_add_CSNo to the current goal.
Apply complex_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
Apply complex_mul_CSNo to the current goal.
An exact proof term for the current goal is ??.
Apply complex_conj_CSNo to the current goal.
An exact proof term for the current goal is ??.
Theorem. (complex_p0_eq)
∀xcomplex, p0 x = x
Proof:
Let x be given.
Assume Hx.
rewrite the current goal using CSNo_pair_0 x (from right to left) at position 1.
An exact proof term for the current goal is quaternion_p0_eq x Hx 0 complex_0.
Theorem. (complex_p1_eq)
∀xcomplex, p1 x = 0
Proof:
Let x be given.
Assume Hx.
rewrite the current goal using CSNo_pair_0 x (from right to left).
An exact proof term for the current goal is quaternion_p1_eq x Hx 0 complex_0.
End of Section Quaternions