Integers and Diadic Rationals
From Parts 1 - 6
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
Part 7
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 .
Definition. We define
int to be
ω ∪ {- n |n ∈ ω } of type
set .
Theorem. (
int_SNo_cases ) The following is provable:
∀p : set → prop , (∀n ∈ ω , p n ) → (∀n ∈ ω , p (- n ) ) → ∀x ∈ int , p x
Proof: Let p be given.
Assume Hp1 Hp2 .
Let x be given.
Assume Hx .
We will prove p x .
Apply binunionE ω {- n |n ∈ ω } x Hx to the current goal.
An exact proof term for the current goal is Hp1 x Hx .
Assume Hx .
Let n be given.
Assume Hxn : x = - n .
rewrite the current goal using Hxn (from left to right).
An exact proof term for the current goal is Hp2 n Hn .
∎
Theorem. (
int_SNo ) The following is provable:
Proof:
An
exact proof term for the current goal is
omega_SNo .
Let n be given.
Assume Hn .
An
exact proof term for the current goal is
omega_SNo n Hn .
∎
Proof: Let n be given.
Assume Hn .
We will
prove n ∈ ω ∪ {- k |k ∈ ω } .
An exact proof term for the current goal is Hn .
∎
Proof: Let n be given.
Assume Hn .
We will
prove - n ∈ ω ∪ {- k |k ∈ ω } .
We will
prove - n ∈ {- k |k ∈ ω } .
Apply ReplI to the current goal.
An exact proof term for the current goal is Hn .
∎
Proof: Let n be given.
Assume Hn .
We prove the intermediate
claim Lnn :
nat_p n .
An
exact proof term for the current goal is
omega_nat_p n Hn .
We prove the intermediate
claim Lno :
ordinal n .
We prove the intermediate
claim LnS :
SNo n .
An
exact proof term for the current goal is
ordinal_SNo n Lno .
We will
prove - n + 0 ∈ int .
An exact proof term for the current goal is Hn .
Let m be given.
We prove the intermediate
claim Lmo :
ordinal m .
We prove the intermediate
claim LmS :
SNo m .
An
exact proof term for the current goal is
ordinal_SNo m Lmo .
We will
prove - n + (1 + m ) ∈ int .
We will
prove 1 + (- n + m ) ∈ int .
We prove the intermediate
claim L1 :
∀k ∈ ω , - n + m = k → 1 + (- n + m ) ∈ int .
Let k be given.
Assume Hk He .
rewrite the current goal using He (from left to right).
We will
prove 1 + k ∈ int .
An exact proof term for the current goal is Hk .
We prove the intermediate
claim L2 :
∀k ∈ ω , - n + m = - k → 1 + (- n + m ) ∈ int .
Let k be given.
Assume Hk He .
rewrite the current goal using He (from left to right).
We will
prove 1 + - k ∈ int .
Assume H1 : k = 0 .
rewrite the current goal using H1 (from left to right).
rewrite the current goal using
minus_SNo_0 (from left to right).
Assume H1 .
Apply H1 to the current goal.
Let k' be given.
Assume H1 .
Apply H1 to the current goal.
rewrite the current goal using H2 (from left to right).
We will
prove 1 + - (1 + k' ) ∈ int .
We will
prove 1 + - 1 + - k' ∈ int .
We will
prove - k' ∈ int .
An
exact proof term for the current goal is
nat_p_omega k' H1 .
Apply int_SNo_cases (λx ⇒ - n + m = x → 1 + (- n + m ) ∈ int ) L1 L2 (- n + m ) IHm to the current goal.
Use reflexivity.
∎
Proof:
Let n be given.
Let m be given.
We will
prove n + - m ∈ int .
We will
prove - m + n ∈ int .
Let n be given.
Let m be given.
We will
prove - n + m ∈ int .
Let m be given.
We will
prove - n + - m ∈ int .
We prove the intermediate
claim Ln :
SNo n .
We prove the intermediate
claim Lm :
SNo m .
∎
Proof:
Let n be given.
Assume Hn .
An exact proof term for the current goal is Hn .
Let n be given.
Assume Hn .
We will
prove - - n ∈ int .
An exact proof term for the current goal is Hn .
∎
Proof:
Let n be given.
We prove the intermediate
claim Lnn :
nat_p n .
An
exact proof term for the current goal is
omega_nat_p n Hn .
We prove the intermediate
claim Lno :
ordinal n .
We prove the intermediate
claim LnS :
SNo n .
An
exact proof term for the current goal is
ordinal_SNo n Lno .
Let m be given.
We prove the intermediate
claim Lmn :
nat_p m .
An
exact proof term for the current goal is
omega_nat_p m Hm .
We prove the intermediate
claim Lmo :
ordinal m .
We prove the intermediate
claim LmS :
SNo m .
An
exact proof term for the current goal is
ordinal_SNo m Lmo .
We will
prove n * (- m ) ∈ int .
We will
prove (- m ) * n ∈ int .
We will
prove - (m * n ) ∈ int .
We will
prove m * n ∈ int .
Let n be given.
We prove the intermediate
claim Lnn :
nat_p n .
An
exact proof term for the current goal is
omega_nat_p n Hn .
We prove the intermediate
claim Lno :
ordinal n .
We prove the intermediate
claim LnS :
SNo n .
An
exact proof term for the current goal is
ordinal_SNo n Lno .
Let m be given.
We prove the intermediate
claim Lmn :
nat_p m .
An
exact proof term for the current goal is
omega_nat_p m Hm .
We prove the intermediate
claim Lmo :
ordinal m .
We prove the intermediate
claim LmS :
SNo m .
An
exact proof term for the current goal is
ordinal_SNo m Lmo .
We will
prove (- n ) * m ∈ int .
We will
prove - (n * m ) ∈ int .
We will
prove n * m ∈ int .
Let m be given.
We prove the intermediate
claim Lmn :
nat_p m .
An
exact proof term for the current goal is
omega_nat_p m Hm .
We prove the intermediate
claim Lmo :
ordinal m .
We prove the intermediate
claim LmS :
SNo m .
An
exact proof term for the current goal is
ordinal_SNo m Lmo .
We will
prove (- n ) * (- m ) ∈ int .
We will
prove - (n * (- m ) ) ∈ int .
We will
prove - ((- m ) * n ) ∈ int .
We will
prove - - (m * n ) ∈ int .
We will
prove m * n ∈ int .
∎
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 .
Proof: Let x be given.
Assume Hx .
An
exact proof term for the current goal is
If_i_1 (0 ≤ x ) x (- x ) Hx .
∎
Proof: Let x be given.
Assume Hx .
An
exact proof term for the current goal is
If_i_0 (0 ≤ x ) x (- x ) Hx .
∎
Theorem. (
abs_SNo_0 ) The following is provable:
Proof:
We will prove 0 ≤ 0 .
∎
Proof: Let x be given.
Assume Hx .
We will prove 0 ≤ x .
An exact proof term for the current goal is Hx .
∎
Proof: Let x be given.
Assume Hx1 Hx2 .
Assume H1 : 0 ≤ x .
We will prove x < x .
An
exact proof term for the current goal is
SNoLtLe_tra x 0 x Hx1 SNo_0 Hx1 Hx2 H1 .
∎
Proof: Let x be given.
Assume Hx .
Apply xm (0 ≤ x ) to the current goal.
Assume H1 .
rewrite the current goal using
nonneg_abs_SNo x H1 (from left to right).
An exact proof term for the current goal is Hx .
Assume H1 .
An exact proof term for the current goal is Hx .
∎
Proof: Let x be given.
Assume Hx .
Apply xm (0 ≤ x ) to the current goal.
Assume H1 .
rewrite the current goal using
nonneg_abs_SNo x H1 (from left to right).
Use reflexivity.
Assume H1 .
An exact proof term for the current goal is Hx .
∎
Proof: Let x be given.
Assume Hx .
Assume H1 : x < 0 .
rewrite the current goal using
neg_abs_SNo x Hx H1 (from left to right).
We prove the intermediate claim L1 : 0 ≤ - x .
We will prove 0 < - x .
We will prove x < - 0 .
rewrite the current goal using
minus_SNo_0 (from left to right).
An exact proof term for the current goal is H1 .
Assume H1 : 0 ≤ x .
Assume H2 : - x < 0 .
rewrite the current goal using
nonneg_abs_SNo x H1 (from left to right).
We will prove - - x = x .
Assume H2 : 0 ≤ - x .
We prove the intermediate claim L2 : x = 0 .
We will prove x ≤ 0 .
rewrite the current goal using
minus_SNo_0 (from right to left).
We will prove - - x ≤ - 0 .
We will prove 0 ≤ - x .
An exact proof term for the current goal is H2 .
We will prove 0 ≤ x .
An exact proof term for the current goal is H1 .
rewrite the current goal using L2 (from left to right).
Use f_equal.
An
exact proof term for the current goal is
minus_SNo_0 .
∎
Proof: Let x and y be given.
Assume Hx Hy .
We prove the intermediate
claim Lmx :
SNo (- x ) .
An exact proof term for the current goal is Hx .
We prove the intermediate
claim Lmy :
SNo (- y ) .
An exact proof term for the current goal is Hy .
We prove the intermediate
claim Lymx :
SNo (y + - x ) .
An
exact proof term for the current goal is
SNo_add_SNo y (- x ) Hy Lmx .
Use transitivity with and
abs_SNo (- (y + - x ) ) .
Use f_equal.
We will prove x + - y = - (y + - x ) .
We will prove x + - y = - y + - - x .
We will prove x + - y = - y + x .
An
exact proof term for the current goal is
add_SNo_com x (- y ) Hx Lmy .
An
exact proof term for the current goal is
abs_SNo_minus (y + - x ) Lymx .
∎
Proof: Let x and y be given.
Assume Hx Hy .
We prove the intermediate
claim Lxy :
SNo (x + y ) .
An
exact proof term for the current goal is
SNo_add_SNo x y Hx Hy .
We prove the intermediate
claim Lmx :
SNo (- x ) .
An exact proof term for the current goal is Hx .
We prove the intermediate
claim Lmy :
SNo (- y ) .
An exact proof term for the current goal is Hy .
Assume H1 : x < 0 .
rewrite the current goal using
neg_abs_SNo x Hx H1 (from left to right).
Assume H2 : y < 0 .
rewrite the current goal using
neg_abs_SNo y Hy H2 (from left to right).
We will
prove abs_SNo (x + y ) ≤ - x + - y .
We prove the intermediate claim L1 : x + y < 0 .
We will prove x + y < 0 + 0 .
rewrite the current goal using
neg_abs_SNo (x + y ) Lxy L1 (from left to right).
We will prove - (x + y ) ≤ - x + - y .
Assume H2 : 0 ≤ y .
rewrite the current goal using
nonneg_abs_SNo y H2 (from left to right).
We will
prove abs_SNo (x + y ) ≤ - x + y .
Apply xm (0 ≤ x + y ) to the current goal.
Assume H3 .
rewrite the current goal using
nonneg_abs_SNo (x + y ) H3 (from left to right).
We will prove x + y ≤ - x + y .
Apply add_SNo_Le1 x y (- x ) Hx Hy Lmx to the current goal.
We will prove x ≤ - x .
We will prove x < - x .
We will prove 0 < - x .
We will prove x < - 0 .
rewrite the current goal using
minus_SNo_0 (from left to right).
An exact proof term for the current goal is H1 .
Assume H3 .
We will prove - (x + y ) ≤ - x + y .
We will prove - x + - y ≤ - x + y .
Apply add_SNo_Le2 (- x ) (- y ) y Lmx Lmy Hy to the current goal.
We will prove - y ≤ y .
We prove the intermediate claim L2 : - y ≤ 0 .
rewrite the current goal using
minus_SNo_0 (from right to left).
An
exact proof term for the current goal is
SNoLe_tra (- y ) 0 y Lmy SNo_0 Hy L2 H2 .
Assume H1 : 0 ≤ x .
rewrite the current goal using
nonneg_abs_SNo x H1 (from left to right).
Assume H2 : y < 0 .
rewrite the current goal using
neg_abs_SNo y Hy H2 (from left to right).
We will
prove abs_SNo (x + y ) ≤ x + - y .
Apply xm (0 ≤ x + y ) to the current goal.
Assume H3 .
rewrite the current goal using
nonneg_abs_SNo (x + y ) H3 (from left to right).
We will prove x + y ≤ x + - y .
Apply add_SNo_Le2 x y (- y ) Hx Hy Lmy to the current goal.
We will prove y ≤ - y .
We will prove y < - y .
We will prove 0 < - y .
We will prove y < - 0 .
rewrite the current goal using
minus_SNo_0 (from left to right).
An exact proof term for the current goal is H2 .
Assume H3 .
We will prove - (x + y ) ≤ x + - y .
We will prove - x + - y ≤ x + - y .
Apply add_SNo_Le1 (- x ) (- y ) x Lmx Lmy Hx to the current goal.
We will prove - x ≤ x .
We prove the intermediate claim L3 : - x ≤ 0 .
rewrite the current goal using
minus_SNo_0 (from right to left).
An
exact proof term for the current goal is
SNoLe_tra (- x ) 0 x Lmx SNo_0 Hx L3 H1 .
Assume H2 : 0 ≤ y .
rewrite the current goal using
nonneg_abs_SNo y H2 (from left to right).
We will
prove abs_SNo (x + y ) ≤ x + y .
We prove the intermediate claim L1 : 0 ≤ x + y .
We will prove 0 + 0 ≤ x + y .
rewrite the current goal using
nonneg_abs_SNo (x + y ) L1 (from left to right).
∎
Proof: Let x, y and z be given.
Assume Hx Hy Hz .
We prove the intermediate
claim Lmy :
SNo (- y ) .
An exact proof term for the current goal is Hy .
We prove the intermediate
claim Lmz :
SNo (- z ) .
An exact proof term for the current goal is Hz .
We prove the intermediate claim L1 : x + - z = (x + - y ) + (y + - z ) .
rewrite the current goal using
add_SNo_assoc x (- y ) (y + - z ) Hx Lmy (SNo_add_SNo y (- z ) Hy Lmz ) (from right to left).
We will prove x + - z = x + (- y + y + - z ) .
Use f_equal.
Use symmetry.
rewrite the current goal using L1 (from left to right).
An exact proof term for the current goal is Hx .
An exact proof term for the current goal is Lmy .
An exact proof term for the current goal is Hy .
An exact proof term for the current goal is Lmz .
∎
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 .
Proof: Let X and y be given.
Assume HX H1 .
Apply H1 to the current goal.
Assume H .
Apply H to the current goal.
Assume H1a : y ∈ X .
We will
prove - y ∈ {- x |x ∈ X } ∧ SNo (- y ) ∧ (∀z ∈ {- x |x ∈ X } , SNo z → - y ≤ z ) .
Apply and3I to the current goal.
Apply ReplI to the current goal.
An exact proof term for the current goal is H1a .
Let z be given.
Assume Hz1 : z ∈ {- x |x ∈ X } .
Let x be given.
Assume Hx : x ∈ X .
Assume Hze : z = - x .
rewrite the current goal using Hze (from left to right).
We will prove - y ≤ - x .
We will prove x ≤ y .
An exact proof term for the current goal is H1c x Hx (HX x Hx ) .
∎
Proof: Let X and y be given.
Assume HX H1 .
We prove the intermediate claim L1 : {- z |z ∈ {- x |x ∈ X } } = X .
We will
prove ∀x, SNo x → - - x = x .
We will
prove ∀x ∈ X , SNo x .
An exact proof term for the current goal is HX .
We prove the intermediate
claim L2 :
∀z ∈ {- x |x ∈ X } , SNo z .
Let z be given.
Assume Hz .
Let x be given.
Assume Hx : x ∈ X .
Assume Hzx : z = - x .
rewrite the current goal using Hzx (from left to right).
An exact proof term for the current goal is HX x Hx .
rewrite the current goal using L1 (from right to left).
∎
Proof: Let X and y be given.
Assume HX H1 .
Apply H1 to the current goal.
Assume H .
Apply H to the current goal.
Assume H1a : y ∈ X .
We will
prove - y ∈ {- x |x ∈ X } ∧ SNo (- y ) ∧ (∀z ∈ {- x |x ∈ X } , SNo z → z ≤ - y ) .
Apply and3I to the current goal.
Apply ReplI to the current goal.
An exact proof term for the current goal is H1a .
Let z be given.
Assume Hz1 : z ∈ {- x |x ∈ X } .
Let x be given.
Assume Hx : x ∈ X .
Assume Hze : z = - x .
rewrite the current goal using Hze (from left to right).
We will prove - x ≤ - y .
We will prove y ≤ x .
An exact proof term for the current goal is H1c x Hx (HX x Hx ) .
∎
Proof: Let x and y be given.
Assume Hx Hy .
Apply Hy to the current goal.
Assume H .
Apply H to the current goal.
Apply SNoL_E x Hx y Hy1 to the current goal.
Assume Hy1a .
Assume Hy1c : y < x .
Let z be given.
Assume H1 : x < z .
Assume H2 : y + z < x + x .
We will
prove ∃w ∈ SNoR z , y + w = x + x .
We prove the intermediate
claim Lxx :
SNo (x + x ) .
An
exact proof term for the current goal is
SNo_add_SNo x x Hx Hx .
We prove the intermediate
claim Lyz :
SNo (y + z ) .
An
exact proof term for the current goal is
SNo_add_SNo y z Hy2 Hz .
We prove the intermediate
claim L1 :
∀w ∈ SNoR y , w + z ≤ x + x → False .
Let w be given.
Assume Hw .
Assume H3 : w + z ≤ x + x .
Apply SNoR_E y Hy2 w Hw to the current goal.
Assume Hw3 : y < w .
We will prove x + x < x + x .
We will prove x + x < w + z .
Apply add_SNo_Lt3b x x w z Hx Hx Hw1 Hz to the current goal.
We will prove x ≤ w .
Assume H4 : w < x .
We prove the intermediate
claim L1a :
w ∈ SNoL x .
Apply SNoL_I x Hx w Hw1 to the current goal.
We will prove w < x .
An exact proof term for the current goal is H4 .
We will prove y < y .
Apply SNoLtLe_tra y w y Hy2 Hw1 Hy2 Hw3 to the current goal.
We will prove w ≤ y .
An exact proof term for the current goal is Hy3 w L1a Hw1 .
Assume H4 : x ≤ w .
An exact proof term for the current goal is H4 .
We will prove x < z .
An exact proof term for the current goal is H1 .
We will prove w + z ≤ x + x .
An exact proof term for the current goal is H3 .
We prove the intermediate
claim L2 :
∀w ∈ SNoL x , y + z ≤ w + x → False .
Let w be given.
Assume Hw .
Assume H3 : y + z ≤ w + x .
Apply SNoL_E x Hx w Hw to the current goal.
Assume Hw3 : w < x .
We will prove w + x < w + x .
We will prove w + x < w + z .
We will prove x < z .
An exact proof term for the current goal is H1 .
We will prove w + z ≤ w + x .
We will prove w + z ≤ y + z .
Apply add_SNo_Le1 w z y Hw1 Hz Hy2 to the current goal.
We will prove w ≤ y .
An exact proof term for the current goal is Hy3 w Hw Hw1 .
We will prove y + z ≤ w + x .
An exact proof term for the current goal is H3 .
We prove the intermediate
claim L3 :
∀w ∈ SNoR z , y + w < x + x → ∃w ∈ SNoR z , y + w = x + x .
Let w be given.
Assume H4 : y + w < x + x .
Apply SNoR_E z Hz w Hw to the current goal.
Assume Hw2 .
Assume Hw3 : z < w .
We prove the intermediate
claim LIH :
∃u ∈ SNoR w , y + u = x + x .
Apply IH w (SNoR_SNoS_ z w Hw ) to the current goal.
We will prove x < w .
An
exact proof term for the current goal is
SNoLt_tra x z w Hx Hz Hw1 H1 Hw3 .
We will prove y + w < x + x .
An exact proof term for the current goal is H4 .
Apply LIH to the current goal.
Let u be given.
Assume H .
Apply H to the current goal.
Assume Hu2 : y + u = x + x .
Apply SNoR_E w Hw1 u Hu1 to the current goal.
Assume Hu1a Hu1b Hu1c .
We use u to witness the existential quantifier.
Apply andI to the current goal.
We will
prove u ∈ SNoR z .
Apply SNoR_I z Hz u Hu1a to the current goal.
We will prove z < u .
An
exact proof term for the current goal is
SNoLt_tra z w u Hz Hw1 Hu1a Hw3 Hu1c .
An exact proof term for the current goal is Hu2 .
Let u be given.
Apply SNoL_E (x + x ) Lxx u Hu1 to the current goal.
Assume Hu1b .
Assume Hu1c : u < x + x .
Assume H .
Apply H to the current goal.
Let w be given.
Assume H .
Apply H to the current goal.
Assume H4 : w + z ≤ u .
Apply SNoR_E y Hy2 w Hw to the current goal.
Assume Hw2 .
Assume Hw3 : y < w .
Apply L1 w Hw to the current goal.
We will prove w + z ≤ x + x .
We will prove w + z < x + x .
We will prove u < x + x .
An exact proof term for the current goal is Hu1c .
Assume H .
Apply H to the current goal.
Let w be given.
Assume H .
Apply H to the current goal.
Assume H4 : y + w ≤ u .
Apply SNoR_E z Hz w Hw to the current goal.
Assume Hw2 .
Assume Hw3 : z < w .
Apply L3 w Hw to the current goal.
We will prove y + w < x + x .
We will prove u < x + x .
An exact proof term for the current goal is Hu1c .
Assume H .
Apply H to the current goal.
Let w be given.
Assume H .
Apply H to the current goal.
Assume H4 : y + z ≤ w + x .
An exact proof term for the current goal is L2 w Hw H4 .
Assume H .
Apply H to the current goal.
Let w be given.
Assume H .
Apply H to the current goal.
Assume H4 : y + z ≤ x + w .
Apply SNoL_E x Hx w Hw to the current goal.
Assume Hw1 Hw2 Hw3 .
Apply L2 w Hw to the current goal.
We will prove y + z ≤ w + x .
rewrite the current goal using
add_SNo_com w x Hw1 Hx (from left to right).
We will prove y + z ≤ x + w .
An exact proof term for the current goal is H4 .
Assume H .
Apply H to the current goal.
Let w be given.
Assume H .
Apply H to the current goal.
Assume H4 : w + z ≤ x + x .
An exact proof term for the current goal is L1 w Hw H4 .
Assume H .
Apply H to the current goal.
Let w be given.
Assume H .
Apply H to the current goal.
Assume H4 : y + w ≤ x + x .
Apply SNoR_E z Hz w Hw to the current goal.
Assume Hw3 : z < w .
Assume H5 : y + w < x + x .
We will
prove ∃w ∈ SNoR z , y + w = x + x .
Apply L3 w Hw to the current goal.
We will prove y + w < x + x .
An exact proof term for the current goal is H5 .
Assume H5 : x + x ≤ y + w .
We will
prove ∃w ∈ SNoR z , y + w = x + x .
We use w to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hw .
An exact proof term for the current goal is H4 .
An exact proof term for the current goal is H5 .
∎
Proof: Let x and y be given.
Assume Hx Hy .
Apply Hy to the current goal.
Assume H .
Apply H to the current goal.
Apply SNoR_E x Hx y Hy1 to the current goal.
Assume Hy1a .
Assume Hy1c : x < y .
Let z be given.
Assume H1 : z < x .
Assume H2 : x + x < y + z .
We prove the intermediate
claim Lmx :
SNo (- x ) .
We prove the intermediate
claim Lmy :
SNo (- y ) .
We prove the intermediate
claim Lmz :
SNo (- z ) .
We prove the intermediate
claim Lxx :
SNo (x + x ) .
An
exact proof term for the current goal is
SNo_add_SNo x x Hx Hx .
We prove the intermediate
claim Lyz :
SNo (y + z ) .
An
exact proof term for the current goal is
SNo_add_SNo y z Hy2 Hz .
Let w be given.
Assume Hw .
Apply SNoR_E x Hx w Hw to the current goal.
Assume Hw1 _ _ .
An exact proof term for the current goal is Hw1 .
An exact proof term for the current goal is Hy .
We prove the intermediate claim L2 : - x < - z .
We prove the intermediate claim L3 : - y + - z < - x + - x .
Let w be given.
Assume H .
Apply H to the current goal.
Assume H3 : - y + w = - (x + x ) .
Apply SNoR_E (- z ) Lmz w Hw to the current goal.
Assume Hw3 : - z < w .
We prove the intermediate
claim Lmw :
SNo (- w ) .
We use (- w ) to witness the existential quantifier.
Apply andI to the current goal.
We will
prove - w ∈ SNoL z .
We will
prove - w ∈ SNoL (- - z ) .
rewrite the current goal using
SNoL_minus_SNoR (- z ) Lmz (from left to right).
We will
prove - w ∈ {- w |w ∈ SNoR (- z ) } .
Apply ReplI to the current goal.
An exact proof term for the current goal is Hw .
We will prove y + - w = x + x .
rewrite the current goal using
minus_SNo_invol (x + x ) Lxx (from right to left).
We will prove y + - w = - - (x + x ) .
rewrite the current goal using H3 (from right to left).
We will prove y + - w = - (- y + w ) .
We will prove y + - w = - - y + - w .
Use reflexivity.
∎
Proof:
Let X be given.
Assume HX .
Let f be given.
Apply bijE 1 X f Hf to the current goal.
Assume Hf1 Hf2 Hf3 .
We use f 0 to witness the existential quantifier.
We will
prove f 0 ∈ X ∧ SNo (f 0 ) ∧ ∀y ∈ X , SNo y → y ≤ f 0 .
We prove the intermediate claim Lf0X : f 0 ∈ X .
An
exact proof term for the current goal is
Hf1 0 In_0_1 .
Apply and3I to the current goal.
We will prove f 0 ∈ X .
An exact proof term for the current goal is Lf0X .
An exact proof term for the current goal is HX (f 0 ) Lf0X .
Let y be given.
Assume Hy : y ∈ X .
Apply Hf3 y Hy to the current goal.
Let i be given.
Assume H .
Apply H to the current goal.
Assume Hi : i ∈ 1 .
Assume Hyi : f i = y .
We will prove y ≤ f 0 .
rewrite the current goal using Hyi (from right to left).
Apply cases_1 i Hi to the current goal.
We will prove f 0 ≤ f 0 .
Let n be given.
Assume Hn .
Let X be given.
Assume HX .
Let f be given.
Assume Hf1 Hf2 Hf3 .
Set X' to be the term
{f i |i ∈ ordsucc n } .
We prove the intermediate claim LX'1 : X' ⊆ X .
Let w be given.
Assume Hw : w ∈ X' .
Let i be given.
Assume Hwi : w = f i .
rewrite the current goal using Hwi (from left to right).
We will prove f i ∈ X .
Apply Hf1 i to the current goal.
An exact proof term for the current goal is Hi .
We will
prove ∃f : set → set , bij (ordsucc n ) X' f .
We use f to witness the existential quantifier.
Apply bijI to the current goal.
Let i be given.
We will prove f i ∈ X' .
Apply ReplI to the current goal.
An exact proof term for the current goal is Hi .
Let i be given.
Assume Hi .
Let j be given.
Assume Hj .
Assume Hij : f i = f j .
Apply Hf2 to the current goal.
An exact proof term for the current goal is Hi .
An exact proof term for the current goal is Hj .
An exact proof term for the current goal is Hij .
Let w be given.
Assume Hw : w ∈ X' .
Let i be given.
Assume Hwi : w = f i .
We use i to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hi .
Use symmetry.
An exact proof term for the current goal is Hwi .
Apply IHn X' (λx' Hx' ⇒ HX x' (LX'1 x' Hx' ) ) LX'2 to the current goal.
Let z be given.
Assume H .
Apply H to the current goal.
Assume H .
Apply H to the current goal.
Assume Hz1 : z ∈ X' .
We prove the intermediate
claim Lfn1 :
f (ordsucc n ) ∈ X .
Apply Hf1 (ordsucc n ) to the current goal.
We prove the intermediate
claim Lfn1' :
SNo (f (ordsucc n ) ) .
Apply HX (f (ordsucc n ) ) Lfn1 to the current goal.
We use
(f (ordsucc n ) ) to
witness the existential quantifier.
Apply and3I to the current goal.
An exact proof term for the current goal is Lfn1 .
An exact proof term for the current goal is Lfn1' .
Let y be given.
Assume Hy Hy2 .
Apply Hf3 y Hy to the current goal.
Let i be given.
Assume H .
Apply H to the current goal.
Assume Hyi : f i = y .
We will prove y ≤ z .
Apply Hz3 y to the current goal.
We will prove y ∈ X' .
rewrite the current goal using Hyi (from right to left).
We will prove f i ∈ X' .
Apply ReplI to the current goal.
An exact proof term for the current goal is H3 .
An exact proof term for the current goal is Hy2 .
An exact proof term for the current goal is H2 .
rewrite the current goal using Hyi (from right to left).
rewrite the current goal using H3 (from left to right).
We use z to witness the existential quantifier.
We will
prove z ∈ X ∧ SNo z ∧ ∀y ∈ X , SNo y → y ≤ z .
Apply and3I to the current goal.
An exact proof term for the current goal is LX'1 z Hz1 .
An exact proof term for the current goal is Hz2 .
Let y be given.
Assume Hy Hy2 .
Apply Hf3 y Hy to the current goal.
Let i be given.
Assume H .
Apply H to the current goal.
Assume Hyi : f i = y .
We will prove y ≤ z .
Apply Hz3 y to the current goal.
We will prove y ∈ X' .
rewrite the current goal using Hyi (from right to left).
We will prove f i ∈ X' .
Apply ReplI to the current goal.
An exact proof term for the current goal is H3 .
An exact proof term for the current goal is Hy2 .
rewrite the current goal using Hyi (from right to left).
rewrite the current goal using H3 (from left to right).
An exact proof term for the current goal is H2 .
Let X be given.
Assume HX .
Apply H1 to the current goal.
Let n be given.
Assume H .
Apply H to the current goal.
Assume Hn0 : n = 0 .
rewrite the current goal using Hn0 (from left to right).
Assume H3 : X ≠ 0 .
Apply H2 to the current goal.
Let f be given.
Apply bijE X 0 f Hf to the current goal.
Assume Hf1 _ _ .
Apply H3 to the current goal.
Let x be given.
Assume Hx .
Apply EmptyE (f x ) to the current goal.
An exact proof term for the current goal is Hf1 x Hx .
Assume H .
Apply H to the current goal.
Let m be given.
Assume H .
Apply H to the current goal.
rewrite the current goal using Hnm (from left to right).
Assume _ .
An exact proof term for the current goal is L1 m Hm X HX H2 .
∎
Proof: Let X be given.
Assume H2 : X ≠ 0 .
Set X' to be the term {- x |x ∈ X } .
We prove the intermediate
claim L1 :
∀z ∈ X' , SNo z .
Let z be given.
Assume Hz .
Let x be given.
Assume Hx : x ∈ X .
Assume Hzx : z = - x .
rewrite the current goal using Hzx (from left to right).
An exact proof term for the current goal is HX x Hx .
We prove the intermediate
claim L2 :
finite X' .
Apply H1 to the current goal.
Let n be given.
Assume H .
Apply H to the current goal.
We will
prove ∃n ∈ ω , equip X' n .
We use n to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hn .
We will
prove equip X' n .
We will
prove equip X' X .
We will
prove equip X X' .
We will
prove ∃f : set → set , bij X X' f .
We use
minus_SNo to
witness the existential quantifier.
Apply bijI to the current goal.
Let x be given.
Assume Hx : x ∈ X .
We will prove - x ∈ X' .
Apply ReplI to the current goal.
An exact proof term for the current goal is Hx .
Let x be given.
Assume Hx .
Let x' be given.
Assume Hx' .
Assume Hxx' : - x = - x' .
We will prove x = x' .
Use transitivity with - - x , and - - x' .
Use f_equal.
An exact proof term for the current goal is Hxx' .
An
exact proof term for the current goal is
minus_SNo_invol x' (HX x' Hx' ) .
Let w be given.
Assume Hw : w ∈ X' .
Let x be given.
Assume Hx .
Assume Hwx : w = - x .
We will prove ∃u ∈ X , - u = w .
We use x to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hx .
Use symmetry.
An exact proof term for the current goal is Hwx .
An exact proof term for the current goal is H3 .
We prove the intermediate claim L3 : X' ≠ 0 .
Assume H1 : X' = 0 .
Apply H2 to the current goal.
We will prove X = 0 .
Let x be given.
Assume Hx : x ∈ X .
Apply EmptyE (- x ) to the current goal.
We will prove - x ∈ 0 .
rewrite the current goal using H1 (from right to left).
Apply ReplI to the current goal.
An exact proof term for the current goal is Hx .
Let y be given.
We use (- y ) to witness the existential quantifier.
∎
Proof: Let x be given.
Assume Hx .
Apply xm (SNoL x = 0 ) to the current goal.
Apply orIL to the current goal.
An exact proof term for the current goal is H1 .
Apply orIR to the current goal.
We prove the intermediate
claim L1 :
∀y ∈ SNoL x , SNo y .
Let y be given.
Assume Hy .
Assume _ _ Hx3 _ .
Apply SNoL_E x Hx3 y Hy to the current goal.
Assume H _ _ .
An exact proof term for the current goal is H .
∎
Proof: Let x be given.
Assume Hx .
Apply xm (SNoR x = 0 ) to the current goal.
Apply orIL to the current goal.
An exact proof term for the current goal is H1 .
Apply orIR to the current goal.
We prove the intermediate
claim L1 :
∀y ∈ SNoR x , SNo y .
Let y be given.
Assume Hy .
Assume _ _ Hx3 _ .
Apply SNoR_E x Hx3 y Hy to the current goal.
Assume H _ _ .
An exact proof term for the current goal is H .
∎
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 .
Proof: Let k be given.
Assume Hk .
We prove the intermediate
claim Lek :
SNo (eps_ k ) .
An
exact proof term for the current goal is
SNo_eps_ k Hk .
We prove the intermediate
claim Lek2 :
eps_ k ∈ SNoS_ ω .
Let n be given.
Assume Hn .
An exact proof term for the current goal is IHn .
∎
Proof: Let x be given.
Assume H .
Apply H to the current goal.
Let k be given.
Assume H .
Apply H to the current goal.
Assume H .
Apply H to the current goal.
Let m be given.
Assume H .
Apply H to the current goal.
rewrite the current goal using Hxkm (from left to right).
We prove the intermediate
claim L1 :
∀n ∈ ω , eps_ k * n ∈ SNoS_ ω .
We prove the intermediate
claim L2 :
∀n ∈ ω , eps_ k * (- n ) ∈ SNoS_ ω .
∎
Proof: Let m be given.
Assume Hm .
We will
prove ∃k ∈ ω , ∃m' ∈ int , m = eps_ k * m' .
We use 0 to witness the existential quantifier.
Apply andI to the current goal.
We use m to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hm .
We will
prove m = eps_ 0 * m .
rewrite the current goal using
eps_0_1 (from left to right).
Use symmetry.
∎
Proof: Let m be given.
Assume Hm .
An exact proof term for the current goal is Hm .
∎
Proof: Let k be given.
Assume Hk .
We use k to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hk .
We use 1 to witness the existential quantifier.
Apply andI to the current goal.
∎
Proof: Let x be given.
Assume H .
Apply H to the current goal.
Let k be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lek :
SNo (eps_ k ) .
An
exact proof term for the current goal is
SNo_eps_ k Hk .
Assume H .
Apply H to the current goal.
Let m be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lm :
SNo m .
An
exact proof term for the current goal is
int_SNo m Hm .
We prove the intermediate
claim Lekm :
SNo (eps_ k * m ) .
We will
prove ∃k' ∈ ω , ∃m' ∈ int , - x = eps_ k' * m' .
We use k to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hk .
We use (- m ) to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hm .
We will
prove - x = eps_ k * (- m ) .
We will
prove - x = - eps_ k * m .
Use f_equal.
An exact proof term for the current goal is Hxkm .
∎
Proof: Let x and y be given.
Assume Hx .
Apply Hx to the current goal.
Let k be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lek :
SNo (eps_ k ) .
An
exact proof term for the current goal is
SNo_eps_ k Hk .
Assume H .
Apply H to the current goal.
Let m be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lm :
SNo m .
An
exact proof term for the current goal is
int_SNo m Hm .
We prove the intermediate
claim Lekm :
SNo (eps_ k * m ) .
Assume Hy .
Apply Hy to the current goal.
Let l be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lel :
SNo (eps_ l ) .
An
exact proof term for the current goal is
SNo_eps_ l Hl .
Assume H .
Apply H to the current goal.
Let n be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Ln :
SNo n .
An
exact proof term for the current goal is
int_SNo n Hn .
We prove the intermediate
claim Leln :
SNo (eps_ l * n ) .
We will
prove ∃k' ∈ ω , ∃m' ∈ int , x * y = eps_ k' * m' .
We use (k + l ) to witness the existential quantifier.
Apply andI to the current goal.
We use (m * n ) to witness the existential quantifier.
Apply andI to the current goal.
An
exact proof term for the current goal is
int_mul_SNo m Hm n Hn .
We will
prove x * y = eps_ (k + l ) * (m * n ) .
We will
prove x * y = (eps_ k * eps_ l ) * (m * n ) .
We will
prove x * y = (eps_ k * m ) * (eps_ l * n ) .
Use f_equal.
An exact proof term for the current goal is Hxkm .
An exact proof term for the current goal is Hyln .
∎
Proof: Let x and y be given.
Assume Hx .
Apply Hx to the current goal.
Let k be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lek :
SNo (eps_ k ) .
An
exact proof term for the current goal is
SNo_eps_ k Hk .
Assume H .
Apply H to the current goal.
Let m be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lm :
SNo m .
An
exact proof term for the current goal is
int_SNo m Hm .
We prove the intermediate
claim Lekm :
SNo (eps_ k * m ) .
Assume Hy .
Apply Hy to the current goal.
Let l be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Lel :
SNo (eps_ l ) .
An
exact proof term for the current goal is
SNo_eps_ l Hl .
Assume H .
Apply H to the current goal.
Let n be given.
Assume H .
Apply H to the current goal.
We prove the intermediate
claim Ln :
SNo n .
An
exact proof term for the current goal is
int_SNo n Hn .
We prove the intermediate
claim Leln :
SNo (eps_ l * n ) .
We will
prove ∃k' ∈ ω , ∃m' ∈ int , x + y = eps_ k' * m' .
We use (k + l ) to witness the existential quantifier.
Apply andI to the current goal.
We use (2 ^ l * m + 2 ^ k * n ) to witness the existential quantifier.
We prove the intermediate
claim L2l :
2 ^ l ∈ int .
We prove the intermediate
claim L2lm :
2 ^ l * m ∈ int .
An exact proof term for the current goal is L2l .
An exact proof term for the current goal is Hm .
We prove the intermediate
claim L2k :
2 ^ k ∈ int .
We prove the intermediate
claim L2kn :
2 ^ k * n ∈ int .
An exact proof term for the current goal is L2k .
An exact proof term for the current goal is Hn .
Apply andI to the current goal.
We will
prove 2 ^ l * m + 2 ^ k * n ∈ int .
An exact proof term for the current goal is L2lm .
An exact proof term for the current goal is L2kn .
We will
prove x + y = eps_ (k + l ) * (2 ^ l * m + 2 ^ k * n ) .
We will
prove x + y = (eps_ k * eps_ l ) * (2 ^ l * m + 2 ^ k * n ) .
We will
prove x + y = (eps_ k * eps_ l ) * 2 ^ l * m + (eps_ k * eps_ l ) * 2 ^ k * n .
Use f_equal.
We will
prove x = (eps_ k * eps_ l ) * 2 ^ l * m .
We will
prove x = eps_ k * eps_ l * 2 ^ l * m .
We will
prove x = eps_ k * (eps_ l * 2 ^ l ) * m .
We will
prove x = eps_ k * 1 * m .
We will
prove x = eps_ k * m .
An exact proof term for the current goal is Hxkm .
We will
prove y = (eps_ k * eps_ l ) * (2 ^ k * n ) .
We will
prove y = (eps_ k * 2 ^ k ) * (eps_ l * n ) .
We will
prove y = 1 * (eps_ l * n ) .
rewrite the current goal using
mul_SNo_oneL (eps_ l * n ) Leln (from left to right).
An exact proof term for the current goal is Hyln .
∎
Proof:
Let n be given.
Assume Hn .
Let x be given.
Apply dneg to the current goal.
We prove the intermediate
claim LxSo :
x ∈ SNoS_ ω .
rewrite the current goal using Hxn (from left to right).
An
exact proof term for the current goal is
nat_p_omega n Hn .
An exact proof term for the current goal is Hx .
We prove the intermediate
claim L1a :
ordinal (- x ) .
Let w be given.
rewrite the current goal using
minus_SNo_Lev x Hx (from left to right).
We will prove w < - x .
Assume Hw1 Hw2 Hw3 Hw4 .
Assume H2 : w < - x .
An exact proof term for the current goal is H2 .
Assume H2 : w = - x .
rewrite the current goal using H2 (from left to right) at position 2.
rewrite the current goal using
minus_SNo_Lev x Hx (from left to right).
An exact proof term for the current goal is ?? .
Assume H2 : - x < w .
Apply EmptyE (- w ) to the current goal.
We will prove - w ∈ 0 .
rewrite the current goal using H1 (from right to left).
We will
prove - w ∈ SNoL x .
rewrite the current goal using
minus_SNo_Lev w ?? (from left to right).
An exact proof term for the current goal is ?? .
We prove the intermediate claim L1b : - x = n .
rewrite the current goal using Hxn (from right to left).
Use symmetry.
rewrite the current goal using
minus_SNo_Lev x ?? (from right to left).
Apply HC to the current goal.
rewrite the current goal using L1b (from left to right).
An
exact proof term for the current goal is
nat_p_omega n Hn .
Assume H1 .
An exact proof term for the current goal is H1 .
We prove the intermediate
claim L2a :
ordinal x .
Let w be given.
We will prove w < x .
Assume Hw1 Hw2 Hw3 Hw4 .
Assume H2 : w < x .
An exact proof term for the current goal is H2 .
Assume H2 : w = x .
rewrite the current goal using H2 (from right to left) at position 1.
An exact proof term for the current goal is ?? .
Assume H2 : x < w .
Apply EmptyE w to the current goal.
We will prove w ∈ 0 .
rewrite the current goal using H1 (from right to left).
We will
prove w ∈ SNoR x .
Apply SNoR_I x ?? w ?? ?? ?? to the current goal.
We prove the intermediate claim L2b : x = n .
rewrite the current goal using Hxn (from right to left).
Use symmetry.
Apply HC to the current goal.
rewrite the current goal using L2b (from left to right).
An
exact proof term for the current goal is
nat_p_omega n Hn .
Assume H1 .
An exact proof term for the current goal is H1 .
Apply L1 to the current goal.
Let y be given.
Apply Hy to the current goal.
Assume H .
Apply H to the current goal.
Apply SNoL_E x Hx y Hy1 to the current goal.
Assume _ Hy1b Hy1c .
Apply L2 to the current goal.
Let z be given.
Apply Hz to the current goal.
Assume H .
Apply H to the current goal.
Apply SNoR_E x Hx z Hz1 to the current goal.
Assume _ Hz1b Hz1c .
We prove the intermediate
claim Lxx :
SNo (x + x ) .
An
exact proof term for the current goal is
SNo_add_SNo x x Hx Hx .
We prove the intermediate
claim Lyz :
SNo (y + z ) .
An
exact proof term for the current goal is
SNo_add_SNo y z Hy2 Hz2 .
Apply IH (SNoLev y ) to the current goal.
rewrite the current goal using Hxn (from right to left).
An exact proof term for the current goal is Hy1b .
An exact proof term for the current goal is Hy2 .
Apply IH (SNoLev z ) to the current goal.
rewrite the current goal using Hxn (from right to left).
An exact proof term for the current goal is Hz1b .
An exact proof term for the current goal is Hz2 .
rewrite the current goal using
add_SNo_com y z Hy2 Hz2 (from left to right).
Assume H1 : x + x < z + y .
Let w be given.
Assume H .
Apply H to the current goal.
Assume H2 : z + w = x + x .
Apply SNoL_E y Hy2 w Hw to the current goal.
Assume Hw1 Hw2 Hw3 .
Apply IH (SNoLev w ) to the current goal.
rewrite the current goal using Hxn (from right to left).
An exact proof term for the current goal is Hy1b .
An exact proof term for the current goal is Hw2 .
An exact proof term for the current goal is Hw1 .
We prove the intermediate
claim Lxe :
x = eps_ 1 * (z + w ) .
Use symmetry.
An exact proof term for the current goal is H2 .
Apply HC to the current goal.
rewrite the current goal using Lxe (from left to right).
An exact proof term for the current goal is Ldrz .
An exact proof term for the current goal is Ldrw .
Assume H1 : x + x = y + z .
We prove the intermediate
claim Lxe :
x = eps_ 1 * (y + z ) .
An
exact proof term for the current goal is
double_eps_1 x y z Hx Hy2 Hz2 H1 .
Apply HC to the current goal.
rewrite the current goal using Lxe (from left to right).
An exact proof term for the current goal is Ldry .
An exact proof term for the current goal is Ldrz .
Assume H1 : y + z < x + x .
Let w be given.
Assume H .
Apply H to the current goal.
Assume H2 : y + w = x + x .
Apply SNoR_E z Hz2 w Hw to the current goal.
Assume Hw1 Hw2 Hw3 .
Apply IH (SNoLev w ) to the current goal.
rewrite the current goal using Hxn (from right to left).
An exact proof term for the current goal is Hz1b .
An exact proof term for the current goal is Hw2 .
An exact proof term for the current goal is Hw1 .
We prove the intermediate
claim Lxe :
x = eps_ 1 * (y + w ) .
Use symmetry.
An exact proof term for the current goal is H2 .
Apply HC to the current goal.
rewrite the current goal using Lxe (from left to right).
An exact proof term for the current goal is Ldry .
An exact proof term for the current goal is Ldrw .
∎
Proof: Let x be given.
An exact proof term for the current goal is Hx3 .
∎
Proof: Let x be given.
Assume Hx .
Let y be given.
Assume Hy .
An exact proof term for the current goal is Hx .
An exact proof term for the current goal is Hy .
∎
End of Section DiadicRationals