Complex Surreal Numbers and Complex Numbers
From Parts 1 to 8
Object . The name
Eps_i is a term of type
(set → prop ) → set .
Axiom. (
Eps_i_ax ) We take the following as an axiom:
∀P : set → prop , ∀x : set , P x → P (Eps_i P )
Definition. We define
True to be
∀p : prop , p → p of type
prop .
Definition. We define
False to be
∀p : prop , p of type
prop .
Definition. We define
not to be
λA : prop ⇒ A → False of type
prop → prop .
Notation . We use
¬ as a prefix operator with priority 700 corresponding to applying term
not .
Definition. We define
and to be
λA B : prop ⇒ ∀p : prop , (A → B → p ) → p of type
prop → prop → prop .
Notation . We use
∧ as an infix operator with priority 780 and which associates to the left corresponding to applying term
and .
Definition. We define
or to be
λA B : prop ⇒ ∀p : prop , (A → p ) → (B → p ) → p of type
prop → prop → prop .
Notation . We use
∨ as an infix operator with priority 785 and which associates to the left corresponding to applying term
or .
Definition. We define
iff to be
λA B : prop ⇒ and (A → B ) (B → A ) of type
prop → prop → prop .
Notation . We use
↔ as an infix operator with priority 805 and no associativity corresponding to applying term
iff .
Beginning of Section Eq
Variable A : SType
Definition. We define
eq to be
λx y : A ⇒ ∀Q : A → A → prop , Q x y → Q y x of type
A → A → prop .
Definition. We define
neq to be
λx y : A ⇒ ¬ eq x y of type
A → A → prop .
End of Section Eq
Notation . We use
= as an infix operator with priority 502 and no associativity corresponding to applying term
eq .
Notation . We use
≠ as an infix operator with priority 502 and no associativity corresponding to applying term
neq .
Beginning of Section FE
Variable A B : SType
Axiom. (
func_ext ) We take the following as an axiom:
∀f g : A → B , (∀x : A , f x = g x ) → f = g
End of Section FE
Beginning of Section Ex
Variable A : SType
Definition. We define
ex to be
λQ : A → prop ⇒ ∀P : prop , (∀x : A , Q x → P ) → P of type
(A → prop ) → prop .
End of Section Ex
Notation . We use
∃ x ...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using
ex .
Axiom. (
prop_ext ) We take the following as an axiom:
∀p q : prop , iff p q → p = q
Object . The name
In is a term of type
set → set → prop .
Notation . We use
∈ as an infix operator with priority 500 and no associativity corresponding to applying term
In . Furthermore, we may write
∀ x ∈ A , B to mean
∀ x : set, x ∈ A → B .
Definition. We define
Subq to be
λA B ⇒ ∀x ∈ A , x ∈ B of type
set → set → prop .
Notation . We use
⊆ as an infix operator with priority 500 and no associativity corresponding to applying term
Subq . Furthermore, we may write
∀ x ⊆ A , B to mean
∀ x : set, x ⊆ A → B .
Axiom. (
set_ext ) We take the following as an axiom:
∀X Y : set , X ⊆ Y → Y ⊆ X → X = Y
Axiom. (
In_ind ) We take the following as an axiom:
∀P : set → prop , (∀X : set , (∀x ∈ X , P x ) → P X ) → ∀X : set , P X
Notation . We use
∃ x ...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using
ex and handling ∈ or ⊆ ascriptions using
and .
Object . The name
Empty is a term of type
set .
Axiom. (
EmptyAx ) We take the following as an axiom:
Object . The name
⋃ is a term of type
set → set .
Axiom. (
UnionEq ) We take the following as an axiom:
∀X x, x ∈ ⋃ X ↔ ∃Y, x ∈ Y ∧ Y ∈ X
Object . The name
𝒫 is a term of type
set → set .
Axiom. (
PowerEq ) We take the following as an axiom:
∀X Y : set , Y ∈ 𝒫 X ↔ Y ⊆ X
Object . The name
Repl is a term of type
set → (set → set ) → set .
Notation .
{B | x ∈ A } is notation for
Repl A (λ x . B ).
Axiom. (
ReplEq ) We take the following as an axiom:
∀A : set , ∀F : set → set , ∀y : set , y ∈ {F x |x ∈ A } ↔ ∃x ∈ A , y = F x
Definition. We define
TransSet to be
λU : set ⇒ ∀x ∈ U , x ⊆ U of type
set → prop .
Definition. We define
Union_closed to be
λU : set ⇒ ∀X : set , X ∈ U → ⋃ X ∈ U of type
set → prop .
Definition. We define
Power_closed to be
λU : set ⇒ ∀X : set , X ∈ U → 𝒫 X ∈ U of type
set → prop .
Definition. We define
Repl_closed to be
λU : set ⇒ ∀X : set , X ∈ U → ∀F : set → set , (∀x : set , x ∈ X → F x ∈ U ) → {F x |x ∈ X } ∈ U of type
set → prop .
Object . The name
UnivOf is a term of type
set → set .
Axiom. (
UnivOf_In ) We take the following as an axiom:
Axiom. (
UnivOf_Min ) We take the following as an axiom:
Axiom. (
FalseE ) We take the following as an axiom:
Axiom. (
TrueI ) We take the following as an axiom:
Axiom. (
andI ) We take the following as an axiom:
∀A B : prop , A → B → A ∧ B
Axiom. (
andEL ) We take the following as an axiom:
∀A B : prop , A ∧ B → A
Axiom. (
andER ) We take the following as an axiom:
∀A B : prop , A ∧ B → B
Axiom. (
orIL ) We take the following as an axiom:
∀A B : prop , A → A ∨ B
Axiom. (
orIR ) We take the following as an axiom:
∀A B : prop , B → A ∨ B
Beginning of Section PropN
Variable P1 P2 P3 : prop
Axiom. (
and3I ) We take the following as an axiom:
P1 → P2 → P3 → P1 ∧ P2 ∧ P3
Axiom. (
and3E ) We take the following as an axiom:
P1 ∧ P2 ∧ P3 → (∀p : prop , (P1 → P2 → P3 → p ) → p )
Axiom. (
or3I1 ) We take the following as an axiom:
P1 → P1 ∨ P2 ∨ P3
Axiom. (
or3I2 ) We take the following as an axiom:
P2 → P1 ∨ P2 ∨ P3
Axiom. (
or3I3 ) We take the following as an axiom:
P3 → P1 ∨ P2 ∨ P3
Axiom. (
or3E ) We take the following as an axiom:
P1 ∨ P2 ∨ P3 → (∀p : prop , (P1 → p ) → (P2 → p ) → (P3 → p ) → p )
Variable P4 : prop
Axiom. (
and4I ) We take the following as an axiom:
P1 → P2 → P3 → P4 → P1 ∧ P2 ∧ P3 ∧ P4
Variable P5 : prop
Axiom. (
and5I ) We take the following as an axiom:
P1 → P2 → P3 → P4 → P5 → P1 ∧ P2 ∧ P3 ∧ P4 ∧ P5
End of Section PropN
Axiom. (
not_or_and_demorgan ) We take the following as an axiom:
∀A B : prop , ¬ (A ∨ B ) → ¬ A ∧ ¬ B
Axiom. (
not_ex_all_demorgan_i ) We take the following as an axiom:
∀P : set → prop , (¬ ∃x, P x ) → ∀x, ¬ P x
Axiom. (
iffI ) We take the following as an axiom:
∀A B : prop , (A → B ) → (B → A ) → (A ↔ B )
Axiom. (
iffEL ) We take the following as an axiom:
∀A B : prop , (A ↔ B ) → A → B
Axiom. (
iffER ) We take the following as an axiom:
∀A B : prop , (A ↔ B ) → B → A
Axiom. (
iff_refl ) We take the following as an axiom:
∀A : prop , A ↔ A
Axiom. (
iff_sym ) We take the following as an axiom:
∀A B : prop , (A ↔ B ) → (B ↔ A )
Axiom. (
iff_trans ) We take the following as an axiom:
∀A B C : prop , (A ↔ B ) → (B ↔ C ) → (A ↔ C )
Axiom. (
eq_i_tra ) We take the following as an axiom:
∀x y z, x = y → y = z → x = z
Axiom. (
f_eq_i ) We take the following as an axiom:
∀f : set → set , ∀x y, x = y → f x = f y
Axiom. (
neq_i_sym ) We take the following as an axiom:
∀x y, x ≠ y → y ≠ x
Definition. We define
nIn to be
λx X ⇒ ¬ In x X of type
set → set → prop .
Notation . We use
∉ as an infix operator with priority 502 and no associativity corresponding to applying term
nIn .
Axiom. (
Eps_i_ex ) We take the following as an axiom:
∀P : set → prop , (∃x, P x ) → P (Eps_i P )
Axiom. (
pred_ext ) We take the following as an axiom:
∀P Q : set → prop , (∀x, P x ↔ Q x ) → P = Q
Axiom. (
prop_ext_2 ) We take the following as an axiom:
∀p q : prop , (p → q ) → (q → p ) → p = q
Axiom. (
Subq_ref ) We take the following as an axiom:
∀X : set , X ⊆ X
Axiom. (
Subq_tra ) We take the following as an axiom:
∀X Y Z : set , X ⊆ Y → Y ⊆ Z → X ⊆ Z
Axiom. (
Subq_contra ) We take the following as an axiom:
∀X Y z : set , X ⊆ Y → z ∉ Y → z ∉ X
Axiom. (
EmptyE ) We take the following as an axiom:
Axiom. (
Subq_Empty ) We take the following as an axiom:
Axiom. (
Empty_eq ) We take the following as an axiom:
∀X : set , (∀x, x ∉ X ) → X = Empty
Axiom. (
UnionI ) We take the following as an axiom:
∀X x Y : set , x ∈ Y → Y ∈ X → x ∈ ⋃ X
Axiom. (
UnionE ) We take the following as an axiom:
∀X x : set , x ∈ ⋃ X → ∃Y : set , x ∈ Y ∧ Y ∈ X
Axiom. (
UnionE_impred ) We take the following as an axiom:
∀X x : set , x ∈ ⋃ X → ∀p : prop , (∀Y : set , x ∈ Y → Y ∈ X → p ) → p
Axiom. (
PowerI ) We take the following as an axiom:
∀X Y : set , Y ⊆ X → Y ∈ 𝒫 X
Axiom. (
PowerE ) We take the following as an axiom:
∀X Y : set , Y ∈ 𝒫 X → Y ⊆ X
Axiom. (
xm ) We take the following as an axiom:
∀P : prop , P ∨ ¬ P
Axiom. (
dneg ) We take the following as an axiom:
∀P : prop , ¬ ¬ P → P
Axiom. (
not_all_ex_demorgan_i ) We take the following as an axiom:
∀P : set → prop , ¬ (∀x, P x ) → ∃x, ¬ P x
Axiom. (
eq_or_nand ) We take the following as an axiom:
or = (λx y : prop ⇒ ¬ (¬ x ∧ ¬ y ) )
Object . The name
exactly1of2 is a term of type
prop → prop → prop .
Axiom. (
exactly1of2_E ) We take the following as an axiom:
∀A B : prop , exactly1of2 A B → ∀p : prop , (A → ¬ B → p ) → (¬ A → B → p ) → p
Axiom. (
ReplI ) We take the following as an axiom:
∀A : set , ∀F : set → set , ∀x : set , x ∈ A → F x ∈ {F x |x ∈ A }
Axiom. (
ReplE ) We take the following as an axiom:
∀A : set , ∀F : set → set , ∀y : set , y ∈ {F x |x ∈ A } → ∃x ∈ A , y = F x
Axiom. (
ReplE_impred ) We take the following as an axiom:
∀A : set , ∀F : set → set , ∀y : set , y ∈ {F x |x ∈ A } → ∀p : prop , (∀x : set , x ∈ A → y = F x → p ) → p
Axiom. (
ReplE' ) We take the following as an axiom:
∀X, ∀f : set → set , ∀p : set → prop , (∀x ∈ X , p (f x ) ) → ∀y ∈ {f x |x ∈ X } , p y
Axiom. (
Repl_Empty ) We take the following as an axiom:
Axiom. (
ReplEq_ext_sub ) We take the following as an axiom:
∀X, ∀F G : set → set , (∀x ∈ X , F x = G x ) → {F x |x ∈ X } ⊆ {G x |x ∈ X }
Axiom. (
ReplEq_ext ) We take the following as an axiom:
∀X, ∀F G : set → set , (∀x ∈ X , F x = G x ) → {F x |x ∈ X } = {G x |x ∈ X }
Axiom. (
Repl_inv_eq ) We take the following as an axiom:
∀P : set → prop , ∀f g : set → set , (∀x, P x → g (f x ) = x ) → ∀X, (∀x ∈ X , P x ) → {g y |y ∈ {f x |x ∈ X } } = X
Axiom. (
Repl_invol_eq ) We take the following as an axiom:
∀P : set → prop , ∀f : set → set , (∀x, P x → f (f x ) = x ) → ∀X, (∀x ∈ X , P x ) → {f y |y ∈ {f x |x ∈ X } } = X
Object . The name
If_i is a term of type
prop → set → set → set .
Notation . if cond then T else E is notation corresponding to If_i type cond T E where type is the inferred type of T .
Axiom. (
If_i_correct ) We take the following as an axiom:
∀p : prop , ∀x y : set , p ∧ (if p then x else y ) = x ∨ ¬ p ∧ (if p then x else y ) = y
Axiom. (
If_i_0 ) We take the following as an axiom:
∀p : prop , ∀x y : set , ¬ p → (if p then x else y ) = y
Axiom. (
If_i_1 ) We take the following as an axiom:
∀p : prop , ∀x y : set , p → (if p then x else y ) = x
Axiom. (
If_i_or ) We take the following as an axiom:
∀p : prop , ∀x y : set , (if p then x else y ) = x ∨ (if p then x else y ) = y
Object . The name
UPair is a term of type
set → set → set .
Notation .
{x ,y } is notation for
UPair x y .
Axiom. (
UPairE ) We take the following as an axiom:
∀x y z : set , x ∈ {y ,z } → x = y ∨ x = z
Axiom. (
UPairI1 ) We take the following as an axiom:
∀y z : set , y ∈ {y ,z }
Axiom. (
UPairI2 ) We take the following as an axiom:
∀y z : set , z ∈ {y ,z }
Object . The name
Sing is a term of type
set → set .
Notation .
{x } is notation for
Sing x .
Axiom. (
SingI ) We take the following as an axiom:
∀x : set , x ∈ {x }
Axiom. (
SingE ) We take the following as an axiom:
∀x y : set , y ∈ {x } → y = x
Object . The name
binunion is a term of type
set → set → set .
Notation . We use
∪ as an infix operator with priority 345 and which associates to the left corresponding to applying term
binunion .
Axiom. (
binunionI1 ) We take the following as an axiom:
∀X Y z : set , z ∈ X → z ∈ X ∪ Y
Axiom. (
binunionI2 ) We take the following as an axiom:
∀X Y z : set , z ∈ Y → z ∈ X ∪ Y
Axiom. (
binunionE ) We take the following as an axiom:
∀X Y z : set , z ∈ X ∪ Y → z ∈ X ∨ z ∈ Y
Axiom. (
binunionE' ) We take the following as an axiom:
∀X Y z, ∀p : prop , (z ∈ X → p ) → (z ∈ Y → p ) → (z ∈ X ∪ Y → p )
Axiom. (
binunion_asso ) We take the following as an axiom:
∀X Y Z : set , X ∪ (Y ∪ Z ) = (X ∪ Y ) ∪ Z
Axiom. (
binunion_com_Subq ) We take the following as an axiom:
∀X Y : set , X ∪ Y ⊆ Y ∪ X
Axiom. (
binunion_com ) We take the following as an axiom:
∀X Y : set , X ∪ Y = Y ∪ X
Axiom. (
binunion_Subq_1 ) We take the following as an axiom:
∀X Y : set , X ⊆ X ∪ Y
Axiom. (
binunion_Subq_2 ) We take the following as an axiom:
∀X Y : set , Y ⊆ X ∪ Y
Axiom. (
binunion_Subq_min ) We take the following as an axiom:
∀X Y Z : set , X ⊆ Z → Y ⊆ Z → X ∪ Y ⊆ Z
Axiom. (
Subq_binunion_eq ) We take the following as an axiom:
∀X Y, (X ⊆ Y ) = (X ∪ Y = Y )
Definition. We define
SetAdjoin to be
λX y ⇒ X ∪ {y } of type
set → set → set .
Notation . We now use the set enumeration notation
{...,...,...} in general. If 0 elements are given, then
Empty is used to form the corresponding term. If 1 element is given, then
Sing is used to form the corresponding term. If 2 elements are given, then
UPair is used to form the corresponding term. If more than elements are given, then
SetAdjoin is used to reduce to the case with one fewer elements.
Object . The name
famunion is a term of type
set → (set → set ) → set .
Notation . We use
⋃ x [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using
famunion .
Axiom. (
famunionI ) We take the following as an axiom:
∀X : set , ∀F : (set → set ) , ∀x y : set , x ∈ X → y ∈ F x → y ∈ ⋃x ∈ X F x
Axiom. (
famunionE ) We take the following as an axiom:
∀X : set , ∀F : (set → set ) , ∀y : set , y ∈ (⋃x ∈ X F x ) → ∃x ∈ X , y ∈ F x
Axiom. (
famunionE_impred ) We take the following as an axiom:
∀X : set , ∀F : (set → set ) , ∀y : set , y ∈ (⋃x ∈ X F x ) → ∀p : prop , (∀x, x ∈ X → y ∈ F x → p ) → p
Beginning of Section SepSec
Variable X : set
Variable P : set → prop
Let z : set ≝ Eps_i (λz ⇒ z ∈ X ∧ P z )
Let F : set → set ≝ λx ⇒ if P x then x else z
Object . The name
Sep is a term of type
set .
End of Section SepSec
Notation .
{x ∈ A | B } is notation for
Sep A (λ x . B ).
Axiom. (
SepI ) We take the following as an axiom:
∀X : set , ∀P : (set → prop ) , ∀x : set , x ∈ X → P x → x ∈ {x ∈ X |P x }
Axiom. (
SepE ) We take the following as an axiom:
∀X : set , ∀P : (set → prop ) , ∀x : set , x ∈ {x ∈ X |P x } → x ∈ X ∧ P x
Axiom. (
SepE1 ) We take the following as an axiom:
∀X : set , ∀P : (set → prop ) , ∀x : set , x ∈ {x ∈ X |P x } → x ∈ X
Axiom. (
SepE2 ) We take the following as an axiom:
∀X : set , ∀P : (set → prop ) , ∀x : set , x ∈ {x ∈ X |P x } → P x
Axiom. (
Sep_Subq ) We take the following as an axiom:
∀X : set , ∀P : set → prop , {x ∈ X |P x } ⊆ X
Axiom. (
Sep_In_Power ) We take the following as an axiom:
∀X : set , ∀P : set → prop , {x ∈ X |P x } ∈ 𝒫 X
Object . The name
ReplSep is a term of type
set → (set → prop ) → (set → set ) → set .
Notation .
{B | x ∈ A , C } is notation for
ReplSep A (λ x . C ) (λ x . B ).
Axiom. (
ReplSepI ) We take the following as an axiom:
∀X : set , ∀P : set → prop , ∀F : set → set , ∀x : set , x ∈ X → P x → F x ∈ {F x |x ∈ X , P x }
Axiom. (
ReplSepE ) We take the following as an axiom:
∀X : set , ∀P : set → prop , ∀F : set → set , ∀y : set , y ∈ {F x |x ∈ X , P x } → ∃x : set , x ∈ X ∧ P x ∧ y = F x
Axiom. (
ReplSepE_impred ) We take the following as an axiom:
∀X : set , ∀P : set → prop , ∀F : set → set , ∀y : set , y ∈ {F x |x ∈ X , P x } → ∀p : prop , (∀x ∈ X , P x → y = F x → p ) → p
Object . The name
binintersect is a term of type
set → set → set .
Notation . We use
∩ as an infix operator with priority 340 and which associates to the left corresponding to applying term
binintersect .
Axiom. (
binintersectI ) We take the following as an axiom:
∀X Y z, z ∈ X → z ∈ Y → z ∈ X ∩ Y
Axiom. (
binintersectE ) We take the following as an axiom:
∀X Y z, z ∈ X ∩ Y → z ∈ X ∧ z ∈ Y
Axiom. (
binintersectE1 ) We take the following as an axiom:
∀X Y z, z ∈ X ∩ Y → z ∈ X
Axiom. (
binintersectE2 ) We take the following as an axiom:
∀X Y z, z ∈ X ∩ Y → z ∈ Y
Axiom. (
binintersect_Subq_max ) We take the following as an axiom:
∀X Y Z : set , Z ⊆ X → Z ⊆ Y → Z ⊆ X ∩ Y
Axiom. (
binintersect_com ) We take the following as an axiom:
∀X Y : set , X ∩ Y = Y ∩ X
Object . The name
setminus is a term of type
set → set → set .
Notation . We use
∖ as an infix operator with priority 350 and no associativity corresponding to applying term
setminus .
Axiom. (
setminusI ) We take the following as an axiom:
∀X Y z, (z ∈ X ) → (z ∉ Y ) → z ∈ X ∖ Y
Axiom. (
setminusE ) We take the following as an axiom:
∀X Y z, (z ∈ X ∖ Y ) → z ∈ X ∧ z ∉ Y
Axiom. (
setminusE1 ) We take the following as an axiom:
∀X Y z, (z ∈ X ∖ Y ) → z ∈ X
Axiom. (
setminus_Subq ) We take the following as an axiom:
∀X Y : set , X ∖ Y ⊆ X
Axiom. (
setminus_Subq_contra ) We take the following as an axiom:
∀X Y Z : set , Z ⊆ Y → X ∖ Y ⊆ X ∖ Z
Axiom. (
In_irref ) We take the following as an axiom:
∀x, x ∉ x
Axiom. (
In_no2cycle ) We take the following as an axiom:
∀x y, x ∈ y → y ∈ x → False
Object . The name
ordsucc is a term of type
set → set .
Axiom. (
ordsuccI1 ) We take the following as an axiom:
Axiom. (
ordsuccI2 ) We take the following as an axiom:
Axiom. (
ordsuccE ) We take the following as an axiom:
∀x y : set , y ∈ ordsucc x → y ∈ x ∨ y = x
Notation . Natural numbers 0,1,2,... are notation for the terms formed using
Empty as 0 and forming successors with
ordsucc .
Axiom. (
ordsucc_inj ) We take the following as an axiom:
Axiom. (
In_0_1 ) We take the following as an axiom:
0 ∈ 1
Axiom. (
In_0_2 ) We take the following as an axiom:
0 ∈ 2
Axiom. (
In_1_2 ) We take the following as an axiom:
1 ∈ 2
Definition. We define
nat_p to be
λn : set ⇒ ∀p : set → prop , p 0 → (∀x : set , p x → p (ordsucc x ) ) → p n of type
set → prop .
Axiom. (
nat_0 ) We take the following as an axiom:
Axiom. (
nat_ordsucc ) We take the following as an axiom:
Axiom. (
nat_1 ) We take the following as an axiom:
Axiom. (
nat_2 ) We take the following as an axiom:
Axiom. (
nat_ind ) We take the following as an axiom:
Axiom. (
nat_inv ) We take the following as an axiom:
Axiom. (
nat_complete_ind ) We take the following as an axiom:
∀p : set → prop , (∀n, nat_p n → (∀m ∈ n , p m ) → p n ) → ∀n, nat_p n → p n
Axiom. (
nat_p_trans ) We take the following as an axiom:
Axiom. (
nat_trans ) We take the following as an axiom:
∀n, nat_p n → ∀m ∈ n , m ⊆ n
Axiom. (
cases_1 ) We take the following as an axiom:
∀i ∈ 1 , ∀p : set → prop , p 0 → p i
Axiom. (
cases_2 ) We take the following as an axiom:
∀i ∈ 2 , ∀p : set → prop , p 0 → p 1 → p i
Axiom. (
cases_3 ) We take the following as an axiom:
∀i ∈ 3 , ∀p : set → prop , p 0 → p 1 → p 2 → p i
Axiom. (
neq_0_1 ) We take the following as an axiom:
0 ≠ 1
Axiom. (
neq_1_0 ) We take the following as an axiom:
1 ≠ 0
Axiom. (
neq_0_2 ) We take the following as an axiom:
0 ≠ 2
Axiom. (
neq_2_0 ) We take the following as an axiom:
2 ≠ 0
Axiom. (
neq_1_2 ) We take the following as an axiom:
1 ≠ 2
Axiom. (
ZF_closed_E ) We take the following as an axiom:
Axiom. (
ZF_Repl_closed ) We take the following as an axiom:
∀U, ZF_closed U → ∀X ∈ U , ∀F : set → set , (∀x ∈ X , F x ∈ U ) → {F x |x ∈ X } ∈ U
Object . The name
ω is a term of type
set .
Axiom. (
omega_nat_p ) We take the following as an axiom:
Axiom. (
nat_p_omega ) We take the following as an axiom:
Definition. We define
ordinal to be
λalpha : set ⇒ TransSet alpha ∧ ∀beta ∈ alpha , TransSet beta of type
set → prop .
Axiom. (
ordinal_1 ) We take the following as an axiom:
Axiom. (
ordinal_2 ) We take the following as an axiom:
Axiom. (
ordinal_ind ) We take the following as an axiom:
∀p : set → prop , (∀alpha, ordinal alpha → (∀beta ∈ alpha , p beta ) → p alpha ) → ∀alpha, ordinal alpha → p alpha
Axiom. (
least_ordinal_ex ) We take the following as an axiom:
∀p : set → prop , (∃alpha, ordinal alpha ∧ p alpha ) → ∃alpha, ordinal alpha ∧ p alpha ∧ ∀beta ∈ alpha , ¬ p beta
Definition. We define
inj to be
λX Y f ⇒ (∀u ∈ X , f u ∈ Y ) ∧ (∀u v ∈ X , f u = f v → u = v ) of type
set → set → (set → set ) → prop .
Definition. We define
bij to be
λX Y f ⇒ (∀u ∈ X , f u ∈ Y ) ∧ (∀u v ∈ X , f u = f v → u = v ) ∧ (∀w ∈ Y , ∃u ∈ X , f u = w ) of type
set → set → (set → set ) → prop .
Axiom. (
bijI ) We take the following as an axiom:
∀X Y, ∀f : set → set , (∀u ∈ X , f u ∈ Y ) → (∀u v ∈ X , f u = f v → u = v ) → (∀w ∈ Y , ∃u ∈ X , f u = w ) → bij X Y f
Axiom. (
bijE ) We take the following as an axiom:
∀X Y, ∀f : set → set , bij X Y f → ∀p : prop , ((∀u ∈ X , f u ∈ Y ) → (∀u v ∈ X , f u = f v → u = v ) → (∀w ∈ Y , ∃u ∈ X , f u = w ) → p ) → p
Object . The name
inv is a term of type
set → (set → set ) → set → set .
Axiom. (
surj_rinv ) We take the following as an axiom:
∀X Y, ∀f : set → set , (∀w ∈ Y , ∃u ∈ X , f u = w ) → ∀y ∈ Y , inv X f y ∈ X ∧ f (inv X f y ) = y
Axiom. (
inj_linv ) We take the following as an axiom:
∀X, ∀f : set → set , (∀u v ∈ X , f u = f v → u = v ) → ∀x ∈ X , inv X f (f x ) = x
Axiom. (
bij_inv ) We take the following as an axiom:
∀X Y, ∀f : set → set , bij X Y f → bij Y X (inv X f )
Axiom. (
bij_id ) We take the following as an axiom:
Axiom. (
bij_comp ) We take the following as an axiom:
∀X Y Z : set , ∀f g : set → set , bij X Y f → bij Y Z g → bij X Z (λx ⇒ g (f x ) )
Definition. We define
equip to be
λX Y : set ⇒ ∃f : set → set , bij X Y f of type
set → set → prop .
Axiom. (
equip_ref ) We take the following as an axiom:
Axiom. (
equip_sym ) We take the following as an axiom:
Axiom. (
equip_tra ) We take the following as an axiom:
Beginning of Section SchroederBernstein
Axiom. (
KnasterTarski_set ) We take the following as an axiom:
∀A, ∀F : set → set , (∀U ∈ 𝒫 A , F U ∈ 𝒫 A ) → (∀U V ∈ 𝒫 A , U ⊆ V → F U ⊆ F V ) → ∃Y ∈ 𝒫 A , F Y = Y
Axiom. (
image_In_Power ) We take the following as an axiom:
∀A B, ∀f : set → set , (∀x ∈ A , f x ∈ B ) → ∀U ∈ 𝒫 A , {f x |x ∈ U } ∈ 𝒫 B
Axiom. (
image_monotone ) We take the following as an axiom:
∀f : set → set , ∀U V, U ⊆ V → {f x |x ∈ U } ⊆ {f x |x ∈ V }
End of Section SchroederBernstein
Beginning of Section PigeonHole
Axiom. (
PigeonHole_nat_bij ) We take the following as an axiom:
∀n, nat_p n → ∀f : set → set , (∀i ∈ n , f i ∈ n ) → (∀i j ∈ n , f i = f j → i = j ) → bij n n f
End of Section PigeonHole
Definition. We define
finite to be
λX ⇒ ∃n ∈ ω , equip X n of type
set → prop .
Axiom. (
finite_ind ) We take the following as an axiom:
∀p : set → prop , p Empty → (∀X y, finite X → y ∉ X → p X → p (X ∪ {y } ) ) → ∀X, finite X → p X
Axiom. (
Subq_finite ) We take the following as an axiom:
Axiom. (
exandE_i ) We take the following as an axiom:
∀P Q : set → prop , (∃x, P x ∧ Q x ) → ∀r : prop , (∀x, P x → Q x → r ) → r
Axiom. (
exandE_ii ) We take the following as an axiom:
∀P Q : (set → set ) → prop , (∃x : set → set , P x ∧ Q x ) → ∀p : prop , (∀x : set → set , P x → Q x → p ) → p
Axiom. (
exandE_iii ) We take the following as an axiom:
∀P Q : (set → set → set ) → prop , (∃x : set → set → set , P x ∧ Q x ) → ∀p : prop , (∀x : set → set → set , P x → Q x → p ) → p
Axiom. (
exandE_iiii ) We take the following as an axiom:
∀P Q : (set → set → set → set ) → prop , (∃x : set → set → set → set , P x ∧ Q x ) → ∀p : prop , (∀x : set → set → set → set , P x → Q x → p ) → p
Beginning of Section Descr_ii
Variable P : (set → set ) → prop
Object . The name
Descr_ii is a term of type
set → set .
Hypothesis Pex : ∃f : set → set , P f
Hypothesis Puniq : ∀f g : set → set , P f → P g → f = g
End of Section Descr_ii
Beginning of Section Descr_iii
Variable P : (set → set → set ) → prop
Object . The name
Descr_iii is a term of type
set → set → set .
Hypothesis Pex : ∃f : set → set → set , P f
Hypothesis Puniq : ∀f g : set → set → set , P f → P g → f = g
End of Section Descr_iii
Beginning of Section Descr_Vo1
Variable P : Vo 1 → prop
Object . The name
Descr_Vo1 is a term of type
Vo 1 .
Hypothesis Pex : ∃f : Vo 1 , P f
Hypothesis Puniq : ∀f g : Vo 1 , P f → P g → f = g
End of Section Descr_Vo1
Beginning of Section If_ii
Variable p : prop
Variable f g : set → set
Object . The name
If_ii is a term of type
set → set .
Axiom. (
If_ii_1 ) We take the following as an axiom:
Axiom. (
If_ii_0 ) We take the following as an axiom:
End of Section If_ii
Beginning of Section If_iii
Variable p : prop
Variable f g : set → set → set
Object . The name
If_iii is a term of type
set → set → set .
Axiom. (
If_iii_1 ) We take the following as an axiom:
Axiom. (
If_iii_0 ) We take the following as an axiom:
End of Section If_iii
Beginning of Section EpsilonRec_i
Variable F : set → (set → set ) → set
Object . The name
In_rec_i is a term of type
set → set .
Hypothesis Fr : ∀X : set , ∀g h : set → set , (∀x ∈ X , g x = h x ) → F X g = F X h
Axiom. (
In_rec_i_eq ) We take the following as an axiom:
End of Section EpsilonRec_i
Beginning of Section EpsilonRec_ii
Variable F : set → (set → (set → set ) ) → (set → set )
Object . The name
In_rec_ii is a term of type
set → (set → set ) .
Hypothesis Fr : ∀X : set , ∀g h : set → (set → set ) , (∀x ∈ X , g x = h x ) → F X g = F X h
End of Section EpsilonRec_ii
Beginning of Section EpsilonRec_iii
Variable F : set → (set → (set → set → set ) ) → (set → set → set )
Object . The name
In_rec_iii is a term of type
set → (set → set → set ) .
Hypothesis Fr : ∀X : set , ∀g h : set → (set → set → set ) , (∀x ∈ X , g x = h x ) → F X g = F X h
End of Section EpsilonRec_iii
Beginning of Section NatRec
Variable z : set
Variable f : set → set → set
Let F : set → (set → set ) → set ≝ λn g ⇒ if ⋃ n ∈ n then f (⋃ n ) (g (⋃ n ) ) else z
Axiom. (
nat_primrec_r ) We take the following as an axiom:
∀X : set , ∀g h : set → set , (∀x ∈ X , g x = h x ) → F X g = F X h
End of Section NatRec
Beginning of Section NatArith
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_nat .
Axiom. (
add_nat_0R ) We take the following as an axiom:
∀n : set , n + 0 = n
Axiom. (
add_nat_SR ) We take the following as an axiom:
Axiom. (
add_nat_p ) We take the following as an axiom:
Axiom. (
add_nat_1_1_2 ) We take the following as an axiom:
1 + 1 = 2
Definition. We define
mul_nat to be
λn m : set ⇒ nat_primrec 0 (λ_ r ⇒ n + r ) m of type
set → set → set .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_nat .
Axiom. (
mul_nat_0R ) We take the following as an axiom:
∀n : set , n * 0 = 0
Axiom. (
mul_nat_SR ) We take the following as an axiom:
Axiom. (
mul_nat_p ) We take the following as an axiom:
End of Section NatArith
Definition. We define
Inj1 to be
In_rec_i (λX f ⇒ {0 } ∪ {f x |x ∈ X } ) of type
set → set .
Axiom. (
Inj1_eq ) We take the following as an axiom:
Axiom. (
Inj1I1 ) We take the following as an axiom:
Axiom. (
Inj1I2 ) We take the following as an axiom:
Axiom. (
Inj1E ) We take the following as an axiom:
∀X y : set , y ∈ Inj1 X → y = 0 ∨ ∃x ∈ X , y = Inj1 x
Axiom. (
Inj1NE1 ) We take the following as an axiom:
Axiom. (
Inj1NE2 ) We take the following as an axiom:
Definition. We define
Inj0 to be
λX ⇒ {Inj1 x |x ∈ X } of type
set → set .
Axiom. (
Inj0I ) We take the following as an axiom:
Axiom. (
Inj0E ) We take the following as an axiom:
∀X y : set , y ∈ Inj0 X → ∃x : set , x ∈ X ∧ y = Inj1 x
Definition. We define
Unj to be
In_rec_i (λX f ⇒ {f x |x ∈ X ∖ {0 } } ) of type
set → set .
Axiom. (
Unj_eq ) We take the following as an axiom:
∀X : set , Unj X = {Unj x |x ∈ X ∖ {0 } }
Axiom. (
Unj_Inj1_eq ) We take the following as an axiom:
Axiom. (
Inj1_inj ) We take the following as an axiom:
Axiom. (
Unj_Inj0_eq ) We take the following as an axiom:
Axiom. (
Inj0_inj ) We take the following as an axiom:
Axiom. (
Inj0_0 ) We take the following as an axiom:
Definition. We define
setsum to be
λX Y ⇒ {Inj0 x |x ∈ X } ∪ {Inj1 y |y ∈ Y } of type
set → set → set .
Notation . We use
+ as an infix operator with priority 450 and which associates to the left corresponding to applying term
setsum .
Axiom. (
Inj0_setsum ) We take the following as an axiom:
∀X Y x : set , x ∈ X → Inj0 x ∈ X + Y
Axiom. (
Inj1_setsum ) We take the following as an axiom:
∀X Y y : set , y ∈ Y → Inj1 y ∈ X + Y
Axiom. (
setsum_Inj_inv ) We take the following as an axiom:
∀X Y z : set , z ∈ X + Y → (∃x ∈ X , z = Inj0 x ) ∨ (∃y ∈ Y , z = Inj1 y )
Axiom. (
Subq_1_Sing0 ) We take the following as an axiom:
1 ⊆ {0 }
Axiom. (
setsum_0_0 ) We take the following as an axiom:
0 + 0 = 0
Axiom. (
setsum_1_0_1 ) We take the following as an axiom:
1 + 0 = 1
Axiom. (
setsum_1_1_2 ) We take the following as an axiom:
1 + 1 = 2
Beginning of Section pair_setsum
Definition. We define
proj0 to be
λZ ⇒ {Unj z |z ∈ Z , ∃x : set , Inj0 x = z } of type
set → set .
Definition. We define
proj1 to be
λZ ⇒ {Unj z |z ∈ Z , ∃y : set , Inj1 y = z } of type
set → set .
Axiom. (
pairI0 ) We take the following as an axiom:
∀X Y x, x ∈ X → pair 0 x ∈ pair X Y
Axiom. (
pairI1 ) We take the following as an axiom:
∀X Y y, y ∈ Y → pair 1 y ∈ pair X Y
Axiom. (
pairE ) We take the following as an axiom:
∀X Y z, z ∈ pair X Y → (∃x ∈ X , z = pair 0 x ) ∨ (∃y ∈ Y , z = pair 1 y )
Axiom. (
pairE0 ) We take the following as an axiom:
∀X Y x, pair 0 x ∈ pair X Y → x ∈ X
Axiom. (
pairE1 ) We take the following as an axiom:
∀X Y y, pair 1 y ∈ pair X Y → y ∈ Y
Axiom. (
proj0I ) We take the following as an axiom:
∀w u : set , pair 0 u ∈ w → u ∈ proj0 w
Axiom. (
proj0E ) We take the following as an axiom:
∀w u : set , u ∈ proj0 w → pair 0 u ∈ w
Axiom. (
proj1I ) We take the following as an axiom:
∀w u : set , pair 1 u ∈ w → u ∈ proj1 w
Axiom. (
proj1E ) We take the following as an axiom:
∀w u : set , u ∈ proj1 w → pair 1 u ∈ w
Axiom. (
proj0_pair_eq ) We take the following as an axiom:
∀X Y : set , proj0 (pair X Y ) = X
Axiom. (
proj1_pair_eq ) We take the following as an axiom:
∀X Y : set , proj1 (pair X Y ) = Y
Definition. We define
Sigma to be
λX Y ⇒ ⋃x ∈ X {pair x y |y ∈ Y x } of type
set → (set → set ) → set .
Notation . We use
∑ x ...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using
Sigma .
Axiom. (
pair_Sigma ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀x ∈ X , ∀y ∈ Y x , pair x y ∈ ∑x ∈ X , Y x
Axiom. (
proj_Sigma_eta ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀z ∈ (∑x ∈ X , Y x ) , pair (proj0 z ) (proj1 z ) = z
Axiom. (
proj0_Sigma ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀z : set , z ∈ (∑x ∈ X , Y x ) → proj0 z ∈ X
Axiom. (
proj1_Sigma ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀z : set , z ∈ (∑x ∈ X , Y x ) → proj1 z ∈ Y (proj0 z )
Axiom. (
pair_Sigma_E1 ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀x y : set , pair x y ∈ (∑x ∈ X , Y x ) → y ∈ Y x
Axiom. (
Sigma_E ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀z : set , z ∈ (∑x ∈ X , Y x ) → ∃x ∈ X , ∃y ∈ Y x , z = pair x y
Definition. We define
setprod to be
λX Y : set ⇒ ∑x ∈ X , Y of type
set → set → set .
Notation . We use
⨯ as an infix operator with priority 440 and which associates to the left corresponding to applying term
setprod .
Let lam : set → (set → set ) → set ≝ Sigma
Definition. We define
ap to be
λf x ⇒ {proj1 z |z ∈ f , ∃y : set , z = pair x y } of type
set → set → set .
Notation . When
x is a set, a term
x y is notation for
ap x y .
Notation .
λ x ∈ A ⇒ B is notation for the set
Sigma A (λ x : set ⇒ B ).
Axiom. (
lamI ) We take the following as an axiom:
∀X : set , ∀F : set → set , ∀x ∈ X , ∀y ∈ F x , pair x y ∈ λx ∈ X ⇒ F x
Axiom. (
lamE ) We take the following as an axiom:
∀X : set , ∀F : set → set , ∀z : set , z ∈ (λx ∈ X ⇒ F x ) → ∃x ∈ X , ∃y ∈ F x , z = pair x y
Axiom. (
apI ) We take the following as an axiom:
∀f x y, pair x y ∈ f → y ∈ f x
Axiom. (
apE ) We take the following as an axiom:
∀f x y, y ∈ f x → pair x y ∈ f
Axiom. (
beta ) We take the following as an axiom:
∀X : set , ∀F : set → set , ∀x : set , x ∈ X → (λx ∈ X ⇒ F x ) x = F x
Axiom. (
proj0_ap_0 ) We take the following as an axiom:
Axiom. (
proj1_ap_1 ) We take the following as an axiom:
Axiom. (
pair_ap_0 ) We take the following as an axiom:
∀x y : set , (pair x y ) 0 = x
Axiom. (
pair_ap_1 ) We take the following as an axiom:
∀x y : set , (pair x y ) 1 = y
Axiom. (
ap0_Sigma ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀z : set , z ∈ (∑x ∈ X , Y x ) → (z 0 ) ∈ X
Axiom. (
ap1_Sigma ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀z : set , z ∈ (∑x ∈ X , Y x ) → (z 1 ) ∈ (Y (z 0 ) )
Definition. We define
pair_p to be
λu : set ⇒ pair (u 0 ) (u 1 ) = u of type
set → prop .
Axiom. (
pair_p_I ) We take the following as an axiom:
Axiom. (
tuple_pair ) We take the following as an axiom:
∀x y : set , pair x y = (x ,y )
Definition. We define
Pi to be
λX Y ⇒ {f ∈ 𝒫 (∑x ∈ X , ⋃ (Y x ) ) |∀x ∈ X , f x ∈ Y x } of type
set → (set → set ) → set .
Notation . We use
∏ x ...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using
Pi .
Axiom. (
PiI ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀f : set , (∀u ∈ f , pair_p u ∧ u 0 ∈ X ) → (∀x ∈ X , f x ∈ Y x ) → f ∈ ∏x ∈ X , Y x
Axiom. (
lam_Pi ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀F : set → set , (∀x ∈ X , F x ∈ Y x ) → (λx ∈ X ⇒ F x ) ∈ (∏x ∈ X , Y x )
Axiom. (
ap_Pi ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀f : set , ∀x : set , f ∈ (∏x ∈ X , Y x ) → x ∈ X → f x ∈ Y x
Definition. We define
setexp to be
λX Y : set ⇒ ∏y ∈ Y , X of type
set → set → set .
Notation . We use
:^: as an infix operator with priority 430 and which associates to the left corresponding to applying term
setexp .
Axiom. (
pair_tuple_fun ) We take the following as an axiom:
pair = (λx y ⇒ (x ,y ) )
Axiom. (
lamI2 ) We take the following as an axiom:
∀X, ∀F : set → set , ∀x ∈ X , ∀y ∈ F x , (x ,y ) ∈ λx ∈ X ⇒ F x
Beginning of Section Tuples
Variable x0 x1 : set
Axiom. (
tuple_2_0_eq ) We take the following as an axiom:
(x0 ,x1 ) 0 = x0
Axiom. (
tuple_2_1_eq ) We take the following as an axiom:
(x0 ,x1 ) 1 = x1
End of Section Tuples
Axiom. (
ReplEq_setprod_ext ) We take the following as an axiom:
∀X Y, ∀F G : set → set → set , (∀x ∈ X , ∀y ∈ Y , F x y = G x y ) → {F (w 0 ) (w 1 ) |w ∈ X ⨯ Y } = {G (w 0 ) (w 1 ) |w ∈ X ⨯ Y }
Axiom. (
tuple_2_Sigma ) We take the following as an axiom:
∀X : set , ∀Y : set → set , ∀x ∈ X , ∀y ∈ Y x , (x ,y ) ∈ ∑x ∈ X , Y x
Axiom. (
tuple_2_setprod ) We take the following as an axiom:
∀X : set , ∀Y : set , ∀x ∈ X , ∀y ∈ Y , (x ,y ) ∈ X ⨯ Y
End of Section pair_setsum
Notation . We use
∑ x ...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using
Sigma .
Notation . We use
⨯ as an infix operator with priority 440 and which associates to the left corresponding to applying term
setprod .
Notation . We use
∏ x ...y [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using
Pi .
Notation . We use
:^: as an infix operator with priority 430 and which associates to the left corresponding to applying term
setexp .
Object . The name
DescrR_i_io_1 is a term of type
(set → (set → prop ) → prop ) → set .
Object . The name
DescrR_i_io_2 is a term of type
(set → (set → prop ) → prop ) → set → prop .
Axiom. (
DescrR_i_io_12 ) We take the following as an axiom:
∀R : set → (set → prop ) → prop , (∃x, (∃y : set → prop , R x y ) ∧ (∀y z : set → prop , R x y → R x z → y = z ) ) → R (DescrR_i_io_1 R ) (DescrR_i_io_2 R )
Definition. We define
PNoEq_ to be
λalpha p q ⇒ ∀beta ∈ alpha , p beta ↔ q beta of type
set → (set → prop ) → (set → prop ) → prop .
Axiom. (
PNoEq_ref_ ) We take the following as an axiom:
∀alpha, ∀p : set → prop , PNoEq_ alpha p p
Axiom. (
PNoEq_sym_ ) We take the following as an axiom:
∀alpha, ∀p q : set → prop , PNoEq_ alpha p q → PNoEq_ alpha q p
Axiom. (
PNoEq_tra_ ) We take the following as an axiom:
Definition. We define
PNoLt_ to be
λalpha p q ⇒ ∃beta ∈ alpha , PNoEq_ beta p q ∧ ¬ p beta ∧ q beta of type
set → (set → prop ) → (set → prop ) → prop .
Axiom. (
PNoLt_E_ ) We take the following as an axiom:
Axiom. (
PNoLt_irref_ ) We take the following as an axiom:
∀alpha, ∀p : set → prop , ¬ PNoLt_ alpha p p
Axiom. (
PNoLt_mon_ ) We take the following as an axiom:
Axiom. (
PNoLt_tra_ ) We take the following as an axiom:
Object . The name
PNoLt is a term of type
set → (set → prop ) → set → (set → prop ) → prop .
Axiom. (
PNoLtI1 ) We take the following as an axiom:
Axiom. (
PNoLtI2 ) We take the following as an axiom:
∀alpha beta, ∀p q : set → prop , alpha ∈ beta → PNoEq_ alpha p q → q alpha → PNoLt alpha p beta q
Axiom. (
PNoLtI3 ) We take the following as an axiom:
Axiom. (
PNoLtE ) We take the following as an axiom:
Axiom. (
PNoLt_irref ) We take the following as an axiom:
∀alpha, ∀p : set → prop , ¬ PNoLt alpha p alpha p
Axiom. (
PNoLtEq_tra ) We take the following as an axiom:
Axiom. (
PNoEqLt_tra ) We take the following as an axiom:
Axiom. (
PNoLt_tra ) We take the following as an axiom:
Definition. We define
PNoLe to be
λalpha p beta q ⇒ PNoLt alpha p beta q ∨ alpha = beta ∧ PNoEq_ alpha p q of type
set → (set → prop ) → set → (set → prop ) → prop .
Axiom. (
PNoLeI1 ) We take the following as an axiom:
Axiom. (
PNoLeI2 ) We take the following as an axiom:
∀alpha, ∀p q : set → prop , PNoEq_ alpha p q → PNoLe alpha p alpha q
Axiom. (
PNoLe_ref ) We take the following as an axiom:
∀alpha, ∀p : set → prop , PNoLe alpha p alpha p
Axiom. (
PNoLtLe_tra ) We take the following as an axiom:
Axiom. (
PNoLeLt_tra ) We take the following as an axiom:
Axiom. (
PNoEqLe_tra ) We take the following as an axiom:
Axiom. (
PNoLe_tra ) We take the following as an axiom:
Definition. We define
PNo_downc to be
λL alpha p ⇒ ∃beta, ordinal beta ∧ ∃q : set → prop , L beta q ∧ PNoLe alpha p beta q of type
(set → (set → prop ) → prop ) → set → (set → prop ) → prop .
Definition. We define
PNo_upc to be
λR alpha p ⇒ ∃beta, ordinal beta ∧ ∃q : set → prop , R beta q ∧ PNoLe beta q alpha p of type
(set → (set → prop ) → prop ) → set → (set → prop ) → prop .
Axiom. (
PNoLe_downc ) We take the following as an axiom:
Axiom. (
PNo_downc_ref ) We take the following as an axiom:
∀L : set → (set → prop ) → prop , ∀alpha, ordinal alpha → ∀p : set → prop , L alpha p → PNo_downc L alpha p
Axiom. (
PNo_upc_ref ) We take the following as an axiom:
∀R : set → (set → prop ) → prop , ∀alpha, ordinal alpha → ∀p : set → prop , R alpha p → PNo_upc R alpha p
Axiom. (
PNoLe_upc ) We take the following as an axiom:
Definition. We define
PNoLt_pwise to be
λL R ⇒ ∀gamma, ordinal gamma → ∀p : set → prop , L gamma p → ∀delta, ordinal delta → ∀q : set → prop , R delta q → PNoLt gamma p delta q of type
(set → (set → prop ) → prop ) → (set → (set → prop ) → prop ) → prop .
Axiom. (
PNo_extend0_eq ) We take the following as an axiom:
∀alpha, ∀p : set → prop , PNoEq_ alpha p (λdelta ⇒ p delta ∧ delta ≠ alpha )
Axiom. (
PNo_extend1_eq ) We take the following as an axiom:
∀alpha, ∀p : set → prop , PNoEq_ alpha p (λdelta ⇒ p delta ∨ delta = alpha )
Definition. We define
PNo_lenbdd to be
λalpha L ⇒ ∀beta, ∀p : set → prop , L beta p → beta ∈ alpha of type
set → (set → (set → prop ) → prop ) → prop .
Definition. We define
PNo_least_rep2 to be
λL R beta p ⇒ PNo_least_rep L R beta p ∧ ∀x, x ∉ beta → ¬ p x of type
(set → (set → prop ) → prop ) → (set → (set → prop ) → prop ) → set → (set → prop ) → prop .
Object . The name
PNo_bd is a term of type
(set → (set → prop ) → prop ) → (set → (set → prop ) → prop ) → set .
Object . The name
PNo_pred is a term of type
(set → (set → prop ) → prop ) → (set → (set → prop ) → prop ) → set → prop .
Axiom. (
PNo_bd_pred ) We take the following as an axiom:
Axiom. (
PNo_bd_In ) We take the following as an axiom:
Beginning of Section TaggedSets
Let tag : set → set ≝ λalpha ⇒ SetAdjoin alpha {1 }
Notation . We use ' as a postfix operator with priority 100 corresponding to applying term tag .
Definition. We define
SNoElts_ to be
λalpha ⇒ alpha ∪ {beta ' |beta ∈ alpha } of type
set → set .
Axiom. (
SNoElts_mon ) We take the following as an axiom:
Definition. We define
PSNo to be
λalpha p ⇒ {beta ∈ alpha |p beta } ∪ {beta ' |beta ∈ alpha , ¬ p beta } of type
set → (set → prop ) → set .
Axiom. (
PNoEq_PSNo ) We take the following as an axiom:
Axiom. (
SNo_PSNo ) We take the following as an axiom:
Object . The name
SNo is a term of type
set → prop .
Axiom. (
SNo_SNo ) We take the following as an axiom:
Object . The name
SNoLev is a term of type
set → set .
Axiom. (
SNoLev_uniq ) We take the following as an axiom:
Axiom. (
SNoLev_prop ) We take the following as an axiom:
Axiom. (
SNoLev_ ) We take the following as an axiom:
Axiom. (
SNoLev_PSNo ) We take the following as an axiom:
Axiom. (
SNo_Subq ) We take the following as an axiom:
Definition. We define
SNoEq_ to be
λalpha x y ⇒ PNoEq_ alpha (λbeta ⇒ beta ∈ x ) (λbeta ⇒ beta ∈ y ) of type
set → set → set → prop .
Axiom. (
SNoEq_I ) We take the following as an axiom:
Axiom. (
SNo_eq ) We take the following as an axiom:
End of Section TaggedSets
Notation . We use
< as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLt .
Notation . We use
≤ as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLe .
Axiom. (
SNoLtLe ) We take the following as an axiom:
∀x y, x < y → x ≤ y
Axiom. (
SNoLeE ) We take the following as an axiom:
∀x y, SNo x → SNo y → x ≤ y → x < y ∨ x = y
Axiom. (
SNoEq_sym_ ) We take the following as an axiom:
Axiom. (
SNoEq_tra_ ) We take the following as an axiom:
Axiom. (
SNoLtE ) We take the following as an axiom:
Axiom. (
SNoLtI2 ) We take the following as an axiom:
Axiom. (
SNoLtI3 ) We take the following as an axiom:
Axiom. (
SNoLt_irref ) We take the following as an axiom:
Axiom. (
SNoLt_tra ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x < y → y < z → x < z
Axiom. (
SNoLe_ref ) We take the following as an axiom:
Axiom. (
SNoLe_antisym ) We take the following as an axiom:
∀x y, SNo x → SNo y → x ≤ y → y ≤ x → x = y
Axiom. (
SNoLtLe_tra ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x < y → y ≤ z → x < z
Axiom. (
SNoLeLt_tra ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x ≤ y → y < z → x < z
Axiom. (
SNoLe_tra ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x ≤ y → y ≤ z → x ≤ z
Axiom. (
SNoLtLe_or ) We take the following as an axiom:
∀x y, SNo x → SNo y → x < y ∨ y ≤ x
Definition. We define
SNoCutP to be
λL R ⇒ (∀x ∈ L , SNo x ) ∧ (∀y ∈ R , SNo y ) ∧ (∀x ∈ L , ∀y ∈ R , x < y ) of type
set → set → prop .
Axiom. (
SNoCutP_L_0 ) We take the following as an axiom:
Axiom. (
SNoCutP_0_R ) We take the following as an axiom:
Axiom. (
SNoCutP_0_0 ) We take the following as an axiom:
Definition. We define
SNoS_ to be
λalpha ⇒ {x ∈ 𝒫 (SNoElts_ alpha ) |∃beta ∈ alpha , SNo_ beta x } of type
set → set .
Axiom. (
SNoS_E ) We take the following as an axiom:
Beginning of Section TaggedSets2
Let tag : set → set ≝ λalpha ⇒ SetAdjoin alpha {1 }
Notation . We use ' as a postfix operator with priority 100 corresponding to applying term tag .
Axiom. (
SNoS_I ) We take the following as an axiom:
Axiom. (
SNoS_I2 ) We take the following as an axiom:
Axiom. (
SNoS_Subq ) We take the following as an axiom:
Axiom. (
SNoS_E2 ) We take the following as an axiom:
Axiom. (
SNoS_In_neq ) We take the following as an axiom:
Axiom. (
SNoS_SNoLev ) We take the following as an axiom:
Definition. We define
SNoL to be
λz ⇒ {x ∈ SNoS_ (SNoLev z ) |x < z } of type
set → set .
Definition. We define
SNoR to be
λz ⇒ {y ∈ SNoS_ (SNoLev z ) |z < y } of type
set → set .
Axiom. (
SNoL_E ) We take the following as an axiom:
Axiom. (
SNoR_E ) We take the following as an axiom:
Axiom. (
SNoL_SNoS_ ) We take the following as an axiom:
Axiom. (
SNoR_SNoS_ ) We take the following as an axiom:
Axiom. (
SNoL_SNoS ) We take the following as an axiom:
Axiom. (
SNoR_SNoS ) We take the following as an axiom:
Axiom. (
SNoL_I ) We take the following as an axiom:
Axiom. (
SNoR_I ) We take the following as an axiom:
Axiom. (
SNo_eta ) We take the following as an axiom:
Axiom. (
SNoCut_Le ) We take the following as an axiom:
Axiom. (
SNoCut_ext ) We take the following as an axiom:
Axiom. (
ordinal_SNo ) We take the following as an axiom:
Axiom. (
nat_p_SNo ) We take the following as an axiom:
Axiom. (
omega_SNo ) We take the following as an axiom:
Axiom. (
SNo_0 ) We take the following as an axiom:
Axiom. (
SNo_1 ) We take the following as an axiom:
Axiom. (
SNo_2 ) We take the following as an axiom:
Axiom. (
SNoLev_0 ) We take the following as an axiom:
Axiom. (
SNoCut_0_0 ) We take the following as an axiom:
Axiom. (
SNoL_0 ) We take the following as an axiom:
Axiom. (
SNoR_0 ) We take the following as an axiom:
Axiom. (
SNoL_1 ) We take the following as an axiom:
Axiom. (
SNoR_1 ) We take the following as an axiom:
Definition. We define
eps_ to be
λn ⇒ {0 } ∪ {(ordsucc m ) ' |m ∈ n } of type
set → set .
Axiom. (
eps_0_1 ) We take the following as an axiom:
Axiom. (
SNo__eps_ ) We take the following as an axiom:
Axiom. (
SNo_eps_ ) We take the following as an axiom:
Axiom. (
SNo_eps_1 ) We take the following as an axiom:
Axiom. (
SNoLev_eps_ ) We take the following as an axiom:
Axiom. (
SNo_eps_pos ) We take the following as an axiom:
Axiom. (
eps_SNo_eq ) We take the following as an axiom:
Axiom. (
eps_SNoCutP ) We take the following as an axiom:
Axiom. (
eps_SNoCut ) We take the following as an axiom:
End of Section TaggedSets2
Axiom. (
SNo_etaE ) We take the following as an axiom:
Axiom. (
SNo_ind ) We take the following as an axiom:
∀P : set → prop , (∀L R, SNoCutP L R → (∀x ∈ L , P x ) → (∀y ∈ R , P y ) → P (SNoCut L R ) ) → ∀z, SNo z → P z
Beginning of Section SurrealRecI
Variable F : set → (set → set ) → set
Let G : set → (set → set → set ) → set → set ≝ λalpha g ⇒ If_ii (ordinal alpha ) (λz : set ⇒ if z ∈ SNoS_ (ordsucc alpha ) then F z (λw ⇒ g (SNoLev w ) w ) else default ) (λz : set ⇒ default )
Object . The name
SNo_rec_i is a term of type
set → set .
Hypothesis Fr : ∀z, SNo z → ∀g h : set → set , (∀w ∈ SNoS_ (SNoLev z ) , g w = h w ) → F z g = F z h
End of Section SurrealRecI
Beginning of Section SurrealRecII
Variable F : set → (set → (set → set ) ) → (set → set )
Let G : set → (set → set → (set → set ) ) → set → (set → set ) ≝ λalpha g ⇒ If_iii (ordinal alpha ) (λz : set ⇒ If_ii (z ∈ SNoS_ (ordsucc alpha ) ) (F z (λw ⇒ g (SNoLev w ) w ) ) default ) (λz : set ⇒ default )
Object . The name
SNo_rec_ii is a term of type
set → (set → set ) .
Hypothesis Fr : ∀z, SNo z → ∀g h : set → (set → set ) , (∀w ∈ SNoS_ (SNoLev z ) , g w = h w ) → F z g = F z h
End of Section SurrealRecII
Beginning of Section SurrealRec2
Variable F : set → set → (set → set → set ) → set
Let G : set → (set → set → set ) → set → (set → set ) → set ≝ λw f z g ⇒ F w z (λx y ⇒ if x = w then g y else f x y )
Let H : set → (set → set → set ) → set → set ≝ λw f z ⇒ if SNo z then SNo_rec_i (G w f ) z else Empty
Object . The name
SNo_rec2 is a term of type
set → set → set .
Hypothesis Fr : ∀w, SNo w → ∀z, SNo z → ∀g h : set → set → set , (∀x ∈ SNoS_ (SNoLev w ) , ∀y, SNo y → g x y = h x y ) → (∀y ∈ SNoS_ (SNoLev z ) , g w y = h w y ) → F w z g = F w z h
Axiom. (
SNo_rec2_G_prop ) We take the following as an axiom:
∀w, SNo w → ∀f k : set → set → set , (∀x ∈ SNoS_ (SNoLev w ) , f x = k x ) → ∀z, SNo z → ∀g h : set → set , (∀u ∈ SNoS_ (SNoLev z ) , g u = h u ) → G w f z g = G w k z h
Axiom. (
SNo_rec2_eq ) We take the following as an axiom:
End of Section SurrealRec2
Axiom. (
SNoLev_ind ) We take the following as an axiom:
∀P : set → prop , (∀x, SNo x → (∀w ∈ SNoS_ (SNoLev x ) , P w ) → P x ) → (∀x, SNo x → P x )
Axiom. (
SNoLev_ind2 ) We take the following as an axiom:
Axiom. (
SNoLev_ind3 ) We take the following as an axiom:
∀P : set → set → set → prop , (∀x y z, SNo x → SNo y → SNo z → (∀u ∈ SNoS_ (SNoLev x ) , P u y z ) → (∀v ∈ SNoS_ (SNoLev y ) , P x v z ) → (∀w ∈ SNoS_ (SNoLev z ) , P x y w ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀v ∈ SNoS_ (SNoLev y ) , P u v z ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀w ∈ SNoS_ (SNoLev z ) , P u y w ) → (∀v ∈ SNoS_ (SNoLev y ) , ∀w ∈ SNoS_ (SNoLev z ) , P x v w ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀v ∈ SNoS_ (SNoLev y ) , ∀w ∈ SNoS_ (SNoLev z ) , P u v w ) → P x y z ) → ∀x y z, SNo x → SNo y → SNo z → P x y z
Axiom. (
SNo_omega ) We take the following as an axiom:
Axiom. (
SNoLt_0_1 ) We take the following as an axiom:
0 < 1
Axiom. (
SNoLt_0_2 ) We take the following as an axiom:
0 < 2
Axiom. (
SNoLt_1_2 ) We take the following as an axiom:
1 < 2
Axiom. (
restr_SNo_ ) We take the following as an axiom:
Axiom. (
restr_SNo ) We take the following as an axiom:
Axiom. (
restr_SNoEq ) We take the following as an axiom:
Beginning of Section SurrealMinus
Object . The name
minus_SNo is a term of type
set → set .
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
≤ as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLe .
End of Section SurrealMinus
Beginning of Section SurrealAdd
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Object . The name
add_SNo is a term of type
set → set → set .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Axiom. (
add_SNo_eq ) We take the following as an axiom:
Axiom. (
add_SNo_prop1 ) We take the following as an axiom:
∀x y, SNo x → SNo y → SNo (x + y ) ∧ (∀u ∈ SNoL x , u + y < x + y ) ∧ (∀u ∈ SNoR x , x + y < u + y ) ∧ (∀u ∈ SNoL y , x + u < x + y ) ∧ (∀u ∈ SNoR y , x + y < x + u ) ∧ SNoCutP ({w + y |w ∈ SNoL x } ∪ {x + w |w ∈ SNoL y } ) ({z + y |z ∈ SNoR x } ∪ {x + z |z ∈ SNoR y } )
Axiom. (
SNo_add_SNo ) We take the following as an axiom:
Axiom. (
add_SNo_Lt1 ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x < z → x + y < z + y
Axiom. (
add_SNo_Le1 ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x ≤ z → x + y ≤ z + y
Axiom. (
add_SNo_Lt2 ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → y < z → x + y < x + z
Axiom. (
add_SNo_Le2 ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → y ≤ z → x + y ≤ x + z
Axiom. (
add_SNo_Lt3a ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → x < z → y ≤ w → x + y < z + w
Axiom. (
add_SNo_Lt3b ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → x ≤ z → y < w → x + y < z + w
Axiom. (
add_SNo_Lt3 ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → x < z → y < w → x + y < z + w
Axiom. (
add_SNo_Le3 ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → x ≤ z → y ≤ w → x + y ≤ z + w
Axiom. (
add_SNo_com ) We take the following as an axiom:
∀x y, SNo x → SNo y → x + y = y + x
Axiom. (
add_SNo_0L ) We take the following as an axiom:
Axiom. (
add_SNo_0R ) We take the following as an axiom:
Axiom. (
add_SNo_1_1_2 ) We take the following as an axiom:
1 + 1 = 2
Axiom. (
add_SNo_assoc ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x + (y + z ) = (x + y ) + z
Axiom. (
minus_SNo_0 ) We take the following as an axiom:
- 0 = 0
Axiom. (
add_SNo_3a_2b ) We take the following as an axiom:
∀x y z w u, SNo x → SNo y → SNo z → SNo w → SNo u → (x + y + z ) + (w + u ) = (u + y + z ) + (w + x )
Axiom. (
add_SNo_Lt4 ) We take the following as an axiom:
∀x y z w u v, SNo x → SNo y → SNo z → SNo w → SNo u → SNo v → x < w → y < u → z < v → x + y + z < w + u + v
End of Section SurrealAdd
Beginning of Section SurrealMul
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Definition. We define
mul_SNo to be
SNo_rec2 (λx y m ⇒ SNoCut ({m (w 0 ) y + m x (w 1 ) + - m (w 0 ) (w 1 ) |w ∈ SNoL x ⨯ SNoL y } ∪ {m (z 0 ) y + m x (z 1 ) + - m (z 0 ) (z 1 ) |z ∈ SNoR x ⨯ SNoR y } ) ({m (w 0 ) y + m x (w 1 ) + - m (w 0 ) (w 1 ) |w ∈ SNoL x ⨯ SNoR y } ∪ {m (z 0 ) y + m x (z 1 ) + - m (z 0 ) (z 1 ) |z ∈ SNoR x ⨯ SNoL y } ) ) of type
set → set → set .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Axiom. (
mul_SNo_eq ) We take the following as an axiom:
∀x, SNo x → ∀y, SNo y → x * y = SNoCut ({(w 0 ) * y + x * (w 1 ) + - (w 0 ) * (w 1 ) |w ∈ SNoL x ⨯ SNoL y } ∪ {(z 0 ) * y + x * (z 1 ) + - (z 0 ) * (z 1 ) |z ∈ SNoR x ⨯ SNoR y } ) ({(w 0 ) * y + x * (w 1 ) + - (w 0 ) * (w 1 ) |w ∈ SNoL x ⨯ SNoR y } ∪ {(z 0 ) * y + x * (z 1 ) + - (z 0 ) * (z 1 ) |z ∈ SNoR x ⨯ SNoL y } )
Axiom. (
mul_SNo_eq_2 ) We take the following as an axiom:
∀x y, SNo x → SNo y → ∀p : prop , (∀L R, (∀u, u ∈ L → (∀q : prop , (∀w0 ∈ SNoL x , ∀w1 ∈ SNoL y , u = w0 * y + x * w1 + - w0 * w1 → q ) → (∀z0 ∈ SNoR x , ∀z1 ∈ SNoR y , u = z0 * y + x * z1 + - z0 * z1 → q ) → q ) ) → (∀w0 ∈ SNoL x , ∀w1 ∈ SNoL y , w0 * y + x * w1 + - w0 * w1 ∈ L ) → (∀z0 ∈ SNoR x , ∀z1 ∈ SNoR y , z0 * y + x * z1 + - z0 * z1 ∈ L ) → (∀u, u ∈ R → (∀q : prop , (∀w0 ∈ SNoL x , ∀z1 ∈ SNoR y , u = w0 * y + x * z1 + - w0 * z1 → q ) → (∀z0 ∈ SNoR x , ∀w1 ∈ SNoL y , u = z0 * y + x * w1 + - z0 * w1 → q ) → q ) ) → (∀w0 ∈ SNoL x , ∀z1 ∈ SNoR y , w0 * y + x * z1 + - w0 * z1 ∈ R ) → (∀z0 ∈ SNoR x , ∀w1 ∈ SNoL y , z0 * y + x * w1 + - z0 * w1 ∈ R ) → x * y = SNoCut L R → p ) → p
Axiom. (
mul_SNo_prop_1 ) We take the following as an axiom:
∀x, SNo x → ∀y, SNo y → ∀p : prop , (SNo (x * y ) → (∀u ∈ SNoL x , ∀v ∈ SNoL y , u * y + x * v < x * y + u * v ) → (∀u ∈ SNoR x , ∀v ∈ SNoR y , u * y + x * v < x * y + u * v ) → (∀u ∈ SNoL x , ∀v ∈ SNoR y , x * y + u * v < u * y + x * v ) → (∀u ∈ SNoR x , ∀v ∈ SNoL y , x * y + u * v < u * y + x * v ) → p ) → p
Axiom. (
SNo_mul_SNo ) We take the following as an axiom:
Axiom. (
mul_SNo_eq_3 ) We take the following as an axiom:
∀x y, SNo x → SNo y → ∀p : prop , (∀L R, SNoCutP L R → (∀u, u ∈ L → (∀q : prop , (∀w0 ∈ SNoL x , ∀w1 ∈ SNoL y , u = w0 * y + x * w1 + - w0 * w1 → q ) → (∀z0 ∈ SNoR x , ∀z1 ∈ SNoR y , u = z0 * y + x * z1 + - z0 * z1 → q ) → q ) ) → (∀w0 ∈ SNoL x , ∀w1 ∈ SNoL y , w0 * y + x * w1 + - w0 * w1 ∈ L ) → (∀z0 ∈ SNoR x , ∀z1 ∈ SNoR y , z0 * y + x * z1 + - z0 * z1 ∈ L ) → (∀u, u ∈ R → (∀q : prop , (∀w0 ∈ SNoL x , ∀z1 ∈ SNoR y , u = w0 * y + x * z1 + - w0 * z1 → q ) → (∀z0 ∈ SNoR x , ∀w1 ∈ SNoL y , u = z0 * y + x * w1 + - z0 * w1 → q ) → q ) ) → (∀w0 ∈ SNoL x , ∀z1 ∈ SNoR y , w0 * y + x * z1 + - w0 * z1 ∈ R ) → (∀z0 ∈ SNoR x , ∀w1 ∈ SNoL y , z0 * y + x * w1 + - z0 * w1 ∈ R ) → x * y = SNoCut L R → p ) → p
Axiom. (
mul_SNo_Lt ) We take the following as an axiom:
∀x y u v, SNo x → SNo y → SNo u → SNo v → u < x → v < y → u * y + x * v < x * y + u * v
Axiom. (
mul_SNo_Le ) We take the following as an axiom:
∀x y u v, SNo x → SNo y → SNo u → SNo v → u ≤ x → v ≤ y → u * y + x * v ≤ x * y + u * v
Axiom. (
mul_SNo_Subq_lem ) We take the following as an axiom:
∀x y X Y Z W, ∀U U', (∀u, u ∈ U → (∀q : prop , (∀w0 ∈ X , ∀w1 ∈ Y , u = w0 * y + x * w1 + - w0 * w1 → q ) → (∀z0 ∈ Z , ∀z1 ∈ W , u = z0 * y + x * z1 + - z0 * z1 → q ) → q ) ) → (∀w0 ∈ X , ∀w1 ∈ Y , w0 * y + x * w1 + - w0 * w1 ∈ U' ) → (∀w0 ∈ Z , ∀w1 ∈ W , w0 * y + x * w1 + - w0 * w1 ∈ U' ) → U ⊆ U'
Axiom. (
mul_SNo_com ) We take the following as an axiom:
∀x y, SNo x → SNo y → x * y = y * x
Axiom. (
mul_SNo_distrR ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → (x + y ) * z = x * z + y * z
Axiom. (
mul_SNo_distrL ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x * (y + z ) = x * y + x * z
Beginning of Section mul_SNo_assoc_lems
Variable M : set → set → set
Notation . We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term M .
Hypothesis SNo_M : ∀x y, SNo x → SNo y → SNo (x * y )
Hypothesis DL : ∀x y z, SNo x → SNo y → SNo z → x * (y + z ) = x * y + x * z
Hypothesis DR : ∀x y z, SNo x → SNo y → SNo z → (x + y ) * z = x * z + y * z
Hypothesis IL : ∀x y, SNo x → SNo y → ∀u ∈ SNoL (x * y ) , ∀p : prop , (∀v ∈ SNoL x , ∀w ∈ SNoL y , u + v * w ≤ v * y + x * w → p ) → (∀v ∈ SNoR x , ∀w ∈ SNoR y , u + v * w ≤ v * y + x * w → p ) → p
Hypothesis IR : ∀x y, SNo x → SNo y → ∀u ∈ SNoR (x * y ) , ∀p : prop , (∀v ∈ SNoL x , ∀w ∈ SNoR y , v * y + x * w ≤ u + v * w → p ) → (∀v ∈ SNoR x , ∀w ∈ SNoL y , v * y + x * w ≤ u + v * w → p ) → p
Hypothesis M_Lt : ∀x y u v, SNo x → SNo y → SNo u → SNo v → u < x → v < y → u * y + x * v < x * y + u * v
Hypothesis M_Le : ∀x y u v, SNo x → SNo y → SNo u → SNo v → u ≤ x → v ≤ y → u * y + x * v ≤ x * y + u * v
Axiom. (
mul_SNo_assoc_lem1 ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → (∀u ∈ SNoS_ (SNoLev x ) , u * (y * z ) = (u * y ) * z ) → (∀v ∈ SNoS_ (SNoLev y ) , x * (v * z ) = (x * v ) * z ) → (∀w ∈ SNoS_ (SNoLev z ) , x * (y * w ) = (x * y ) * w ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀v ∈ SNoS_ (SNoLev y ) , u * (v * z ) = (u * v ) * z ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀w ∈ SNoS_ (SNoLev z ) , u * (y * w ) = (u * y ) * w ) → (∀v ∈ SNoS_ (SNoLev y ) , ∀w ∈ SNoS_ (SNoLev z ) , x * (v * w ) = (x * v ) * w ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀v ∈ SNoS_ (SNoLev y ) , ∀w ∈ SNoS_ (SNoLev z ) , u * (v * w ) = (u * v ) * w ) → ∀L, (∀u ∈ L , ∀q : prop , (∀v ∈ SNoL x , ∀w ∈ SNoL (y * z ) , u = v * (y * z ) + x * w + - v * w → q ) → (∀v ∈ SNoR x , ∀w ∈ SNoR (y * z ) , u = v * (y * z ) + x * w + - v * w → q ) → q ) → ∀u ∈ L , u < (x * y ) * z
Axiom. (
mul_SNo_assoc_lem2 ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → (∀u ∈ SNoS_ (SNoLev x ) , u * (y * z ) = (u * y ) * z ) → (∀v ∈ SNoS_ (SNoLev y ) , x * (v * z ) = (x * v ) * z ) → (∀w ∈ SNoS_ (SNoLev z ) , x * (y * w ) = (x * y ) * w ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀v ∈ SNoS_ (SNoLev y ) , u * (v * z ) = (u * v ) * z ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀w ∈ SNoS_ (SNoLev z ) , u * (y * w ) = (u * y ) * w ) → (∀v ∈ SNoS_ (SNoLev y ) , ∀w ∈ SNoS_ (SNoLev z ) , x * (v * w ) = (x * v ) * w ) → (∀u ∈ SNoS_ (SNoLev x ) , ∀v ∈ SNoS_ (SNoLev y ) , ∀w ∈ SNoS_ (SNoLev z ) , u * (v * w ) = (u * v ) * w ) → ∀R, (∀u ∈ R , ∀q : prop , (∀v ∈ SNoL x , ∀w ∈ SNoR (y * z ) , u = v * (y * z ) + x * w + - v * w → q ) → (∀v ∈ SNoR x , ∀w ∈ SNoL (y * z ) , u = v * (y * z ) + x * w + - v * w → q ) → q ) → ∀u ∈ R , (x * y ) * z < u
End of Section mul_SNo_assoc_lems
Axiom. (
mul_SNo_assoc ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x * (y * z ) = (x * y ) * z
Axiom. (
pos_mul_SNo_Lt ) We take the following as an axiom:
∀x y z, SNo x → 0 < x → SNo y → SNo z → y < z → x * y < x * z
Axiom. (
neg_mul_SNo_Lt ) We take the following as an axiom:
∀x y z, SNo x → x < 0 → SNo y → SNo z → z < y → x * y < x * z
Axiom. (
pos_mul_SNo_Lt' ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → 0 < z → x < y → x * z < y * z
Axiom. (
pos_mul_SNo_Lt2 ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → 0 < x → 0 < y → x < z → y < w → x * y < z * w
Axiom. (
nonneg_mul_SNo_Le2 ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → 0 ≤ x → 0 ≤ y → x ≤ z → y ≤ w → x * y ≤ z * w
Axiom. (
mul_SNo_pos_pos ) We take the following as an axiom:
∀x y, SNo x → SNo y → 0 < x → 0 < y → 0 < x * y
Axiom. (
mul_SNo_pos_neg ) We take the following as an axiom:
∀x y, SNo x → SNo y → 0 < x → y < 0 → x * y < 0
Axiom. (
mul_SNo_neg_pos ) We take the following as an axiom:
∀x y, SNo x → SNo y → x < 0 → 0 < y → x * y < 0
Axiom. (
mul_SNo_neg_neg ) We take the following as an axiom:
∀x y, SNo x → SNo y → x < 0 → y < 0 → 0 < x * y
Axiom. (
SNo_foil ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → (x + y ) * (z + w ) = x * z + x * w + y * z + y * w
Axiom. (
SNo_foil_mm ) We take the following as an axiom:
∀x y z w, SNo x → SNo y → SNo z → SNo w → (x + - y ) * (z + - w ) = x * z + - x * w + - y * z + y * w
End of Section SurrealMul
Beginning of Section SurrealExp
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Notation . We use
^ as an infix operator with priority 342 and which associates to the right corresponding to applying term
exp_SNo_nat .
Axiom. (
double_eps_1 ) We take the following as an axiom:
∀x y z, SNo x → SNo y → SNo z → x + x = y + z → x = eps_ 1 * (y + z )
Axiom. (
exp_SNo_1_bd ) We take the following as an axiom:
∀x, SNo x → 1 ≤ x → ∀n, nat_p n → 1 ≤ x ^ n
Axiom. (
eps_bd_1 ) We take the following as an axiom:
Axiom. (
SNoS_finite ) We take the following as an axiom:
End of Section SurrealExp
Beginning of Section Int
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Object . The name
int is a term of type
set .
Axiom. (
int_SNo_cases ) We take the following as an axiom:
∀p : set → prop , (∀n ∈ ω , p n ) → (∀n ∈ ω , p (- n ) ) → ∀x ∈ int , p x
Axiom. (
int_SNo ) We take the following as an axiom:
Axiom. (
int_add_SNo ) We take the following as an axiom:
Axiom. (
int_mul_SNo ) We take the following as an axiom:
End of Section Int
Beginning of Section SurrealAbs
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Definition. We define
abs_SNo to be
λx ⇒ if 0 ≤ x then x else - x of type
set → set .
Axiom. (
abs_SNo_0 ) We take the following as an axiom:
Axiom. (
pos_abs_SNo ) We take the following as an axiom:
Axiom. (
neg_abs_SNo ) We take the following as an axiom:
Axiom. (
SNo_abs_SNo ) We take the following as an axiom:
Axiom. (
abs_SNo_Lev ) We take the following as an axiom:
End of Section SurrealAbs
Beginning of Section SNoMaxMin
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Notation . We use
^ as an infix operator with priority 342 and which associates to the right corresponding to applying term
exp_SNo_nat .
Notation . We use
< as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLt .
Notation . We use
≤ as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLe .
Definition. We define
SNo_max_of to be
λX x ⇒ x ∈ X ∧ SNo x ∧ ∀y ∈ X , SNo y → y ≤ x of type
set → set → prop .
Definition. We define
SNo_min_of to be
λX x ⇒ x ∈ X ∧ SNo x ∧ ∀y ∈ X , SNo y → x ≤ y of type
set → set → prop .
End of Section SNoMaxMin
Beginning of Section DiadicRationals
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Notation . We use
< as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLt .
Notation . We use
≤ as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLe .
Notation . We use
^ as an infix operator with priority 342 and which associates to the right corresponding to applying term
exp_SNo_nat .
End of Section DiadicRationals
Beginning of Section Reals
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Notation . We use
< as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLt .
Notation . We use
≤ as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLe .
Notation . We use
^ as an infix operator with priority 342 and which associates to the right corresponding to applying term
exp_SNo_nat .
Object . The name
real is a term of type
set .
Axiom. (
real_I ) We take the following as an axiom:
Axiom. (
real_E ) We take the following as an axiom:
Axiom. (
real_SNo ) We take the following as an axiom:
Axiom. (
real_0 ) We take the following as an axiom:
Axiom. (
real_1 ) We take the following as an axiom:
Axiom. (
SNo_approx_real ) We take the following as an axiom:
∀x, SNo x → ∀f g ∈ SNoS_ ω ω , (∀n ∈ ω , f n < x ) → (∀n ∈ ω , x < f n + eps_ n ) → (∀n ∈ ω , ∀i ∈ n , f i < f n ) → (∀n ∈ ω , x < g n ) → (∀n ∈ ω , ∀i ∈ n , g n < g i ) → x = SNoCut {f n |n ∈ ω } {g n |n ∈ ω } → x ∈ real
Axiom. (
SNo_approx_real_rep ) We take the following as an axiom:
∀x ∈ real , ∀p : prop , (∀f g ∈ SNoS_ ω ω , (∀n ∈ ω , f n < x ) → (∀n ∈ ω , x < f n + eps_ n ) → (∀n ∈ ω , ∀i ∈ n , f i < f n ) → (∀n ∈ ω , g n + - eps_ n < x ) → (∀n ∈ ω , x < g n ) → (∀n ∈ ω , ∀i ∈ n , g n < g i ) → SNoCutP {f n |n ∈ ω } {g n |n ∈ ω } → x = SNoCut {f n |n ∈ ω } {g n |n ∈ ω } → p ) → p
Axiom. (
real_Archimedean ) We take the following as an axiom:
∀x y ∈ real , 0 < x → 0 ≤ y → ∃n ∈ ω , y ≤ n * x
Axiom. (
real_complete2 ) We take the following as an axiom:
∀a b ∈ real ω , (∀n ∈ ω , a n ≤ b n ∧ a n ≤ a (n + 1 ) ∧ b (n + 1 ) ≤ b n ) → ∃x ∈ real , ∀n ∈ ω , a n ≤ x ∧ x ≤ b n
End of Section Reals
Complex Surreal Numbers
Beginning of Section ComplexSNo
Beginning of Section CTaggedSets
Let tag : set → set ≝ λalpha ⇒ SetAdjoin alpha {1 }
Notation . We use ' as a postfix operator with priority 100 corresponding to applying term tag .
Let ctag : set → set ≝ λalpha ⇒ SetAdjoin alpha {2 }
Notation . We use '' as a postfix operator with priority 100 corresponding to applying term ctag .
Proof:
We prove the intermediate claim L1 : 0 ∈ {2 } .
An
exact proof term for the current goal is
H1 2 (SingI 2 ) 0 In_0_2 .
An
exact proof term for the current goal is
SingE 2 0 L1 .
∎
Proof: Assume H1 .
Apply H1 to the current goal.
Assume H2 _ .
∎
Proof: Let y be given.
We prove the intermediate claim L1 : {2 } ∈ y '' .
We will prove {2 } ∈ y ∪ {{2 } } .
An
exact proof term for the current goal is
SingI {2 } .
An
exact proof term for the current goal is
ordinal_Hered (y '' ) H1 {2 } L1 .
∎
Proof: Let alpha and y be given.
Assume H1 H2 .
An
exact proof term for the current goal is
ordinal_Hered alpha H1 (y '' ) H2 .
∎
Proof: Assume H1 : {2 } ∈ {{1 } } .
We prove the intermediate claim L1 : 1 ∈ {2 } .
rewrite the current goal using
SingE {1 } {2 } H1 (from left to right).
An
exact proof term for the current goal is
SingI 1 .
We will prove 1 = 2 .
An
exact proof term for the current goal is
SingE 2 1 L1 .
∎
Proof: Let x and y be given.
Assume Hyc : (y '' ) ∈ x .
Set alpha to be the term
SNoLev x .
Apply Hxa to the current goal.
We prove the intermediate
claim L1 :
y '' ∈ alpha ∪ {beta ' |beta ∈ alpha } .
An exact proof term for the current goal is Hxa1 (y '' ) Hyc .
Apply binunionE alpha {beta ' |beta ∈ alpha } (y '' ) L1 to the current goal.
Let beta be given.
We prove the intermediate
claim L2 :
{2 } ∈ beta '.
rewrite the current goal using Hyb (from right to left).
We will prove {2 } ∈ y ∪ {{2 } } .
An
exact proof term for the current goal is
SingI {2 } .
∎
Theorem. (
ctagged_eqE_Subq ) The following is provable:
∀x y, SNo x → SNo y → ∀u ∈ x , ∀v ∈ y , u '' = v '' → u ⊆ v
Proof: Let x and y be given.
Assume Hx Hy .
Let u be given.
Assume Hu .
Let v be given.
Assume Hv Huv .
Let w be given.
Assume Hw : w ∈ u .
We prove the intermediate claim L1 : w ∈ v '' .
rewrite the current goal using Huv (from right to left).
We will prove w ∈ u ∪ {{2 } } .
An exact proof term for the current goal is Hw .
Apply binunionE v {{2 } } w L1 to the current goal.
Assume H1 : w ∈ v .
An exact proof term for the current goal is H1 .
Assume H1 : w ∈ {{2 } } .
We prove the intermediate claim L2 : w = {2 } .
An
exact proof term for the current goal is
SingE {2 } w H1 .
We prove the intermediate claim L3 : {2 } ∈ u .
rewrite the current goal using L2 (from right to left).
An exact proof term for the current goal is Hw .
Set alpha to be the term
SNoLev x .
Apply Hxa to the current goal.
Apply binunionE alpha {beta ' |beta ∈ alpha } u (Hxa1 u Hu ) to the current goal.
Assume H2 : u ∈ alpha .
We prove the intermediate
claim Lu :
ordinal u .
An
exact proof term for the current goal is
ordinal_Hered alpha Ha u H2 .
An
exact proof term for the current goal is
ordinal_Hered u Lu {2 } L3 .
Let beta be given.
We prove the intermediate
claim L4 :
{2 } ∈ beta '.
rewrite the current goal using Hub (from right to left).
An exact proof term for the current goal is L3 .
∎
Theorem. (
ctagged_eqE_eq ) The following is provable:
∀x y, SNo x → SNo y → ∀u ∈ x , ∀v ∈ y , u '' = v '' → u = v
Proof: Let x and y be given.
Assume Hx Hy .
Let u be given.
Assume Hu .
Let v be given.
Assume Hv Huv .
An
exact proof term for the current goal is
ctagged_eqE_Subq x y Hx Hy u Hu v Hv Huv .
Use symmetry.
An exact proof term for the current goal is Huv .
∎
Definition. We define
SNo_pair to be
λx y ⇒ x ∪ {u '' |u ∈ y } of type
set → set → set .
Proof: Let x1, y1, x2 and y2 be given.
Assume Hx1 .
Let v be given.
Assume Hv : v ∈ x1 .
We prove the intermediate
claim L1 :
v ∈ SNo_pair x2 y2 .
rewrite the current goal using H1 (from right to left).
We will prove v ∈ x1 ∪ {u '' |u ∈ y1 } .
An exact proof term for the current goal is Hv .
Apply binunionE x2 {u '' |u ∈ y2 } v L1 to the current goal.
Assume H2 : v ∈ x2 .
An exact proof term for the current goal is H2 .
Assume H2 : v ∈ {u '' |u ∈ y2 } .
Let u be given.
Assume Hu : u ∈ y2 .
Assume Hvu : v = u '' .
We will prove u '' ∈ x1 .
rewrite the current goal using Hvu (from right to left).
An exact proof term for the current goal is Hv .
∎
Proof: Let x1, y1, x2 and y2 be given.
Assume Hx1 Hx2 .
Use symmetry.
An exact proof term for the current goal is H1 .
∎
Proof: Let x1, y1, x2 and y2 be given.
Assume Hy1 Hx2 Hy2 .
Let v be given.
Assume Hv : v ∈ y1 .
We prove the intermediate
claim L1 :
v '' ∈ SNo_pair x2 y2 .
rewrite the current goal using H1 (from right to left).
We will prove v '' ∈ x1 ∪ {u '' |u ∈ y1 } .
We will prove v '' ∈ {u '' |u ∈ y1 } .
An
exact proof term for the current goal is
ReplI y1 (λu ⇒ u '' ) v Hv .
Apply binunionE x2 {u '' |u ∈ y2 } (v '' ) L1 to the current goal.
Assume H2 : v '' ∈ {u '' |u ∈ y2 } .
Apply ReplE_impred y2 (λu ⇒ u '' ) (v '' ) H2 to the current goal.
Let u be given.
Assume Hu : u ∈ y2 .
Assume Hvu : v '' = u '' .
We prove the intermediate claim L2 : v = u .
An
exact proof term for the current goal is
ctagged_eqE_eq y1 y2 Hy1 Hy2 v Hv u Hu Hvu .
We will prove v ∈ y2 .
rewrite the current goal using L2 (from left to right).
An exact proof term for the current goal is Hu .
∎
Proof: Let x1, y1, x2 and y2 be given.
Assume Hx1 Hy1 Hx2 Hy2 .
Use symmetry.
An exact proof term for the current goal is H1 .
∎
Proof: Let x be given.
We will prove x ∪ {u '' |u ∈ 0 } = x .
rewrite the current goal using
Repl_Empty (λu ⇒ u '' ) (from left to right).
We will prove x ∪ 0 = x .
∎
End of Section CTaggedSets
Definition. We define
CSNo to be
λz ⇒ ∃x, SNo x ∧ ∃y, SNo y ∧ z = SNo_pair x y of type
set → prop .
Theorem. (
CSNo_I ) The following is provable:
Proof: Let x and y be given.
Assume Hx Hy .
We use x to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hx .
We use y to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hy .
∎
Theorem. (
CSNo_E ) The following is provable:
Proof: Let z be given.
Assume Hz .
Let p be given.
Assume Hp .
Apply Hz to the current goal.
Let x be given.
Assume H1 .
Apply H1 to the current goal.
Assume Hx .
Assume H1 .
Apply H1 to the current goal.
Let y be given.
Assume H1 .
Apply H1 to the current goal.
Assume Hy Hzxy .
rewrite the current goal using Hzxy (from left to right).
An exact proof term for the current goal is Hp x y Hx Hy Hzxy .
∎
Theorem. (
SNo_CSNo ) The following is provable:
Proof: Let x be given.
Assume Hx .
We use x to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hx .
We use 0 to witness the existential quantifier.
Apply andI to the current goal.
An
exact proof term for the current goal is
SNo_0 .
Use symmetry.
An
exact proof term for the current goal is
SNo_pair_0 x .
∎
Notation . We use
- as a prefix operator with priority 358 corresponding to applying term
minus_SNo .
Notation . We use
+ as an infix operator with priority 360 and which associates to the right corresponding to applying term
add_SNo .
Notation . We use
* as an infix operator with priority 355 and which associates to the right corresponding to applying term
mul_SNo .
Theorem. (
CSNo_Re1 ) The following is provable:
∀z, CSNo z → SNo (Re z ) ∧ ∃y, SNo y ∧ z = pa (Re z ) y
Proof: Let z be given.
Assume Hz .
Apply Eps_i_ex (λx ⇒ SNo x ∧ ∃y, SNo y ∧ z = pa x y ) to the current goal.
We will
prove ∃x, SNo x ∧ ∃y, SNo y ∧ z = pa x y .
An exact proof term for the current goal is Hz .
∎
Theorem. (
CSNo_Re2 ) The following is provable:
∀x y, SNo x → SNo y → Re (pa x y ) = x
Proof: Let x and y be given.
Assume Hx Hy .
Apply H2 to the current goal.
Let y' be given.
Assume H3 .
Apply H3 to the current goal.
Assume H4 : pa x y = pa (Re (pa x y ) ) y' .
Use symmetry.
An
exact proof term for the current goal is
SNo_pair_prop_1 x y (Re (pa x y ) ) y' Hx H1 H4 .
∎
Theorem. (
CSNo_Im1 ) The following is provable:
∀z, CSNo z → SNo (Im z ) ∧ z = pa (Re z ) (Im z )
Proof: Let z be given.
Assume Hz .
Apply Eps_i_ex (λy ⇒ SNo y ∧ z = pa (Re z ) y ) to the current goal.
We will
prove ∃y, SNo y ∧ z = pa (Re z ) y .
Apply CSNo_E z Hz to the current goal.
Let x and y be given.
Assume Hx Hy .
Assume Hzxy : z = pa x y .
We use y to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hy .
We will prove pa x y = pa (Re (pa x y ) ) y .
Apply CSNo_Re2 x y Hx Hy (λu v ⇒ pa x y = pa v y ) to the current goal.
We will prove pa x y = pa x y .
Use reflexivity.
∎
Theorem. (
CSNo_Im2 ) The following is provable:
∀x y, SNo x → SNo y → Im (pa x y ) = y
Proof: Let x and y be given.
Assume Hx Hy .
Use symmetry.
Apply CSNo_Re2 x y Hx Hy (λu v ⇒ pa x y = pa v (Im (pa x y ) ) → y = Im (pa x y ) ) to the current goal.
Assume H2 : pa x y = pa x (Im (pa x y ) ) .
An
exact proof term for the current goal is
SNo_pair_prop_2 x y x (Im (pa x y ) ) Hx Hy Hx H1 H2 .
∎
Theorem. (
CSNo_ReR ) The following is provable:
Proof: Let z be given.
Assume Hz .
Apply CSNo_Re1 z Hz to the current goal.
An exact proof term for the current goal is (λH _ ⇒ H ) .
∎
Theorem. (
CSNo_ImR ) The following is provable:
Proof: Let z be given.
Assume Hz .
Apply CSNo_Im1 z Hz to the current goal.
An exact proof term for the current goal is (λH _ ⇒ H ) .
∎
Theorem. (
CSNo_ReIm ) The following is provable:
∀z, CSNo z → z = pa (Re z ) (Im z )
Proof: Let z be given.
Assume Hz .
Apply CSNo_Im1 z Hz to the current goal.
An exact proof term for the current goal is (λ_ H ⇒ H ) .
∎
Proof: Let z and w be given.
Assume Hz Hw .
Assume H1 H2 .
Use transitivity with and (pa (Re z ) (Im z ) ) .
An
exact proof term for the current goal is
CSNo_ReIm z Hz .
Use transitivity with and (pa (Re w ) (Im w ) ) .
rewrite the current goal using H1 (from left to right).
rewrite the current goal using H2 (from left to right).
Use reflexivity.
Use symmetry.
An
exact proof term for the current goal is
CSNo_ReIm w Hw .
∎
Definition. We define
minus_CSNo to be
λz ⇒ pa (- Re z ) (- Im z ) of type
set → set .
Definition. We define
add_CSNo to be
λz w ⇒ pa (Re z + Re w ) (Im z + Im w ) of type
set → set → set .
Definition. We define
mul_CSNo to be
λz w ⇒ pa (Re z * Re w + - (Im z * Im w ) ) (Re z * Im w + Im z * Re w ) of type
set → set → set .
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 .
Proof: We will
prove CSNo (pa 0 1 ) .
Apply CSNo_I to the current goal.
An
exact proof term for the current goal is
SNo_0 .
An
exact proof term for the current goal is
SNo_1 .
∎
Proof: Let z be given.
Assume Hz .
∎
Proof: Let z be given.
Assume Hz .
∎
Theorem. (
add_CSNo_CRe ) The following is provable:
∀z w, CSNo z → CSNo w → Re (plus' z w ) = Re z + Re w
Proof: Let z and w be given.
Assume Hz Hw .
∎
Theorem. (
add_CSNo_CIm ) The following is provable:
∀z w, CSNo z → CSNo w → Im (plus' z w ) = Im z + Im w
Proof: Let z and w be given.
Assume Hz Hw .
∎
Proof: Let z be given.
Assume Hz .
We will
prove CSNo (pa (- Re z ) (- Im z ) ) .
Apply CSNo_I to the current goal.
An exact proof term for the current goal is Hz .
An exact proof term for the current goal is Hz .
∎
Theorem. (
SNo_Re ) The following is provable:
Proof: Let x be given.
Assume Hx .
rewrite the current goal using
SNo_pair_0 x (from right to left) at position 1.
We will prove Re (pa x 0 ) = x .
An
exact proof term for the current goal is
CSNo_Re2 x 0 Hx SNo_0 .
∎
Theorem. (
SNo_Im ) The following is provable:
Proof: Let x be given.
Assume Hx .
rewrite the current goal using
SNo_pair_0 x (from right to left) at position 1.
We will prove Im (pa x 0 ) = 0 .
An
exact proof term for the current goal is
CSNo_Im2 x 0 Hx SNo_0 .
∎
Theorem. (
Re_0 ) The following is provable:
Re 0 = 0
Proof: An
exact proof term for the current goal is
SNo_Re 0 SNo_0 .
∎
Theorem. (
Im_0 ) The following is provable:
Im 0 = 0
Proof: An
exact proof term for the current goal is
SNo_Im 0 SNo_0 .
∎
Theorem. (
Re_1 ) The following is provable:
Re 1 = 1
Proof: An
exact proof term for the current goal is
SNo_Re 1 SNo_1 .
∎
Theorem. (
Im_1 ) The following is provable:
Im 1 = 0
Proof: An
exact proof term for the current goal is
SNo_Im 1 SNo_1 .
∎
Theorem. (
Re_i ) The following is provable:
Re i = 0
Theorem. (
Im_i ) The following is provable:
Im i = 1
Proof: Let x and y be given.
Assume Hx Hy .
Use transitivity with Re x + Re y , and pa (Re x + Re y ) 0 .
rewrite the current goal using
SNo_Re x Hx (from left to right).
rewrite the current goal using
SNo_Re y Hy (from left to right).
Use reflexivity.
Use symmetry.
An
exact proof term for the current goal is
SNo_pair_0 (Re x + Re y ) .
We will prove pa (Re x + Re y ) 0 = pa (Re x + Re y ) (Im x + Im y ) .
Use f_equal.
rewrite the current goal using
SNo_Im x Hx (from left to right).
rewrite the current goal using
SNo_Im y Hy (from left to right).
We will prove 0 = 0 + 0 .
Use symmetry.
∎
Proof: Let z and w be given.
Assume Hz Hw .
We will
prove CSNo (pa (Re z + Re w ) (Im z + Im w ) ) .
Apply CSNo_I to the current goal.
An
exact proof term for the current goal is
CSNo_ReR z Hz .
An
exact proof term for the current goal is
CSNo_ReR w Hw .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
An
exact proof term for the current goal is
CSNo_ImR w Hw .
∎
Proof: Let z be given.
Assume Hz .
We will prove pa (Re 0 + Re z ) (Im 0 + Im z ) = z .
rewrite the current goal using
Re_0 (from left to right).
rewrite the current goal using
Im_0 (from left to right).
We will prove pa (0 + Re z ) (0 + Im z ) = z .
Use symmetry.
An
exact proof term for the current goal is
CSNo_ReIm z Hz .
∎
Proof: Let z be given.
Assume Hz .
We will prove pa (Re z + Re 0 ) (Im z + Im 0 ) = z .
rewrite the current goal using
Re_0 (from left to right).
rewrite the current goal using
Im_0 (from left to right).
We will prove pa (Re z + 0 ) (Im z + 0 ) = z .
Use symmetry.
An
exact proof term for the current goal is
CSNo_ReIm z Hz .
∎
Proof: Let z be given.
Assume Hz .
We will prove pa (Re (pa (- Re z ) (- Im z ) ) + Re z ) (Im (pa (- Re z ) (- Im z ) ) + Im z ) = 0 .
We prove the intermediate
claim LmRez :
SNo (- Re z ) .
An
exact proof term for the current goal is
CSNo_ReR z Hz .
We prove the intermediate
claim LmImz :
SNo (- Im z ) .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
rewrite the current goal using
CSNo_Re2 (- Re z ) (- Im z ) LmRez LmImz (from left to right).
rewrite the current goal using
CSNo_Im2 (- Re z ) (- Im z ) LmRez LmImz (from left to right).
We will prove pa ((- Re z ) + Re z ) ((- Im z ) + Im z ) = 0 .
We will prove pa 0 0 = 0 .
An
exact proof term for the current goal is
SNo_pair_0 0 .
∎
Proof: Let z be given.
Assume Hz .
We prove the intermediate
claim LmRez :
SNo (- Re z ) .
An
exact proof term for the current goal is
CSNo_ReR z Hz .
We prove the intermediate
claim LmImz :
SNo (- Im z ) .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
We will prove pa (Re z + Re (pa (- Re z ) (- Im z ) ) ) (Im z + Im (pa (- Re z ) (- Im z ) ) ) = 0 .
rewrite the current goal using
CSNo_Re2 (- Re z ) (- Im z ) LmRez LmImz (from left to right).
rewrite the current goal using
CSNo_Im2 (- Re z ) (- Im z ) LmRez LmImz (from left to right).
We will prove pa (Re z + - Re z ) (Im z + - Im z ) = 0 .
We will prove pa 0 0 = 0 .
An
exact proof term for the current goal is
SNo_pair_0 0 .
∎
Proof: Let x be given.
Assume Hx .
We will prove - x = pa (- Re x ) (- Im x ) .
rewrite the current goal using
SNo_Re x Hx (from left to right).
rewrite the current goal using
SNo_Im x Hx (from left to right).
We will prove - x = pa (- x ) (- 0 ) .
rewrite the current goal using
minus_SNo_0 (from left to right).
Use symmetry.
An
exact proof term for the current goal is
SNo_pair_0 (- x ) .
∎
Proof: Let z and w be given.
Assume Hz Hw .
We prove the intermediate
claim Lzw :
CSNo (plus' z w ) .
An
exact proof term for the current goal is
CSNo_add_CSNo z w Hz Hw .
We prove the intermediate
claim Lwz :
CSNo (plus' w z ) .
An
exact proof term for the current goal is
CSNo_add_CSNo w z Hw Hz .
We will prove Re (plus' z w ) = Re (plus' w z ) .
Use transitivity with and (Re z + Re w ) .
An
exact proof term for the current goal is
add_CSNo_CRe z w Hz Hw .
Use transitivity with and (Re w + Re z ) .
Use symmetry.
An
exact proof term for the current goal is
add_CSNo_CRe w z Hw Hz .
We will prove Im (plus' z w ) = Im (plus' w z ) .
Use transitivity with and (Im z + Im w ) .
An
exact proof term for the current goal is
add_CSNo_CIm z w Hz Hw .
Use transitivity with and (Im w + Im z ) .
Use symmetry.
An
exact proof term for the current goal is
add_CSNo_CIm w z Hw Hz .
∎
Proof: Let z, w and v be given.
Assume Hz Hw Hv .
We prove the intermediate
claim Lwv :
CSNo (plus' w v ) .
An
exact proof term for the current goal is
CSNo_add_CSNo w v Hw Hv .
We prove the intermediate
claim Lzw :
CSNo (plus' z w ) .
An
exact proof term for the current goal is
CSNo_add_CSNo z w Hz Hw .
We prove the intermediate
claim Lzwv1 :
CSNo (plus' z (plus' w v ) ) .
An
exact proof term for the current goal is
CSNo_add_CSNo z (plus' w v ) Hz Lwv .
We prove the intermediate
claim Lzwv2 :
CSNo (plus' (plus' z w ) v ) .
An
exact proof term for the current goal is
CSNo_add_CSNo (plus' z w ) v Lzw Hv .
Apply CSNo_ReIm_split (plus' z (plus' w v ) ) (plus' (plus' z w ) v ) Lzwv1 Lzwv2 to the current goal.
We will prove Re (plus' z (plus' w v ) ) = Re (plus' (plus' z w ) v ) .
Use transitivity with and (Re z + Re (plus' w v ) ) .
An
exact proof term for the current goal is
add_CSNo_CRe z (plus' w v ) Hz Lwv .
Use transitivity with and (Re (plus' z w ) + Re v ) .
We will prove Re z + Re (plus' w v ) = Re (plus' z w ) + Re v .
Use transitivity with and (Re z + (Re w + Re v ) ) .
Apply f_eq_i (λV ⇒ Re z + V ) to the current goal.
An
exact proof term for the current goal is
add_CSNo_CRe w v Hw Hv .
We will prove Re z + (Re w + Re v ) = Re (plus' z w ) + Re v .
Use transitivity with and (Re z + Re w ) + Re v .
Use symmetry.
We will prove Re (plus' z w ) + Re v = (Re z + Re w ) + Re v .
We will prove (λU : set ⇒ U + Re v ) (Re (plus' z w ) ) = (λU : set ⇒ U + Re v ) (Re z + Re w ) .
Use f_equal.
We will prove Re (plus' z w ) = Re z + Re w .
An
exact proof term for the current goal is
add_CSNo_CRe z w Hz Hw .
Use symmetry.
An
exact proof term for the current goal is
add_CSNo_CRe (plus' z w ) v Lzw Hv .
We will prove Im (plus' z (plus' w v ) ) = Im (plus' (plus' z w ) v ) .
Use transitivity with and (Im z + Im (plus' w v ) ) .
An
exact proof term for the current goal is
add_CSNo_CIm z (plus' w v ) Hz Lwv .
Use transitivity with and (Im (plus' z w ) + Im v ) .
We will prove Im z + Im (plus' w v ) = Im (plus' z w ) + Im v .
Use transitivity with and (Im z + (Im w + Im v ) ) .
Apply f_eq_i (λV ⇒ Im z + V ) to the current goal.
An
exact proof term for the current goal is
add_CSNo_CIm w v Hw Hv .
We will prove Im z + (Im w + Im v ) = Im (plus' z w ) + Im v .
Use transitivity with and (Im z + Im w ) + Im v .
Use symmetry.
We will prove Im (plus' z w ) + Im v = (Im z + Im w ) + Im v .
We will prove (λU : set ⇒ U + Im v ) (Im (plus' z w ) ) = (λU : set ⇒ U + Im v ) (Im z + Im w ) .
Apply f_eq_i (λU ⇒ U + Im v ) to the current goal.
We will prove Im (plus' z w ) = Im z + Im w .
An
exact proof term for the current goal is
add_CSNo_CIm z w Hz Hw .
Use symmetry.
An
exact proof term for the current goal is
add_CSNo_CIm (plus' z w ) v Lzw Hv .
∎
Proof: Let x, y, z and w be given.
Assume Hx Hy Hz Hw .
rewrite the current goal using
add_SNo_com z w Hz Hw (from left to right).
We will prove (x + y ) + (w + z ) = (x + w ) + (y + z ) .
∎
Proof: Let z and w be given.
Assume Hz Hw .
An exact proof term for the current goal is Hz .
An exact proof term for the current goal is Hw .
An exact proof term for the current goal is Hz .
An exact proof term for the current goal is Hw .
∎
Proof: Let z and w be given.
Assume Hz Hw .
An exact proof term for the current goal is Hz .
An exact proof term for the current goal is Hw .
An exact proof term for the current goal is Hz .
An exact proof term for the current goal is Hw .
∎
Theorem. (
mul_CSNo_CRe ) The following is provable:
∀z w, CSNo z → CSNo w → Re (mult' z w ) = Re z * Re w + - (Im z * Im w )
Proof: Let z and w be given.
Assume Hz Hw .
An
exact proof term for the current goal is
CSNo_Re2 (Re z * Re w + - (Im z * Im w ) ) (Re z * Im w + Im z * Re w ) (mul_CSNo_ReR z w Hz Hw ) (mul_CSNo_ImR z w Hz Hw ) .
∎
Theorem. (
mul_CSNo_CIm ) The following is provable:
∀z w, CSNo z → CSNo w → Im (mult' z w ) = Re z * Im w + Im z * Re w
Proof: Let z and w be given.
Assume Hz Hw .
An
exact proof term for the current goal is
CSNo_Im2 (Re z * Re w + - (Im z * Im w ) ) (Re z * Im w + Im z * Re w ) (mul_CSNo_ReR z w Hz Hw ) (mul_CSNo_ImR z w Hz Hw ) .
∎
Proof: Let z and w be given.
Assume Hz Hw .
We will
prove CSNo (pa (Re z * Re w + - (Im z * Im w ) ) (Re z * Im w + Im z * Re w ) ) .
Apply CSNo_I to the current goal.
An
exact proof term for the current goal is
mul_CSNo_ReR z w Hz Hw .
An
exact proof term for the current goal is
mul_CSNo_ImR z w Hz Hw .
∎
Proof: Let z and w be given.
Assume Hz Hw .
We prove the intermediate
claim Lzw :
CSNo (mult' z w ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo z w Hz Hw .
We prove the intermediate
claim Lwz :
CSNo (mult' w z ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo w z Hw Hz .
We prove the intermediate
claim LRezR :
SNo (Re z ) .
An
exact proof term for the current goal is
CSNo_ReR z Hz .
We prove the intermediate
claim LRewR :
SNo (Re w ) .
An
exact proof term for the current goal is
CSNo_ReR w Hw .
We prove the intermediate
claim LImzR :
SNo (Im z ) .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
We prove the intermediate
claim LImwR :
SNo (Im w ) .
An
exact proof term for the current goal is
CSNo_ImR w Hw .
We will prove Re (mult' z w ) = Re (mult' w z ) .
Use transitivity with Re z * Re w + - (Im z * Im w ) , and Re w * Re z + - (Im w * Im z ) .
An
exact proof term for the current goal is
mul_CSNo_CRe z w Hz Hw .
Use f_equal.
An
exact proof term for the current goal is
mul_SNo_com (Re z ) (Re w ) LRezR LRewR .
Use f_equal.
An
exact proof term for the current goal is
mul_SNo_com (Im z ) (Im w ) LImzR LImwR .
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CRe w z Hw Hz .
We will prove Im (mult' z w ) = Im (mult' w z ) .
Use transitivity with Re z * Im w + Im z * Re w , Im z * Re w + Re z * Im w , and Re w * Im z + Im w * Re z .
An
exact proof term for the current goal is
mul_CSNo_CIm z w Hz Hw .
Use f_equal.
An
exact proof term for the current goal is
mul_SNo_com (Im z ) (Re w ) LImzR LRewR .
An
exact proof term for the current goal is
mul_SNo_com (Re z ) (Im w ) LRezR LImwR .
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CIm w z Hw Hz .
∎
Proof: Let z, w and v be given.
Assume Hz Hw Hv .
We prove the intermediate
claim Lwv :
CSNo (mult' w v ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo w v Hw Hv .
We prove the intermediate
claim Lzw :
CSNo (mult' z w ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo z w Hz Hw .
We prove the intermediate
claim Lzwv1 :
CSNo (mult' z (mult' w v ) ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo z (mult' w v ) Hz Lwv .
We prove the intermediate
claim Lzwv2 :
CSNo (mult' (mult' z w ) v ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo (mult' z w ) v Lzw Hv .
We prove the intermediate
claim LRezR :
SNo (Re z ) .
An
exact proof term for the current goal is
CSNo_ReR z Hz .
We prove the intermediate
claim LRewR :
SNo (Re w ) .
An
exact proof term for the current goal is
CSNo_ReR w Hw .
We prove the intermediate
claim LRevR :
SNo (Re v ) .
An
exact proof term for the current goal is
CSNo_ReR v Hv .
We prove the intermediate
claim LImzR :
SNo (Im z ) .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
We prove the intermediate
claim LImwR :
SNo (Im w ) .
An
exact proof term for the current goal is
CSNo_ImR w Hw .
We prove the intermediate
claim LImvR :
SNo (Im v ) .
An
exact proof term for the current goal is
CSNo_ImR v Hv .
Apply CSNo_ReIm_split (mult' z (mult' w v ) ) (mult' (mult' z w ) v ) Lzwv1 Lzwv2 to the current goal.
We will prove Re (mult' z (mult' w v ) ) = Re (mult' (mult' z w ) v ) .
Use transitivity with (Re z * Re (mult' w v ) + - (Im z * Im (mult' w v ) ) ) , ((Re z * Re w * Re v + - (Re z * Im w * Im v ) ) + (- (Im z * Re w * Im v ) + - (Im z * Im w * Re v ) ) ) , ((Re z * Re w * Re v + - (Im z * Im w * Re v ) ) + (- (Re z * Im w * Im v ) + - (Im z * Re w * Im v ) ) ) , and (Re (mult' z w ) * Re v + - (Im (mult' z w ) * Im v ) ) .
An
exact proof term for the current goal is
mul_CSNo_CRe z (mult' w v ) Hz Lwv .
Use f_equal.
We will prove Re z * Re (mult' w v ) = Re z * Re w * Re v + - (Re z * Im w * Im v ) .
Use transitivity with Re z * (Re w * Re v + - (Im w * Im v ) ) , and Re z * Re w * Re v + Re z * (- (Im w * Im v ) ) .
Use f_equal.
An
exact proof term for the current goal is
mul_CSNo_CRe w v Hw Hv .
Apply mul_SNo_distrL (Re z ) (Re w * Re v ) (- (Im w * Im v ) ) LRezR (SNo_mul_SNo (Re w ) (Re v ) LRewR LRevR ) to the current goal.
An
exact proof term for the current goal is
SNo_mul_SNo (Im w ) (Im v ) LImwR LImvR .
Use f_equal.
We will prove Re z * (- (Im w * Im v ) ) = - (Re z * Im w * Im v ) .
We will prove - (Im z * Im (mult' w v ) ) = - (Im z * Re w * Im v ) + - (Im z * Im w * Re v ) .
Use transitivity with and - (Im z * Re w * Im v + Im z * Im w * Re v ) .
Use f_equal.
We will prove Im z * Im (mult' w v ) = Im z * Re w * Im v + Im z * Im w * Re v .
Use transitivity with and Im z * (Re w * Im v + Im w * Re v ) .
Use f_equal.
An
exact proof term for the current goal is
mul_CSNo_CIm w v Hw Hv .
An
exact proof term for the current goal is
mul_SNo_distrL (Im z ) (Re w * Im v ) (Im w * Re v ) LImzR (SNo_mul_SNo (Re w ) (Im v ) LRewR LImvR ) (SNo_mul_SNo (Im w ) (Re v ) LImwR LRevR ) .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Im z ) (Re w ) (Im v ) LImzR LRewR LImvR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Im z ) (Im w ) (Re v ) LImzR LImwR LRevR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Re z ) (Re w ) (Re v ) LRezR LRewR LRevR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Re z ) (Im w ) (Im v ) LRezR LImwR LImvR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Im z ) (Re w ) (Im v ) LImzR LRewR LImvR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Im z ) (Im w ) (Re v ) LImzR LImwR LRevR .
Use f_equal.
We will prove Re z * Re w * Re v + - (Im z * Im w * Re v ) = Re (mult' z w ) * Re v .
Use transitivity with (Re z * Re w ) * Re v + (- (Im z * Im w ) ) * Re v , and (Re z * Re w + - (Im z * Im w ) ) * Re v .
Use f_equal.
We will prove Re z * Re w * Re v = (Re z * Re w ) * Re v .
An
exact proof term for the current goal is
mul_SNo_assoc (Re z ) (Re w ) (Re v ) LRezR LRewR LRevR .
We will prove - (Im z * Im w * Re v ) = (- (Im z * Im w ) ) * Re v .
Use transitivity with and - ((Im z * Im w ) * Re v ) .
Use f_equal.
An
exact proof term for the current goal is
mul_SNo_assoc (Im z ) (Im w ) (Re v ) LImzR LImwR LRevR .
Use f_equal.
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CRe z w Hz Hw .
We will prove - (Re z * Im w * Im v ) + - (Im z * Re w * Im v ) = - (Im (mult' z w ) * Im v ) .
Use transitivity with and - (Re z * Im w * Im v + Im z * Re w * Im v ) .
Use symmetry.
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Re z ) (Im w ) (Im v ) LRezR LImwR LImvR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Im z ) (Re w ) (Im v ) LImzR LRewR LImvR .
Use f_equal.
Use transitivity with (Re z * Im w ) * Im v + (Im z * Re w ) * Im v , and (Re z * Im w + Im z * Re w ) * Im v .
Use f_equal.
An
exact proof term for the current goal is
mul_SNo_assoc (Re z ) (Im w ) (Im v ) LRezR LImwR LImvR .
An
exact proof term for the current goal is
mul_SNo_assoc (Im z ) (Re w ) (Im v ) LImzR LRewR LImvR .
Use symmetry.
An
exact proof term for the current goal is
mul_SNo_distrR (Re z * Im w ) (Im z * Re w ) (Im v ) (SNo_mul_SNo (Re z ) (Im w ) LRezR LImwR ) (SNo_mul_SNo (Im z ) (Re w ) LImzR LRewR ) LImvR .
Use f_equal.
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CIm z w Hz Hw .
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CRe (mult' z w ) v Lzw Hv .
We will prove Im (mult' z (mult' w v ) ) = Im (mult' (mult' z w ) v ) .
Use transitivity with (Re z * Im (mult' w v ) + (Im z * Re (mult' w v ) ) ) , ((Re z * Re w * Im v + Re z * Im w * Re v ) + (Im z * Re w * Re v + - (Im z * Im w * Im v ) ) ) , ((Re z * Re w * Im v + - (Im z * Im w * Im v ) ) + (Re z * Im w * Re v + Im z * Re w * Re v ) ) , and (Re (mult' z w ) * Im v + Im (mult' z w ) * Re v ) .
An
exact proof term for the current goal is
mul_CSNo_CIm z (mult' w v ) Hz Lwv .
Use f_equal.
We will prove Re z * Im (mult' w v ) = Re z * Re w * Im v + Re z * Im w * Re v .
Use transitivity with and Re z * (Re w * Im v + Im w * Re v ) .
Use f_equal.
An
exact proof term for the current goal is
mul_CSNo_CIm w v Hw Hv .
An
exact proof term for the current goal is
mul_SNo_distrL (Re z ) (Re w * Im v ) (Im w * Re v ) LRezR (SNo_mul_SNo (Re w ) (Im v ) LRewR LImvR ) (SNo_mul_SNo (Im w ) (Re v ) LImwR LRevR ) .
We will prove Im z * Re (mult' w v ) = Im z * Re w * Re v + - (Im z * Im w * Im v ) .
Use transitivity with Im z * (Re w * Re v + - (Im w * Im v ) ) , and Im z * Re w * Re v + Im z * (- (Im w * Im v ) ) .
Use f_equal.
An
exact proof term for the current goal is
mul_CSNo_CRe w v Hw Hv .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Re z ) (Re w ) (Im v ) LRezR LRewR LImvR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Re z ) (Im w ) (Re v ) LRezR LImwR LRevR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Im z ) (Re w ) (Re v ) LImzR LRewR LRevR .
An
exact proof term for the current goal is
SNo_mul_SNo_3 (Im z ) (Im w ) (Im v ) LImzR LImwR LImvR .
Use f_equal.
We will prove Re z * Re w * Im v + - (Im z * Im w * Im v ) = Re (mult' z w ) * Im v .
Use transitivity with (Re z * Re w ) * Im v + (- (Im z * Im w ) ) * Im v , and (Re z * Re w + - (Im z * Im w ) ) * Im v .
Use f_equal.
We will prove Re z * Re w * Im v = (Re z * Re w ) * Im v .
An
exact proof term for the current goal is
mul_SNo_assoc (Re z ) (Re w ) (Im v ) LRezR LRewR LImvR .
We will prove - (Im z * Im w * Im v ) = (- (Im z * Im w ) ) * Im v .
Use transitivity with and - ((Im z * Im w ) * Im v ) .
Use f_equal.
An
exact proof term for the current goal is
mul_SNo_assoc (Im z ) (Im w ) (Im v ) LImzR LImwR LImvR .
Use symmetry.
We will prove (- (Im z * Im w ) ) * Im v = - ((Im z * Im w ) * Im v ) .
Use f_equal.
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CRe z w Hz Hw .
We will prove Re z * Im w * Re v + Im z * Re w * Re v = Im (mult' z w ) * Re v .
Use transitivity with (Re z * Im w ) * Re v + (Im z * Re w ) * Re v , and (Re z * Im w + Im z * Re w ) * Re v .
Use f_equal.
An
exact proof term for the current goal is
mul_SNo_assoc (Re z ) (Im w ) (Re v ) LRezR LImwR LRevR .
An
exact proof term for the current goal is
mul_SNo_assoc (Im z ) (Re w ) (Re v ) LImzR LRewR LRevR .
Use symmetry.
An
exact proof term for the current goal is
mul_SNo_distrR (Re z * Im w ) (Im z * Re w ) (Re v ) (SNo_mul_SNo (Re z ) (Im w ) LRezR LImwR ) (SNo_mul_SNo (Im z ) (Re w ) LImzR LRewR ) LRevR .
Use f_equal.
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CIm z w Hz Hw .
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CIm (mult' z w ) v Lzw Hv .
∎
Theorem. (
CSNo_0 ) The following is provable:
Proof:
An
exact proof term for the current goal is
SNo_0 .
∎
Theorem. (
CSNo_1 ) The following is provable:
Proof:
An
exact proof term for the current goal is
SNo_1 .
∎
Proof: Let z be given.
Assume Hz .
We prove the intermediate
claim L1z :
CSNo (mult' 1 z ) .
We prove the intermediate
claim LRezR :
SNo (Re z ) .
An
exact proof term for the current goal is
CSNo_ReR z Hz .
We prove the intermediate
claim LImzR :
SNo (Im z ) .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
We will prove Re (mult' 1 z ) = Re z .
Use transitivity with Re 1 * Re z + - (Im 1 * Im z ) , and Re z + 0 .
Use f_equal.
We will prove Re 1 * Re z = Re z .
rewrite the current goal using
SNo_pair_0 1 (from right to left).
We will prove Re (pa 1 0 ) * Re z = Re z .
We will prove 1 * Re z = Re z .
An
exact proof term for the current goal is
mul_SNo_oneL (Re z ) LRezR .
We will prove - (Im 1 * Im z ) = 0 .
rewrite the current goal using
minus_SNo_0 (from right to left) at position 2.
We will prove - (Im 1 * Im z ) = - 0 .
Use f_equal.
rewrite the current goal using
SNo_pair_0 1 (from right to left).
We will prove Im (pa 1 0 ) * Im z = 0 .
Use transitivity with and 0 * Im z .
An
exact proof term for the current goal is
mul_SNo_zeroL (Im z ) LImzR .
Use transitivity with and 0 + Re z .
An
exact proof term for the current goal is
add_SNo_0L (Re z ) LRezR .
We will prove Im (mult' 1 z ) = Im z .
Use transitivity with Re 1 * Im z + Im 1 * Re z , and Im z + 0 .
Use f_equal.
We will prove Re 1 * Im z = Im z .
rewrite the current goal using
SNo_pair_0 1 (from right to left).
We will prove Re (pa 1 0 ) * Im z = Im z .
We will prove 1 * Im z = Im z .
An
exact proof term for the current goal is
mul_SNo_oneL (Im z ) LImzR .
We will prove Im 1 * Re z = 0 .
Use transitivity with and 0 * Re z .
Use f_equal.
rewrite the current goal using
SNo_pair_0 1 (from right to left).
An
exact proof term for the current goal is
mul_SNo_zeroL (Re z ) LRezR .
Use transitivity with and 0 + Im z .
An
exact proof term for the current goal is
add_SNo_0L (Im z ) LImzR .
∎
Proof: Let z, w and v be given.
Assume Hz Hw Hv .
We prove the intermediate
claim Lwv :
CSNo (plus' w v ) .
An
exact proof term for the current goal is
CSNo_add_CSNo w v Hw Hv .
We prove the intermediate
claim Lzw :
CSNo (mult' z w ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo z w Hz Hw .
We prove the intermediate
claim Lzv :
CSNo (mult' z v ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo z v Hz Hv .
We prove the intermediate
claim Lzwv :
CSNo (mult' z (plus' w v ) ) .
An
exact proof term for the current goal is
CSNo_mul_CSNo z (plus' w v ) Hz Lwv .
We prove the intermediate
claim Lzwzv :
CSNo (plus' (mult' z w ) (mult' z v ) ) .
An
exact proof term for the current goal is
CSNo_add_CSNo (mult' z w ) (mult' z v ) Lzw Lzv .
We prove the intermediate
claim LRezR :
SNo (Re z ) .
An
exact proof term for the current goal is
CSNo_ReR z Hz .
We prove the intermediate
claim LRewR :
SNo (Re w ) .
An
exact proof term for the current goal is
CSNo_ReR w Hw .
We prove the intermediate
claim LRevR :
SNo (Re v ) .
An
exact proof term for the current goal is
CSNo_ReR v Hv .
We prove the intermediate
claim LImzR :
SNo (Im z ) .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
We prove the intermediate
claim LImwR :
SNo (Im w ) .
An
exact proof term for the current goal is
CSNo_ImR w Hw .
We prove the intermediate
claim LImvR :
SNo (Im v ) .
An
exact proof term for the current goal is
CSNo_ImR v Hv .
Apply CSNo_ReIm_split (mult' z (plus' w v ) ) (plus' (mult' z w ) (mult' z v ) ) Lzwv Lzwzv to the current goal.
We will prove Re (mult' z (plus' w v ) ) = Re (plus' (mult' z w ) (mult' z v ) ) .
Use transitivity with Re z * Re (plus' w v ) + - Im z * Im (plus' w v ) , (Re z * Re w + Re z * Re v ) + (- Im z * Im w + - Im z * Im v ) , (Re z * Re w + - (Im z * Im w ) ) + (Re z * Re v + - (Im z * Im v ) ) , and Re (mult' z w ) + Re (mult' z v ) .
An
exact proof term for the current goal is
mul_CSNo_CRe z (plus' w v ) Hz Lwv .
Use f_equal.
We will prove Re z * Re (plus' w v ) = Re z * Re w + Re z * Re v .
Apply mul_SNo_distrL (Re z ) (Re w ) (Re v ) LRezR LRewR LRevR (λU V ⇒ Re z * Re (plus' w v ) = U ) to the current goal.
We will prove Re z * Re (plus' w v ) = Re z * (Re w + Re v ) .
Use f_equal.
An
exact proof term for the current goal is
add_CSNo_CRe w v Hw Hv .
We will prove - Im z * Im (plus' w v ) = - Im z * Im w + - Im z * Im v .
Use transitivity with - Im z * (Im w + Im v ) , (- Im z ) * (Im w + Im v ) , and (- Im z ) * Im w + (- Im z ) * Im v .
Use f_equal.
Use f_equal.
An
exact proof term for the current goal is
add_CSNo_CIm w v Hw Hv .
An
exact proof term for the current goal is
SNo_mul_SNo (Re z ) (Re w ) LRezR LRewR .
An
exact proof term for the current goal is
SNo_mul_SNo (Re z ) (Re v ) LRezR LRevR .
An
exact proof term for the current goal is
SNo_mul_SNo (Im z ) (Im w ) LImzR LImwR .
An
exact proof term for the current goal is
SNo_mul_SNo (Im z ) (Im v ) LImzR LImvR .
Use f_equal.
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CRe z w Hz Hw .
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CRe z v Hz Hv .
Use symmetry.
An
exact proof term for the current goal is
add_CSNo_CRe (mult' z w ) (mult' z v ) Lzw Lzv .
We will prove Im (mult' z (plus' w v ) ) = Im (plus' (mult' z w ) (mult' z v ) ) .
Use transitivity with Re z * Im (plus' w v ) + Im z * Re (plus' w v ) , (Re z * Im w + Re z * Im v ) + (Im z * Re w + Im z * Re v ) , (Re z * Im w + Im z * Re w ) + (Re z * Im v + Im z * Re v ) , and Im (mult' z w ) + Im (mult' z v ) .
An
exact proof term for the current goal is
mul_CSNo_CIm z (plus' w v ) Hz Lwv .
Use f_equal.
We will prove Re z * Im (plus' w v ) = Re z * Im w + Re z * Im v .
Apply mul_SNo_distrL (Re z ) (Im w ) (Im v ) LRezR LImwR LImvR (λU V ⇒ Re z * Im (plus' w v ) = U ) to the current goal.
We will prove Re z * Im (plus' w v ) = Re z * (Im w + Im v ) .
Use f_equal.
An
exact proof term for the current goal is
add_CSNo_CIm w v Hw Hv .
We will prove Im z * Re (plus' w v ) = Im z * Re w + Im z * Re v .
Use transitivity with and Im z * (Re w + Re v ) .
Use f_equal.
An
exact proof term for the current goal is
add_CSNo_CRe w v Hw Hv .
An
exact proof term for the current goal is
mul_SNo_distrL (Im z ) (Re w ) (Re v ) LImzR LRewR LRevR .
An
exact proof term for the current goal is
SNo_mul_SNo (Re z ) (Im w ) LRezR LImwR .
An
exact proof term for the current goal is
SNo_mul_SNo (Re z ) (Im v ) LRezR LImvR .
An
exact proof term for the current goal is
SNo_mul_SNo (Im z ) (Re w ) LImzR LRewR .
An
exact proof term for the current goal is
SNo_mul_SNo (Im z ) (Re v ) LImzR LRevR .
Use f_equal.
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CIm z w Hz Hw .
Use symmetry.
An
exact proof term for the current goal is
mul_CSNo_CIm z v Hz Hv .
Use symmetry.
An
exact proof term for the current goal is
add_CSNo_CIm (mult' z w ) (mult' z v ) Lzw Lzv .
∎
Proof: Let x and y be given.
Assume Hx Hy .
Use transitivity with Re x * Re y , and pa (Re x * Re y ) 0 .
rewrite the current goal using
SNo_Re x Hx (from left to right).
rewrite the current goal using
SNo_Re y Hy (from left to right).
Use reflexivity.
Use symmetry.
An
exact proof term for the current goal is
SNo_pair_0 (Re x * Re y ) .
We will prove pa (Re x * Re y ) 0 = pa (Re x * Re y + - Im x * Im y ) (Re x * Im y + Im x * Re y ) .
Use f_equal.
We will prove Re x * Re y = Re x * Re y + - Im x * Im y .
rewrite the current goal using
SNo_Im x Hx (from left to right).
We will prove Re x * Re y = Re x * Re y + - 0 .
rewrite the current goal using
minus_SNo_0 (from left to right).
Use symmetry.
We will prove Re x * Re y + 0 = Re x * Re y .
We will prove 0 = Re x * Im y + Im x * Re y .
rewrite the current goal using
SNo_Im x Hx (from left to right).
rewrite the current goal using
SNo_Im y Hy (from left to right).
Use symmetry.
∎
Theorem. (
Complex_i_sqr ) The following is provable:
i ⨯ i = :-: 1
Proof: We prove the intermediate
claim Lii :
CSNo (i ⨯ i ) .
We prove the intermediate
claim Lm1 :
CSNo (:-: 1 ) .
We will prove Re (i ⨯ i ) = Re (:-: 1 ) .
We will prove Re i * Re i + - Im i * Im i = - Re 1 .
rewrite the current goal using
Re_i (from left to right).
rewrite the current goal using
Im_i (from left to right).
rewrite the current goal using
Re_1 (from left to right).
We will prove 0 * 0 + - 1 * 1 = - 1 .
We will prove 0 + - 1 = - 1 .
We will prove Im (i ⨯ i ) = Im (:-: 1 ) .
We will prove Re i * Im i + Im i * Re i = - Im 1 .
rewrite the current goal using
Re_i (from left to right).
rewrite the current goal using
Im_i (from left to right).
rewrite the current goal using
Im_1 (from left to right).
We will prove 0 * 1 + 1 * 0 = - 0 .
rewrite the current goal using
minus_SNo_0 (from left to right).
We will prove 0 + 0 = 0 .
∎
Theorem. (
CSNo_relative_recip ) The following is provable:
∀z, CSNo z → ∀u, SNo u → (Re z * Re z + Im z * Im z ) * u = 1 → z ⨯ (u ⨯ Re z + :-: i ⨯ u ⨯ Im z ) = 1
Proof: Let z be given.
Assume Hz .
Let u be given.
Assume Hu .
Assume Hur : (Re z * Re z + Im z * Im z ) * u = 1 .
We will prove z ⨯ (u ⨯ Re z + :-: i ⨯ u ⨯ Im z ) = 1 .
We prove the intermediate
claim LRezR :
SNo (Re z ) .
An
exact proof term for the current goal is
CSNo_ReR z Hz .
We prove the intermediate
claim LImzR :
SNo (Im z ) .
An
exact proof term for the current goal is
CSNo_ImR z Hz .
We will prove z ⨯ (u ⨯ Re z + :-: i ⨯ u ⨯ Im z ) = 1 .
rewrite the current goal using
mul_SNo_mul_CSNo u (Re z ) Hu LRezR (from right to left).
rewrite the current goal using
mul_SNo_mul_CSNo u (Im z ) Hu LImzR (from right to left).
We will prove z ⨯ (u * Re z + :-: i ⨯ u * Im z ) = 1 .
We prove the intermediate
claim LuRez :
SNo (u * Re z ) .
An
exact proof term for the current goal is
SNo_mul_SNo u (Re z ) ?? ?? .
We prove the intermediate
claim LuRez' :
CSNo (u * Re z ) .
An exact proof term for the current goal is LuRez .
We prove the intermediate
claim LuImz :
SNo (u * Im z ) .
An
exact proof term for the current goal is
SNo_mul_SNo u (Im z ) ?? ?? .
We prove the intermediate
claim LuImz' :
CSNo (u * Im z ) .
An exact proof term for the current goal is LuImz .
We prove the intermediate
claim LiuImz :
CSNo (i ⨯ u * Im z ) .
An exact proof term for the current goal is LuImz' .
We prove the intermediate
claim LmiuImz :
CSNo (:-: i ⨯ u * Im z ) .
An exact proof term for the current goal is LiuImz .
We prove the intermediate
claim L1 :
CSNo (u * Re z + :-: i ⨯ u * Im z ) .
We will
prove CSNo (u * Re z ) .
An exact proof term for the current goal is LuRez' .
We will
prove CSNo (:-: i ⨯ u * Im z ) .
An exact proof term for the current goal is LmiuImz .
We prove the intermediate
claim LRezRez :
SNo (Re z * Re z ) .
An
exact proof term for the current goal is
SNo_mul_SNo (Re z ) (Re z ) ?? ?? .
We prove the intermediate
claim LImzImz :
SNo (Im z * Im z ) .
An
exact proof term for the current goal is
SNo_mul_SNo (Im z ) (Im z ) ?? ?? .
We will prove Re (z ⨯ (u * Re z + :-: i ⨯ u * Im z ) ) = Re 1 .
rewrite the current goal using
Re_1 (from left to right).
rewrite the current goal using
mul_CSNo_CRe z (u * Re z + :-: i ⨯ u * Im z ) Hz L1 (from left to right).
We will prove Re z * Re (u * Re z + :-: i ⨯ u * Im z ) + - Im z * Im (u * Re z + :-: i ⨯ u * Im z ) = 1 .
rewrite the current goal using
add_CSNo_CRe (u * Re z ) (:-: i ⨯ u * Im z ) LuRez' LmiuImz (from left to right).
rewrite the current goal using
add_CSNo_CIm (u * Re z ) (:-: i ⨯ u * Im z ) LuRez' LmiuImz (from left to right).
We will prove Re z * (Re (u * Re z ) + Re (:-: i ⨯ u * Im z ) ) + - Im z * (Im (u * Re z ) + Im (:-: i ⨯ u * Im z ) ) = 1 .
rewrite the current goal using
minus_CSNo_CRe (i ⨯ u * Im z ) LiuImz (from left to right).
rewrite the current goal using
minus_CSNo_CIm (i ⨯ u * Im z ) LiuImz (from left to right).
rewrite the current goal using
SNo_Re (u * Re z ) LuRez (from left to right).
rewrite the current goal using
SNo_Im (u * Re z ) LuRez (from left to right).
We will prove Re z * (u * Re z + - Re (i ⨯ u * Im z ) ) + - Im z * (0 + - Im (i ⨯ u * Im z ) ) = 1 .
We will prove Re z * (u * Re z + - (Re i * Re (u * Im z ) + - Im i * Im (u * Im z ) ) ) + - Im z * (0 + - Im (i ⨯ u * Im z ) ) = 1 .
We will prove Re z * (u * Re z + - (Re i * Re (u * Im z ) + - Im i * Im (u * Im z ) ) ) + - Im z * (0 + - (Re i * Im (u * Im z ) + Im i * Re (u * Im z ) ) ) = 1 .
rewrite the current goal using
Re_i (from left to right).
rewrite the current goal using
Im_i (from left to right).
We will prove Re z * (u * Re z + - (0 * Re (u * Im z ) + - 1 * Im (u * Im z ) ) ) + - Im z * (0 + - (0 * Im (u * Im z ) + 1 * Re (u * Im z ) ) ) = 1 .
rewrite the current goal using
SNo_Re (u * Im z ) LuImz (from left to right).
rewrite the current goal using
SNo_Im (u * Im z ) LuImz (from left to right).
We will prove Re z * (u * Re z + - (0 * (u * Im z ) + - 1 * 0 ) ) + - Im z * (0 + - (0 * 0 + 1 * (u * Im z ) ) ) = 1 .
rewrite the current goal using
mul_SNo_zeroL (u * Im z ) LuImz (from left to right).
We will prove Re z * (u * Re z + - (0 + - 0 ) ) + - Im z * (0 + - (0 + 1 * (u * Im z ) ) ) = 1 .
rewrite the current goal using
minus_SNo_0 (from left to right).
rewrite the current goal using
minus_SNo_0 (from left to right).
rewrite the current goal using
add_SNo_0R (u * Re z ) LuRez (from left to right).
We will prove Re z * (u * Re z ) + - Im z * (0 + - (0 + 1 * (u * Im z ) ) ) = 1 .
rewrite the current goal using
mul_SNo_oneL (u * Im z ) LuImz (from left to right).
We will prove Re z * (u * Re z ) + - Im z * (0 + - (0 + (u * Im z ) ) ) = 1 .
rewrite the current goal using
add_SNo_0L (u * Im z ) LuImz (from left to right).
We will prove Re z * (u * Re z ) + - Im z * (- (u * Im z ) ) = 1 .
rewrite the current goal using
minus_SNo_invol (u * Im z ) LuImz (from left to right).
We will prove Re z * (u * Re z ) + Im z * (u * Im z ) = 1 .
rewrite the current goal using
mul_SNo_com_3_0_1 (Re z ) u (Re z ) ?? ?? ?? (from left to right).
rewrite the current goal using
mul_SNo_com_3_0_1 (Im z ) u (Im z ) ?? ?? ?? (from left to right).
We will prove u * (Re z * Re z ) + u * (Im z * Im z ) = 1 .
rewrite the current goal using
mul_SNo_com u (Re z * Re z ) ?? ?? (from left to right).
rewrite the current goal using
mul_SNo_com u (Im z * Im z ) ?? ?? (from left to right).
rewrite the current goal using
mul_SNo_distrR (Re z * Re z ) (Im z * Im z ) u ?? ?? ?? (from right to left).
An exact proof term for the current goal is Hur .
We will prove Im (z ⨯ (u * Re z + :-: i ⨯ u * Im z ) ) = Im 1 .
rewrite the current goal using
mul_CSNo_CIm z (u * Re z + :-: i ⨯ u * Im z ) Hz L1 (from left to right).
rewrite the current goal using
Im_1 (from left to right).
We will prove Re z * Im (u * Re z + :-: i ⨯ u * Im z ) + Im z * Re (u * Re z + :-: i ⨯ u * Im z ) = 0 .
rewrite the current goal using
add_CSNo_CRe (u * Re z ) (:-: i ⨯ u * Im z ) LuRez' LmiuImz (from left to right).
rewrite the current goal using
add_CSNo_CIm (u * Re z ) (:-: i ⨯ u * Im z ) LuRez' LmiuImz (from left to right).
We will prove Re z * (Im (u * Re z ) + Im (:-: i ⨯ u * Im z ) ) + Im z * (Re (u * Re z ) + Re (:-: i ⨯ u * Im z ) ) = 0 .
rewrite the current goal using
minus_CSNo_CRe (i ⨯ u * Im z ) LiuImz (from left to right).
rewrite the current goal using
minus_CSNo_CIm (i ⨯ u * Im z ) LiuImz (from left to right).
We will prove Re z * (Im (u * Re z ) + - Im (i ⨯ u * Im z ) ) + Im z * (Re (u * Re z ) + - Re (i ⨯ u * Im z ) ) = 0 .
rewrite the current goal using
SNo_Re (u * Re z ) LuRez (from left to right).
rewrite the current goal using
SNo_Im (u * Re z ) LuRez (from left to right).
We will prove Re z * (0 + - Im (i ⨯ u * Im z ) ) + Im z * ((u * Re z ) + - Re (i ⨯ u * Im z ) ) = 0 .
We will prove Re z * (0 + - Im (i ⨯ u * Im z ) ) + Im z * ((u * Re z ) + - (Re i * Re (u * Im z ) + - Im i * Im (u * Im z ) ) ) = 0 .
We will prove Re z * (0 + - (Re i * Im (u * Im z ) + Im i * Re (u * Im z ) ) ) + Im z * ((u * Re z ) + - (Re i * Re (u * Im z ) + - Im i * Im (u * Im z ) ) ) = 0 .
rewrite the current goal using
Re_i (from left to right).
rewrite the current goal using
Im_i (from left to right).
We will prove Re z * (0 + - (0 * Im (u * Im z ) + 1 * Re (u * Im z ) ) ) + Im z * ((u * Re z ) + - (0 * Re (u * Im z ) + - 1 * Im (u * Im z ) ) ) = 0 .
rewrite the current goal using
SNo_Re (u * Im z ) LuImz (from left to right).
rewrite the current goal using
SNo_Im (u * Im z ) LuImz (from left to right).
We will prove Re z * (0 + - (0 * 0 + 1 * (u * Im z ) ) ) + Im z * ((u * Re z ) + - (0 * (u * Im z ) + - 1 * 0 ) ) = 0 .
rewrite the current goal using
mul_SNo_zeroL (u * Im z ) ?? (from left to right).
rewrite the current goal using
mul_SNo_oneL (u * Im z ) ?? (from left to right).
We will prove Re z * (0 + - (0 + u * Im z ) ) + Im z * ((u * Re z ) + - (0 + - 0 ) ) = 0 .
rewrite the current goal using
minus_SNo_0 (from left to right).
rewrite the current goal using
minus_SNo_0 (from left to right).
rewrite the current goal using
add_SNo_0R (u * Re z ) ?? (from left to right).
rewrite the current goal using
add_SNo_0L (u * Im z ) ?? (from left to right).
We will prove Re z * (0 + - (u * Im z ) ) + Im z * (u * Re z ) = 0 .
We will prove Re z * (- (u * Im z ) ) + Im z * (u * Re z ) = 0 .
We will prove - Re z * u * Im z + Im z * u * Re z = 0 .
rewrite the current goal using
mul_SNo_com_3_0_1 (Re z ) u (Im z ) ?? ?? ?? (from left to right).
rewrite the current goal using
mul_SNo_com_3_0_1 (Im z ) u (Re z ) ?? ?? ?? (from left to right).
We will prove - u * Re z * Im z + u * Im z * Re z = 0 .
rewrite the current goal using
mul_SNo_com (Re z ) (Im z ) ?? ?? (from left to right).
We will prove - u * Im z * Re z + u * Im z * Re z = 0 .
∎
End of Section ComplexSNo
Beginning of Section Complex
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 490 and no associativity corresponding to applying term
SNoLt .
Notation . We use
≤ as an infix operator with priority 490 and no associativity corresponding to applying term
SNoLe .
Definition. We define
complex to be
{pa (u 0 ) (u 1 ) |u ∈ real ⨯ real } of type
set .
Theorem. (
complex_I ) The following is provable:
Proof: Let x be given.
Assume Hx .
Let y be given.
Assume Hy .
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 ) ∈ complex .
Apply ReplI (real ⨯ real ) (λu ⇒ pa (u 0 ) (u 1 ) ) to the current goal.
∎
Theorem. (
complex_E ) The following is provable:
∀z ∈ complex , ∀p : prop , (∀x y ∈ real , z = pa x y → p ) → p
Proof: Let z be given.
Assume Hz .
Let p be given.
Assume Hp .
Let u be given.
Assume Hzu : z = pa (u 0 ) (u 1 ) .
∎
Proof: Let z be given.
Assume Hz .
Let x be given.
Assume Hx .
Let y be given.
Assume Hy .
Assume Hzxy : z = pa x y .
rewrite the current goal using Hzxy (from left to right).
Apply CSNo_I to the current goal.
An
exact proof term for the current goal is
real_SNo x Hx .
An
exact proof term for the current goal is
real_SNo y Hy .
∎
Proof: Let x be given.
rewrite the current goal using
SNo_pair_0 x (from right to left).
An exact proof term for the current goal is Hx .
An
exact proof term for the current goal is
real_0 .
∎
Theorem. (
complex_0 ) The following is provable:
Theorem. (
complex_1 ) The following is provable:
Theorem. (
complex_i ) The following is provable:
Proof:
An
exact proof term for the current goal is
real_0 .
An
exact proof term for the current goal is
real_1 .
∎
Proof: Let x be given.
Assume Hx .
Let y be given.
Assume Hy .
∎
Proof: Let x be given.
Assume Hx .
Let y be given.
Assume Hy .
∎
Proof: Let z be given.
Assume Hz .
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 Re (pa x y ) ∈ real .
rewrite the current goal using
complex_Re_eq x Hx y Hy (from left to right).
An exact proof term for the current goal is Hx .
∎
Proof: Let z be given.
Assume Hz .
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 Im (pa x y ) ∈ real .
rewrite the current goal using
complex_Im_eq x Hx y Hy (from left to right).
An exact proof term for the current goal is Hy .
∎
Proof: Let z be given.
Assume Hz .
Let w be given.
Assume Hw .
∎
Proof: Let z be given.
Assume Hz .
∎
Proof: Let z be given.
Assume Hz .
Let w be given.
Assume Hw .
∎
Proof: Let z be given.
Assume Hz .
Let w be given.
Assume Hw .
We prove the intermediate
claim Lz0 :
Re z ∈ real .
We prove the intermediate
claim Lz1 :
Im z ∈ real .
We prove the intermediate
claim Lw0 :
Re w ∈ real .
We prove the intermediate
claim Lw1 :
Im w ∈ real .
An exact proof term for the current goal is ?? .
An exact proof term for the current goal is ?? .
An exact proof term for the current goal is ?? .
An exact proof term for the current goal is ?? .
An exact proof term for the current goal is ?? .
An exact proof term for the current goal is ?? .
An exact proof term for the current goal is ?? .
An exact proof term for the current goal is ?? .
∎
Proof: Let x be given.
Assume Hx .
rewrite the current goal using
SNo_pair_0 x (from right to left) at position 1.
∎
Proof: Let x be given.
Assume Hx .
rewrite the current goal using
SNo_pair_0 x (from right to left).
∎
Proof: Let x be given.
Assume Hx .
rewrite the current goal using
real_Re_eq x Hx (from left to right).
rewrite the current goal using
real_Im_eq x Hx (from left to right).
rewrite the current goal using
minus_SNo_0 (from left to right).
Use reflexivity.
∎
Proof: Let x be given.
Assume Hx .
rewrite the current goal using
mul_i_real_eq x Hx (from left to right).
We will prove Re (pa 0 x ) = 0 .
∎
Proof: Let x be given.
Assume Hx .
rewrite the current goal using
mul_i_real_eq x Hx (from left to right).
We will prove Im (pa 0 x ) = x .
∎
Proof: Let z be given.
Assume Hz .
Let x be given.
Assume Hx .
Let y be given.
Assume Hy Hzxy .
rewrite the current goal using Hzxy (from left to right).
rewrite the current goal using
complex_Re_eq x Hx y Hy (from left to right).
rewrite the current goal using
complex_Im_eq x Hx y Hy (from left to right).
We will prove pa x y = x + i * y .
We will
prove pa x y = pa (add_SNo (Re x ) (Re (i * y ) ) ) (add_SNo (Im x ) (Im (i * y ) ) ) .
rewrite the current goal using
real_Re_eq x Hx (from left to right).
rewrite the current goal using
real_Im_eq x Hx (from left to right).
rewrite the current goal using
real_Re_i_eq y Hy (from left to right).
rewrite the current goal using
real_Im_i_eq y Hy (from left to right).
Use reflexivity.
∎
Proof: Let z be given.
Assume Hz Hznz .
Set x to be the term Re z .
Set y to be the term Im z .
We prove the intermediate
claim Lx :
x ∈ real .
We prove the intermediate
claim Ly :
y ∈ real .
We prove the intermediate
claim Lxx :
mul_SNo x x ∈ real .
An
exact proof term for the current goal is
real_mul_SNo x ?? x ?? .
We prove the intermediate
claim Lxx' :
SNo (mul_SNo x x ) .
An exact proof term for the current goal is Lxx .
We prove the intermediate
claim Lyy :
mul_SNo y y ∈ real .
An
exact proof term for the current goal is
real_mul_SNo y ?? y ?? .
We prove the intermediate
claim Lyy' :
SNo (mul_SNo y y ) .
An exact proof term for the current goal is Lyy .
We prove the intermediate
claim Lr :
r ∈ real .
We prove the intermediate
claim Lr' :
SNo r .
An exact proof term for the current goal is Lr .
We prove the intermediate claim Lrnz : r ≠ 0 .
Assume H1 : r = 0 .
Apply Hznz to the current goal.
We will prove z = 0 .
We will prove Re z = Re 0 .
rewrite the current goal using
Re_0 (from left to right).
We will prove x = 0 .
Assume H2 : x = 0 .
An exact proof term for the current goal is H2 .
We will prove 0 < 0 .
rewrite the current goal using H1 (from right to left) at position 2.
We will prove 0 < r .
rewrite the current goal using
add_SNo_0R (mul_SNo x x ) ?? (from right to left) at position 1.
We will prove Im z = Im 0 .
rewrite the current goal using
Im_0 (from left to right).
We will prove y = 0 .
Assume H2 : y = 0 .
An exact proof term for the current goal is H2 .
We will prove 0 < 0 .
rewrite the current goal using H1 (from right to left) at position 2.
We will prove 0 < r .
rewrite the current goal using
add_SNo_0L (mul_SNo y y ) ?? (from right to left) at position 1.
Let u be given.
Assume H .
Apply H to the current goal.
We use (u * x + - i * u * y ) to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hu .
An exact proof term for the current goal is ?? .
An
exact proof term for the current goal is
complex_i .
An exact proof term for the current goal is Hu .
An exact proof term for the current goal is ?? .
∎
Proof:
Let x be given.
Apply SepI to the current goal.
An
exact proof term for the current goal is
real_complex x Hx .
An
exact proof term for the current goal is
real_Re_eq x Hx .
Let z be given.
Apply SepE complex (λz ⇒ Re z = z ) z Hz to the current goal.
Assume Hz2 : Re z = z .
rewrite the current goal using Hz2 (from right to left).
∎
End of Section Complex