Beginning of Section SurQuaternions
L14
Axiom. (quaternion_tag_fresh) We take the following as an axiom:
∀z, CSNo z → ∀u ∈ z, {3} ∉ u
L15
Definition. We define CSNo_pair to be pair_tag {3} of type set → set → set.
L16
Axiom. (CSNo_pair_0) We take the following as an axiom:
∀x, CSNo_pair x 0 = x
L17
Axiom. (CSNo_pair_prop_1) We take the following as an axiom:
∀x1 y1 x2 y2, CSNo x1 → CSNo x2 → CSNo_pair x1 y1 = CSNo_pair x2 y2 → x1 = x2
L18
Axiom. (CSNo_pair_prop_2) We take the following as an axiom:
∀x1 y1 x2 y2, CSNo x1 → CSNo y1 → CSNo x2 → CSNo y2 → CSNo_pair x1 y1 = CSNo_pair x2 y2 → y1 = y2
L19
Definition. We define HSNo to be CD_carr {3} CSNo of type set → prop.
L20
Axiom. (HSNo_I) We take the following as an axiom:
∀x y, CSNo x → CSNo y → HSNo (CSNo_pair x y)
L21
Axiom. (HSNo_E) We take the following as an axiom:
∀z, HSNo z → ∀p : set → prop, (∀x y, CSNo x → CSNo y → z = CSNo_pair x y → p (CSNo_pair x y)) → p z
L22
Axiom. (CSNo_HSNo) We take the following as an axiom:
∀x, CSNo x → HSNo x
L23
Axiom. (HSNo_0) We take the following as an axiom:
L24
Axiom. (HSNo_1) We take the following as an axiom:
L25
Let ctag : set → set ≝ λalpha ⇒ SetAdjoin alpha {3}
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term ctag.
L27
Axiom. (HSNo_ExtendedSNoElt_4) We take the following as an axiom:
∀z, HSNo z → ExtendedSNoElt_ 4 z
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_CSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_CSNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_CSNo.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term div_CSNo.
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term conj_CSNo.
L33
Let i ≝ Complex_i
L34
L35
L36
Let j ≝ Quaternion_j
L37
Let k ≝ Quaternion_k
L38
Definition. We define HSNo_proj0 to be CD_proj0 {3} CSNo of type set → set.
L39
Definition. We define HSNo_proj1 to be CD_proj1 {3} CSNo of type set → set.
L40
Let p0 : set → set ≝ HSNo_proj0
L41
Let p1 : set → set ≝ HSNo_proj1
L42
Let pa : set → set → set ≝ CSNo_pair
L43
Axiom. (HSNo_proj0_1) We take the following as an axiom:
∀z, HSNo z → CSNo (p0 z) ∧ ∃y, CSNo y ∧ z = pa (p0 z) y
L44
Axiom. (HSNo_proj0_2) We take the following as an axiom:
∀x y, CSNo x → CSNo y → p0 (pa x y) = x
L45
Axiom. (HSNo_proj1_1) We take the following as an axiom:
∀z, HSNo z → CSNo (p1 z) ∧ z = pa (p0 z) (p1 z)
L46
Axiom. (HSNo_proj1_2) We take the following as an axiom:
∀x y, CSNo x → CSNo y → p1 (pa x y) = y
L47
Axiom. (HSNo_proj0R) We take the following as an axiom:
∀z, HSNo z → CSNo (p0 z)
L48
Axiom. (HSNo_proj1R) We take the following as an axiom:
∀z, HSNo z → CSNo (p1 z)
L49
Axiom. (HSNo_proj0p1) We take the following as an axiom:
∀z, HSNo z → z = pa (p0 z) (p1 z)
L50
Axiom. (HSNo_proj0proj1_split) We take the following as an axiom:
∀z w, HSNo z → HSNo w → p0 z = p0 w → p1 z = p1 w → z = w
L51
Definition. We define HSNoLev to be λz ⇒ CSNoLev (p0 z) ∪ CSNoLev (p1 z) of type set → set.
L52
Axiom. (HSNoLev_ordinal) We take the following as an axiom:
∀z, HSNo z → ordinal (HSNoLev z)
L53
Definition. We define minus_HSNo to be CD_minus {3} CSNo minus_CSNo of type set → set.
L54
Definition. We define conj_HSNo to be CD_conj {3} CSNo minus_CSNo conj_CSNo of type set → set.
L55
Definition. We define add_HSNo to be CD_add {3} CSNo add_CSNo of type set → set → set.
L56
Definition. We define mul_HSNo to be CD_mul {3} CSNo minus_CSNo conj_CSNo add_CSNo mul_CSNo of type set → set → set.
L57
Definition. We define exp_HSNo_nat to be CD_exp_nat {3} CSNo minus_CSNo conj_CSNo add_CSNo mul_CSNo of type set → set → set.
L58
Let plus' ≝ add_HSNo
L59
Let mult' ≝ mul_HSNo
Notation. We use :-: as a prefix operator with priority 358 corresponding to applying term minus_HSNo.
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term conj_HSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_HSNo.
Notation. We use ⨯ as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_HSNo.
Notation. We use :^: as an infix operator with priority 355 and which associates to the right corresponding to applying term exp_HSNo_nat.
L65
Axiom. (HSNo_Complex_i) We take the following as an axiom:
L66
Axiom. (HSNo_Quaternion_j) We take the following as an axiom:
L67
Axiom. (HSNo_Quaternion_k) We take the following as an axiom:
L68
Axiom. (HSNo_minus_HSNo) We take the following as an axiom:
∀z, HSNo z → HSNo (minus_HSNo z)
L69
Axiom. (minus_HSNo_proj0) We take the following as an axiom:
∀z, HSNo z → p0 (:-: z) = - p0 z
L70
Axiom. (minus_HSNo_proj1) We take the following as an axiom:
∀z, HSNo z → p1 (:-: z) = - p1 z
L71
Axiom. (HSNo_conj_HSNo) We take the following as an axiom:
∀z, HSNo z → HSNo (conj_HSNo z)
L72
Axiom. (conj_HSNo_proj0) We take the following as an axiom:
∀z, HSNo z → p0 (z '') = (p0 z) '
L73
Axiom. (conj_HSNo_proj1) We take the following as an axiom:
∀z, HSNo z → p1 (z '') = - p1 z
L74
Axiom. (HSNo_add_HSNo) We take the following as an axiom:
∀z w, HSNo z → HSNo w → HSNo (add_HSNo z w)
L75
Axiom. (add_HSNo_proj0) We take the following as an axiom:
∀z w, HSNo z → HSNo w → p0 (plus' z w) = p0 z + p0 w
L76
Axiom. (add_HSNo_proj1) We take the following as an axiom:
∀z w, HSNo z → HSNo w → p1 (plus' z w) = p1 z + p1 w
L77
Axiom. (HSNo_mul_HSNo) We take the following as an axiom:
∀z w, HSNo z → HSNo w → HSNo (z ⨯ w)
L78
Axiom. (mul_HSNo_proj0) We take the following as an axiom:
∀z w, HSNo z → HSNo w → p0 (mult' z w) = p0 z * p0 w + - (p1 w ' * p1 z)
L79
Axiom. (mul_HSNo_proj1) We take the following as an axiom:
∀z w, HSNo z → HSNo w → p1 (mult' z w) = p1 w * p0 z + p1 z * p0 w '
L80
Axiom. (CSNo_HSNo_proj0) We take the following as an axiom:
∀x, CSNo x → p0 x = x
L81
Axiom. (CSNo_HSNo_proj1) We take the following as an axiom:
∀x, CSNo x → p1 x = 0
L82
Axiom. (HSNo_p0_0) We take the following as an axiom:
p0 0 = 0
L83
Axiom. (HSNo_p1_0) We take the following as an axiom:
p1 0 = 0
L84
Axiom. (HSNo_p0_1) We take the following as an axiom:
p0 1 = 1
L85
Axiom. (HSNo_p1_1) We take the following as an axiom:
p1 1 = 0
L86
Axiom. (HSNo_p0_i) We take the following as an axiom:
p0 i = i
L87
Axiom. (HSNo_p1_i) We take the following as an axiom:
p1 i = 0
L88
Axiom. (HSNo_p0_j) We take the following as an axiom:
p0 j = 0
L89
Axiom. (HSNo_p1_j) We take the following as an axiom:
p1 j = 1
L90
Axiom. (HSNo_p0_k) We take the following as an axiom:
p0 k = 0
L91
Axiom. (HSNo_p1_k) We take the following as an axiom:
p1 k = i
L92
Axiom. (minus_HSNo_minus_CSNo) We take the following as an axiom:
∀x, CSNo x → :-: x = - x
L93
Axiom. (minus_HSNo_0) We take the following as an axiom:
:-: 0 = 0
L94
Axiom. (conj_HSNo_conj_CSNo) We take the following as an axiom:
∀x, CSNo x → x '' = x '
L95
Axiom. (conj_HSNo_id_SNo) We take the following as an axiom:
∀x, SNo x → x '' = x
L96
Axiom. (conj_HSNo_0) We take the following as an axiom:
0 '' = 0
L97
Axiom. (conj_HSNo_1) We take the following as an axiom:
1 '' = 1
L98
Axiom. (add_HSNo_add_CSNo) We take the following as an axiom:
∀x y, CSNo x → CSNo y → x + y = x + y
L99
Axiom. (mul_HSNo_mul_CSNo) We take the following as an axiom:
∀x y, CSNo x → CSNo y → x ⨯ y = x * y
L100
Axiom. (minus_HSNo_invol) We take the following as an axiom:
∀z, HSNo z → :-: :-: z = z
L101
Axiom. (conj_HSNo_invol) We take the following as an axiom:
∀z, HSNo z → z '' '' = z
L102
Axiom. (conj_minus_HSNo) We take the following as an axiom:
∀z, HSNo z → (:-: z) '' = :-: (z '')
L103
Axiom. (minus_add_HSNo) We take the following as an axiom:
∀z w, HSNo z → HSNo w → :-: (z + w) = :-: z + :-: w
L104
Axiom. (conj_add_HSNo) We take the following as an axiom:
∀z w, HSNo z → HSNo w → (z + w) '' = z '' + w ''
L105
Axiom. (add_HSNo_com) We take the following as an axiom:
∀z w, HSNo z → HSNo w → z + w = w + z
L106
Axiom. (add_HSNo_assoc) We take the following as an axiom:
∀z w v, HSNo z → HSNo w → HSNo v → (z + w) + v = z + (w + v)
L107
Axiom. (add_HSNo_0L) We take the following as an axiom:
∀z, HSNo z → add_HSNo 0 z = z
L108
Axiom. (add_HSNo_0R) We take the following as an axiom:
∀z, HSNo z → add_HSNo z 0 = z
L109
Axiom. (add_HSNo_minus_HSNo_linv) We take the following as an axiom:
∀z, HSNo z → add_HSNo (minus_HSNo z) z = 0
L110
Axiom. (add_HSNo_minus_HSNo_rinv) We take the following as an axiom:
∀z, HSNo z → add_HSNo z (minus_HSNo z) = 0
L111
Axiom. (mul_HSNo_0R) We take the following as an axiom:
∀z, HSNo z → z ⨯ 0 = 0
L112
Axiom. (mul_HSNo_0L) We take the following as an axiom:
∀z, HSNo z → 0 ⨯ z = 0
L113
Axiom. (mul_HSNo_1R) We take the following as an axiom:
∀z, HSNo z → z ⨯ 1 = z
L114
Axiom. (mul_HSNo_1L) We take the following as an axiom:
∀z, HSNo z → 1 ⨯ z = z
L115
Axiom. (conj_mul_HSNo) We take the following as an axiom:
∀z w, HSNo z → HSNo w → (z ⨯ w) '' = w '' ⨯ z ''
L116
Axiom. (mul_HSNo_distrL) We take the following as an axiom:
∀z w u, HSNo z → HSNo w → HSNo u → z ⨯ (w + u) = z ⨯ w + z ⨯ u
L117
Axiom. (mul_HSNo_distrR) We take the following as an axiom:
∀z w u, HSNo z → HSNo w → HSNo u → (z + w) ⨯ u = z ⨯ u + w ⨯ u
L118
Axiom. (minus_mul_HSNo_distrR) We take the following as an axiom:
∀z w, HSNo z → HSNo w → z ⨯ (:-: w) = :-: z ⨯ w
L119
Axiom. (minus_mul_HSNo_distrL) We take the following as an axiom:
∀z w, HSNo z → HSNo w → (:-: z) ⨯ w = :-: z ⨯ w
L120
Axiom. (exp_HSNo_nat_0) We take the following as an axiom:
∀z, z0 = 1
L121
Axiom. (exp_HSNo_nat_S) We take the following as an axiom:
∀z n, nat_p n → z(ordsucc n) = z ⨯ zn
L122
Axiom. (exp_HSNo_nat_1) We take the following as an axiom:
∀z, HSNo z → z1 = z
L123
Axiom. (exp_HSNo_nat_2) We take the following as an axiom:
∀z, HSNo z → z2 = z ⨯ z
L124
Axiom. (HSNo_exp_HSNo_nat) We take the following as an axiom:
∀z, HSNo z → ∀n, nat_p n → HSNo (zn)
L125
Axiom. (add_CSNo_com_3b_1_2) We take the following as an axiom:
∀x y z, CSNo x → CSNo y → CSNo z → (x + y) + z = (x + z) + y
L126
Axiom. (add_CSNo_com_4_inner_mid) We take the following as an axiom:
∀x y z w, CSNo x → CSNo y → CSNo z → CSNo w → (x + y) + (z + w) = (x + z) + (y + w)
L127
Axiom. (add_CSNo_rotate_4_0312) We take the following as an axiom:
∀x y z w, CSNo x → CSNo y → CSNo z → CSNo w → (x + y) + (z + w) = (x + w) + (y + z)
L128
Axiom. (Quaternion_i_sqr) We take the following as an axiom:
i ⨯ i = :-: 1
L129
Axiom. (Quaternion_j_sqr) We take the following as an axiom:
j ⨯ j = :-: 1
L130
Axiom. (Quaternion_k_sqr) We take the following as an axiom:
k ⨯ k = :-: 1
L131
Axiom. (Quaternion_i_j) We take the following as an axiom:
i ⨯ j = k
L132
Axiom. (Quaternion_j_k) We take the following as an axiom:
j ⨯ k = i
L133
Axiom. (Quaternion_k_i) We take the following as an axiom:
k ⨯ i = j
L134
Axiom. (Quaternion_j_i) We take the following as an axiom:
j ⨯ i = :-: k
L135
Axiom. (Quaternion_k_j) We take the following as an axiom:
k ⨯ j = :-: i
L136
Axiom. (Quaternion_i_k) We take the following as an axiom:
i ⨯ k = :-: j
L137
Axiom. (add_CSNo_rotate_3_1) We take the following as an axiom:
∀x y z, CSNo x → CSNo y → CSNo z → x + y + z = z + x + y
L138
Axiom. (mul_CSNo_rotate_3_1) We take the following as an axiom:
∀x y z, CSNo x → CSNo y → CSNo z → x * y * z = z * x * y
L139
Axiom. (mul_HSNo_assoc) We take the following as an axiom:
∀z w v, HSNo z → HSNo w → HSNo v → z ⨯ (w ⨯ v) = (z ⨯ w) ⨯ v
L140
Axiom. (conj_HSNo_i) We take the following as an axiom:
i '' = :-: i
L141
Axiom. (conj_HSNo_j) We take the following as an axiom:
j '' = :-: j
L142
Axiom. (conj_HSNo_k) We take the following as an axiom:
k '' = :-: k
End of Section SurQuaternions
Beginning of Section Quaternions
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_HSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_HSNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_HSNo.
L148
Let i ≝ Complex_i
L149
Let j ≝ Quaternion_j
L150
Let k ≝ Quaternion_k
L151
Let p0 : set → set ≝ HSNo_proj0
L152
Let p1 : set → set ≝ HSNo_proj1
L153
Let pa : set → set → set ≝ CSNo_pair
L154
Definition. We define quaternion to be {pa (u 0) (u 1)|u ∈ complex ⨯ complex} of type set.
L155
Axiom. (quaternion_I) We take the following as an axiom:
∀x y ∈ complex, pa x y ∈ quaternion
L156
Axiom. (quaternion_E) We take the following as an axiom:
∀z ∈ quaternion, ∀p : prop, (∀x y ∈ complex, z = pa x y → p) → p
L157
Axiom. (quaternion_HSNo) We take the following as an axiom:
L158
Axiom. (complex_quaternion) We take the following as an axiom:
complex ⊆ quaternion
L159
Axiom. (quaternion_0) We take the following as an axiom:
L160
Axiom. (quaternion_1) We take the following as an axiom:
L161
Axiom. (quaternion_i) We take the following as an axiom:
L162
Axiom. (quaternion_j) We take the following as an axiom:
L163
Axiom. (quaternion_k) We take the following as an axiom:
L164
Axiom. (quaternion_p0_eq) We take the following as an axiom:
∀x y ∈ complex, p0 (pa x y) = x
L165
Axiom. (quaternion_p1_eq) We take the following as an axiom:
∀x y ∈ complex, p1 (pa x y) = y
L166
Axiom. (quaternion_p0_complex) We take the following as an axiom:
∀z ∈ quaternion, p0 z ∈ complex
L167
Axiom. (quaternion_p1_complex) We take the following as an axiom:
∀z ∈ quaternion, p1 z ∈ complex
L168
Axiom. (quaternion_proj0proj1_split) We take the following as an axiom:
∀z w ∈ quaternion, p0 z = p0 w → p1 z = p1 w → z = w
L169
Axiom. (quaternion_minus_HSNo) We take the following as an axiom:
L170
Axiom. (quaternion_conj_HSNo) We take the following as an axiom:
L171
Axiom. (quaternion_add_HSNo) We take the following as an axiom:
L172
Axiom. (quaternion_mul_HSNo) We take the following as an axiom:
L173
Axiom. (complex_p0_eq) We take the following as an axiom:
∀x ∈ complex, p0 x = x
L174
Axiom. (complex_p1_eq) We take the following as an axiom:
∀x ∈ complex, p1 x = 0
End of Section Quaternions