Beginning of Section SurOctonions
Theorem. (octonion_tag_fresh)
∀x, HSNo x∀ux, {4}u
Proof:
Let z be given.
Assume Hz.
Apply Sing_nat_fresh_extension 4 nat_4 In_1_4 z to the current goal.
We will prove ExtendedSNoElt_ 4 z.
An exact proof term for the current goal is HSNo_ExtendedSNoElt_4 z Hz.
Definition. We define HSNo_pair to be pair_tag {4} of type setsetset.
Proof:
An exact proof term for the current goal is pair_tag_0 {4} HSNo octonion_tag_fresh.
Theorem. (HSNo_pair_prop_1)
∀x1 y1 x2 y2, HSNo x1HSNo x2HSNo_pair x1 y1 = HSNo_pair x2 y2x1 = x2
Proof:
An exact proof term for the current goal is pair_tag_prop_1 {4} HSNo octonion_tag_fresh.
Theorem. (HSNo_pair_prop_2)
∀x1 y1 x2 y2, HSNo x1HSNo y1HSNo x2HSNo y2HSNo_pair x1 y1 = HSNo_pair x2 y2y1 = y2
Proof:
An exact proof term for the current goal is pair_tag_prop_2 {4} HSNo octonion_tag_fresh.
Definition. We define OSNo to be CD_carr {4} HSNo of type setprop.
Theorem. (OSNo_I)
∀x y, HSNo xHSNo yOSNo (HSNo_pair x y)
Proof:
An exact proof term for the current goal is CD_carr_I {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_E)
∀z, OSNo z∀p : setprop, (∀x y, HSNo xHSNo yz = HSNo_pair x yp (HSNo_pair x y))p z
Proof:
An exact proof term for the current goal is CD_carr_E {4} HSNo octonion_tag_fresh.
Theorem. (HSNo_OSNo)
∀x, HSNo xOSNo x
Proof:
An exact proof term for the current goal is CD_carr_0ext {4} HSNo octonion_tag_fresh HSNo_0.
Proof:
Apply HSNo_OSNo to the current goal.
An exact proof term for the current goal is HSNo_0.
Proof:
Apply HSNo_OSNo to the current goal.
An exact proof term for the current goal is HSNo_1.
Let ctag : setsetλalpha ⇒ SetAdjoin alpha {4}
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term ctag.
Theorem. (OSNo_ExtendedSNoElt_5)
∀z, OSNo zExtendedSNoElt_ 5 z
Proof:
Let z be given.
Assume Hz.
Apply OSNo_E z Hz to the current goal.
Let x and y be given.
Assume Hx: HSNo x.
Assume Hy: HSNo y.
Assume Hzxy: z = HSNo_pair x y.
Let v be given.
Assume Hv: v (HSNo_pair x y).
Apply UnionE_impred (HSNo_pair x y) v Hv to the current goal.
Let u be given.
Assume H1: v u.
Assume H2: u HSNo_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 ∈ 5, v = {i}.
An exact proof term for the current goal is extension_SNoElt_mon 4 5 (ordsuccI1 4) x (HSNo_ExtendedSNoElt_4 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 {{4}} 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 4 5 (ordsuccI1 4) y (HSNo_ExtendedSNoElt_4 y Hy) v L3.
Assume H5: v {{4}}.
We will prove ordinal v∃i ∈ 5, v = {i}.
Apply orIR to the current goal.
We use 4 to witness the existential quantifier.
Apply andI to the current goal.
We will prove 4 5.
An exact proof term for the current goal is In_4_5.
We will prove v = {4}.
An exact proof term for the current goal is SingE {4} v H5.
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.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term div_HSNo.
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term conj_HSNo.
Let i ≝ Complex_i
Let j ≝ Quaternion_j
Let k ≝ Quaternion_k
Definition. We define OSNo_proj0 to be CD_proj0 {4} HSNo of type setset.
Definition. We define OSNo_proj1 to be CD_proj1 {4} HSNo of type setset.
Let p0 : setsetOSNo_proj0
Let p1 : setsetOSNo_proj1
Let pa : setsetsetHSNo_pair
Theorem. (OSNo_proj0_1)
∀z, OSNo zHSNo (p0 z)∃y, HSNo yz = pa (p0 z) y
Proof:
An exact proof term for the current goal is CD_proj0_1 {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_proj0_2)
∀x y, HSNo xHSNo yp0 (pa x y) = x
Proof:
An exact proof term for the current goal is CD_proj0_2 {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_proj1_1)
∀z, OSNo zHSNo (p1 z)z = pa (p0 z) (p1 z)
Proof:
An exact proof term for the current goal is CD_proj1_1 {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_proj1_2)
∀x y, HSNo xHSNo yp1 (pa x y) = y
Proof:
An exact proof term for the current goal is CD_proj1_2 {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_proj0R)
∀z, OSNo zHSNo (p0 z)
Proof:
An exact proof term for the current goal is CD_proj0R {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_proj1R)
∀z, OSNo zHSNo (p1 z)
Proof:
An exact proof term for the current goal is CD_proj1R {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_proj0p1)
∀z, OSNo zz = pa (p0 z) (p1 z)
Proof:
An exact proof term for the current goal is CD_proj0proj1_eta {4} HSNo octonion_tag_fresh.
Theorem. (OSNo_proj0proj1_split)
∀z w, OSNo zOSNo wp0 z = p0 wp1 z = p1 wz = w
Proof:
An exact proof term for the current goal is CD_proj0proj1_split {4} HSNo octonion_tag_fresh.
Definition. We define OSNoLev to be λz ⇒ HSNoLev (p0 z)HSNoLev (p1 z) of type setset.
Theorem. (OSNoLev_ordinal)
∀z, OSNo zordinal (OSNoLev z)
Proof:
Let z be given.
Assume Hz.
Apply OSNo_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 (HSNoLev (p0 (pa x y))HSNoLev (p1 (pa x y))).
rewrite the current goal using OSNo_proj0_2 x y Hx Hy (from left to right).
rewrite the current goal using OSNo_proj1_2 x y Hx Hy (from left to right).
We will prove ordinal (HSNoLev xHSNoLev y).
An exact proof term for the current goal is ordinal_binunion (HSNoLev x) (HSNoLev y) (HSNoLev_ordinal x Hx) (HSNoLev_ordinal y Hy).
Definition. We define minus_OSNo to be CD_minus {4} HSNo minus_HSNo of type setset.
Definition. We define conj_OSNo to be CD_conj {4} HSNo minus_HSNo conj_HSNo of type setset.
Definition. We define add_OSNo to be CD_add {4} HSNo add_HSNo of type setsetset.
Definition. We define mul_OSNo to be CD_mul {4} HSNo minus_HSNo conj_HSNo add_HSNo mul_HSNo of type setsetset.
Definition. We define exp_OSNo_nat to be CD_exp_nat {4} HSNo minus_HSNo conj_HSNo add_HSNo mul_HSNo of type setsetset.
Let plus' ≝ add_OSNo
Let mult' ≝ mul_OSNo
Notation. We use :-: as a prefix operator with priority 358 corresponding to applying term minus_OSNo.
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term conj_OSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_OSNo.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_OSNo.
Notation. We use :^: as an infix operator with priority 355 and which associates to the right corresponding to applying term exp_OSNo_nat.
Proof:
An exact proof term for the current goal is CD_minus_CD {4} HSNo octonion_tag_fresh minus_HSNo HSNo_minus_HSNo.
Theorem. (minus_OSNo_proj0)
∀z, OSNo zp0 (:-: z) = - p0 z
Proof:
An exact proof term for the current goal is CD_minus_proj0 {4} HSNo octonion_tag_fresh minus_HSNo HSNo_minus_HSNo.
Theorem. (minus_OSNo_proj1)
∀z, OSNo zp1 (:-: z) = - p1 z
Proof:
An exact proof term for the current goal is CD_minus_proj1 {4} HSNo octonion_tag_fresh minus_HSNo HSNo_minus_HSNo.
Proof:
An exact proof term for the current goal is CD_conj_CD {4} HSNo octonion_tag_fresh minus_HSNo HSNo_minus_HSNo conj_HSNo HSNo_conj_HSNo.
Theorem. (conj_OSNo_proj0)
∀z, OSNo zp0 (z '') = (p0 z) '
Proof:
An exact proof term for the current goal is CD_conj_proj0 {4} HSNo octonion_tag_fresh minus_HSNo HSNo_minus_HSNo conj_HSNo HSNo_conj_HSNo.
Theorem. (conj_OSNo_proj1)
∀z, OSNo zp1 (z '') = - p1 z
Proof:
An exact proof term for the current goal is CD_conj_proj1 {4} HSNo octonion_tag_fresh minus_HSNo HSNo_minus_HSNo conj_HSNo HSNo_conj_HSNo.
Theorem. (OSNo_add_OSNo)
∀z w, OSNo zOSNo wOSNo (add_OSNo z w)
Proof:
An exact proof term for the current goal is CD_add_CD {4} HSNo octonion_tag_fresh add_HSNo HSNo_add_HSNo.
Theorem. (add_OSNo_proj0)
∀z w, OSNo zOSNo wp0 (plus' z w) = p0 z + p0 w
Proof:
An exact proof term for the current goal is CD_add_proj0 {4} HSNo octonion_tag_fresh add_HSNo HSNo_add_HSNo.
Theorem. (add_OSNo_proj1)
∀z w, OSNo zOSNo wp1 (plus' z w) = p1 z + p1 w
Proof:
An exact proof term for the current goal is CD_add_proj1 {4} HSNo octonion_tag_fresh add_HSNo HSNo_add_HSNo.
Theorem. (OSNo_mul_OSNo)
∀z w, OSNo zOSNo wOSNo (z w)
Proof:
An exact proof term for the current goal is CD_mul_CD {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo.
Theorem. (mul_OSNo_proj0)
∀z w, OSNo zOSNo 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 {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo.
Theorem. (mul_OSNo_proj1)
∀z w, OSNo zOSNo 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 {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo.
Theorem. (HSNo_OSNo_proj0)
∀x, HSNo xp0 x = x
Proof:
An exact proof term for the current goal is CD_proj0_F {4} HSNo octonion_tag_fresh HSNo_0.
Theorem. (HSNo_OSNo_proj1)
∀x, HSNo xp1 x = 0
Proof:
An exact proof term for the current goal is CD_proj1_F {4} HSNo octonion_tag_fresh HSNo_0.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj0 0 HSNo_0.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj1 0 HSNo_0.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj0 1 HSNo_1.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj1 1 HSNo_1.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj0 i HSNo_Complex_i.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj1 i HSNo_Complex_i.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj0 j HSNo_Quaternion_j.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj1 j HSNo_Quaternion_j.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj0 k HSNo_Quaternion_k.
Proof:
An exact proof term for the current goal is HSNo_OSNo_proj1 k HSNo_Quaternion_k.
Theorem. (minus_OSNo_minus_HSNo)
∀x, HSNo x:-: x = - x
Proof:
An exact proof term for the current goal is CD_minus_F_eq {4} HSNo octonion_tag_fresh minus_HSNo HSNo_0 minus_HSNo_0.
Proof:
rewrite the current goal using minus_OSNo_minus_HSNo 0 HSNo_0 (from left to right).
An exact proof term for the current goal is minus_HSNo_0.
Theorem. (conj_OSNo_conj_HSNo)
∀x, HSNo xx '' = x '
Proof:
An exact proof term for the current goal is CD_conj_F_eq {4} HSNo octonion_tag_fresh minus_HSNo HSNo_0 minus_HSNo_0 conj_HSNo.
Proof:
rewrite the current goal using conj_OSNo_conj_HSNo 0 HSNo_0 (from left to right).
An exact proof term for the current goal is conj_HSNo_0.
Proof:
rewrite the current goal using conj_OSNo_conj_HSNo 1 HSNo_1 (from left to right).
An exact proof term for the current goal is conj_HSNo_1.
Theorem. (add_OSNo_add_HSNo)
∀x y, HSNo xHSNo yx + y = x + y
Proof:
An exact proof term for the current goal is CD_add_F_eq {4} HSNo octonion_tag_fresh add_HSNo HSNo_0 (add_HSNo_0L 0 HSNo_0).
Theorem. (mul_OSNo_mul_HSNo)
∀x y, HSNo xHSNo yx y = x * y
Proof:
An exact proof term for the current goal is CD_mul_F_eq {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_0 HSNo_conj_HSNo HSNo_mul_HSNo minus_HSNo_0 add_HSNo_0R mul_HSNo_0L mul_HSNo_0R.
Proof:
An exact proof term for the current goal is CD_minus_invol {4} HSNo octonion_tag_fresh minus_HSNo HSNo_minus_HSNo minus_HSNo_invol.
Theorem. (conj_OSNo_invol)
∀z, OSNo zz '' '' = z
Proof:
An exact proof term for the current goal is CD_conj_invol {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo HSNo_minus_HSNo HSNo_conj_HSNo minus_HSNo_invol conj_HSNo_invol.
Theorem. (conj_minus_OSNo)
∀z, OSNo z(:-: z) '' = :-: (z '')
Proof:
An exact proof term for the current goal is CD_conj_minus {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo HSNo_minus_HSNo HSNo_conj_HSNo conj_minus_HSNo.
Theorem. (minus_add_OSNo)
∀z w, OSNo zOSNo w:-: (z + w) = :-: z + :-: w
Proof:
An exact proof term for the current goal is CD_minus_add {4} HSNo octonion_tag_fresh minus_HSNo add_HSNo HSNo_minus_HSNo HSNo_add_HSNo minus_add_HSNo.
Theorem. (conj_add_OSNo)
∀z w, OSNo zOSNo w(z + w) '' = z '' + w ''
Proof:
An exact proof term for the current goal is CD_conj_add {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo minus_add_HSNo conj_add_HSNo.
Theorem. (add_OSNo_com)
∀z w, OSNo zOSNo wz + w = w + z
Proof:
An exact proof term for the current goal is CD_add_com {4} HSNo octonion_tag_fresh add_HSNo add_HSNo_com.
Theorem. (add_OSNo_assoc)
∀z w v, OSNo zOSNo wOSNo v(z + w) + v = z + (w + v)
Proof:
Apply CD_add_assoc {4} HSNo octonion_tag_fresh add_HSNo HSNo_add_HSNo add_HSNo_assoc to the current goal.
Theorem. (add_OSNo_0L)
∀z, OSNo zadd_OSNo 0 z = z
Proof:
An exact proof term for the current goal is CD_add_0L {4} HSNo octonion_tag_fresh add_HSNo HSNo_0 add_HSNo_0L.
Theorem. (add_OSNo_0R)
∀z, OSNo zadd_OSNo z 0 = z
Proof:
An exact proof term for the current goal is CD_add_0R {4} HSNo octonion_tag_fresh add_HSNo HSNo_0 add_HSNo_0R.
Proof:
An exact proof term for the current goal is CD_add_minus_linv {4} HSNo octonion_tag_fresh minus_HSNo add_HSNo HSNo_minus_HSNo add_HSNo_minus_HSNo_linv.
Proof:
An exact proof term for the current goal is CD_add_minus_rinv {4} HSNo octonion_tag_fresh minus_HSNo add_HSNo HSNo_minus_HSNo add_HSNo_minus_HSNo_rinv.
Theorem. (mul_OSNo_0R)
∀z, OSNo zz 0 = 0
Proof:
An exact proof term for the current goal is CD_mul_0R {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_0 minus_HSNo_0 conj_HSNo_0 (add_HSNo_0L 0 HSNo_0) mul_HSNo_0L mul_HSNo_0R.
Theorem. (mul_OSNo_0L)
∀z, OSNo z0 z = 0
Proof:
An exact proof term for the current goal is CD_mul_0L {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_0 HSNo_conj_HSNo minus_HSNo_0 (add_HSNo_0L 0 HSNo_0) mul_HSNo_0L mul_HSNo_0R.
Theorem. (mul_OSNo_1R)
∀z, OSNo zz 1 = z
Proof:
An exact proof term for the current goal is CD_mul_1R {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_0 HSNo_1 minus_HSNo_0 conj_HSNo_0 conj_HSNo_1 add_HSNo_0L add_HSNo_0R mul_HSNo_0L mul_HSNo_1R.
Theorem. (mul_OSNo_1L)
∀z, OSNo z1 z = z
Proof:
An exact proof term for the current goal is CD_mul_1L {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_0 HSNo_1 HSNo_conj_HSNo minus_HSNo_0 add_HSNo_0R mul_HSNo_0L mul_HSNo_0R mul_HSNo_1L mul_HSNo_1R.
Theorem. (conj_mul_OSNo)
∀z w, OSNo zOSNo w(z w) '' = w '' z ''
Proof:
An exact proof term for the current goal is CD_conj_mul {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo minus_HSNo_invol conj_HSNo_invol conj_minus_HSNo conj_add_HSNo minus_add_HSNo add_HSNo_com conj_mul_HSNo minus_mul_HSNo_distrR minus_mul_HSNo_distrL.
Theorem. (mul_OSNo_distrL)
∀z w u, OSNo zOSNo wOSNo uz (w + u) = z w + z u
Proof:
An exact proof term for the current goal is CD_add_mul_distrL {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo minus_add_HSNo conj_add_HSNo add_HSNo_assoc add_HSNo_com mul_HSNo_distrL mul_HSNo_distrR.
Theorem. (mul_OSNo_distrR)
∀z w u, OSNo zOSNo wOSNo u(z + w) u = z u + w u
Proof:
An exact proof term for the current goal is CD_add_mul_distrR {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo minus_add_HSNo add_HSNo_assoc add_HSNo_com mul_HSNo_distrL mul_HSNo_distrR.
Theorem. (minus_mul_OSNo_distrR)
∀z w, OSNo zOSNo wz (:-: w) = :-: z w
Proof:
An exact proof term for the current goal is CD_minus_mul_distrR {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo conj_minus_HSNo minus_add_HSNo minus_mul_HSNo_distrR minus_mul_HSNo_distrL.
Theorem. (minus_mul_OSNo_distrL)
∀z w, OSNo zOSNo w(:-: z) w = :-: z w
Proof:
An exact proof term for the current goal is CD_minus_mul_distrL {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo minus_add_HSNo minus_mul_HSNo_distrR minus_mul_HSNo_distrL.
Proof:
An exact proof term for the current goal is CD_exp_nat_0 {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo.
Theorem. (exp_OSNo_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 {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo.
Theorem. (exp_OSNo_nat_1)
∀z, OSNo zz1 = z
Proof:
An exact proof term for the current goal is CD_exp_nat_1 {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_0 HSNo_1 minus_HSNo_0 conj_HSNo_0 conj_HSNo_1 add_HSNo_0L add_HSNo_0R mul_HSNo_0L mul_HSNo_1R.
Theorem. (exp_OSNo_nat_2)
∀z, OSNo zz2 = z z
Proof:
An exact proof term for the current goal is CD_exp_nat_2 {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_0 HSNo_1 minus_HSNo_0 conj_HSNo_0 conj_HSNo_1 add_HSNo_0L add_HSNo_0R mul_HSNo_0L mul_HSNo_1R.
Theorem. (OSNo_exp_OSNo_nat)
∀z, OSNo z∀n, nat_p nOSNo (zn)
Proof:
An exact proof term for the current goal is CD_exp_nat_CD {4} HSNo octonion_tag_fresh minus_HSNo conj_HSNo add_HSNo mul_HSNo HSNo_minus_HSNo HSNo_conj_HSNo HSNo_add_HSNo HSNo_mul_HSNo HSNo_0 HSNo_1.
Theorem. (add_HSNo_com_3b_1_2)
∀x y z, HSNo xHSNo yHSNo 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_HSNo_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_HSNo_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_HSNo_com y z Hy Hz.
Theorem. (add_HSNo_com_4_inner_mid)
∀x y z w, HSNo xHSNo yHSNo zHSNo 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_HSNo_assoc (x + y) z w (HSNo_add_HSNo 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_HSNo_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_HSNo_assoc (x + z) y w (HSNo_add_HSNo x z Hx Hz) Hy Hw.
Theorem. (add_HSNo_rotate_4_0312)
∀x y z w, HSNo xHSNo yHSNo zHSNo 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_HSNo_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_HSNo_com_4_inner_mid x y w z Hx Hy Hw Hz.
Definition. We define Octonion_i0 to be pa 0 1 of type set.
Definition. We define Octonion_i3 to be pa 0 (- Complex_i) of type set.
Definition. We define Octonion_i5 to be pa 0 (- Quaternion_k) of type set.
Definition. We define Octonion_i6 to be pa 0 (- Quaternion_j) of type set.
Let i0 ≝ Octonion_i0
Let i1 ≝ Complex_i
Let i2 ≝ Quaternion_j
Let i3 ≝ Octonion_i3
Let i4 ≝ Quaternion_k
Let i5 ≝ Octonion_i5
Let i6 ≝ Octonion_i6
Proof:
Apply HSNo_OSNo to the current goal.
An exact proof term for the current goal is HSNo_Complex_i.
Proof:
Apply HSNo_OSNo to the current goal.
An exact proof term for the current goal is HSNo_Quaternion_j.
Proof:
Apply HSNo_OSNo to the current goal.
An exact proof term for the current goal is HSNo_Quaternion_k.
Proof:
An exact proof term for the current goal is OSNo_I 0 1 HSNo_0 HSNo_1.
Proof:
An exact proof term for the current goal is OSNo_I 0 (- i) HSNo_0 (HSNo_minus_HSNo i HSNo_Complex_i).
Proof:
An exact proof term for the current goal is OSNo_I 0 (- k) HSNo_0 (HSNo_minus_HSNo k HSNo_Quaternion_k).
Proof:
An exact proof term for the current goal is OSNo_I 0 (- j) HSNo_0 (HSNo_minus_HSNo j HSNo_Quaternion_j).
Proof:
An exact proof term for the current goal is OSNo_proj0_2 0 1 HSNo_0 HSNo_1.
Proof:
An exact proof term for the current goal is OSNo_proj1_2 0 1 HSNo_0 HSNo_1.
Proof:
An exact proof term for the current goal is OSNo_proj0_2 0 (- i) HSNo_0 (HSNo_minus_HSNo i HSNo_Complex_i).
Proof:
An exact proof term for the current goal is OSNo_proj1_2 0 (- i) HSNo_0 (HSNo_minus_HSNo i HSNo_Complex_i).
Proof:
An exact proof term for the current goal is OSNo_proj0_2 0 (- k) HSNo_0 (HSNo_minus_HSNo k HSNo_Quaternion_k).
Proof:
An exact proof term for the current goal is OSNo_proj1_2 0 (- k) HSNo_0 (HSNo_minus_HSNo k HSNo_Quaternion_k).
Proof:
An exact proof term for the current goal is OSNo_proj0_2 0 (- j) HSNo_0 (HSNo_minus_HSNo j HSNo_Quaternion_j).
Proof:
An exact proof term for the current goal is OSNo_proj1_2 0 (- j) HSNo_0 (HSNo_minus_HSNo j HSNo_Quaternion_j).
Proof:
rewrite the current goal using mul_OSNo_mul_HSNo i i HSNo_Complex_i HSNo_Complex_i (from left to right).
rewrite the current goal using minus_OSNo_minus_HSNo 1 HSNo_1 (from left to right).
We will prove i * i = - 1.
An exact proof term for the current goal is Quaternion_i_sqr.
Proof:
rewrite the current goal using mul_OSNo_mul_HSNo j j HSNo_Quaternion_j HSNo_Quaternion_j (from left to right).
rewrite the current goal using minus_OSNo_minus_HSNo 1 HSNo_1 (from left to right).
We will prove j * j = - 1.
An exact proof term for the current goal is Quaternion_j_sqr.
Proof:
rewrite the current goal using mul_OSNo_mul_HSNo k k HSNo_Quaternion_k HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_OSNo_minus_HSNo 1 HSNo_1 (from left to right).
We will prove k * k = - 1.
An exact proof term for the current goal is Quaternion_k_sqr.
Proof:
rewrite the current goal using minus_OSNo_minus_HSNo 1 HSNo_1 (from left to right).
We prove the intermediate claim Li0i0: OSNo (i0 i0).
An exact proof term for the current goal is OSNo_mul_OSNo i0 i0 OSNo_Octonion_i0 OSNo_Octonion_i0.
We will prove i0 i0 = - 1.
We prove the intermediate claim L1: HSNo (- 1).
An exact proof term for the current goal is HSNo_minus_HSNo 1 HSNo_1.
Apply OSNo_proj0proj1_split (i0 i0) (- 1) Li0i0 (HSNo_OSNo (- 1) L1) to the current goal.
We will prove p0 (i0 i0) = p0 (- 1).
rewrite the current goal using HSNo_OSNo_proj0 (- 1) L1 (from left to right).
We will prove p0 (i0 i0) = - 1.
rewrite the current goal using mul_OSNo_proj0 i0 i0 OSNo_Octonion_i0 OSNo_Octonion_i0 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 0 * 0 + - (1 ' * 1) = - 1.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
We will prove 0 + - (1 ' * 1) = - 1.
rewrite the current goal using conj_HSNo_id_SNo 1 SNo_1 (from left to right).
We will prove 0 + - (1 * 1) = - 1.
rewrite the current goal using mul_HSNo_1L 1 HSNo_1 (from left to right).
We will prove 0 + - 1 = - 1.
An exact proof term for the current goal is add_HSNo_0L (- 1) L1.
We will prove p1 (i0 i0) = p1 (- 1).
rewrite the current goal using HSNo_OSNo_proj1 (- 1) L1 (from left to right).
We will prove p1 (i0 i0) = 0.
rewrite the current goal using mul_OSNo_proj1 i0 i0 OSNo_Octonion_i0 OSNo_Octonion_i0 (from left to right).
We will prove p1 i0 * p0 i0 + p1 i0 * p0 i0 ' = 0.
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 1 * 0 + 1 * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
rewrite the current goal using minus_OSNo_minus_HSNo 1 HSNo_1 (from left to right).
We prove the intermediate claim Li3i3: OSNo (i3 i3).
An exact proof term for the current goal is OSNo_mul_OSNo i3 i3 OSNo_Octonion_i3 OSNo_Octonion_i3.
We will prove i3 i3 = - 1.
We prove the intermediate claim L1: HSNo (- 1).
An exact proof term for the current goal is HSNo_minus_HSNo 1 HSNo_1.
Apply OSNo_proj0proj1_split (i3 i3) (- 1) Li3i3 (HSNo_OSNo (- 1) L1) to the current goal.
We will prove p0 (i3 i3) = p0 (- 1).
rewrite the current goal using HSNo_OSNo_proj0 (- 1) L1 (from left to right).
We will prove p0 (i3 i3) = - 1.
rewrite the current goal using mul_OSNo_proj0 i3 i3 OSNo_Octonion_i3 OSNo_Octonion_i3 (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using mul_HSNo_0R 0 HSNo_0 (from left to right).
We will prove 0 + - ((- i) ' * (- i)) = - 1.
rewrite the current goal using conj_minus_HSNo i HSNo_Complex_i (from left to right).
We will prove 0 + - ((- i ') * (- i)) = - 1.
rewrite the current goal using conj_HSNo_i (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
We will prove 0 + - (i * (- i)) = - 1.
rewrite the current goal using minus_mul_HSNo_distrR i i HSNo_Complex_i HSNo_Complex_i (from left to right).
We will prove 0 + - - i * i = - 1.
rewrite the current goal using minus_HSNo_invol (i * i) (HSNo_mul_HSNo i i HSNo_Complex_i HSNo_Complex_i) (from left to right).
rewrite the current goal using Quaternion_i_sqr (from left to right).
We will prove 0 + - 1 = - 1.
An exact proof term for the current goal is add_HSNo_0L (- 1) L1.
We will prove p1 (i3 i3) = p1 (- 1).
rewrite the current goal using HSNo_OSNo_proj1 (- 1) L1 (from left to right).
We will prove p1 (i3 i3) = 0.
rewrite the current goal using mul_OSNo_proj1 i3 i3 OSNo_Octonion_i3 OSNo_Octonion_i3 (from left to right).
We will prove p1 i3 * p0 i3 + p1 i3 * p0 i3 ' = 0.
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove (- i) * 0 + (- i) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
We will prove (- i) * 0 + (- i) * 0 = 0.
rewrite the current goal using mul_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
rewrite the current goal using minus_OSNo_minus_HSNo 1 HSNo_1 (from left to right).
We prove the intermediate claim Li5i5: OSNo (i5 i5).
An exact proof term for the current goal is OSNo_mul_OSNo i5 i5 OSNo_Octonion_i5 OSNo_Octonion_i5.
We will prove i5 i5 = - 1.
We prove the intermediate claim L1: HSNo (- 1).
An exact proof term for the current goal is HSNo_minus_HSNo 1 HSNo_1.
Apply OSNo_proj0proj1_split (i5 i5) (- 1) Li5i5 (HSNo_OSNo (- 1) L1) to the current goal.
We will prove p0 (i5 i5) = p0 (- 1).
rewrite the current goal using HSNo_OSNo_proj0 (- 1) L1 (from left to right).
We will prove p0 (i5 i5) = - 1.
rewrite the current goal using mul_OSNo_proj0 i5 i5 OSNo_Octonion_i5 OSNo_Octonion_i5 (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
We will prove 0 + - ((- k) ' * (- k)) = - 1.
rewrite the current goal using conj_minus_HSNo k HSNo_Quaternion_k (from left to right).
We will prove 0 + - ((- k ') * (- k)) = - 1.
rewrite the current goal using conj_HSNo_k (from left to right).
We will prove 0 + - ((- - k) * (- k)) = - 1.
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
We will prove 0 + - (k * (- k)) = - 1.
rewrite the current goal using minus_mul_HSNo_distrR k k HSNo_Quaternion_k HSNo_Quaternion_k (from left to right).
We will prove 0 + - - (k * k) = - 1.
rewrite the current goal using Quaternion_k_sqr (from left to right).
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
We will prove 0 + - 1 = - 1.
An exact proof term for the current goal is add_HSNo_0L (- 1) L1.
We will prove p1 (i5 i5) = p1 (- 1).
rewrite the current goal using HSNo_OSNo_proj1 (- 1) L1 (from left to right).
We will prove p1 (i5 i5) = 0.
rewrite the current goal using mul_OSNo_proj1 i5 i5 OSNo_Octonion_i5 OSNo_Octonion_i5 (from left to right).
We will prove p1 i5 * p0 i5 + p1 i5 * p0 i5 ' = 0.
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove (- k) * 0 + (- k) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
rewrite the current goal using minus_OSNo_minus_HSNo 1 HSNo_1 (from left to right).
We prove the intermediate claim Li6i6: OSNo (i6 i6).
An exact proof term for the current goal is OSNo_mul_OSNo i6 i6 OSNo_Octonion_i6 OSNo_Octonion_i6.
We will prove i6 i6 = - 1.
We prove the intermediate claim L1: HSNo (- 1).
An exact proof term for the current goal is HSNo_minus_HSNo 1 HSNo_1.
Apply OSNo_proj0proj1_split (i6 i6) (- 1) Li6i6 (HSNo_OSNo (- 1) L1) to the current goal.
We will prove p0 (i6 i6) = p0 (- 1).
rewrite the current goal using HSNo_OSNo_proj0 (- 1) L1 (from left to right).
We will prove p0 (i6 i6) = - 1.
rewrite the current goal using mul_OSNo_proj0 i6 i6 OSNo_Octonion_i6 OSNo_Octonion_i6 (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
We will prove 0 + - ((- j) ' * (- j)) = - 1.
rewrite the current goal using conj_minus_HSNo j HSNo_Quaternion_j (from left to right).
We will prove 0 + - ((- j ') * (- j)) = - 1.
rewrite the current goal using conj_HSNo_j (from left to right).
We will prove 0 + - ((- - j) * (- j)) = - 1.
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
We will prove 0 + - (j * (- j)) = - 1.
rewrite the current goal using minus_mul_HSNo_distrR j j HSNo_Quaternion_j HSNo_Quaternion_j (from left to right).
We will prove 0 + - - (j * j) = - 1.
rewrite the current goal using Quaternion_j_sqr (from left to right).
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
We will prove 0 + - 1 = - 1.
An exact proof term for the current goal is add_HSNo_0L (- 1) L1.
We will prove p1 (i6 i6) = p1 (- 1).
rewrite the current goal using HSNo_OSNo_proj1 (- 1) L1 (from left to right).
We will prove p1 (i6 i6) = 0.
rewrite the current goal using mul_OSNo_proj1 i6 i6 OSNo_Octonion_i6 OSNo_Octonion_i6 (from left to right).
We will prove p1 i6 * p0 i6 + p1 i6 * p0 i6 ' = 0.
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove (- j) * 0 + (- j) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li1i2: OSNo (i1 i2).
An exact proof term for the current goal is OSNo_mul_OSNo i1 i2 ?? ??.
Apply OSNo_proj0proj1_split (i1 i2) i4 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using mul_OSNo_proj0 i1 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove i * j + - (0 ' * 0) = k.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using add_HSNo_0R (i * j) (HSNo_mul_HSNo i j HSNo_Complex_i HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is Quaternion_i_j.
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using mul_OSNo_proj1 i1 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove 0 * i + 0 * j ' = 0.
rewrite the current goal using mul_HSNo_0L (j ') (HSNo_conj_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using mul_HSNo_0L i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li2i1: OSNo (i2 i1).
An exact proof term for the current goal is OSNo_mul_OSNo i2 i1 ?? ??.
Apply OSNo_proj0proj1_split (i2 i1) (:-: i4) ?? (OSNo_minus_OSNo i4 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i4 ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using mul_OSNo_proj0 i2 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove j * i + - (0 ' * 0) = - k.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using add_HSNo_0R (j * i) (HSNo_mul_HSNo j i HSNo_Quaternion_j HSNo_Complex_i) (from left to right).
An exact proof term for the current goal is Quaternion_j_i.
rewrite the current goal using minus_OSNo_proj1 i4 ?? (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using mul_OSNo_proj1 i2 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove 0 * j + 0 * i ' = - 0.
rewrite the current goal using mul_HSNo_0L (i ') (HSNo_conj_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using mul_HSNo_0L j HSNo_Quaternion_j (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li2i4: OSNo (i2 i4).
An exact proof term for the current goal is OSNo_mul_OSNo i2 i4 ?? ??.
Apply OSNo_proj0proj1_split (i2 i4) i1 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using mul_OSNo_proj0 i2 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove j * k + - (0 ' * 0) = i.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using add_HSNo_0R (j * k) (HSNo_mul_HSNo j k HSNo_Quaternion_j HSNo_Quaternion_k) (from left to right).
An exact proof term for the current goal is Quaternion_j_k.
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using mul_OSNo_proj1 i2 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove 0 * j + 0 * k ' = 0.
rewrite the current goal using mul_HSNo_0L (k ') (HSNo_conj_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using mul_HSNo_0L j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li4i2: OSNo (i4 i2).
An exact proof term for the current goal is OSNo_mul_OSNo i4 i2 ?? ??.
Apply OSNo_proj0proj1_split (i4 i2) (:-: i1) ?? (OSNo_minus_OSNo i1 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i1 ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using mul_OSNo_proj0 i4 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove k * j + - (0 ' * 0) = - i.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using add_HSNo_0R (k * j) (HSNo_mul_HSNo k j HSNo_Quaternion_k HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is Quaternion_k_j.
rewrite the current goal using minus_OSNo_proj1 i1 ?? (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using mul_OSNo_proj1 i4 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove 0 * k + 0 * j ' = - 0.
rewrite the current goal using mul_HSNo_0L (j ') (HSNo_conj_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using mul_HSNo_0L k HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li4i1: OSNo (i4 i1).
An exact proof term for the current goal is OSNo_mul_OSNo i4 i1 ?? ??.
Apply OSNo_proj0proj1_split (i4 i1) i2 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using mul_OSNo_proj0 i4 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove k * i + - (0 ' * 0) = j.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using add_HSNo_0R (k * i) (HSNo_mul_HSNo k i HSNo_Quaternion_k HSNo_Complex_i) (from left to right).
An exact proof term for the current goal is Quaternion_k_i.
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using mul_OSNo_proj1 i4 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove 0 * k + 0 * i ' = 0.
rewrite the current goal using mul_HSNo_0L (i ') (HSNo_conj_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using mul_HSNo_0L k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li1i4: OSNo (i1 i4).
An exact proof term for the current goal is OSNo_mul_OSNo i1 i4 ?? ??.
Apply OSNo_proj0proj1_split (i1 i4) (:-: i2) ?? (OSNo_minus_OSNo i2 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i2 ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using mul_OSNo_proj0 i1 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove i * k + - (0 ' * 0) = - j.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using add_HSNo_0R (i * k) (HSNo_mul_HSNo i k HSNo_Complex_i HSNo_Quaternion_k) (from left to right).
An exact proof term for the current goal is Quaternion_i_k.
rewrite the current goal using minus_OSNo_proj1 i2 ?? (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using mul_OSNo_proj1 i1 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove 0 * i + 0 * k ' = - 0.
rewrite the current goal using mul_HSNo_0L (k ') (HSNo_conj_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using mul_HSNo_0L i HSNo_Complex_i (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li2i3: OSNo (i2 i3).
An exact proof term for the current goal is OSNo_mul_OSNo i2 i3 ?? ??.
Apply OSNo_proj0proj1_split (i2 i3) i5 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i2 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove j * 0 + - ((- i) ' * 0) = 0.
rewrite the current goal using mul_HSNo_0R j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_0R ((- i) ') (HSNo_conj_HSNo (- i) (HSNo_minus_HSNo i HSNo_Complex_i)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i2 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove (- i) * j + 0 * 0 ' = (- k).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL i j HSNo_Complex_i HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_i_j (from left to right).
An exact proof term for the current goal is add_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k).
Proof:
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li3i2: OSNo (i3 i2).
An exact proof term for the current goal is OSNo_mul_OSNo i3 i2 ?? ??.
Apply OSNo_proj0proj1_split (i3 i2) (:-: i5) ?? (OSNo_minus_OSNo i5 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i5 ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i3 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove 0 * j + - (0 ' * (- i)) = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_0L (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i5 ?? (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i3 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove 0 * 0 + (- i) * j ' = - (- k).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_j (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL i (- j) HSNo_Complex_i (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR i j HSNo_Complex_i HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_i_j (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0L k HSNo_Quaternion_k.
Proof:
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li3i5: OSNo (i3 i5).
An exact proof term for the current goal is OSNo_mul_OSNo i3 i5 ?? ??.
Apply OSNo_proj0proj1_split (i3 i5) i2 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using mul_OSNo_proj0 i3 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove 0 * 0 + - ((- k) ' * (- i)) = j.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo k HSNo_Quaternion_k (from left to right).
rewrite the current goal using conj_HSNo_k (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
We will prove 0 + - (k * (- i)) = j.
rewrite the current goal using minus_mul_HSNo_distrR k i HSNo_Quaternion_k HSNo_Complex_i (from left to right).
rewrite the current goal using Quaternion_k_i (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L j HSNo_Quaternion_j.
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using mul_OSNo_proj1 i3 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove (- k) * 0 + (- i) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using mul_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li5i3: OSNo (i5 i3).
An exact proof term for the current goal is OSNo_mul_OSNo i5 i3 ?? ??.
Apply OSNo_proj0proj1_split (i5 i3) (:-: i2) ?? (OSNo_minus_OSNo i2 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i2 ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using mul_OSNo_proj0 i5 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove 0 * 0 + - ((- i) ' * (- k)) = - j.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo i HSNo_Complex_i (from left to right).
rewrite the current goal using conj_HSNo_i (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
We will prove 0 + - (i * (- k)) = - j.
rewrite the current goal using minus_mul_HSNo_distrR i k HSNo_Complex_i HSNo_Quaternion_k (from left to right).
rewrite the current goal using Quaternion_i_k (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j).
rewrite the current goal using minus_OSNo_proj1 i2 ?? (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using mul_OSNo_proj1 i5 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove (- i) * 0 + (- k) * 0 ' = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using mul_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li5i2: OSNo (i5 i2).
An exact proof term for the current goal is OSNo_mul_OSNo i5 i2 ?? ??.
Apply OSNo_proj0proj1_split (i5 i2) i3 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i5 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove 0 * j + - (0 ' * (- k)) = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_0L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i5 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove 0 * 0 + (- k) * j ' = (- i).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_j (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR (- k) j (HSNo_minus_HSNo k HSNo_Quaternion_k) HSNo_Quaternion_j (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL k j HSNo_Quaternion_k HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_k_j (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- i) (HSNo_minus_HSNo i HSNo_Complex_i).
Proof:
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li2i5: OSNo (i2 i5).
An exact proof term for the current goal is OSNo_mul_OSNo i2 i5 ?? ??.
Apply OSNo_proj0proj1_split (i2 i5) (:-: i3) ?? (OSNo_minus_OSNo i3 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i3 ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i2 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove j * 0 + - ((- k) ' * 0) = - 0.
rewrite the current goal using mul_HSNo_0R j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_0R ((- k) ') (HSNo_conj_HSNo (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i3 ?? (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i2 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove (- k) * j + 0 * 0 ' = - (- i).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL k j HSNo_Quaternion_k HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_k_j (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0R i HSNo_Complex_i.
Proof:
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li3i4: OSNo (i3 i4).
An exact proof term for the current goal is OSNo_mul_OSNo i3 i4 ?? ??.
Apply OSNo_proj0proj1_split (i3 i4) i6 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i3 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove 0 * k + - (0 ' * (- i)) = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0L (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i3 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove 0 * 0 + (- i) * k ' = (- j).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_k (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR (- i) k (HSNo_minus_HSNo i HSNo_Complex_i) HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL i k HSNo_Complex_i HSNo_Quaternion_k (from left to right).
rewrite the current goal using Quaternion_i_k (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j).
Proof:
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li4i3: OSNo (i4 i3).
An exact proof term for the current goal is OSNo_mul_OSNo i4 i3 ?? ??.
Apply OSNo_proj0proj1_split (i4 i3) (:-: i6) ?? (OSNo_minus_OSNo i6 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i6 ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i4 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove k * 0 + - ((- i) ' * 0) = - 0.
rewrite the current goal using mul_HSNo_0R k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0R ((- i) ') (HSNo_conj_HSNo (- i) (HSNo_minus_HSNo i HSNo_Complex_i)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i6 ?? (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i4 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove (- i) * k + 0 * 0 ' = - (- j).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL i k HSNo_Complex_i HSNo_Quaternion_k (from left to right).
We will prove - i * k + 0 = - - j.
rewrite the current goal using Quaternion_i_k (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0R j HSNo_Quaternion_j.
Proof:
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li4i6: OSNo (i4 i6).
An exact proof term for the current goal is OSNo_mul_OSNo i4 i6 ?? ??.
Apply OSNo_proj0proj1_split (i4 i6) i3 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i4 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove k * 0 + - ((- j) ' * 0) = 0.
rewrite the current goal using mul_HSNo_0R k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0R ((- j) ') (HSNo_conj_HSNo (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i4 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove (- j) * k + 0 * 0 ' = (- i).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL j k HSNo_Quaternion_j HSNo_Quaternion_k (from left to right).
rewrite the current goal using Quaternion_j_k (from left to right).
An exact proof term for the current goal is add_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i).
Proof:
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li6i4: OSNo (i6 i4).
An exact proof term for the current goal is OSNo_mul_OSNo i6 i4 ?? ??.
Apply OSNo_proj0proj1_split (i6 i4) (:-: i3) ?? (OSNo_minus_OSNo i3 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i3 ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i6 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove 0 * k + - (0 ' * (- j)) = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0L (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i3 ?? (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i6 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove 0 * 0 + (- j) * k ' = - (- i).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_k (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR (- j) k (HSNo_minus_HSNo j HSNo_Quaternion_j) HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL j k HSNo_Quaternion_j HSNo_Quaternion_k (from left to right).
rewrite the current goal using Quaternion_j_k (from left to right).
We will prove 0 + - - i = - - i.
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L i HSNo_Complex_i.
Proof:
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li6i3: OSNo (i6 i3).
An exact proof term for the current goal is OSNo_mul_OSNo i6 i3 ?? ??.
Apply OSNo_proj0proj1_split (i6 i3) i4 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using mul_OSNo_proj0 i6 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove 0 * 0 + - ((- i) ' * (- j)) = k.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo i HSNo_Complex_i (from left to right).
rewrite the current goal using conj_HSNo_i (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
We will prove 0 + - (i * (- j)) = k.
rewrite the current goal using minus_mul_HSNo_distrR i j HSNo_Complex_i HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_i_j (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0L k HSNo_Quaternion_k.
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using mul_OSNo_proj1 i6 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove (- i) * 0 + (- j) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using mul_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li3i6: OSNo (i3 i6).
An exact proof term for the current goal is OSNo_mul_OSNo i3 i6 ?? ??.
Apply OSNo_proj0proj1_split (i3 i6) (:-: i4) ?? (OSNo_minus_OSNo i4 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i4 ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using mul_OSNo_proj0 i3 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove 0 * 0 + - ((- j) ' * (- i)) = - k.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo j HSNo_Quaternion_j (from left to right).
rewrite the current goal using conj_HSNo_j (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
We will prove 0 + - (j * (- i)) = - k.
rewrite the current goal using minus_mul_HSNo_distrR j i HSNo_Quaternion_j HSNo_Complex_i (from left to right).
rewrite the current goal using Quaternion_j_i (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k).
rewrite the current goal using minus_OSNo_proj1 i4 ?? (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using mul_OSNo_proj1 i3 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove (- j) * 0 + (- i) * 0 ' = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using mul_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li4i5: OSNo (i4 i5).
An exact proof term for the current goal is OSNo_mul_OSNo i4 i5 ?? ??.
Apply OSNo_proj0proj1_split (i4 i5) i0 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i4 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove k * 0 + - ((- k) ' * 0) = 0.
rewrite the current goal using mul_HSNo_0R k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0R ((- k) ') (HSNo_conj_HSNo (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i4 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove (- k) * k + 0 * 0 ' = 1.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL k k HSNo_Quaternion_k HSNo_Quaternion_k (from left to right).
rewrite the current goal using Quaternion_k_sqr (from left to right).
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0R 1 HSNo_1.
Proof:
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li5i4: OSNo (i5 i4).
An exact proof term for the current goal is OSNo_mul_OSNo i5 i4 ?? ??.
Apply OSNo_proj0proj1_split (i5 i4) (:-: i0) ?? (OSNo_minus_OSNo i0 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i0 ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i5 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove 0 * k + - (0 ' * (- k)) = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i0 ?? (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i5 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove 0 * 0 + (- k) * k ' = - 1.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_k (from left to right).
We will prove 0 + (- k) * (- k) = - 1.
rewrite the current goal using minus_mul_HSNo_distrL k (- k) HSNo_Quaternion_k (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR k k HSNo_Quaternion_k HSNo_Quaternion_k (from left to right).
We will prove 0 + - - k * k = - 1.
rewrite the current goal using Quaternion_k_sqr (from left to right).
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- 1) (HSNo_minus_HSNo 1 HSNo_1).
Proof:
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li5i0: OSNo (i5 i0).
An exact proof term for the current goal is OSNo_mul_OSNo i5 i0 ?? ??.
Apply OSNo_proj0proj1_split (i5 i0) i4 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using mul_OSNo_proj0 i5 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 0 * 0 + - (1 ' * (- k)) = k.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_id_SNo 1 SNo_1 (from left to right).
rewrite the current goal using mul_HSNo_1L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
We will prove 0 + - - k = k.
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0L k HSNo_Quaternion_k.
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using mul_OSNo_proj1 i5 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 1 * 0 + (- k) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using mul_HSNo_0R 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li0i5: OSNo (i0 i5).
An exact proof term for the current goal is OSNo_mul_OSNo i0 i5 ?? ??.
Apply OSNo_proj0proj1_split (i0 i5) (:-: i4) ?? (OSNo_minus_OSNo i4 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i4 ?? (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using mul_OSNo_proj0 i0 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 0 * 0 + - ((- k) ' * 1) = - k.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo k HSNo_Quaternion_k (from left to right).
rewrite the current goal using conj_HSNo_k (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
We will prove 0 + - (k * 1) = - k.
rewrite the current goal using mul_HSNo_1R k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k).
rewrite the current goal using minus_OSNo_proj1 i4 ?? (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
rewrite the current goal using mul_OSNo_proj1 i0 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove (- k) * 0 + 1 * 0 ' = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 1 HSNo_1 (from left to right).
rewrite the current goal using mul_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li0i4: OSNo (i0 i4).
An exact proof term for the current goal is OSNo_mul_OSNo i0 i4 ?? ??.
Apply OSNo_proj0proj1_split (i0 i4) i5 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i0 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove 0 * k + - (0 ' * 1) = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0L 1 HSNo_1 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i0 i4 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove 0 * 0 + 1 * k ' = (- k).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_1L (k ') (HSNo_conj_HSNo k HSNo_Quaternion_k) (from left to right).
We will prove 0 + k ' = (- k).
rewrite the current goal using conj_HSNo_k (from left to right).
We will prove 0 + - k = (- k).
An exact proof term for the current goal is add_HSNo_0L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k).
Proof:
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li4: OSNo i4.
An exact proof term for the current goal is OSNo_Quaternion_k.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li4i0: OSNo (i4 i0).
An exact proof term for the current goal is OSNo_mul_OSNo i4 i0 ?? ??.
Apply OSNo_proj0proj1_split (i4 i0) (:-: i5) ?? (OSNo_minus_OSNo i5 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i5 ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i4 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove k * 0 + - (1 ' * 0) = - 0.
rewrite the current goal using mul_HSNo_0R k HSNo_Quaternion_k (from left to right).
rewrite the current goal using mul_HSNo_0R (1 ') (HSNo_conj_HSNo 1 HSNo_1) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i5 ?? (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i4 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_k (from left to right).
rewrite the current goal using OSNo_p1_k (from left to right).
We will prove 1 * k + 0 * 0 ' = - (- k).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_1L k HSNo_Quaternion_k (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0R k HSNo_Quaternion_k.
Proof:
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li5i6: OSNo (i5 i6).
An exact proof term for the current goal is OSNo_mul_OSNo i5 i6 ?? ??.
Apply OSNo_proj0proj1_split (i5 i6) i1 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using mul_OSNo_proj0 i5 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove 0 * 0 + - ((- j) ' * (- k)) = i.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo j HSNo_Quaternion_j (from left to right).
rewrite the current goal using conj_HSNo_j (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
We will prove 0 + - (j * (- k)) = i.
rewrite the current goal using minus_mul_HSNo_distrR j k HSNo_Quaternion_j HSNo_Quaternion_k (from left to right).
rewrite the current goal using Quaternion_j_k (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L i HSNo_Complex_i.
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using mul_OSNo_proj1 i5 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove (- j) * 0 + (- k) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using mul_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li6i5: OSNo (i6 i5).
An exact proof term for the current goal is OSNo_mul_OSNo i6 i5 ?? ??.
Apply OSNo_proj0proj1_split (i6 i5) (:-: i1) ?? (OSNo_minus_OSNo i1 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i1 ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using mul_OSNo_proj0 i6 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove 0 * 0 + - ((- k) ' * (- j)) = - i.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo k HSNo_Quaternion_k (from left to right).
rewrite the current goal using conj_HSNo_k (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
We will prove 0 + - (k * (- j)) = - i.
rewrite the current goal using minus_mul_HSNo_distrR k j HSNo_Quaternion_k HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_k_j (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- i) (HSNo_minus_HSNo i HSNo_Complex_i).
rewrite the current goal using minus_OSNo_proj1 i1 ?? (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using mul_OSNo_proj1 i6 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove (- k) * 0 + (- j) * 0 ' = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using mul_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li6i1: OSNo (i6 i1).
An exact proof term for the current goal is OSNo_mul_OSNo i6 i1 ?? ??.
Apply OSNo_proj0proj1_split (i6 i1) i5 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i6 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove 0 * i + - (0 ' * (- j)) = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_0L (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i6 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove 0 * 0 + (- j) * i ' = (- k).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_i (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL j (- i) HSNo_Quaternion_j (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR j i HSNo_Quaternion_j HSNo_Complex_i (from left to right).
rewrite the current goal using Quaternion_j_i (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k).
Proof:
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li1i6: OSNo (i1 i6).
An exact proof term for the current goal is OSNo_mul_OSNo i1 i6 ?? ??.
Apply OSNo_proj0proj1_split (i1 i6) (:-: i5) ?? (OSNo_minus_OSNo i5 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i5 ?? (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i1 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove i * 0 + - ((- j) ' * 0) = - 0.
rewrite the current goal using mul_HSNo_0R i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_0R ((- j) ') (HSNo_conj_HSNo (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i5 ?? (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i1 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove (- j) * i + 0 * 0 ' = - (- k).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL j i HSNo_Quaternion_j HSNo_Complex_i (from left to right).
rewrite the current goal using Quaternion_j_i (from left to right).
rewrite the current goal using minus_HSNo_invol k HSNo_Quaternion_k (from left to right).
We will prove k + 0 = k.
An exact proof term for the current goal is add_HSNo_0R k HSNo_Quaternion_k.
Proof:
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li1i5: OSNo (i1 i5).
An exact proof term for the current goal is OSNo_mul_OSNo i1 i5 ?? ??.
Apply OSNo_proj0proj1_split (i1 i5) i6 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i1 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove i * 0 + - ((- k) ' * 0) = 0.
rewrite the current goal using mul_HSNo_0R i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_0R ((- k) ') (HSNo_conj_HSNo (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i1 i5 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove (- k) * i + 0 * 0 ' = (- j).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL k i HSNo_Quaternion_k HSNo_Complex_i (from left to right).
rewrite the current goal using Quaternion_k_i (from left to right).
An exact proof term for the current goal is add_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j).
Proof:
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li5: OSNo i5.
An exact proof term for the current goal is OSNo_Octonion_i5.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li5i1: OSNo (i5 i1).
An exact proof term for the current goal is OSNo_mul_OSNo i5 i1 ?? ??.
Apply OSNo_proj0proj1_split (i5 i1) (:-: i6) ?? (OSNo_minus_OSNo i6 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i6 ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i5 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove 0 * i + - (0 ' * (- k)) = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_0L (- k) (HSNo_minus_HSNo k HSNo_Quaternion_k) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i6 ?? (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i5 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i5 (from left to right).
rewrite the current goal using OSNo_p1_i5 (from left to right).
We will prove 0 * 0 + (- k) * i ' = - (- j).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_i (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL k (- i) HSNo_Quaternion_k (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR k i HSNo_Quaternion_k HSNo_Complex_i (from left to right).
rewrite the current goal using Quaternion_k_i (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L j HSNo_Quaternion_j.
Proof:
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li6i0: OSNo (i6 i0).
An exact proof term for the current goal is OSNo_mul_OSNo i6 i0 ?? ??.
Apply OSNo_proj0proj1_split (i6 i0) i2 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using mul_OSNo_proj0 i6 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 0 * 0 + - (1 ' * (- j)) = j.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_id_SNo 1 SNo_1 (from left to right).
rewrite the current goal using mul_HSNo_1L (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L j HSNo_Quaternion_j.
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using mul_OSNo_proj1 i6 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 1 * 0 + (- j) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 1 HSNo_1 (from left to right).
rewrite the current goal using mul_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li0i6: OSNo (i0 i6).
An exact proof term for the current goal is OSNo_mul_OSNo i0 i6 ?? ??.
Apply OSNo_proj0proj1_split (i0 i6) (:-: i2) ?? (OSNo_minus_OSNo i2 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i2 ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using mul_OSNo_proj0 i0 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 0 * 0 + - ((- j) ' * 1) = - j.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo j HSNo_Quaternion_j (from left to right).
rewrite the current goal using conj_HSNo_j (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
We will prove 0 + - (j * 1) = - j.
rewrite the current goal using mul_HSNo_1R j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j).
rewrite the current goal using minus_OSNo_proj1 i2 ?? (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using mul_OSNo_proj1 i0 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove (- j) * 0 + 1 * 0 ' = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 1 HSNo_1 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li0i2: OSNo (i0 i2).
An exact proof term for the current goal is OSNo_mul_OSNo i0 i2 ?? ??.
Apply OSNo_proj0proj1_split (i0 i2) i6 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i0 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove 0 * j + - (0 ' * 1) = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 1 HSNo_1 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i0 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove 0 * 0 + 1 * j ' = (- j).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_1L (j ') (HSNo_conj_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using add_HSNo_0L (j ') (HSNo_conj_HSNo j HSNo_Quaternion_j) (from left to right).
We will prove j ' = - j.
An exact proof term for the current goal is conj_HSNo_j.
Proof:
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li2i0: OSNo (i2 i0).
An exact proof term for the current goal is OSNo_mul_OSNo i2 i0 ?? ??.
Apply OSNo_proj0proj1_split (i2 i0) (:-: i6) ?? (OSNo_minus_OSNo i6 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i6 ?? (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i2 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove j * 0 + - (1 ' * 0) = - 0.
rewrite the current goal using mul_HSNo_0R j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_0R (1 ') (HSNo_conj_HSNo 1 HSNo_1) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i6 ?? (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i2 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
We will prove 1 * j + 0 * 0 ' = - (- j).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_invol j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_1L j HSNo_Quaternion_j (from left to right).
An exact proof term for the current goal is add_HSNo_0R j HSNo_Quaternion_j.
Proof:
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li2i6: OSNo (i2 i6).
An exact proof term for the current goal is OSNo_mul_OSNo i2 i6 ?? ??.
Apply OSNo_proj0proj1_split (i2 i6) i0 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i2 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove j * 0 + - ((- j) ' * 0) = 0.
rewrite the current goal using mul_HSNo_0R j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_0R ((- j) ') (HSNo_conj_HSNo (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i2 i6 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove (- j) * j + 0 * 0 ' = 1.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL j j HSNo_Quaternion_j HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_j_sqr (from left to right).
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0R 1 HSNo_1.
Proof:
We prove the intermediate claim Li2: OSNo i2.
An exact proof term for the current goal is OSNo_Quaternion_j.
We prove the intermediate claim Li6: OSNo i6.
An exact proof term for the current goal is OSNo_Octonion_i6.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li6i2: OSNo (i6 i2).
An exact proof term for the current goal is OSNo_mul_OSNo i6 i2 ?? ??.
Apply OSNo_proj0proj1_split (i6 i2) (:-: i0) ?? (OSNo_minus_OSNo i0 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i0 ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i6 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove 0 * j + - (0 ' * (- j)) = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L j HSNo_Quaternion_j (from left to right).
rewrite the current goal using mul_HSNo_0L (- j) (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i0 ?? (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i6 i2 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_j (from left to right).
rewrite the current goal using OSNo_p1_j (from left to right).
rewrite the current goal using OSNo_p0_i6 (from left to right).
rewrite the current goal using OSNo_p1_i6 (from left to right).
We will prove 0 * 0 + (- j) * j ' = - 1.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_j (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL j (- j) HSNo_Quaternion_j (HSNo_minus_HSNo j HSNo_Quaternion_j) (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR j j HSNo_Quaternion_j HSNo_Quaternion_j (from left to right).
rewrite the current goal using Quaternion_j_sqr (from left to right).
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- 1) (HSNo_minus_HSNo 1 HSNo_1).
Proof:
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li0i1: OSNo (i0 i1).
An exact proof term for the current goal is OSNo_mul_OSNo i0 i1 ?? ??.
Apply OSNo_proj0proj1_split (i0 i1) i3 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i0 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove 0 * i + - (0 ' * 1) = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 1 HSNo_1 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i0 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove 0 * 0 + 1 * i ' = (- i).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_1L (i ') (HSNo_conj_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using add_HSNo_0L (i ') (HSNo_conj_HSNo i HSNo_Complex_i) (from left to right).
An exact proof term for the current goal is conj_HSNo_i.
Proof:
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li1i0: OSNo (i1 i0).
An exact proof term for the current goal is OSNo_mul_OSNo i1 i0 ?? ??.
Apply OSNo_proj0proj1_split (i1 i0) (:-: i3) ?? (OSNo_minus_OSNo i3 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i3 ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i1 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove i * 0 + - (1 ' * 0) = - 0.
rewrite the current goal using mul_HSNo_0R i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_0R (1 ') (HSNo_conj_HSNo 1 HSNo_1) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i3 ?? (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i1 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
We will prove 1 * i + 0 * 0 ' = - (- i).
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_1L i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0R i HSNo_Complex_i.
Proof:
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li1i3: OSNo (i1 i3).
An exact proof term for the current goal is OSNo_mul_OSNo i1 i3 ?? ??.
Apply OSNo_proj0proj1_split (i1 i3) i0 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i1 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove i * 0 + - ((- i) ' * 0) = 0.
rewrite the current goal using mul_HSNo_0R i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_0R ((- i) ') (HSNo_conj_HSNo (- i) (HSNo_minus_HSNo i HSNo_Complex_i)) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i1 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove (- i) * i + 0 * 0 ' = 1.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL i i HSNo_Complex_i HSNo_Complex_i (from left to right).
We will prove - i * i + 0 = 1.
rewrite the current goal using Quaternion_i_sqr (from left to right).
We will prove - - 1 + 0 = 1.
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0R 1 HSNo_1.
Proof:
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li3i1: OSNo (i3 i1).
An exact proof term for the current goal is OSNo_mul_OSNo i3 i1 ?? ??.
Apply OSNo_proj0proj1_split (i3 i1) (:-: i0) ?? (OSNo_minus_OSNo i0 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i0 ?? (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj0 i3 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove 0 * i + - (0 ' * (- i)) = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0L i HSNo_Complex_i (from left to right).
rewrite the current goal using mul_HSNo_0L (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
rewrite the current goal using minus_OSNo_proj1 i0 ?? (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
rewrite the current goal using mul_OSNo_proj1 i3 i1 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
We will prove 0 * 0 + (- i) * i ' = - 1.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_i (from left to right).
rewrite the current goal using minus_mul_HSNo_distrL i (- i) HSNo_Complex_i (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using minus_mul_HSNo_distrR i i HSNo_Complex_i HSNo_Complex_i (from left to right).
rewrite the current goal using Quaternion_i_sqr (from left to right).
rewrite the current goal using minus_HSNo_invol 1 HSNo_1 (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- 1) (HSNo_minus_HSNo 1 HSNo_1).
Proof:
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li3i0: OSNo (i3 i0).
An exact proof term for the current goal is OSNo_mul_OSNo i3 i0 ?? ??.
Apply OSNo_proj0proj1_split (i3 i0) i1 ?? ?? to the current goal.
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using mul_OSNo_proj0 i3 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 0 * 0 + - (1 ' * (- i)) = i.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_HSNo_id_SNo 1 SNo_1 (from left to right).
rewrite the current goal using mul_HSNo_1L (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L i HSNo_Complex_i.
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using mul_OSNo_proj1 i3 i0 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 1 * 0 + (- i) * 0 ' = 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 1 HSNo_1 (from left to right).
rewrite the current goal using mul_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
Proof:
We prove the intermediate claim Li3: OSNo i3.
An exact proof term for the current goal is OSNo_Octonion_i3.
We prove the intermediate claim Li0: OSNo i0.
An exact proof term for the current goal is OSNo_Octonion_i0.
We prove the intermediate claim Li1: OSNo i1.
An exact proof term for the current goal is OSNo_Complex_i.
We prove the intermediate claim Li0i3: OSNo (i0 i3).
An exact proof term for the current goal is OSNo_mul_OSNo i0 i3 ?? ??.
Apply OSNo_proj0proj1_split (i0 i3) (:-: i1) ?? (OSNo_minus_OSNo i1 ??) to the current goal.
rewrite the current goal using minus_OSNo_proj0 i1 ?? (from left to right).
rewrite the current goal using OSNo_p0_i (from left to right).
rewrite the current goal using mul_OSNo_proj0 i0 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove 0 * 0 + - ((- i) ' * 1) = - i.
rewrite the current goal using mul_HSNo_0L 0 HSNo_0 (from left to right).
rewrite the current goal using conj_minus_HSNo i HSNo_Complex_i (from left to right).
rewrite the current goal using conj_HSNo_i (from left to right).
rewrite the current goal using minus_HSNo_invol i HSNo_Complex_i (from left to right).
We will prove 0 + - (i * 1) = - i.
rewrite the current goal using mul_HSNo_1R i HSNo_Complex_i (from left to right).
An exact proof term for the current goal is add_HSNo_0L (- i) (HSNo_minus_HSNo i HSNo_Complex_i).
rewrite the current goal using minus_OSNo_proj1 i1 ?? (from left to right).
rewrite the current goal using OSNo_p1_i (from left to right).
rewrite the current goal using mul_OSNo_proj1 i0 i3 ?? ?? (from left to right).
rewrite the current goal using OSNo_p0_i3 (from left to right).
rewrite the current goal using OSNo_p1_i3 (from left to right).
rewrite the current goal using OSNo_p0_i0 (from left to right).
rewrite the current goal using OSNo_p1_i0 (from left to right).
We will prove (- i) * 0 + 1 * 0 ' = - 0.
rewrite the current goal using conj_HSNo_id_SNo 0 SNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R 1 HSNo_1 (from left to right).
rewrite the current goal using minus_HSNo_0 (from left to right).
rewrite the current goal using mul_HSNo_0R (- i) (HSNo_minus_HSNo i HSNo_Complex_i) (from left to right).
An exact proof term for the current goal is add_HSNo_0L 0 HSNo_0.
End of Section SurOctonions
Beginning of Section Octonions
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_OSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_OSNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_OSNo.
Let i0 ≝ Octonion_i0
Let i1 ≝ Complex_i
Let i2 ≝ Quaternion_j
Let i3 ≝ Octonion_i3
Let i4 ≝ Quaternion_k
Let i5 ≝ Octonion_i5
Let i6 ≝ Octonion_i6
Let i ≝ Complex_i
Let j ≝ Quaternion_j
Let k ≝ Quaternion_k
Let p0 : setsetOSNo_proj0
Let p1 : setsetOSNo_proj1
Let pa : setsetsetHSNo_pair
Definition. We define octonion to be {pa (u 0) (u 1)|u ∈ quaternionquaternion} of type set.
Theorem. (octonion_I)
∀x yquaternion, pa x y octonion
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
We will prove pa x y octonion.
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) octonion.
Apply ReplI (quaternionquaternion) (λu ⇒ pa (u 0) (u 1)) to the current goal.
We will prove (x,y) quaternionquaternion.
An exact proof term for the current goal is tuple_2_setprod quaternion quaternion x Hx y Hy.
Theorem. (octonion_E)
∀zoctonion, ∀p : prop, (∀x yquaternion, z = pa x yp)p
Proof:
Let z be given.
Assume Hz.
Let p be given.
Assume Hp.
Apply ReplE_impred (quaternionquaternion) (λu ⇒ pa (u 0) (u 1)) z Hz to the current goal.
Let u be given.
Assume Hu: u quaternionquaternion.
Assume Hzu: z = pa (u 0) (u 1).
An exact proof term for the current goal is Hp (u 0) (ap0_Sigma quaternion (λ_ ⇒ quaternion) u Hu) (u 1) (ap1_Sigma quaternion (λ_ ⇒ quaternion) u Hu) Hzu.
Proof:
Let z be given.
Assume Hz.
Apply octonion_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 OSNo z.
rewrite the current goal using Hzxy (from left to right).
Apply OSNo_I to the current goal.
An exact proof term for the current goal is quaternion_HSNo x Hx.
An exact proof term for the current goal is quaternion_HSNo y Hy.
Proof:
Let x be given.
Assume Hx: x quaternion.
We will prove x octonion.
rewrite the current goal using HSNo_pair_0 x (from right to left).
We will prove pa x 0 octonion.
Apply octonion_I to the current goal.
An exact proof term for the current goal is Hx.
An exact proof term for the current goal is quaternion_0.
Proof:
An exact proof term for the current goal is quaternion_octonion 0 quaternion_0.
Proof:
An exact proof term for the current goal is quaternion_octonion 1 quaternion_1.
Proof:
An exact proof term for the current goal is quaternion_octonion i quaternion_i.
Proof:
An exact proof term for the current goal is quaternion_octonion j quaternion_j.
Proof:
An exact proof term for the current goal is quaternion_octonion k quaternion_k.
Proof:
We will prove pa 0 1 octonion.
Apply octonion_I to the current goal.
An exact proof term for the current goal is quaternion_0.
An exact proof term for the current goal is quaternion_1.
Proof:
We will prove pa 0 (minus_HSNo i) octonion.
Apply octonion_I to the current goal.
An exact proof term for the current goal is quaternion_0.
Apply quaternion_minus_HSNo to the current goal.
An exact proof term for the current goal is quaternion_i.
Proof:
We will prove pa 0 (minus_HSNo k) octonion.
Apply octonion_I to the current goal.
An exact proof term for the current goal is quaternion_0.
Apply quaternion_minus_HSNo to the current goal.
An exact proof term for the current goal is quaternion_k.
Proof:
We will prove pa 0 (minus_HSNo j) octonion.
Apply octonion_I to the current goal.
An exact proof term for the current goal is quaternion_0.
Apply quaternion_minus_HSNo to the current goal.
An exact proof term for the current goal is quaternion_j.
Theorem. (octonion_p0_eq)
∀x yquaternion, 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 OSNo_proj0_2 x y (quaternion_HSNo x Hx) (quaternion_HSNo y Hy).
Theorem. (octonion_p1_eq)
∀x yquaternion, 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 OSNo_proj1_2 x y (quaternion_HSNo x Hx) (quaternion_HSNo y Hy).
Proof:
Let z be given.
Assume Hz.
Apply octonion_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) quaternion.
rewrite the current goal using octonion_p0_eq x Hx y Hy (from left to right).
We will prove x quaternion.
An exact proof term for the current goal is Hx.
Proof:
Let z be given.
Assume Hz.
Apply octonion_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) quaternion.
rewrite the current goal using octonion_p1_eq x Hx y Hy (from left to right).
We will prove y quaternion.
An exact proof term for the current goal is Hy.
Theorem. (octonion_proj0proj1_split)
∀z woctonion, 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 OSNo_proj0proj1_split z w (octonion_OSNo z Hz) (octonion_OSNo w Hw).
Proof:
Let z be given.
Assume Hz.
We will prove pa (minus_HSNo (p0 z)) (minus_HSNo (p1 z)) octonion.
Apply octonion_I to the current goal.
Apply quaternion_minus_HSNo to the current goal.
An exact proof term for the current goal is octonion_p0_quaternion z Hz.
Apply quaternion_minus_HSNo to the current goal.
An exact proof term for the current goal is octonion_p1_quaternion z Hz.
Proof:
Let z be given.
Assume Hz.
We will prove pa (conj_HSNo (p0 z)) (minus_HSNo (p1 z)) octonion.
Apply octonion_I to the current goal.
Apply quaternion_conj_HSNo to the current goal.
An exact proof term for the current goal is octonion_p0_quaternion z Hz.
Apply quaternion_minus_HSNo to the current goal.
An exact proof term for the current goal is octonion_p1_quaternion z Hz.
Proof:
Let z be given.
Assume Hz.
Let w be given.
Assume Hw.
We will prove pa (add_HSNo (p0 z) (p0 w)) (add_HSNo (p1 z) (p1 w)) octonion.
Apply octonion_I to the current goal.
Apply quaternion_add_HSNo to the current goal.
An exact proof term for the current goal is octonion_p0_quaternion z Hz.
An exact proof term for the current goal is octonion_p0_quaternion w Hw.
Apply quaternion_add_HSNo to the current goal.
An exact proof term for the current goal is octonion_p1_quaternion z Hz.
An exact proof term for the current goal is octonion_p1_quaternion w Hw.
Proof:
Let z be given.
Assume Hz.
Let w be given.
Assume Hw.
We will prove pa (add_HSNo (mul_HSNo (p0 z) (p0 w)) (minus_HSNo (mul_HSNo (conj_HSNo (p1 w)) (p1 z)))) (add_HSNo (mul_HSNo (p1 w) (p0 z)) (mul_HSNo (p1 z) (conj_HSNo (p0 w)))) octonion.
We prove the intermediate claim Lz0: p0 z quaternion.
An exact proof term for the current goal is octonion_p0_quaternion z Hz.
We prove the intermediate claim Lz1: p1 z quaternion.
An exact proof term for the current goal is octonion_p1_quaternion z Hz.
We prove the intermediate claim Lw0: p0 w quaternion.
An exact proof term for the current goal is octonion_p0_quaternion w Hw.
We prove the intermediate claim Lw1: p1 w quaternion.
An exact proof term for the current goal is octonion_p1_quaternion w Hw.
Apply octonion_I to the current goal.
Apply quaternion_add_HSNo to the current goal.
Apply quaternion_mul_HSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
Apply quaternion_minus_HSNo to the current goal.
Apply quaternion_mul_HSNo to the current goal.
Apply quaternion_conj_HSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
Apply quaternion_add_HSNo to the current goal.
Apply quaternion_mul_HSNo to the current goal.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is ??.
Apply quaternion_mul_HSNo to the current goal.
An exact proof term for the current goal is ??.
Apply quaternion_conj_HSNo to the current goal.
An exact proof term for the current goal is ??.
Theorem. (quaternion_p0_eq')
∀xquaternion, p0 x = x
Proof:
Let x be given.
Assume Hx.
rewrite the current goal using HSNo_pair_0 x (from right to left) at position 1.
An exact proof term for the current goal is octonion_p0_eq x Hx 0 quaternion_0.
Theorem. (quaternion_p1_eq')
∀xquaternion, p1 x = 0
Proof:
Let x be given.
Assume Hx.
rewrite the current goal using HSNo_pair_0 x (from right to left).
An exact proof term for the current goal is octonion_p1_eq x Hx 0 quaternion_0.
End of Section Octonions