Beginning of Section SurOctonions
Axiom. (octonion_tag_fresh) We take the following as an axiom:
∀x, HSNo x∀ux, {4}u
Definition. We define HSNo_pair to be pair_tag {4} of type setsetset.
Axiom. (HSNo_pair_0) We take the following as an axiom:
∀x, HSNo_pair x 0 = x
Axiom. (HSNo_pair_prop_1) We take the following as an axiom:
∀x1 y1 x2 y2, HSNo x1HSNo x2HSNo_pair x1 y1 = HSNo_pair x2 y2x1 = x2
Axiom. (HSNo_pair_prop_2) We take the following as an axiom:
∀x1 y1 x2 y2, HSNo x1HSNo y1HSNo x2HSNo y2HSNo_pair x1 y1 = HSNo_pair x2 y2y1 = y2
Definition. We define OSNo to be CD_carr {4} HSNo of type setprop.
Axiom. (OSNo_I) We take the following as an axiom:
∀x y, HSNo xHSNo yOSNo (HSNo_pair x y)
Axiom. (OSNo_E) We take the following as an axiom:
∀z, OSNo z∀p : setprop, (∀x y, HSNo xHSNo yz = HSNo_pair x yp (HSNo_pair x y))p z
Axiom. (HSNo_OSNo) We take the following as an axiom:
∀x, HSNo xOSNo x
Axiom. (OSNo_0) We take the following as an axiom:
Axiom. (OSNo_1) We take the following as an axiom:
Let ctag : setsetλalpha ⇒ SetAdjoin alpha {4}
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term ctag.
Axiom. (OSNo_ExtendedSNoElt_5) We take the following as an axiom:
∀z, OSNo zExtendedSNoElt_ 5 z
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
Axiom. (OSNo_proj0_1) We take the following as an axiom:
∀z, OSNo zHSNo (p0 z)∃y, HSNo yz = pa (p0 z) y
Axiom. (OSNo_proj0_2) We take the following as an axiom:
∀x y, HSNo xHSNo yp0 (pa x y) = x
Axiom. (OSNo_proj1_1) We take the following as an axiom:
∀z, OSNo zHSNo (p1 z)z = pa (p0 z) (p1 z)
Axiom. (OSNo_proj1_2) We take the following as an axiom:
∀x y, HSNo xHSNo yp1 (pa x y) = y
Axiom. (OSNo_proj0R) We take the following as an axiom:
∀z, OSNo zHSNo (p0 z)
Axiom. (OSNo_proj1R) We take the following as an axiom:
∀z, OSNo zHSNo (p1 z)
Axiom. (OSNo_proj0p1) We take the following as an axiom:
∀z, OSNo zz = pa (p0 z) (p1 z)
Axiom. (OSNo_proj0proj1_split) We take the following as an axiom:
∀z w, OSNo zOSNo wp0 z = p0 wp1 z = p1 wz = w
Definition. We define OSNoLev to be λz ⇒ HSNoLev (p0 z)HSNoLev (p1 z) of type setset.
Axiom. (OSNoLev_ordinal) We take the following as an axiom:
∀z, OSNo zordinal (OSNoLev z)
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.
Axiom. (OSNo_minus_OSNo) We take the following as an axiom:
∀z, OSNo zOSNo (minus_OSNo z)
Axiom. (minus_OSNo_proj0) We take the following as an axiom:
∀z, OSNo zp0 (:-: z) = - p0 z
Axiom. (minus_OSNo_proj1) We take the following as an axiom:
∀z, OSNo zp1 (:-: z) = - p1 z
Axiom. (OSNo_conj_OSNo) We take the following as an axiom:
∀z, OSNo zOSNo (conj_OSNo z)
Axiom. (conj_OSNo_proj0) We take the following as an axiom:
∀z, OSNo zp0 (z '') = (p0 z) '
Axiom. (conj_OSNo_proj1) We take the following as an axiom:
∀z, OSNo zp1 (z '') = - p1 z
Axiom. (OSNo_add_OSNo) We take the following as an axiom:
∀z w, OSNo zOSNo wOSNo (add_OSNo z w)
Axiom. (add_OSNo_proj0) We take the following as an axiom:
∀z w, OSNo zOSNo wp0 (plus' z w) = p0 z + p0 w
Axiom. (add_OSNo_proj1) We take the following as an axiom:
∀z w, OSNo zOSNo wp1 (plus' z w) = p1 z + p1 w
Axiom. (OSNo_mul_OSNo) We take the following as an axiom:
∀z w, OSNo zOSNo wOSNo (z w)
Axiom. (mul_OSNo_proj0) We take the following as an axiom:
∀z w, OSNo zOSNo wp0 (mult' z w) = p0 z * p0 w + - (p1 w ' * p1 z)
Axiom. (mul_OSNo_proj1) We take the following as an axiom:
∀z w, OSNo zOSNo wp1 (mult' z w) = p1 w * p0 z + p1 z * p0 w '
Axiom. (HSNo_OSNo_proj0) We take the following as an axiom:
∀x, HSNo xp0 x = x
Axiom. (HSNo_OSNo_proj1) We take the following as an axiom:
∀x, HSNo xp1 x = 0
Axiom. (OSNo_p0_0) We take the following as an axiom:
p0 0 = 0
Axiom. (OSNo_p1_0) We take the following as an axiom:
p1 0 = 0
Axiom. (OSNo_p0_1) We take the following as an axiom:
p0 1 = 1
Axiom. (OSNo_p1_1) We take the following as an axiom:
p1 1 = 0
Axiom. (OSNo_p0_i) We take the following as an axiom:
p0 i = i
Axiom. (OSNo_p1_i) We take the following as an axiom:
p1 i = 0
Axiom. (OSNo_p0_j) We take the following as an axiom:
p0 j = j
Axiom. (OSNo_p1_j) We take the following as an axiom:
p1 j = 0
Axiom. (OSNo_p0_k) We take the following as an axiom:
p0 k = k
Axiom. (OSNo_p1_k) We take the following as an axiom:
p1 k = 0
Axiom. (minus_OSNo_minus_HSNo) We take the following as an axiom:
∀x, HSNo x:-: x = - x
Axiom. (minus_OSNo_0) We take the following as an axiom:
:-: 0 = 0
Axiom. (conj_OSNo_conj_HSNo) We take the following as an axiom:
∀x, HSNo xx '' = x '
Axiom. (conj_OSNo_0) We take the following as an axiom:
0 '' = 0
Axiom. (conj_OSNo_1) We take the following as an axiom:
1 '' = 1
Axiom. (add_OSNo_add_HSNo) We take the following as an axiom:
∀x y, HSNo xHSNo yx + y = x + y
Axiom. (mul_OSNo_mul_HSNo) We take the following as an axiom:
∀x y, HSNo xHSNo yx y = x * y
Axiom. (minus_OSNo_invol) We take the following as an axiom:
∀z, OSNo z:-: :-: z = z
Axiom. (conj_OSNo_invol) We take the following as an axiom:
∀z, OSNo zz '' '' = z
Axiom. (conj_minus_OSNo) We take the following as an axiom:
∀z, OSNo z(:-: z) '' = :-: (z '')
Axiom. (minus_add_OSNo) We take the following as an axiom:
∀z w, OSNo zOSNo w:-: (z + w) = :-: z + :-: w
Axiom. (conj_add_OSNo) We take the following as an axiom:
∀z w, OSNo zOSNo w(z + w) '' = z '' + w ''
Axiom. (add_OSNo_com) We take the following as an axiom:
∀z w, OSNo zOSNo wz + w = w + z
Axiom. (add_OSNo_assoc) We take the following as an axiom:
∀z w v, OSNo zOSNo wOSNo v(z + w) + v = z + (w + v)
Axiom. (add_OSNo_0L) We take the following as an axiom:
∀z, OSNo zadd_OSNo 0 z = z
Axiom. (add_OSNo_0R) We take the following as an axiom:
∀z, OSNo zadd_OSNo z 0 = z
Axiom. (add_OSNo_minus_OSNo_linv) We take the following as an axiom:
∀z, OSNo zadd_OSNo (minus_OSNo z) z = 0
Axiom. (add_OSNo_minus_OSNo_rinv) We take the following as an axiom:
∀z, OSNo zadd_OSNo z (minus_OSNo z) = 0
Axiom. (mul_OSNo_0R) We take the following as an axiom:
∀z, OSNo zz 0 = 0
Axiom. (mul_OSNo_0L) We take the following as an axiom:
∀z, OSNo z0 z = 0
Axiom. (mul_OSNo_1R) We take the following as an axiom:
∀z, OSNo zz 1 = z
Axiom. (mul_OSNo_1L) We take the following as an axiom:
∀z, OSNo z1 z = z
Axiom. (conj_mul_OSNo) We take the following as an axiom:
∀z w, OSNo zOSNo w(z w) '' = w '' z ''
Axiom. (mul_OSNo_distrL) We take the following as an axiom:
∀z w u, OSNo zOSNo wOSNo uz (w + u) = z w + z u
Axiom. (mul_OSNo_distrR) We take the following as an axiom:
∀z w u, OSNo zOSNo wOSNo u(z + w) u = z u + w u
Axiom. (minus_mul_OSNo_distrR) We take the following as an axiom:
∀z w, OSNo zOSNo wz (:-: w) = :-: z w
Axiom. (minus_mul_OSNo_distrL) We take the following as an axiom:
∀z w, OSNo zOSNo w(:-: z) w = :-: z w
Axiom. (exp_OSNo_nat_0) We take the following as an axiom:
∀z, z0 = 1
Axiom. (exp_OSNo_nat_S) We take the following as an axiom:
∀z n, nat_p nz(ordsucc n) = z zn
Axiom. (exp_OSNo_nat_1) We take the following as an axiom:
∀z, OSNo zz1 = z
Axiom. (exp_OSNo_nat_2) We take the following as an axiom:
∀z, OSNo zz2 = z z
Axiom. (OSNo_exp_OSNo_nat) We take the following as an axiom:
∀z, OSNo z∀n, nat_p nOSNo (zn)
Axiom. (add_HSNo_com_3b_1_2) We take the following as an axiom:
∀x y z, HSNo xHSNo yHSNo z(x + y) + z = (x + z) + y
Axiom. (add_HSNo_com_4_inner_mid) We take the following as an axiom:
∀x y z w, HSNo xHSNo yHSNo zHSNo w(x + y) + (z + w) = (x + z) + (y + w)
Axiom. (add_HSNo_rotate_4_0312) We take the following as an axiom:
∀x y z w, HSNo xHSNo yHSNo zHSNo w(x + y) + (z + w) = (x + w) + (y + z)
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
Axiom. (OSNo_Complex_i) We take the following as an axiom:
Axiom. (OSNo_Quaternion_j) We take the following as an axiom:
Axiom. (OSNo_Quaternion_k) We take the following as an axiom:
Axiom. (OSNo_Octonion_i0) We take the following as an axiom:
OSNo i0
Axiom. (OSNo_Octonion_i3) We take the following as an axiom:
OSNo i3
Axiom. (OSNo_Octonion_i5) We take the following as an axiom:
OSNo i5
Axiom. (OSNo_Octonion_i6) We take the following as an axiom:
OSNo i6
Axiom. (OSNo_p0_i0) We take the following as an axiom:
p0 i0 = 0
Axiom. (OSNo_p1_i0) We take the following as an axiom:
p1 i0 = 1
Axiom. (OSNo_p0_i3) We take the following as an axiom:
p0 i3 = 0
Axiom. (OSNo_p1_i3) We take the following as an axiom:
p1 i3 = - i
Axiom. (OSNo_p0_i5) We take the following as an axiom:
p0 i5 = 0
Axiom. (OSNo_p1_i5) We take the following as an axiom:
p1 i5 = - k
Axiom. (OSNo_p0_i6) We take the following as an axiom:
p0 i6 = 0
Axiom. (OSNo_p1_i6) We take the following as an axiom:
p1 i6 = - j
Axiom. (Octonion_i1_sqr) We take the following as an axiom:
i1 i1 = :-: 1
Axiom. (Octonion_i2_sqr) We take the following as an axiom:
i2 i2 = :-: 1
Axiom. (Octonion_i4_sqr) We take the following as an axiom:
i4 i4 = :-: 1
Axiom. (Octonion_i0_sqr) We take the following as an axiom:
i0 i0 = :-: 1
Axiom. (Octonion_i3_sqr) We take the following as an axiom:
i3 i3 = :-: 1
Axiom. (Octonion_i5_sqr) We take the following as an axiom:
i5 i5 = :-: 1
Axiom. (Octonion_i6_sqr) We take the following as an axiom:
i6 i6 = :-: 1
Axiom. (Octonion_i1_i2) We take the following as an axiom:
i1 i2 = i4
Axiom. (Octonion_i2_i1) We take the following as an axiom:
i2 i1 = :-: i4
Axiom. (Octonion_i2_i4) We take the following as an axiom:
i2 i4 = i1
Axiom. (Octonion_i4_i2) We take the following as an axiom:
i4 i2 = :-: i1
Axiom. (Octonion_i4_i1) We take the following as an axiom:
i4 i1 = i2
Axiom. (Octonion_i1_i4) We take the following as an axiom:
i1 i4 = :-: i2
Axiom. (Octonion_i2_i3) We take the following as an axiom:
i2 i3 = i5
Axiom. (Octonion_i3_i2) We take the following as an axiom:
i3 i2 = :-: i5
Axiom. (Octonion_i3_i5) We take the following as an axiom:
i3 i5 = i2
Axiom. (Octonion_i5_i3) We take the following as an axiom:
i5 i3 = :-: i2
Axiom. (Octonion_i5_i2) We take the following as an axiom:
i5 i2 = i3
Axiom. (Octonion_i2_i5) We take the following as an axiom:
i2 i5 = :-: i3
Axiom. (Octonion_i3_i4) We take the following as an axiom:
i3 i4 = i6
Axiom. (Octonion_i4_i3) We take the following as an axiom:
i4 i3 = :-: i6
Axiom. (Octonion_i4_i6) We take the following as an axiom:
i4 i6 = i3
Axiom. (Octonion_i6_i4) We take the following as an axiom:
i6 i4 = :-: i3
Axiom. (Octonion_i6_i3) We take the following as an axiom:
i6 i3 = i4
Axiom. (Octonion_i3_i6) We take the following as an axiom:
i3 i6 = :-: i4
Axiom. (Octonion_i4_i5) We take the following as an axiom:
i4 i5 = i0
Axiom. (Octonion_i5_i4) We take the following as an axiom:
i5 i4 = :-: i0
Axiom. (Octonion_i5_i0) We take the following as an axiom:
i5 i0 = i4
Axiom. (Octonion_i0_i5) We take the following as an axiom:
i0 i5 = :-: i4
Axiom. (Octonion_i0_i4) We take the following as an axiom:
i0 i4 = i5
Axiom. (Octonion_i4_i0) We take the following as an axiom:
i4 i0 = :-: i5
Axiom. (Octonion_i5_i6) We take the following as an axiom:
i5 i6 = i1
Axiom. (Octonion_i6_i5) We take the following as an axiom:
i6 i5 = :-: i1
Axiom. (Octonion_i6_i1) We take the following as an axiom:
i6 i1 = i5
Axiom. (Octonion_i1_i6) We take the following as an axiom:
i1 i6 = :-: i5
Axiom. (Octonion_i1_i5) We take the following as an axiom:
i1 i5 = i6
Axiom. (Octonion_i5_i1) We take the following as an axiom:
i5 i1 = :-: i6
Axiom. (Octonion_i6_i0) We take the following as an axiom:
i6 i0 = i2
Axiom. (Octonion_i0_i6) We take the following as an axiom:
i0 i6 = :-: i2
Axiom. (Octonion_i0_i2) We take the following as an axiom:
i0 i2 = i6
Axiom. (Octonion_i2_i0) We take the following as an axiom:
i2 i0 = :-: i6
Axiom. (Octonion_i2_i6) We take the following as an axiom:
i2 i6 = i0
Axiom. (Octonion_i6_i2) We take the following as an axiom:
i6 i2 = :-: i0
Axiom. (Octonion_i0_i1) We take the following as an axiom:
i0 i1 = i3
Axiom. (Octonion_i1_i0) We take the following as an axiom:
i1 i0 = :-: i3
Axiom. (Octonion_i1_i3) We take the following as an axiom:
i1 i3 = i0
Axiom. (Octonion_i3_i1) We take the following as an axiom:
i3 i1 = :-: i0
Axiom. (Octonion_i3_i0) We take the following as an axiom:
i3 i0 = i1
Axiom. (Octonion_i0_i3) We take the following as an axiom:
i0 i3 = :-: i1
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.
Axiom. (octonion_I) We take the following as an axiom:
∀x yquaternion, pa x y octonion
Axiom. (octonion_E) We take the following as an axiom:
∀zoctonion, ∀p : prop, (∀x yquaternion, z = pa x yp)p
Axiom. (octonion_OSNo) We take the following as an axiom:
Axiom. (quaternion_octonion) We take the following as an axiom:
quaternion octonion
Axiom. (octonion_0) We take the following as an axiom:
Axiom. (octonion_1) We take the following as an axiom:
Axiom. (octonion_i) We take the following as an axiom:
Axiom. (octonion_j) We take the following as an axiom:
Axiom. (octonion_k) We take the following as an axiom:
Axiom. (octonion_i0) We take the following as an axiom:
Axiom. (octonion_i3) We take the following as an axiom:
Axiom. (octonion_i5) We take the following as an axiom:
Axiom. (octonion_i6) We take the following as an axiom:
Axiom. (octonion_p0_eq) We take the following as an axiom:
∀x yquaternion, p0 (pa x y) = x
Axiom. (octonion_p1_eq) We take the following as an axiom:
∀x yquaternion, p1 (pa x y) = y
Axiom. (octonion_p0_quaternion) We take the following as an axiom:
∀zoctonion, p0 z quaternion
Axiom. (octonion_p1_quaternion) We take the following as an axiom:
∀zoctonion, p1 z quaternion
Axiom. (octonion_proj0proj1_split) We take the following as an axiom:
∀z woctonion, p0 z = p0 wp1 z = p1 wz = w
Axiom. (octonion_minus_OSNo) We take the following as an axiom:
Axiom. (octonion_conj_OSNo) We take the following as an axiom:
Axiom. (octonion_add_OSNo) We take the following as an axiom:
Axiom. (octonion_mul_OSNo) We take the following as an axiom:
Axiom. (quaternion_p0_eq') We take the following as an axiom:
∀xquaternion, p0 x = x
Axiom. (quaternion_p1_eq') We take the following as an axiom:
∀xquaternion, p1 x = 0
End of Section Octonions