Real Numbers

From Parts 1 - 7

Object. The name Eps_i is a term of type (setprop)set.
Axiom. (Eps_i_ax) We take the following as an axiom:
∀P : setprop, ∀x : set, P xP (Eps_i P)
Definition. We define True to be ∀p : prop, pp of type prop.
Definition. We define False to be ∀p : prop, p of type prop.
Definition. We define not to be λA : propAFalse of type propprop.
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, (ABp)p of type proppropprop.
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, (Ap)(Bp)p of type proppropprop.
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 : propand (AB) (BA) of type proppropprop.
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 : AAprop, Q x yQ y x of type AAprop.
Definition. We define neq to be λx y : A¬ eq x y of type AAprop.
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 : AB, (∀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 : Aprop∀P : prop, (∀x : A, Q xP)P of type (Aprop)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 qp = q
Object. The name In is a term of type setsetprop.
Notation. We use as an infix operator with priority 500 and no associativity corresponding to applying term In. Furthermore, we may write xA, B to mean x : set, xAB.
Definition. We define Subq to be λA B ⇒ ∀x ∈ A, xB of type setsetprop.
Notation. We use as an infix operator with priority 500 and no associativity corresponding to applying term Subq. Furthermore, we may write xA, B to mean x : set, xAB.
Axiom. (set_ext) We take the following as an axiom:
∀X Y : set, XYYXX = Y
Axiom. (In_ind) We take the following as an axiom:
∀P : setprop, (∀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:
¬ ∃x : set, xEmpty
Object. The name is a term of type setset.
Axiom. (UnionEq) We take the following as an axiom:
∀X x, x X∃Y, xYYX
Object. The name 𝒫 is a term of type setset.
Axiom. (PowerEq) We take the following as an axiom:
∀X Y : set, Y𝒫 XYX
Object. The name Repl is a term of type set(setset)set.
Notation. {B| xA} is notation for Repl Ax . B).
Axiom. (ReplEq) We take the following as an axiom:
∀A : set, ∀F : setset, ∀y : set, y{F x|x ∈ A}∃x ∈ A, y = F x
Definition. We define TransSet to be λU : set∀x ∈ U, xU of type setprop.
Definition. We define Union_closed to be λU : set∀X : set, XU XU of type setprop.
Definition. We define Power_closed to be λU : set∀X : set, XU𝒫 XU of type setprop.
Definition. We define Repl_closed to be λU : set∀X : set, XU∀F : setset, (∀x : set, xXF xU){F x|x ∈ X}U of type setprop.
Definition. We define ZF_closed to be λU : setUnion_closed UPower_closed URepl_closed U of type setprop.
Object. The name UnivOf is a term of type setset.
Axiom. (UnivOf_In) We take the following as an axiom:
∀N : set, NUnivOf N
Axiom. (UnivOf_TransSet) We take the following as an axiom:
∀N : set, TransSet (UnivOf N)
Axiom. (UnivOf_ZF_closed) We take the following as an axiom:
∀N : set, ZF_closed (UnivOf N)
Axiom. (UnivOf_Min) We take the following as an axiom:
∀N U : set, NUTransSet UZF_closed UUnivOf NU
Axiom. (FalseE) We take the following as an axiom:
False∀p : prop, p
Axiom. (TrueI) We take the following as an axiom:
True
Axiom. (andI) We take the following as an axiom:
∀A B : prop, ABAB
Axiom. (andEL) We take the following as an axiom:
∀A B : prop, ABA
Axiom. (andER) We take the following as an axiom:
∀A B : prop, ABB
Axiom. (orIL) We take the following as an axiom:
∀A B : prop, AAB
Axiom. (orIR) We take the following as an axiom:
∀A B : prop, BAB
Beginning of Section PropN
Variable P1 P2 P3 : prop
Axiom. (and3I) We take the following as an axiom:
P1P2P3P1P2P3
Axiom. (and3E) We take the following as an axiom:
P1P2P3(∀p : prop, (P1P2P3p)p)
Axiom. (or3I1) We take the following as an axiom:
P1P1P2P3
Axiom. (or3I2) We take the following as an axiom:
P2P1P2P3
Axiom. (or3I3) We take the following as an axiom:
P3P1P2P3
Axiom. (or3E) We take the following as an axiom:
P1P2P3(∀p : prop, (P1p)(P2p)(P3p)p)
Variable P4 : prop
Axiom. (and4I) We take the following as an axiom:
P1P2P3P4P1P2P3P4
Variable P5 : prop
Axiom. (and5I) We take the following as an axiom:
P1P2P3P4P5P1P2P3P4P5
End of Section PropN
Axiom. (not_or_and_demorgan) We take the following as an axiom:
∀A B : prop, ¬ (AB)¬ A¬ B
Axiom. (not_ex_all_demorgan_i) We take the following as an axiom:
∀P : setprop, (¬ ∃x, P x)∀x, ¬ P x
Axiom. (iffI) We take the following as an axiom:
∀A B : prop, (AB)(BA)(AB)
Axiom. (iffEL) We take the following as an axiom:
∀A B : prop, (AB)AB
Axiom. (iffER) We take the following as an axiom:
∀A B : prop, (AB)BA
Axiom. (iff_refl) We take the following as an axiom:
∀A : prop, AA
Axiom. (iff_sym) We take the following as an axiom:
∀A B : prop, (AB)(BA)
Axiom. (iff_trans) We take the following as an axiom:
∀A B C : prop, (AB)(BC)(AC)
Axiom. (eq_i_tra) We take the following as an axiom:
∀x y z, x = yy = zx = z
Axiom. (f_eq_i) We take the following as an axiom:
∀f : setset, ∀x y, x = yf x = f y
Axiom. (neq_i_sym) We take the following as an axiom:
∀x y, xyyx
Definition. We define nIn to be λx X ⇒ ¬ In x X of type setsetprop.
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 : setprop, (∃x, P x)P (Eps_i P)
Axiom. (pred_ext) We take the following as an axiom:
∀P Q : setprop, (∀x, P xQ x)P = Q
Axiom. (prop_ext_2) We take the following as an axiom:
∀p q : prop, (pq)(qp)p = q
Axiom. (Subq_ref) We take the following as an axiom:
∀X : set, XX
Axiom. (Subq_tra) We take the following as an axiom:
∀X Y Z : set, XYYZXZ
Axiom. (Subq_contra) We take the following as an axiom:
∀X Y z : set, XYzYzX
Axiom. (EmptyE) We take the following as an axiom:
∀x : set, xEmpty
Axiom. (Subq_Empty) We take the following as an axiom:
∀X : set, EmptyX
Axiom. (Empty_Subq_eq) We take the following as an axiom:
∀X : set, XEmptyX = Empty
Axiom. (Empty_eq) We take the following as an axiom:
∀X : set, (∀x, xX)X = Empty
Axiom. (UnionI) We take the following as an axiom:
∀X x Y : set, xYYXx X
Axiom. (UnionE) We take the following as an axiom:
∀X x : set, x X∃Y : set, xYYX
Axiom. (UnionE_impred) We take the following as an axiom:
∀X x : set, x X∀p : prop, (∀Y : set, xYYXp)p
Axiom. (PowerI) We take the following as an axiom:
∀X Y : set, YXY𝒫 X
Axiom. (PowerE) We take the following as an axiom:
∀X Y : set, Y𝒫 XYX
Axiom. (Empty_In_Power) We take the following as an axiom:
∀X : set, Empty𝒫 X
Axiom. (Self_In_Power) We take the following as an axiom:
∀X : set, X𝒫 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, ¬ ¬ PP
Axiom. (not_all_ex_demorgan_i) We take the following as an axiom:
∀P : setprop, ¬ (∀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 proppropprop.
Axiom. (exactly1of2_I1) We take the following as an axiom:
∀A B : prop, A¬ Bexactly1of2 A B
Axiom. (exactly1of2_I2) We take the following as an axiom:
∀A B : prop, ¬ ABexactly1of2 A B
Axiom. (exactly1of2_E) We take the following as an axiom:
∀A B : prop, exactly1of2 A B∀p : prop, (A¬ Bp)(¬ ABp)p
Axiom. (exactly1of2_or) We take the following as an axiom:
∀A B : prop, exactly1of2 A BAB
Axiom. (ReplI) We take the following as an axiom:
∀A : set, ∀F : setset, ∀x : set, xAF x{F x|x ∈ A}
Axiom. (ReplE) We take the following as an axiom:
∀A : set, ∀F : setset, ∀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 : setset, ∀y : set, y{F x|x ∈ A}∀p : prop, (∀x : set, xAy = F xp)p
Axiom. (ReplE') We take the following as an axiom:
∀X, ∀f : setset, ∀p : setprop, (∀x ∈ X, p (f x))∀y ∈ {f x|x ∈ X}, p y
Axiom. (Repl_Empty) We take the following as an axiom:
∀F : setset, {F x|x ∈ Empty} = Empty
Axiom. (ReplEq_ext_sub) We take the following as an axiom:
∀X, ∀F G : setset, (∀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 : setset, (∀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 : setprop, ∀f g : setset, (∀x, P xg (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 : setprop, ∀f : setset, (∀x, P xf (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 propsetsetset.
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 setsetset.
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 = yx = 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 setset.
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 setsetset.
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, zXzXY
Axiom. (binunionI2) We take the following as an axiom:
∀X Y z : set, zYzXY
Axiom. (binunionE) We take the following as an axiom:
∀X Y z : set, zXYzXzY
Axiom. (binunionE') We take the following as an axiom:
∀X Y z, ∀p : prop, (zXp)(zYp)(zXYp)
Axiom. (binunion_asso) We take the following as an axiom:
∀X Y Z : set, X(YZ) = (XY)Z
Axiom. (binunion_com_Subq) We take the following as an axiom:
∀X Y : set, XYYX
Axiom. (binunion_com) We take the following as an axiom:
∀X Y : set, XY = YX
Axiom. (binunion_idl) We take the following as an axiom:
∀X : set, EmptyX = X
Axiom. (binunion_idr) We take the following as an axiom:
∀X : set, XEmpty = X
Axiom. (binunion_Subq_1) We take the following as an axiom:
∀X Y : set, XXY
Axiom. (binunion_Subq_2) We take the following as an axiom:
∀X Y : set, YXY
Axiom. (binunion_Subq_min) We take the following as an axiom:
∀X Y Z : set, XZYZXYZ
Axiom. (Subq_binunion_eq) We take the following as an axiom:
∀X Y, (XY) = (XY = Y)
Definition. We define SetAdjoin to be λX y ⇒ X{y} of type setsetset.
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(setset)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 : (setset), ∀x y : set, xXyF xyx ∈ XF x
Axiom. (famunionE) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀y : set, y(x ∈ XF x)∃x ∈ X, yF x
Axiom. (famunionE_impred) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀y : set, y(x ∈ XF x)∀p : prop, (∀x, xXyF xp)p
Axiom. (famunion_Empty) We take the following as an axiom:
∀F : setset, (x ∈ EmptyF x) = Empty
Beginning of Section SepSec
Variable X : set
Variable P : setprop
Let z : setEps_i (λz ⇒ zXP z)
Let F : setsetλx ⇒ if P x then x else z
Object. The name Sep is a term of type set.
End of Section SepSec
Notation. {xA | B} is notation for Sep Ax . B).
Axiom. (SepI) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, xXP xx{x ∈ X|P x}
Axiom. (SepE) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x{x ∈ X|P x}xXP x
Axiom. (SepE1) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x{x ∈ X|P x}xX
Axiom. (SepE2) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x{x ∈ X|P x}P x
Axiom. (Sep_Subq) We take the following as an axiom:
∀X : set, ∀P : setprop, {x ∈ X|P x}X
Axiom. (Sep_In_Power) We take the following as an axiom:
∀X : set, ∀P : setprop, {x ∈ X|P x}𝒫 X
Object. The name ReplSep is a term of type set(setprop)(setset)set.
Notation. {B| xA, C} is notation for ReplSep Ax . C) (λ x . B).
Axiom. (ReplSepI) We take the following as an axiom:
∀X : set, ∀P : setprop, ∀F : setset, ∀x : set, xXP xF x{F x|x ∈ X, P x}
Axiom. (ReplSepE) We take the following as an axiom:
∀X : set, ∀P : setprop, ∀F : setset, ∀y : set, y{F x|x ∈ X, P x}∃x : set, xXP xy = F x
Axiom. (ReplSepE_impred) We take the following as an axiom:
∀X : set, ∀P : setprop, ∀F : setset, ∀y : set, y{F x|x ∈ X, P x}∀p : prop, (∀x ∈ X, P xy = F xp)p
Object. The name binintersect is a term of type setsetset.
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, zXzYzXY
Axiom. (binintersectE) We take the following as an axiom:
∀X Y z, zXYzXzY
Axiom. (binintersectE1) We take the following as an axiom:
∀X Y z, zXYzX
Axiom. (binintersectE2) We take the following as an axiom:
∀X Y z, zXYzY
Axiom. (binintersect_Subq_1) We take the following as an axiom:
∀X Y : set, XYX
Axiom. (binintersect_Subq_2) We take the following as an axiom:
∀X Y : set, XYY
Axiom. (binintersect_Subq_eq_1) We take the following as an axiom:
∀X Y, XYXY = X
Axiom. (binintersect_Subq_max) We take the following as an axiom:
∀X Y Z : set, ZXZYZXY
Axiom. (binintersect_com_Subq) We take the following as an axiom:
∀X Y : set, XYYX
Axiom. (binintersect_com) We take the following as an axiom:
∀X Y : set, XY = YX
Object. The name setminus is a term of type setsetset.
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, (zX)(zY)zXY
Axiom. (setminusE) We take the following as an axiom:
∀X Y z, (zXY)zXzY
Axiom. (setminusE1) We take the following as an axiom:
∀X Y z, (zXY)zX
Axiom. (setminus_Subq) We take the following as an axiom:
∀X Y : set, XYX
Axiom. (setminus_Subq_contra) We take the following as an axiom:
∀X Y Z : set, ZYXYXZ
Axiom. (setminus_In_Power) We take the following as an axiom:
∀A U, AU𝒫 A
Axiom. (In_irref) We take the following as an axiom:
∀x, xx
Axiom. (In_no2cycle) We take the following as an axiom:
∀x y, xyyxFalse
Object. The name ordsucc is a term of type setset.
Axiom. (ordsuccI1) We take the following as an axiom:
∀x : set, xordsucc x
Axiom. (ordsuccI2) We take the following as an axiom:
∀x : set, xordsucc x
Axiom. (ordsuccE) We take the following as an axiom:
∀x y : set, yordsucc xyxy = x
Notation. Natural numbers 0,1,2,... are notation for the terms formed using Empty as 0 and forming successors with ordsucc.
Axiom. (neq_0_ordsucc) We take the following as an axiom:
∀a : set, 0ordsucc a
Axiom. (neq_ordsucc_0) We take the following as an axiom:
∀a : set, ordsucc a0
Axiom. (ordsucc_inj) We take the following as an axiom:
∀a b : set, ordsucc a = ordsucc ba = b
Axiom. (ordsucc_inj_contra) We take the following as an axiom:
∀a b : set, abordsucc aordsucc b
Axiom. (In_0_1) We take the following as an axiom:
01
Axiom. (In_0_2) We take the following as an axiom:
02
Axiom. (In_1_2) We take the following as an axiom:
12
Definition. We define nat_p to be λn : set∀p : setprop, p 0(∀x : set, p xp (ordsucc x))p n of type setprop.
Axiom. (nat_0) We take the following as an axiom:
nat_p 0
Axiom. (nat_ordsucc) We take the following as an axiom:
∀n : set, nat_p nnat_p (ordsucc n)
Axiom. (nat_1) We take the following as an axiom:
nat_p 1
Axiom. (nat_2) We take the following as an axiom:
nat_p 2
Axiom. (nat_0_in_ordsucc) We take the following as an axiom:
∀n, nat_p n0ordsucc n
Axiom. (nat_ordsucc_in_ordsucc) We take the following as an axiom:
∀n, nat_p n∀m ∈ n, ordsucc mordsucc n
Axiom. (nat_ind) We take the following as an axiom:
∀p : setprop, p 0(∀n, nat_p np np (ordsucc n))∀n, nat_p np n
Axiom. (nat_inv_impred) We take the following as an axiom:
∀p : setprop, p 0(∀n, nat_p np (ordsucc n))∀n, nat_p np n
Axiom. (nat_inv) We take the following as an axiom:
∀n, nat_p nn = 0∃x, nat_p xn = ordsucc x
Axiom. (nat_complete_ind) We take the following as an axiom:
∀p : setprop, (∀n, nat_p n(∀m ∈ n, p m)p n)∀n, nat_p np n
Axiom. (nat_p_trans) We take the following as an axiom:
∀n, nat_p n∀m ∈ n, nat_p m
Axiom. (nat_trans) We take the following as an axiom:
∀n, nat_p n∀m ∈ n, mn
Axiom. (nat_ordsucc_trans) We take the following as an axiom:
∀n, nat_p n∀m ∈ ordsucc n, mn
Axiom. (Union_ordsucc_eq) We take the following as an axiom:
∀n, nat_p n (ordsucc n) = n
Axiom. (cases_1) We take the following as an axiom:
∀i ∈ 1, ∀p : setprop, p 0p i
Axiom. (cases_2) We take the following as an axiom:
∀i ∈ 2, ∀p : setprop, p 0p 1p i
Axiom. (cases_3) We take the following as an axiom:
∀i ∈ 3, ∀p : setprop, p 0p 1p 2p i
Axiom. (neq_0_1) We take the following as an axiom:
01
Axiom. (neq_1_0) We take the following as an axiom:
10
Axiom. (neq_0_2) We take the following as an axiom:
02
Axiom. (neq_2_0) We take the following as an axiom:
20
Axiom. (neq_1_2) We take the following as an axiom:
12
Axiom. (ZF_closed_E) We take the following as an axiom:
∀U, ZF_closed U∀p : prop, (Union_closed UPower_closed URepl_closed Up)p
Axiom. (ZF_Union_closed) We take the following as an axiom:
∀U, ZF_closed U∀X ∈ U, XU
Axiom. (ZF_Power_closed) We take the following as an axiom:
∀U, ZF_closed U∀X ∈ U, 𝒫 XU
Axiom. (ZF_Repl_closed) We take the following as an axiom:
∀U, ZF_closed U∀X ∈ U, ∀F : setset, (∀x ∈ X, F xU){F x|x ∈ X}U
Axiom. (ZF_UPair_closed) We take the following as an axiom:
∀U, ZF_closed U∀x y ∈ U, {x,y}U
Axiom. (ZF_Sing_closed) We take the following as an axiom:
∀U, ZF_closed U∀x ∈ U, {x}U
Axiom. (ZF_binunion_closed) We take the following as an axiom:
∀U, ZF_closed U∀X Y ∈ U, (XY)U
Axiom. (ZF_ordsucc_closed) We take the following as an axiom:
∀U, ZF_closed U∀x ∈ U, ordsucc xU
Axiom. (nat_p_UnivOf_Empty) We take the following as an axiom:
∀n : set, nat_p nnUnivOf Empty
Object. The name ω is a term of type set.
Axiom. (omega_nat_p) We take the following as an axiom:
∀n ∈ ω, nat_p n
Axiom. (nat_p_omega) We take the following as an axiom:
∀n : set, nat_p nnω
Axiom. (omega_ordsucc) We take the following as an axiom:
∀n ∈ ω, ordsucc nω
Definition. We define ordinal to be λalpha : setTransSet alpha∀beta ∈ alpha, TransSet beta of type setprop.
Axiom. (ordinal_TransSet) We take the following as an axiom:
∀alpha : set, ordinal alphaTransSet alpha
Axiom. (ordinal_Empty) We take the following as an axiom:
ordinal Empty
Axiom. (ordinal_Hered) We take the following as an axiom:
∀alpha : set, ordinal alpha∀beta ∈ alpha, ordinal beta
Axiom. (TransSet_ordsucc) We take the following as an axiom:
∀X : set, TransSet XTransSet (ordsucc X)
Axiom. (ordinal_ordsucc) We take the following as an axiom:
∀alpha : set, ordinal alphaordinal (ordsucc alpha)
Axiom. (nat_p_ordinal) We take the following as an axiom:
∀n : set, nat_p nordinal n
Axiom. (ordinal_1) We take the following as an axiom:
ordinal 1
Axiom. (ordinal_2) We take the following as an axiom:
ordinal 2
Axiom. (omega_TransSet) We take the following as an axiom:
TransSet ω
Axiom. (omega_ordinal) We take the following as an axiom:
ordinal ω
Axiom. (ordsucc_omega_ordinal) We take the following as an axiom:
ordinal (ordsucc ω)
Axiom. (TransSet_ordsucc_In_Subq) We take the following as an axiom:
∀X : set, TransSet X∀x ∈ X, ordsucc xX
Axiom. (ordinal_ordsucc_In_Subq) We take the following as an axiom:
∀alpha, ordinal alpha∀beta ∈ alpha, ordsucc betaalpha
Axiom. (ordinal_trichotomy_or) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal betaalphabetaalpha = betabetaalpha
Axiom. (ordinal_trichotomy_or_impred) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal beta∀p : prop, (alphabetap)(alpha = betap)(betaalphap)p
Axiom. (ordinal_In_Or_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalphabetabetaalpha
Axiom. (ordinal_linear) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalphabetabetaalpha
Axiom. (ordinal_ordsucc_In_eq) We take the following as an axiom:
∀alpha beta, ordinal alphabetaalphaordsucc betaalphaalpha = ordsucc beta
Axiom. (ordinal_lim_or_succ) We take the following as an axiom:
∀alpha, ordinal alpha(∀beta ∈ alpha, ordsucc betaalpha)(∃beta ∈ alpha, alpha = ordsucc beta)
Axiom. (ordinal_ordsucc_In) We take the following as an axiom:
∀alpha, ordinal alpha∀beta ∈ alpha, ordsucc betaordsucc alpha
Axiom. (ordinal_famunion) We take the following as an axiom:
∀X, ∀F : setset, (∀x ∈ X, ordinal (F x))ordinal (x ∈ XF x)
Axiom. (ordinal_binintersect) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alphabeta)
Axiom. (ordinal_binunion) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alphabeta)
Axiom. (ordinal_ind) We take the following as an axiom:
∀p : setprop, (∀alpha, ordinal alpha(∀beta ∈ alpha, p beta)p alpha)∀alpha, ordinal alphap alpha
Axiom. (least_ordinal_ex) We take the following as an axiom:
∀p : setprop, (∃alpha, ordinal alphap alpha)∃alpha, ordinal alphap alpha∀beta ∈ alpha, ¬ p beta
Definition. We define inj to be λX Y f ⇒ (∀u ∈ X, f uY)(∀u v ∈ X, f u = f vu = v) of type setset(setset)prop.
Definition. We define bij to be λX Y f ⇒ (∀u ∈ X, f uY)(∀u v ∈ X, f u = f vu = v)(∀w ∈ Y, ∃u ∈ X, f u = w) of type setset(setset)prop.
Axiom. (bijI) We take the following as an axiom:
∀X Y, ∀f : setset, (∀u ∈ X, f uY)(∀u v ∈ X, f u = f vu = v)(∀w ∈ Y, ∃u ∈ X, f u = w)bij X Y f
Axiom. (bijE) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y f∀p : prop, ((∀u ∈ X, f uY)(∀u v ∈ X, f u = f vu = v)(∀w ∈ Y, ∃u ∈ X, f u = w)p)p
Object. The name inv is a term of type set(setset)setset.
Axiom. (surj_rinv) We take the following as an axiom:
∀X Y, ∀f : setset, (∀w ∈ Y, ∃u ∈ X, f u = w)∀y ∈ Y, inv X f yXf (inv X f y) = y
Axiom. (inj_linv) We take the following as an axiom:
∀X, ∀f : setset, (∀u v ∈ X, f u = f vu = v)∀x ∈ X, inv X f (f x) = x
Axiom. (bij_inv) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y fbij Y X (inv X f)
Axiom. (bij_id) We take the following as an axiom:
∀X, bij X X (λx ⇒ x)
Axiom. (bij_comp) We take the following as an axiom:
∀X Y Z : set, ∀f g : setset, bij X Y fbij Y Z gbij X Z (λx ⇒ g (f x))
Definition. We define equip to be λX Y : set∃f : setset, bij X Y f of type setsetprop.
Axiom. (equip_ref) We take the following as an axiom:
∀X, equip X X
Axiom. (equip_sym) We take the following as an axiom:
∀X Y, equip X Yequip Y X
Axiom. (equip_tra) We take the following as an axiom:
∀X Y Z, equip X Yequip Y Zequip X Z
Axiom. (equip_0_Empty) We take the following as an axiom:
∀X, equip X 0X = 0
Beginning of Section SchroederBernstein
Axiom. (KnasterTarski_set) We take the following as an axiom:
∀A, ∀F : setset, (∀U ∈ 𝒫 A, F U𝒫 A)(∀U V ∈ 𝒫 A, UVF UF V)∃Y ∈ 𝒫 A, F Y = Y
Axiom. (image_In_Power) We take the following as an axiom:
∀A B, ∀f : setset, (∀x ∈ A, f xB)∀U ∈ 𝒫 A, {f x|x ∈ U}𝒫 B
Axiom. (image_monotone) We take the following as an axiom:
∀f : setset, ∀U V, UV{f x|x ∈ U}{f x|x ∈ V}
Axiom. (setminus_antimonotone) We take the following as an axiom:
∀A U V, UVAVAU
Axiom. (SchroederBernstein) We take the following as an axiom:
∀A B, ∀f g : setset, inj A B finj B A gequip A B
End of Section SchroederBernstein
Beginning of Section PigeonHole
Axiom. (PigeonHole_nat) We take the following as an axiom:
∀n, nat_p n∀f : setset, (∀i ∈ ordsucc n, f in)¬ (∀i j ∈ ordsucc n, f i = f ji = j)
Axiom. (PigeonHole_nat_bij) We take the following as an axiom:
∀n, nat_p n∀f : setset, (∀i ∈ n, f in)(∀i j ∈ n, f i = f ji = j)bij n n f
End of Section PigeonHole
Definition. We define finite to be λX ⇒ ∃n ∈ ω, equip X n of type setprop.
Axiom. (finite_ind) We take the following as an axiom:
∀p : setprop, p Empty(∀X y, finite XyXp Xp (X{y}))∀X, finite Xp X
Axiom. (finite_Empty) We take the following as an axiom:
finite 0
Axiom. (adjoin_finite) We take the following as an axiom:
∀X y, finite Xfinite (X{y})
Axiom. (binunion_finite) We take the following as an axiom:
∀X, finite X∀Y, finite Yfinite (XY)
Axiom. (famunion_nat_finite) We take the following as an axiom:
∀X : setset, ∀n, nat_p n(∀i ∈ n, finite (X i))finite (i ∈ nX i)
Axiom. (Subq_finite) We take the following as an axiom:
∀X, finite X∀Y, YXfinite Y
Axiom. (TransSet_In_ordsucc_Subq) We take the following as an axiom:
∀x y, TransSet yxordsucc yxy
Axiom. (exandE_i) We take the following as an axiom:
∀P Q : setprop, (∃x, P xQ x)∀r : prop, (∀x, P xQ xr)r
Axiom. (exandE_ii) We take the following as an axiom:
∀P Q : (setset)prop, (∃x : setset, P xQ x)∀p : prop, (∀x : setset, P xQ xp)p
Axiom. (exandE_iii) We take the following as an axiom:
∀P Q : (setsetset)prop, (∃x : setsetset, P xQ x)∀p : prop, (∀x : setsetset, P xQ xp)p
Axiom. (exandE_iiii) We take the following as an axiom:
∀P Q : (setsetsetset)prop, (∃x : setsetsetset, P xQ x)∀p : prop, (∀x : setsetsetset, P xQ xp)p
Beginning of Section Descr_ii
Variable P : (setset)prop
Object. The name Descr_ii is a term of type setset.
Hypothesis Pex : ∃f : setset, P f
Hypothesis Puniq : ∀f g : setset, P fP gf = g
Axiom. (Descr_ii_prop) We take the following as an axiom:
End of Section Descr_ii
Beginning of Section Descr_iii
Variable P : (setsetset)prop
Object. The name Descr_iii is a term of type setsetset.
Hypothesis Pex : ∃f : setsetset, P f
Hypothesis Puniq : ∀f g : setsetset, P fP gf = g
Axiom. (Descr_iii_prop) We take the following as an axiom:
End of Section Descr_iii
Beginning of Section Descr_Vo1
Variable P : Vo 1prop
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 fP gf = g
Axiom. (Descr_Vo1_prop) We take the following as an axiom:
End of Section Descr_Vo1
Beginning of Section If_ii
Variable p : prop
Variable f g : setset
Object. The name If_ii is a term of type setset.
Axiom. (If_ii_1) We take the following as an axiom:
pIf_ii = f
Axiom. (If_ii_0) We take the following as an axiom:
¬ pIf_ii = g
End of Section If_ii
Beginning of Section If_iii
Variable p : prop
Variable f g : setsetset
Object. The name If_iii is a term of type setsetset.
Axiom. (If_iii_1) We take the following as an axiom:
pIf_iii = f
Axiom. (If_iii_0) We take the following as an axiom:
¬ pIf_iii = g
End of Section If_iii
Beginning of Section EpsilonRec_i
Variable F : set(setset)set
Object. The name In_rec_i is a term of type setset.
Hypothesis Fr : ∀X : set, ∀g h : setset, (∀x ∈ X, g x = h x)F X g = F X h
Axiom. (In_rec_i_eq) We take the following as an axiom:
∀X : set, In_rec_i X = F X In_rec_i
End of Section EpsilonRec_i
Beginning of Section EpsilonRec_ii
Variable F : set(set(setset))(setset)
Object. The name In_rec_ii is a term of type set(setset).
Hypothesis Fr : ∀X : set, ∀g h : set(setset), (∀x ∈ X, g x = h x)F X g = F X h
Axiom. (In_rec_ii_eq) We take the following as an axiom:
∀X : set, In_rec_ii X = F X In_rec_ii
End of Section EpsilonRec_ii
Beginning of Section EpsilonRec_iii
Variable F : set(set(setsetset))(setsetset)
Object. The name In_rec_iii is a term of type set(setsetset).
Hypothesis Fr : ∀X : set, ∀g h : set(setsetset), (∀x ∈ X, g x = h x)F X g = F X h
Axiom. (In_rec_iii_eq) We take the following as an axiom:
∀X : set, In_rec_iii X = F X In_rec_iii
End of Section EpsilonRec_iii
Beginning of Section NatRec
Variable z : set
Variable f : setsetset
Let F : set(setset)setλn g ⇒ if nn then f ( n) (g ( n)) else z
Definition. We define nat_primrec to be In_rec_i F of type setset.
Axiom. (nat_primrec_r) We take the following as an axiom:
∀X : set, ∀g h : setset, (∀x ∈ X, g x = h x)F X g = F X h
Axiom. (nat_primrec_0) We take the following as an axiom:
Axiom. (nat_primrec_S) We take the following as an axiom:
∀n : set, nat_p nnat_primrec (ordsucc n) = f n (nat_primrec n)
End of Section NatRec
Beginning of Section NatArith
Definition. We define add_nat to be λn m : setnat_primrec n (λ_ r ⇒ ordsucc r) m of type setsetset.
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:
∀n m : set, nat_p mn + ordsucc m = ordsucc (n + m)
Axiom. (add_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n + m)
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 : setnat_primrec 0 (λ_ r ⇒ n + r) m of type setsetset.
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:
∀n m : set, nat_p mn * ordsucc m = n + n * m
Axiom. (mul_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n * m)
End of Section NatArith
Definition. We define Inj1 to be In_rec_i (λX f ⇒ {0}{f x|x ∈ X}) of type setset.
Axiom. (Inj1_eq) We take the following as an axiom:
∀X : set, Inj1 X = {0}{Inj1 x|x ∈ X}
Axiom. (Inj1I1) We take the following as an axiom:
∀X : set, 0Inj1 X
Axiom. (Inj1I2) We take the following as an axiom:
∀X x : set, xXInj1 xInj1 X
Axiom. (Inj1E) We take the following as an axiom:
∀X y : set, yInj1 Xy = 0∃x ∈ X, y = Inj1 x
Axiom. (Inj1NE1) We take the following as an axiom:
∀x : set, Inj1 x0
Axiom. (Inj1NE2) We take the following as an axiom:
∀x : set, Inj1 x{0}
Definition. We define Inj0 to be λX ⇒ {Inj1 x|x ∈ X} of type setset.
Axiom. (Inj0I) We take the following as an axiom:
∀X x : set, xXInj1 xInj0 X
Axiom. (Inj0E) We take the following as an axiom:
∀X y : set, yInj0 X∃x : set, xXy = Inj1 x
Definition. We define Unj to be In_rec_i (λX f ⇒ {f x|x ∈ X{0}}) of type setset.
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:
∀X : set, Unj (Inj1 X) = X
Axiom. (Inj1_inj) We take the following as an axiom:
∀X Y : set, Inj1 X = Inj1 YX = Y
Axiom. (Unj_Inj0_eq) We take the following as an axiom:
∀X : set, Unj (Inj0 X) = X
Axiom. (Inj0_inj) We take the following as an axiom:
∀X Y : set, Inj0 X = Inj0 YX = Y
Axiom. (Inj0_0) We take the following as an axiom:
Inj0 0 = 0
Axiom. (Inj0_Inj1_neq) We take the following as an axiom:
∀X Y : set, Inj0 XInj1 Y
Definition. We define setsum to be λX Y ⇒ {Inj0 x|x ∈ X}{Inj1 y|y ∈ Y} of type setsetset.
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, xXInj0 xX + Y
Axiom. (Inj1_setsum) We take the following as an axiom:
∀X Y y : set, yYInj1 yX + Y
Axiom. (setsum_Inj_inv) We take the following as an axiom:
∀X Y z : set, zX + Y(∃x ∈ X, z = Inj0 x)(∃y ∈ Y, z = Inj1 y)
Axiom. (Inj0_setsum_0L) We take the following as an axiom:
∀X : set, 0 + X = Inj0 X
Axiom. (Subq_1_Sing0) We take the following as an axiom:
1{0}
Axiom. (Inj1_setsum_1L) We take the following as an axiom:
∀X : set, 1 + X = Inj1 X
Axiom. (nat_setsum1_ordsucc) We take the following as an axiom:
∀n : set, nat_p n1 + n = ordsucc n
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
Let pair ≝ setsum
Definition. We define proj0 to be λZ ⇒ {Unj z|z ∈ Z, ∃x : set, Inj0 x = z} of type setset.
Definition. We define proj1 to be λZ ⇒ {Unj z|z ∈ Z, ∃y : set, Inj1 y = z} of type setset.
Axiom. (Inj0_pair_0_eq) We take the following as an axiom:
Inj0 = pair 0
Axiom. (Inj1_pair_1_eq) We take the following as an axiom:
Inj1 = pair 1
Axiom. (pairI0) We take the following as an axiom:
∀X Y x, xXpair 0 xpair X Y
Axiom. (pairI1) We take the following as an axiom:
∀X Y y, yYpair 1 ypair X Y
Axiom. (pairE) We take the following as an axiom:
∀X Y z, zpair 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 xpair X YxX
Axiom. (pairE1) We take the following as an axiom:
∀X Y y, pair 1 ypair X YyY
Axiom. (proj0I) We take the following as an axiom:
∀w u : set, pair 0 uwuproj0 w
Axiom. (proj0E) We take the following as an axiom:
∀w u : set, uproj0 wpair 0 uw
Axiom. (proj1I) We take the following as an axiom:
∀w u : set, pair 1 uwuproj1 w
Axiom. (proj1E) We take the following as an axiom:
∀w u : set, uproj1 wpair 1 uw
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(setset)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 : setset, ∀x ∈ X, ∀y ∈ Y x, pair x y∑x ∈ X, Y x
Axiom. (Sigma_eta_proj0_proj1) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z ∈ (∑x ∈ X, Y x), pair (proj0 z) (proj1 z) = zproj0 zXproj1 zY (proj0 z)
Axiom. (proj_Sigma_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z ∈ (∑x ∈ X, Y x), pair (proj0 z) (proj1 z) = z
Axiom. (proj0_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z(∑x ∈ X, Y x)proj0 zX
Axiom. (proj1_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z(∑x ∈ X, Y x)proj1 zY (proj0 z)
Axiom. (pair_Sigma_E1) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀x y : set, pair x y(∑x ∈ X, Y x)yY x
Axiom. (Sigma_E) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀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 setsetset.
Notation. We use as an infix operator with priority 440 and which associates to the left corresponding to applying term setprod.
Let lam : set(setset)setSigma
Definition. We define ap to be λf x ⇒ {proj1 z|z ∈ f, ∃y : set, z = pair x y} of type setsetset.
Notation. When x is a set, a term x y is notation for ap x y.
Notation. λ xAB is notation for the set Sigma Ax : set ⇒ B).
Axiom. (lamI) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x ∈ X, ∀y ∈ F x, pair x yλx ∈ XF x
Axiom. (lamE) We take the following as an axiom:
∀X : set, ∀F : setset, ∀z : set, z(λx ∈ XF x)∃x ∈ X, ∃y ∈ F x, z = pair x y
Axiom. (apI) We take the following as an axiom:
∀f x y, pair x yfyf x
Axiom. (apE) We take the following as an axiom:
∀f x y, yf xpair x yf
Axiom. (beta) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x : set, xX(λx ∈ XF x) x = F x
Axiom. (proj0_ap_0) We take the following as an axiom:
∀u, proj0 u = u 0
Axiom. (proj1_ap_1) We take the following as an axiom:
∀u, proj1 u = u 1
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 : setset, ∀z : set, z(∑x ∈ X, Y x)(z 0)X
Axiom. (ap1_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z(∑x ∈ X, Y x)(z 1)(Y (z 0))
Definition. We define pair_p to be λu : setpair (u 0) (u 1) = u of type setprop.
Axiom. (pair_p_I) We take the following as an axiom:
∀x y, pair_p (pair x y)
Axiom. (Subq_2_UPair01) We take the following as an axiom:
2{0,1}
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 xY x} of type set(setset)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 : setset, ∀f : set, (∀u ∈ f, pair_p uu 0X)(∀x ∈ X, f xY x)f∏x ∈ X, Y x
Axiom. (lam_Pi) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀F : setset, (∀x ∈ X, F xY x)(λx ∈ XF x)(∏x ∈ X, Y x)
Axiom. (ap_Pi) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f : set, ∀x : set, f(∏x ∈ X, Y x)xXf xY x
Definition. We define setexp to be λX Y : set∏y ∈ Y, X of type setsetset.
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 : setset, ∀x ∈ X, ∀y ∈ F x, (x,y)λx ∈ XF 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 : setsetset, (∀x ∈ X, ∀y ∈ Y, F x y = G x y){F (w 0) (w 1)|w ∈ XY} = {G (w 0) (w 1)|w ∈ XY}
Axiom. (tuple_2_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀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)XY
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(setprop)prop)set.
Object. The name DescrR_i_io_2 is a term of type (set(setprop)prop)setprop.
Axiom. (DescrR_i_io_12) We take the following as an axiom:
∀R : set(setprop)prop, (∃x, (∃y : setprop, R x y)(∀y z : setprop, R x yR x zy = z))R (DescrR_i_io_1 R) (DescrR_i_io_2 R)
Definition. We define PNoEq_ to be λalpha p q ⇒ ∀beta ∈ alpha, p betaq beta of type set(setprop)(setprop)prop.
Axiom. (PNoEq_ref_) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p p
Axiom. (PNoEq_sym_) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoEq_ alpha p qPNoEq_ alpha q p
Axiom. (PNoEq_tra_) We take the following as an axiom:
∀alpha, ∀p q r : setprop, PNoEq_ alpha p qPNoEq_ alpha q rPNoEq_ alpha p r
Axiom. (PNoEq_antimon_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alpha∀beta ∈ alpha, PNoEq_ alpha p qPNoEq_ beta p q
Definition. We define PNoLt_ to be λalpha p q ⇒ ∃beta ∈ alpha, PNoEq_ beta p q¬ p betaq beta of type set(setprop)(setprop)prop.
Axiom. (PNoLt_E_) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoLt_ alpha p q∀R : prop, (∀beta, betaalphaPNoEq_ beta p q¬ p betaq betaR)R
Axiom. (PNoLt_irref_) We take the following as an axiom:
∀alpha, ∀p : setprop, ¬ PNoLt_ alpha p p
Axiom. (PNoLt_mon_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alpha∀beta ∈ alpha, PNoLt_ beta p qPNoLt_ alpha p q
Axiom. (PNoLt_trichotomy_or_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alphaPNoLt_ alpha p qPNoEq_ alpha p qPNoLt_ alpha q p
Axiom. (PNoLt_tra_) We take the following as an axiom:
∀alpha, ordinal alpha∀p q r : setprop, PNoLt_ alpha p qPNoLt_ alpha q rPNoLt_ alpha p r
Object. The name PNoLt is a term of type set(setprop)set(setprop)prop.
Axiom. (PNoLtI1) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt_ (alphabeta) p qPNoLt alpha p beta q
Axiom. (PNoLtI2) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, alphabetaPNoEq_ alpha p qq alphaPNoLt alpha p beta q
Axiom. (PNoLtI3) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, betaalphaPNoEq_ beta p q¬ p betaPNoLt alpha p beta q
Axiom. (PNoLtE) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt alpha p beta q∀R : prop, (PNoLt_ (alphabeta) p qR)(alphabetaPNoEq_ alpha p qq alphaR)(betaalphaPNoEq_ beta p q¬ p betaR)R
Axiom. (PNoLt_irref) We take the following as an axiom:
∀alpha, ∀p : setprop, ¬ PNoLt alpha p alpha p
Axiom. (PNoLt_trichotomy_or) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNoLt alpha p beta qalpha = betaPNoEq_ alpha p qPNoLt beta q alpha p
Axiom. (PNoLtEq_tra) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal beta∀p q r : setprop, PNoLt alpha p beta qPNoEq_ beta q rPNoLt alpha p beta r
Axiom. (PNoEqLt_tra) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal beta∀p q r : setprop, PNoEq_ alpha p qPNoLt alpha q beta rPNoLt alpha p beta r
Axiom. (PNoLt_tra) We take the following as an axiom:
∀alpha beta gamma, ordinal alphaordinal betaordinal gamma∀p q r : setprop, PNoLt alpha p beta qPNoLt beta q gamma rPNoLt alpha p gamma r
Definition. We define PNoLe to be λalpha p beta q ⇒ PNoLt alpha p beta qalpha = betaPNoEq_ alpha p q of type set(setprop)set(setprop)prop.
Axiom. (PNoLeI1) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt alpha p beta qPNoLe alpha p beta q
Axiom. (PNoLeI2) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoEq_ alpha p qPNoLe alpha p alpha q
Axiom. (PNoLe_ref) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoLe alpha p alpha p
Axiom. (PNoLe_antisym) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal beta∀p q : setprop, PNoLe alpha p beta qPNoLe beta q alpha palpha = betaPNoEq_ alpha p q
Axiom. (PNoLtLe_tra) We take the following as an axiom:
∀alpha beta gamma, ordinal alphaordinal betaordinal gamma∀p q r : setprop, PNoLt alpha p beta qPNoLe beta q gamma rPNoLt alpha p gamma r
Axiom. (PNoLeLt_tra) We take the following as an axiom:
∀alpha beta gamma, ordinal alphaordinal betaordinal gamma∀p q r : setprop, PNoLe alpha p beta qPNoLt beta q gamma rPNoLt alpha p gamma r
Axiom. (PNoEqLe_tra) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal beta∀p q r : setprop, PNoEq_ alpha p qPNoLe alpha q beta rPNoLe alpha p beta r
Axiom. (PNoLe_tra) We take the following as an axiom:
∀alpha beta gamma, ordinal alphaordinal betaordinal gamma∀p q r : setprop, PNoLe alpha p beta qPNoLe beta q gamma rPNoLe alpha p gamma r
Definition. We define PNo_downc to be λL alpha p ⇒ ∃beta, ordinal beta∃q : setprop, L beta qPNoLe alpha p beta q of type (set(setprop)prop)set(setprop)prop.
Definition. We define PNo_upc to be λR alpha p ⇒ ∃beta, ordinal beta∃q : setprop, R beta qPNoLe beta q alpha p of type (set(setprop)prop)set(setprop)prop.
Axiom. (PNoLe_downc) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNo_downc L alpha pPNoLe beta q alpha pPNo_downc L beta q
Axiom. (PNo_downc_ref) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, L alpha pPNo_downc L alpha p
Axiom. (PNo_upc_ref) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, R alpha pPNo_upc R alpha p
Axiom. (PNoLe_upc) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNo_upc R alpha pPNoLe alpha p beta qPNo_upc R beta q
Definition. We define PNoLt_pwise to be λL R ⇒ ∀gamma, ordinal gamma∀p : setprop, L gamma p∀delta, ordinal delta∀q : setprop, R delta qPNoLt gamma p delta q of type (set(setprop)prop)(set(setprop)prop)prop.
Axiom. (PNoLt_pwise_downc_upc) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L RPNoLt_pwise (PNo_downc L) (PNo_upc R)
Definition. We define PNo_rel_strict_upperbd to be λL alpha p ⇒ ∀beta ∈ alpha, ∀q : setprop, PNo_downc L beta qPNoLt beta q alpha p of type (set(setprop)prop)set(setprop)prop.
Definition. We define PNo_rel_strict_lowerbd to be λR alpha p ⇒ ∀beta ∈ alpha, ∀q : setprop, PNo_upc R beta qPNoLt alpha p beta q of type (set(setprop)prop)set(setprop)prop.
Definition. We define PNo_rel_strict_imv to be λL R alpha p ⇒ PNo_rel_strict_upperbd L alpha pPNo_rel_strict_lowerbd R alpha p of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
Axiom. (PNoEq_rel_strict_upperbd) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha, ordinal alpha∀p q : setprop, PNoEq_ alpha p qPNo_rel_strict_upperbd L alpha pPNo_rel_strict_upperbd L alpha q
Axiom. (PNo_rel_strict_upperbd_antimon) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, ∀beta ∈ alpha, PNo_rel_strict_upperbd L alpha pPNo_rel_strict_upperbd L beta p
Axiom. (PNoEq_rel_strict_lowerbd) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha, ordinal alpha∀p q : setprop, PNoEq_ alpha p qPNo_rel_strict_lowerbd R alpha pPNo_rel_strict_lowerbd R alpha q
Axiom. (PNo_rel_strict_lowerbd_antimon) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, ∀beta ∈ alpha, PNo_rel_strict_lowerbd R alpha pPNo_rel_strict_lowerbd R beta p
Axiom. (PNoEq_rel_strict_imv) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀p q : setprop, PNoEq_ alpha p qPNo_rel_strict_imv L R alpha pPNo_rel_strict_imv L R alpha q
Axiom. (PNo_rel_strict_imv_antimon) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, ∀beta ∈ alpha, PNo_rel_strict_imv L R alpha pPNo_rel_strict_imv L R beta p
Definition. We define PNo_rel_strict_uniq_imv to be λL R alpha p ⇒ PNo_rel_strict_imv L R alpha p∀q : setprop, PNo_rel_strict_imv L R alpha qPNoEq_ alpha p q of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
Definition. We define PNo_rel_strict_split_imv to be λL R alpha p ⇒ PNo_rel_strict_imv L R (ordsucc alpha) (λdelta ⇒ p deltadeltaalpha)PNo_rel_strict_imv L R (ordsucc alpha) (λdelta ⇒ p deltadelta = alpha) of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
Axiom. (PNo_extend0_eq) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p (λdelta ⇒ p deltadeltaalpha)
Axiom. (PNo_extend1_eq) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p (λdelta ⇒ p deltadelta = alpha)
Axiom. (PNo_rel_imv_ex) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alpha(∃p : setprop, PNo_rel_strict_uniq_imv L R alpha p)(∃tau ∈ alpha, ∃p : setprop, PNo_rel_strict_split_imv L R tau p)
Definition. We define PNo_lenbdd to be λalpha L ⇒ ∀beta, ∀p : setprop, L beta pbetaalpha of type set(set(setprop)prop)prop.
Axiom. (PNo_lenbdd_strict_imv_extend0) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha R∀p : setprop, PNo_rel_strict_imv L R alpha pPNo_rel_strict_imv L R (ordsucc alpha) (λdelta ⇒ p deltadeltaalpha)
Axiom. (PNo_lenbdd_strict_imv_extend1) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha R∀p : setprop, PNo_rel_strict_imv L R alpha pPNo_rel_strict_imv L R (ordsucc alpha) (λdelta ⇒ p deltadelta = alpha)
Axiom. (PNo_lenbdd_strict_imv_split) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha R∀p : setprop, PNo_rel_strict_imv L R alpha pPNo_rel_strict_split_imv L R alpha p
Axiom. (PNo_rel_imv_bdd_ex) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha R∃beta ∈ ordsucc alpha, ∃p : setprop, PNo_rel_strict_split_imv L R beta p
Definition. We define PNo_strict_upperbd to be λL alpha p ⇒ ∀beta, ordinal beta∀q : setprop, L beta qPNoLt beta q alpha p of type (set(setprop)prop)set(setprop)prop.
Definition. We define PNo_strict_lowerbd to be λR alpha p ⇒ ∀beta, ordinal beta∀q : setprop, R beta qPNoLt alpha p beta q of type (set(setprop)prop)set(setprop)prop.
Definition. We define PNo_strict_imv to be λL R alpha p ⇒ PNo_strict_upperbd L alpha pPNo_strict_lowerbd R alpha p of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
Axiom. (PNoEq_strict_upperbd) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha, ordinal alpha∀p q : setprop, PNoEq_ alpha p qPNo_strict_upperbd L alpha pPNo_strict_upperbd L alpha q
Axiom. (PNoEq_strict_lowerbd) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha, ordinal alpha∀p q : setprop, PNoEq_ alpha p qPNo_strict_lowerbd R alpha pPNo_strict_lowerbd R alpha q
Axiom. (PNoEq_strict_imv) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀p q : setprop, PNoEq_ alpha p qPNo_strict_imv L R alpha pPNo_strict_imv L R alpha q
Axiom. (PNo_strict_upperbd_imp_rel_strict_upperbd) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha, ordinal alpha∀beta ∈ ordsucc alpha, ∀p : setprop, PNo_strict_upperbd L alpha pPNo_rel_strict_upperbd L beta p
Axiom. (PNo_strict_lowerbd_imp_rel_strict_lowerbd) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha, ordinal alpha∀beta ∈ ordsucc alpha, ∀p : setprop, PNo_strict_lowerbd R alpha pPNo_rel_strict_lowerbd R beta p
Axiom. (PNo_strict_imv_imp_rel_strict_imv) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀beta ∈ ordsucc alpha, ∀p : setprop, PNo_strict_imv L R alpha pPNo_rel_strict_imv L R beta p
Axiom. (PNo_rel_split_imv_imp_strict_imv) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, PNo_rel_strict_split_imv L R alpha pPNo_strict_imv L R alpha p
Axiom. (PNo_lenbdd_strict_imv_ex) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha R∃beta ∈ ordsucc alpha, ∃p : setprop, PNo_strict_imv L R beta p
Definition. We define PNo_least_rep to be λL R beta p ⇒ ordinal betaPNo_strict_imv L R beta p∀gamma ∈ beta, ∀q : setprop, ¬ PNo_strict_imv L R gamma q of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
Definition. We define PNo_least_rep2 to be λL R beta p ⇒ PNo_least_rep L R beta p∀x, xbeta¬ p x of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
Axiom. (PNo_strict_imv_pred_eq) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alpha∀p q : setprop, PNo_least_rep L R alpha pPNo_strict_imv L R alpha q∀beta ∈ alpha, p betaq beta
Axiom. (PNo_lenbdd_least_rep2_exuniq2) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha R∃beta, (∃p : setprop, PNo_least_rep2 L R beta p)(∀p q : setprop, PNo_least_rep2 L R beta pPNo_least_rep2 L R beta qp = q)
Object. The name PNo_bd is a term of type (set(setprop)prop)(set(setprop)prop)set.
Object. The name PNo_pred is a term of type (set(setprop)prop)(set(setprop)prop)setprop.
Axiom. (PNo_bd_pred_lem) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha RPNo_least_rep2 L R (PNo_bd L R) (PNo_pred L R)
Axiom. (PNo_bd_pred) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha RPNo_least_rep L R (PNo_bd L R) (PNo_pred L R)
Axiom. (PNo_bd_In) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha RPNo_bd L Rordsucc alpha
Beginning of Section TaggedSets
Let tag : setsetλalpha ⇒ SetAdjoin alpha {1}
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term tag.
Axiom. (not_TransSet_Sing1) We take the following as an axiom:
¬ TransSet {1}
Axiom. (not_ordinal_Sing1) We take the following as an axiom:
¬ ordinal {1}
Axiom. (tagged_not_ordinal) We take the following as an axiom:
∀y, ¬ ordinal (y ')
Axiom. (tagged_notin_ordinal) We take the following as an axiom:
∀alpha y, ordinal alpha(y ')alpha
Axiom. (tagged_eqE_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaalpha ' = beta 'alphabeta
Axiom. (tagged_eqE_eq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha ' = beta 'alpha = beta
Axiom. (tagged_ReplE) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betabeta '{gamma '|gamma ∈ alpha}betaalpha
Axiom. (ordinal_notin_tagged_Repl) We take the following as an axiom:
∀alpha Y, ordinal alphaalpha{y '|y ∈ Y}
Definition. We define SNoElts_ to be λalpha ⇒ alpha{beta '|beta ∈ alpha} of type setset.
Axiom. (SNoElts_mon) We take the following as an axiom:
∀alpha beta, alphabetaSNoElts_ alphaSNoElts_ beta
Definition. We define SNo_ to be λalpha x ⇒ xSNoElts_ alpha∀beta ∈ alpha, exactly1of2 (beta 'x) (betax) of type setsetprop.
Definition. We define PSNo to be λalpha p ⇒ {beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta} of type set(setprop)set.
Axiom. (PNoEq_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNoEq_ alpha (λbeta ⇒ betaPSNo alpha p) p
Axiom. (SNo_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, SNo_ alpha (PSNo alpha p)
Axiom. (SNo_PSNo_eta_) We take the following as an axiom:
∀alpha x, ordinal alphaSNo_ alpha xx = PSNo alpha (λbeta ⇒ betax)
Object. The name SNo is a term of type setprop.
Axiom. (SNo_SNo) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo_ alpha zSNo z
Object. The name SNoLev is a term of type setset.
Axiom. (SNoLev_uniq_Subq) We take the following as an axiom:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalphabeta
Axiom. (SNoLev_uniq) We take the following as an axiom:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha = beta
Axiom. (SNoLev_prop) We take the following as an axiom:
∀x, SNo xordinal (SNoLev x)SNo_ (SNoLev x) x
Axiom. (SNoLev_ordinal) We take the following as an axiom:
∀x, SNo xordinal (SNoLev x)
Axiom. (SNoLev_) We take the following as an axiom:
∀x, SNo xSNo_ (SNoLev x) x
Axiom. (SNo_PSNo_eta) We take the following as an axiom:
∀x, SNo xx = PSNo (SNoLev x) (λbeta ⇒ betax)
Axiom. (SNoLev_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, SNoLev (PSNo alpha p) = alpha
Axiom. (SNo_Subq) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev xSNoLev y(∀alpha ∈ SNoLev x, alphaxalphay)xy
Definition. We define SNoEq_ to be λalpha x y ⇒ PNoEq_ alpha (λbeta ⇒ betax) (λbeta ⇒ betay) of type setsetsetprop.
Axiom. (SNoEq_I) We take the following as an axiom:
∀alpha x y, (∀beta ∈ alpha, betaxbetay)SNoEq_ alpha x y
Axiom. (SNo_eq) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev x = SNoLev ySNoEq_ (SNoLev x) x yx = y
End of Section TaggedSets
Definition. We define SNoLt to be λx y ⇒ PNoLt (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay) of type setsetprop.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term SNoLt.
Definition. We define SNoLe to be λx y ⇒ PNoLe (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay) of type setsetprop.
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 < yxy
Axiom. (SNoLeE) We take the following as an axiom:
∀x y, SNo xSNo yxyx < yx = y
Axiom. (SNoEq_sym_) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x ySNoEq_ alpha y x
Axiom. (SNoEq_tra_) We take the following as an axiom:
∀alpha x y z, SNoEq_ alpha x ySNoEq_ alpha y zSNoEq_ alpha x z
Axiom. (SNoLtE) We take the following as an axiom:
∀x y, SNo xSNo yx < y∀p : prop, (∀z, SNo zSNoLev zSNoLev xSNoLev ySNoEq_ (SNoLev z) z xSNoEq_ (SNoLev z) z yx < zz < ySNoLev zxSNoLev zyp)(SNoLev xSNoLev ySNoEq_ (SNoLev x) x ySNoLev xyp)(SNoLev ySNoLev xSNoEq_ (SNoLev y) x ySNoLev yxp)p
Axiom. (SNoLtI2) We take the following as an axiom:
∀x y, SNoLev xSNoLev ySNoEq_ (SNoLev x) x ySNoLev xyx < y
Axiom. (SNoLtI3) We take the following as an axiom:
∀x y, SNoLev ySNoLev xSNoEq_ (SNoLev y) x ySNoLev yxx < y
Axiom. (SNoLt_irref) We take the following as an axiom:
∀x, ¬ SNoLt x x
Axiom. (SNoLt_trichotomy_or) We take the following as an axiom:
∀x y, SNo xSNo yx < yx = yy < x
Axiom. (SNoLt_trichotomy_or_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (x < yp)(x = yp)(y < xp)p
Axiom. (SNoLt_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < yy < zx < z
Axiom. (SNoLe_ref) We take the following as an axiom:
∀x, SNoLe x x
Axiom. (SNoLe_antisym) We take the following as an axiom:
∀x y, SNo xSNo yxyyxx = y
Axiom. (SNoLtLe_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < yyzx < z
Axiom. (SNoLeLt_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zxyy < zx < z
Axiom. (SNoLe_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zxyyzxz
Axiom. (SNoLtLe_or) We take the following as an axiom:
∀x y, SNo xSNo yx < yyx
Axiom. (SNoLt_PSNo_PNoLt) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPSNo alpha p < PSNo beta qPNoLt alpha p beta q
Axiom. (PNoLt_SNoLt_PSNo) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNoLt alpha p beta qPSNo alpha p < PSNo beta q
Definition. We define SNoCut to be λL R ⇒ PSNo (PNo_bd (λalpha p ⇒ ordinal alphaPSNo alpha pL) (λalpha p ⇒ ordinal alphaPSNo alpha pR)) (PNo_pred (λalpha p ⇒ ordinal alphaPSNo alpha pL) (λalpha p ⇒ ordinal alphaPSNo alpha pR)) of type setsetset.
Definition. We define SNoCutP to be λL R ⇒ (∀x ∈ L, SNo x)(∀y ∈ R, SNo y)(∀x ∈ L, ∀y ∈ R, x < y) of type setsetprop.
Axiom. (SNoCutP_SNoCut) We take the following as an axiom:
∀L R, SNoCutP L RSNo (SNoCut L R)SNoLev (SNoCut L R)ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)))(∀x ∈ L, x < SNoCut L R)(∀y ∈ R, SNoCut L R < y)(∀z, SNo z(∀x ∈ L, x < z)(∀y ∈ R, z < y)SNoLev (SNoCut L R)SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z)
Axiom. (SNoCutP_SNoCut_impred) We take the following as an axiom:
∀L R, SNoCutP L R∀p : prop, (SNo (SNoCut L R)SNoLev (SNoCut L R)ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)))(∀x ∈ L, x < SNoCut L R)(∀y ∈ R, SNoCut L R < y)(∀z, SNo z(∀x ∈ L, x < z)(∀y ∈ R, z < y)SNoLev (SNoCut L R)SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z)p)p
Axiom. (SNoCutP_L_0) We take the following as an axiom:
∀L, (∀x ∈ L, SNo x)SNoCutP L 0
Axiom. (SNoCutP_0_R) We take the following as an axiom:
∀R, (∀x ∈ R, SNo x)SNoCutP 0 R
Axiom. (SNoCutP_0_0) We take the following as an axiom:
SNoCutP 0 0
Definition. We define SNoS_ to be λalpha ⇒ {x ∈ 𝒫 (SNoElts_ alpha)|∃beta ∈ alpha, SNo_ beta x} of type setset.
Axiom. (SNoS_E) We take the following as an axiom:
∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, ∃beta ∈ alpha, SNo_ beta x
Beginning of Section TaggedSets2
Let tag : setsetλ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:
∀alpha, ordinal alpha∀x, ∀beta ∈ alpha, SNo_ beta xxSNoS_ alpha
Axiom. (SNoS_I2) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev xSNoLev yxSNoS_ (SNoLev y)
Axiom. (SNoS_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalphabetaSNoS_ alphaSNoS_ beta
Axiom. (SNoLev_uniq2) We take the following as an axiom:
∀alpha, ordinal alpha∀x, SNo_ alpha xSNoLev x = alpha
Axiom. (SNoS_E2) We take the following as an axiom:
∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, ∀p : prop, (SNoLev xalphaordinal (SNoLev x)SNo xSNo_ (SNoLev x) xp)p
Axiom. (SNoS_In_neq) We take the following as an axiom:
∀w, SNo w∀x ∈ SNoS_ (SNoLev w), xw
Axiom. (SNoS_SNoLev) We take the following as an axiom:
∀z, SNo zzSNoS_ (ordsucc (SNoLev z))
Definition. We define SNoL to be λz ⇒ {x ∈ SNoS_ (SNoLev z)|x < z} of type setset.
Definition. We define SNoR to be λz ⇒ {y ∈ SNoS_ (SNoLev z)|z < y} of type setset.
Axiom. (SNoCutP_SNoL_SNoR) We take the following as an axiom:
∀z, SNo zSNoCutP (SNoL z) (SNoR z)
Axiom. (SNoL_E) We take the following as an axiom:
∀x, SNo x∀w ∈ SNoL x, ∀p : prop, (SNo wSNoLev wSNoLev xw < xp)p
Axiom. (SNoR_E) We take the following as an axiom:
∀x, SNo x∀z ∈ SNoR x, ∀p : prop, (SNo zSNoLev zSNoLev xx < zp)p
Axiom. (SNoL_SNoS_) We take the following as an axiom:
∀z, SNoL zSNoS_ (SNoLev z)
Axiom. (SNoR_SNoS_) We take the following as an axiom:
∀z, SNoR zSNoS_ (SNoLev z)
Axiom. (SNoL_SNoS) We take the following as an axiom:
∀x, SNo x∀w ∈ SNoL x, wSNoS_ (SNoLev x)
Axiom. (SNoR_SNoS) We take the following as an axiom:
∀x, SNo x∀z ∈ SNoR x, zSNoS_ (SNoLev x)
Axiom. (SNoL_I) We take the following as an axiom:
∀z, SNo z∀x, SNo xSNoLev xSNoLev zx < zxSNoL z
Axiom. (SNoR_I) We take the following as an axiom:
∀z, SNo z∀y, SNo ySNoLev ySNoLev zz < yySNoR z
Axiom. (SNo_eta) We take the following as an axiom:
∀z, SNo zz = SNoCut (SNoL z) (SNoR z)
Axiom. (SNoCutP_SNo_SNoCut) We take the following as an axiom:
∀L R, SNoCutP L RSNo (SNoCut L R)
Axiom. (SNoCutP_SNoCut_L) We take the following as an axiom:
∀L R, SNoCutP L R∀x ∈ L, x < SNoCut L R
Axiom. (SNoCutP_SNoCut_R) We take the following as an axiom:
∀L R, SNoCutP L R∀y ∈ R, SNoCut L R < y
Axiom. (SNoCutP_SNoCut_fst) We take the following as an axiom:
∀L R, SNoCutP L R∀z, SNo z(∀x ∈ L, x < z)(∀y ∈ R, z < y)SNoLev (SNoCut L R)SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z
Axiom. (SNoCut_Le) We take the following as an axiom:
∀L1 R1 L2 R2, SNoCutP L1 R1SNoCutP L2 R2(∀w ∈ L1, w < SNoCut L2 R2)(∀z ∈ R2, SNoCut L1 R1 < z)SNoCut L1 R1SNoCut L2 R2
Axiom. (SNoCut_ext) We take the following as an axiom:
∀L1 R1 L2 R2, SNoCutP L1 R1SNoCutP L2 R2(∀w ∈ L1, w < SNoCut L2 R2)(∀z ∈ R1, SNoCut L2 R2 < z)(∀w ∈ L2, w < SNoCut L1 R1)(∀z ∈ R2, SNoCut L1 R1 < z)SNoCut L1 R1 = SNoCut L2 R2
Axiom. (SNoLt_SNoL_or_SNoR_impred) We take the following as an axiom:
∀x y, SNo xSNo yx < y∀p : prop, (∀z ∈ SNoL y, zSNoR xp)(xSNoL yp)(ySNoR xp)p
Axiom. (SNoL_or_SNoR_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (x = yp)(∀z ∈ SNoL y, zSNoR xp)(xSNoL yp)(ySNoR xp)(∀z ∈ SNoR y, zSNoL xp)(xSNoR yp)(ySNoL xp)p
Axiom. (ordinal_SNo_) We take the following as an axiom:
∀alpha, ordinal alphaSNo_ alpha alpha
Axiom. (ordinal_SNo) We take the following as an axiom:
∀alpha, ordinal alphaSNo alpha
Axiom. (ordinal_SNoLev) We take the following as an axiom:
∀alpha, ordinal alphaSNoLev alpha = alpha
Axiom. (ordinal_SNoLev_max) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev zalphaz < alpha
Axiom. (ordinal_SNoL) We take the following as an axiom:
∀alpha, ordinal alphaSNoL alpha = SNoS_ alpha
Axiom. (ordinal_SNoR) We take the following as an axiom:
∀alpha, ordinal alphaSNoR alpha = Empty
Axiom. (nat_p_SNo) We take the following as an axiom:
∀n, nat_p nSNo n
Axiom. (omega_SNo) We take the following as an axiom:
∀n ∈ ω, SNo n
Axiom. (omega_SNoS_omega) We take the following as an axiom:
ωSNoS_ ω
Axiom. (ordinal_In_SNoLt) We take the following as an axiom:
∀alpha, ordinal alpha∀beta ∈ alpha, beta < alpha
Axiom. (ordinal_SNoLev_max_2) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev zordsucc alphazalpha
Axiom. (ordinal_Subq_SNoLe) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalphabetaalphabeta
Axiom. (ordinal_SNoLt_In) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha < betaalphabeta
Axiom. (omega_nonneg) We take the following as an axiom:
∀m ∈ ω, 0m
Axiom. (SNo_0) We take the following as an axiom:
SNo 0
Axiom. (SNo_1) We take the following as an axiom:
SNo 1
Axiom. (SNo_2) We take the following as an axiom:
SNo 2
Axiom. (SNoLev_0) We take the following as an axiom:
SNoLev 0 = 0
Axiom. (SNoCut_0_0) We take the following as an axiom:
SNoCut 0 0 = 0
Axiom. (SNoL_0) We take the following as an axiom:
SNoL 0 = 0
Axiom. (SNoR_0) We take the following as an axiom:
SNoR 0 = 0
Axiom. (SNoL_1) We take the following as an axiom:
SNoL 1 = 1
Axiom. (SNoR_1) We take the following as an axiom:
SNoR 1 = 0
Axiom. (SNo_max_SNoLev) We take the following as an axiom:
∀x, SNo x(∀y ∈ SNoS_ (SNoLev x), y < x)SNoLev x = x
Axiom. (SNo_max_ordinal) We take the following as an axiom:
∀x, SNo x(∀y ∈ SNoS_ (SNoLev x), y < x)ordinal x
Definition. We define SNo_extend0 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ deltaxdeltaSNoLev x) of type setset.
Definition. We define SNo_extend1 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ deltaxdelta = SNoLev x) of type setset.
Axiom. (SNo_extend0_SNo_) We take the following as an axiom:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend0 x)
Axiom. (SNo_extend1_SNo_) We take the following as an axiom:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend1 x)
Axiom. (SNo_extend0_SNo) We take the following as an axiom:
∀x, SNo xSNo (SNo_extend0 x)
Axiom. (SNo_extend1_SNo) We take the following as an axiom:
∀x, SNo xSNo (SNo_extend1 x)
Axiom. (SNo_extend0_SNoLev) We take the following as an axiom:
∀x, SNo xSNoLev (SNo_extend0 x) = ordsucc (SNoLev x)
Axiom. (SNo_extend1_SNoLev) We take the following as an axiom:
∀x, SNo xSNoLev (SNo_extend1 x) = ordsucc (SNoLev x)
Axiom. (SNo_extend0_nIn) We take the following as an axiom:
∀x, SNo xSNoLev xSNo_extend0 x
Axiom. (SNo_extend1_In) We take the following as an axiom:
∀x, SNo xSNoLev xSNo_extend1 x
Axiom. (SNo_extend0_SNoEq) We take the following as an axiom:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend0 x) x
Axiom. (SNo_extend1_SNoEq) We take the following as an axiom:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend1 x) x
Axiom. (SNoLev_0_eq_0) We take the following as an axiom:
∀x, SNo xSNoLev x = 0x = 0
Definition. We define eps_ to be λn ⇒ {0}{(ordsucc m) '|m ∈ n} of type setset.
Axiom. (eps_ordinal_In_eq_0) We take the following as an axiom:
∀n alpha, ordinal alphaalphaeps_ nalpha = 0
Axiom. (eps_0_1) We take the following as an axiom:
eps_ 0 = 1
Axiom. (SNo__eps_) We take the following as an axiom:
∀n ∈ ω, SNo_ (ordsucc n) (eps_ n)
Axiom. (SNo_eps_) We take the following as an axiom:
∀n ∈ ω, SNo (eps_ n)
Axiom. (SNo_eps_1) We take the following as an axiom:
SNo (eps_ 1)
Axiom. (SNoLev_eps_) We take the following as an axiom:
∀n ∈ ω, SNoLev (eps_ n) = ordsucc n
Axiom. (SNo_eps_SNoS_omega) We take the following as an axiom:
∀n ∈ ω, eps_ nSNoS_ ω
Axiom. (SNo_eps_decr) We take the following as an axiom:
∀n ∈ ω, ∀m ∈ n, eps_ n < eps_ m
Axiom. (SNo_eps_pos) We take the following as an axiom:
∀n ∈ ω, 0 < eps_ n
Axiom. (SNo_pos_eps_Lt) We take the following as an axiom:
∀n, nat_p n∀x ∈ SNoS_ (ordsucc n), 0 < xeps_ n < x
Axiom. (SNo_pos_eps_Le) We take the following as an axiom:
∀n, nat_p n∀x ∈ SNoS_ (ordsucc (ordsucc n)), 0 < xeps_ nx
Axiom. (eps_SNo_eq) We take the following as an axiom:
∀n, nat_p n∀x ∈ SNoS_ (ordsucc n), 0 < xSNoEq_ (SNoLev x) (eps_ n) x∃m ∈ n, x = eps_ m
Axiom. (eps_SNoCutP) We take the following as an axiom:
∀n ∈ ω, SNoCutP {0} {eps_ m|m ∈ n}
Axiom. (eps_SNoCut) We take the following as an axiom:
∀n ∈ ω, eps_ n = SNoCut {0} {eps_ m|m ∈ n}
End of Section TaggedSets2
Axiom. (SNo_etaE) We take the following as an axiom:
∀z, SNo z∀p : prop, (∀L R, SNoCutP L R(∀x ∈ L, SNoLev xSNoLev z)(∀y ∈ R, SNoLev ySNoLev z)z = SNoCut L Rp)p
Axiom. (SNo_ind) We take the following as an axiom:
∀P : setprop, (∀L R, SNoCutP L R(∀x ∈ L, P x)(∀y ∈ R, P y)P (SNoCut L R))∀z, SNo zP z
Beginning of Section SurrealRecI
Variable F : set(setset)set
Let default : setEps_i (λ_ ⇒ True)
Let G : set(setsetset)setsetλalpha g ⇒ If_ii (ordinal alpha) (λz : setif zSNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault)
Object. The name SNo_rec_i is a term of type setset.
Hypothesis Fr : ∀z, SNo z∀g h : setset, (∀w ∈ SNoS_ (SNoLev z), g w = h w)F z g = F z h
Axiom. (SNo_rec_i_eq) We take the following as an axiom:
∀z, SNo zSNo_rec_i z = F z SNo_rec_i
End of Section SurrealRecI
Beginning of Section SurrealRecII
Variable F : set(set(setset))(setset)
Let default : (setset)Descr_ii (λ_ ⇒ True)
Let G : set(setset(setset))set(setset)λalpha g ⇒ If_iii (ordinal alpha) (λz : setIf_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault)
Object. The name SNo_rec_ii is a term of type set(setset).
Hypothesis Fr : ∀z, SNo z∀g h : set(setset), (∀w ∈ SNoS_ (SNoLev z), g w = h w)F z g = F z h
Axiom. (SNo_rec_ii_eq) We take the following as an axiom:
∀z, SNo zSNo_rec_ii z = F z SNo_rec_ii
End of Section SurrealRecII
Beginning of Section SurrealRec2
Variable F : setset(setsetset)set
Let G : set(setsetset)set(setset)setλw f z g ⇒ F w z (λx y ⇒ if x = w then g y else f x y)
Let H : set(setsetset)setsetλ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 setsetset.
Hypothesis Fr : ∀w, SNo w∀z, SNo z∀g h : setsetset, (∀x ∈ SNoS_ (SNoLev w), ∀y, SNo yg 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 : setsetset, (∀x ∈ SNoS_ (SNoLev w), f x = k x)∀z, SNo z∀g h : setset, (∀u ∈ SNoS_ (SNoLev z), g u = h u)G w f z g = G w k z h
Axiom. (SNo_rec2_eq_1) We take the following as an axiom:
∀w, SNo w∀f : setsetset, ∀z, SNo zSNo_rec_i (G w f) z = G w f z (SNo_rec_i (G w f))
Axiom. (SNo_rec2_eq) We take the following as an axiom:
∀w, SNo w∀z, SNo zSNo_rec2 w z = F w z SNo_rec2
End of Section SurrealRec2
Axiom. (SNo_ordinal_ind) We take the following as an axiom:
∀P : setprop, (∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, P x)(∀x, SNo xP x)
Axiom. (SNo_ordinal_ind2) We take the following as an axiom:
∀P : setsetprop, (∀alpha, ordinal alpha∀beta, ordinal beta∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ beta, P x y)(∀x y, SNo xSNo yP x y)
Axiom. (SNo_ordinal_ind3) We take the following as an axiom:
∀P : setsetsetprop, (∀alpha, ordinal alpha∀beta, ordinal beta∀gamma, ordinal gamma∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ beta, ∀z ∈ SNoS_ gamma, P x y z)(∀x y z, SNo xSNo ySNo zP x y z)
Axiom. (SNoLev_ind) We take the following as an axiom:
∀P : setprop, (∀x, SNo x(∀w ∈ SNoS_ (SNoLev x), P w)P x)(∀x, SNo xP x)
Axiom. (SNoLev_ind2) We take the following as an axiom:
∀P : setsetprop, (∀x y, SNo xSNo y(∀w ∈ SNoS_ (SNoLev x), P w y)(∀z ∈ SNoS_ (SNoLev y), P x z)(∀w ∈ SNoS_ (SNoLev x), ∀z ∈ SNoS_ (SNoLev y), P w z)P x y)∀x y, SNo xSNo yP x y
Axiom. (SNoLev_ind3) We take the following as an axiom:
∀P : setsetsetprop, (∀x y z, SNo xSNo ySNo 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 xSNo ySNo zP x y z
Axiom. (SNo_omega) We take the following as an axiom:
SNo ω
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:
∀x, SNo x∀alpha ∈ SNoLev x, SNo_ alpha (xSNoElts_ alpha)
Axiom. (restr_SNo) We take the following as an axiom:
∀x, SNo x∀alpha ∈ SNoLev x, SNo (xSNoElts_ alpha)
Axiom. (restr_SNoLev) We take the following as an axiom:
∀x, SNo x∀alpha ∈ SNoLev x, SNoLev (xSNoElts_ alpha) = alpha
Axiom. (restr_SNoEq) We take the following as an axiom:
∀x, SNo x∀alpha ∈ SNoLev x, SNoEq_ alpha (xSNoElts_ alpha) x
Axiom. (SNo_extend0_restr_eq) We take the following as an axiom:
∀x, SNo xx = SNo_extend0 xSNoElts_ (SNoLev x)
Axiom. (SNo_extend1_restr_eq) We take the following as an axiom:
∀x, SNo xx = SNo_extend1 xSNoElts_ (SNoLev x)
Beginning of Section SurrealMinus
Object. The name minus_SNo is a term of type setset.
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.
Axiom. (minus_SNo_eq) We take the following as an axiom:
∀x, SNo x- x = SNoCut {- z|z ∈ SNoR x} {- w|w ∈ SNoL x}
Axiom. (minus_SNo_prop1) We take the following as an axiom:
∀x, SNo xSNo (- x)(∀u ∈ SNoL x, - x < - u)(∀u ∈ SNoR x, - u < - x)SNoCutP {- z|z ∈ SNoR x} {- w|w ∈ SNoL x}
Axiom. (SNo_minus_SNo) We take the following as an axiom:
∀x, SNo xSNo (- x)
Axiom. (minus_SNo_Lt_contra) We take the following as an axiom:
∀x y, SNo xSNo yx < y- y < - x
Axiom. (minus_SNo_Le_contra) We take the following as an axiom:
∀x y, SNo xSNo yxy- y- x
Axiom. (minus_SNo_SNoCutP) We take the following as an axiom:
∀x, SNo xSNoCutP {- z|z ∈ SNoR x} {- w|w ∈ SNoL x}
Axiom. (minus_SNo_SNoCutP_gen) We take the following as an axiom:
∀L R, SNoCutP L RSNoCutP {- z|z ∈ R} {- w|w ∈ L}
Axiom. (minus_SNo_Lev_lem1) We take the following as an axiom:
∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, SNoLev (- x)SNoLev x
Axiom. (minus_SNo_Lev_lem2) We take the following as an axiom:
∀x, SNo xSNoLev (- x)SNoLev x
Axiom. (minus_SNo_invol) We take the following as an axiom:
∀x, SNo x- - x = x
Axiom. (minus_SNo_Lev) We take the following as an axiom:
∀x, SNo xSNoLev (- x) = SNoLev x
Axiom. (minus_SNo_SNo_) We take the following as an axiom:
∀alpha, ordinal alpha∀x, SNo_ alpha xSNo_ alpha (- x)
Axiom. (minus_SNo_SNoS_) We take the following as an axiom:
∀alpha, ordinal alpha∀x, xSNoS_ alpha- xSNoS_ alpha
Axiom. (minus_SNoCut_eq_lem) We take the following as an axiom:
∀v, SNo v∀L R, SNoCutP L Rv = SNoCut L R- v = SNoCut {- z|z ∈ R} {- w|w ∈ L}
Axiom. (minus_SNoCut_eq) We take the following as an axiom:
∀L R, SNoCutP L R- SNoCut L R = SNoCut {- z|z ∈ R} {- w|w ∈ L}
Axiom. (minus_SNo_Lt_contra1) We take the following as an axiom:
∀x y, SNo xSNo y- x < y- y < x
Axiom. (minus_SNo_Lt_contra2) We take the following as an axiom:
∀x y, SNo xSNo yx < - yy < - x
Axiom. (mordinal_SNoLev_min_2) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev zordsucc alpha- alphaz
Axiom. (minus_SNo_SNoS_omega) We take the following as an axiom:
∀x ∈ SNoS_ ω, - xSNoS_ ω
Axiom. (SNoL_minus_SNoR) We take the following as an axiom:
∀x, SNo xSNoL (- x) = {- w|w ∈ SNoR x}
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 setsetset.
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:
∀x, SNo x∀y, SNo yx + y = SNoCut ({w + y|w ∈ SNoL x}{x + w|w ∈ SNoL y}) ({z + y|z ∈ SNoR x}{x + z|z ∈ SNoR y})
Axiom. (add_SNo_prop1) We take the following as an axiom:
∀x y, SNo xSNo ySNo (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:
∀x y, SNo xSNo ySNo (x + y)
Axiom. (SNo_add_SNo_3) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zSNo (x + y + z)
Axiom. (SNo_add_SNo_3c) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zSNo (x + y + - z)
Axiom. (SNo_add_SNo_4) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wSNo (x + y + z + w)
Axiom. (add_SNo_Lt1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < zx + y < z + y
Axiom. (add_SNo_Le1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zxzx + yz + y
Axiom. (add_SNo_Lt2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zy < zx + y < x + z
Axiom. (add_SNo_Le2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zyzx + yx + z
Axiom. (add_SNo_Lt3a) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx < zywx + y < z + w
Axiom. (add_SNo_Lt3b) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wxzy < wx + y < z + w
Axiom. (add_SNo_Lt3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx < zy < wx + y < z + w
Axiom. (add_SNo_Le3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wxzywx + yz + w
Axiom. (add_SNo_SNoCutP) We take the following as an axiom:
∀x y, SNo xSNo ySNoCutP ({w + y|w ∈ SNoL x}{x + w|w ∈ SNoL y}) ({z + y|z ∈ SNoR x}{x + z|z ∈ SNoR y})
Axiom. (add_SNo_com) We take the following as an axiom:
∀x y, SNo xSNo yx + y = y + x
Axiom. (add_SNo_0L) We take the following as an axiom:
∀x, SNo x0 + x = x
Axiom. (add_SNo_0R) We take the following as an axiom:
∀x, SNo xx + 0 = x
Axiom. (add_SNo_minus_SNo_linv) We take the following as an axiom:
∀x, SNo x- x + x = 0
Axiom. (add_SNo_minus_SNo_rinv) We take the following as an axiom:
∀x, SNo xx + - x = 0
Axiom. (add_SNo_ordinal_SNoCutP) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaSNoCutP ({x + beta|x ∈ SNoS_ alpha}{alpha + x|x ∈ SNoS_ beta}) Empty
Axiom. (add_SNo_ordinal_eq) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaalpha + beta = SNoCut ({x + beta|x ∈ SNoS_ alpha}{alpha + x|x ∈ SNoS_ beta}) Empty
Axiom. (add_SNo_ordinal_ordinal) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaordinal (alpha + beta)
Axiom. (add_SNo_ordinal_SL) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaordsucc alpha + beta = ordsucc (alpha + beta)
Axiom. (add_SNo_ordinal_SR) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaalpha + ordsucc beta = ordsucc (alpha + beta)
Axiom. (add_SNo_ordinal_InL) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal beta∀gamma ∈ alpha, gamma + betaalpha + beta
Axiom. (add_SNo_ordinal_InR) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal beta∀gamma ∈ beta, alpha + gammaalpha + beta
Axiom. (add_nat_add_SNo) We take the following as an axiom:
∀n m ∈ ω, add_nat n m = n + m
Axiom. (add_SNo_In_omega) We take the following as an axiom:
∀n m ∈ ω, n + mω
Axiom. (add_SNo_1_1_2) We take the following as an axiom:
1 + 1 = 2
Axiom. (add_SNo_SNoL_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀u ∈ SNoL (x + y), (∃v ∈ SNoL x, uv + y)(∃v ∈ SNoL y, ux + v)
Axiom. (add_SNo_SNoR_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀u ∈ SNoR (x + y), (∃v ∈ SNoR x, v + yu)(∃v ∈ SNoR y, x + vu)
Axiom. (add_SNo_assoc) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + (y + z) = (x + y) + z
Axiom. (add_SNo_cancel_L) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y = x + zy = z
Axiom. (minus_SNo_0) We take the following as an axiom:
- 0 = 0
Axiom. (minus_add_SNo_distr) We take the following as an axiom:
∀x y, SNo xSNo y- (x + y) = (- x) + (- y)
Axiom. (minus_add_SNo_distr_3) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z- (x + y + z) = - x + - y + - z
Axiom. (add_SNo_Lev_bd) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev (x + y)SNoLev x + SNoLev y
Axiom. (add_SNo_SNoS_omega) We take the following as an axiom:
∀x y ∈ SNoS_ ω, x + ySNoS_ ω
Axiom. (add_SNo_minus_R2) We take the following as an axiom:
∀x y, SNo xSNo y(x + y) + - y = x
Axiom. (add_SNo_minus_R2') We take the following as an axiom:
∀x y, SNo xSNo y(x + - y) + y = x
Axiom. (add_SNo_minus_L2) We take the following as an axiom:
∀x y, SNo xSNo y- x + (x + y) = y
Axiom. (add_SNo_minus_L2') We take the following as an axiom:
∀x y, SNo xSNo yx + (- x + y) = y
Axiom. (add_SNo_Lt1_cancel) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y < z + yx < z
Axiom. (add_SNo_Lt2_cancel) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y < x + zy < z
Axiom. (add_SNo_assoc_4) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx + y + z + w = (x + y + z) + w
Axiom. (add_SNo_com_3_0_1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y + z = y + x + z
Axiom. (add_SNo_com_3b_1_2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z(x + y) + z = (x + z) + y
Axiom. (add_SNo_com_4_inner_mid) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y) + (z + w) = (x + z) + (y + w)
Axiom. (add_SNo_rotate_3_1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y + z = z + x + y
Axiom. (add_SNo_rotate_4_1) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx + y + z + w = w + x + y + z
Axiom. (add_SNo_rotate_5_1) We take the following as an axiom:
∀x y z w v, SNo xSNo ySNo zSNo wSNo vx + y + z + w + v = v + x + y + z + w
Axiom. (add_SNo_rotate_5_2) We take the following as an axiom:
∀x y z w v, SNo xSNo ySNo zSNo wSNo vx + y + z + w + v = w + v + x + y + z
Axiom. (add_SNo_minus_SNo_prop3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y + z) + (- z + w) = x + y + w
Axiom. (add_SNo_minus_SNo_prop4) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y + z) + (w + - z) = x + y + w
Axiom. (add_SNo_minus_SNo_prop5) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y + - z) + (z + w) = x + y + w
Axiom. (add_SNo_minus_Lt1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + - y < zx < z + y
Axiom. (add_SNo_minus_Lt2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz < x + - yz + y < x
Axiom. (add_SNo_minus_Lt1b) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < z + yx + - y < z
Axiom. (add_SNo_minus_Lt2b) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz + y < xz < x + - y
Axiom. (add_SNo_minus_Lt1b3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx + y < w + zx + y + - z < w
Axiom. (add_SNo_minus_Lt2b3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo ww + z < x + yw < x + y + - z
Axiom. (add_SNo_minus_Lt_lem) We take the following as an axiom:
∀x y z u v w, SNo xSNo ySNo zSNo uSNo vSNo wx + y + w < u + v + zx + y + - z < u + v + - w
Axiom. (add_SNo_minus_Le2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zzx + - yz + yx
Axiom. (add_SNo_minus_Le2b) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz + yxzx + - y
Axiom. (add_SNo_Lt_subprop2) We take the following as an axiom:
∀x y z w u v, SNo xSNo ySNo zSNo wSNo uSNo vx + u < z + vy + v < w + ux + y < z + w
Axiom. (add_SNo_Lt_subprop3a) We take the following as an axiom:
∀x y z w u a, SNo xSNo ySNo zSNo wSNo uSNo ax + z < w + ay + a < ux + y + z < w + u
Axiom. (add_SNo_Lt_subprop3b) We take the following as an axiom:
∀x y w u v a, SNo xSNo ySNo wSNo uSNo vSNo ax + a < w + vy < a + ux + y < w + u + v
Axiom. (add_SNo_Lt_subprop3c) We take the following as an axiom:
∀x y z w u a b c, SNo xSNo ySNo zSNo wSNo uSNo aSNo bSNo cx + a < b + cy + c < ub + z < w + ax + y + z < w + u
Axiom. (add_SNo_Lt_subprop3d) We take the following as an axiom:
∀x y w u v a b c, SNo xSNo ySNo wSNo uSNo vSNo aSNo bSNo cx + a < b + vy < c + ub + c < w + ax + y < w + u + v
Axiom. (ordinal_ordsucc_SNo_eq) We take the following as an axiom:
∀alpha, ordinal alphaordsucc alpha = 1 + alpha
Axiom. (add_SNo_3a_2b) We take the following as an axiom:
∀x y z w u, SNo xSNo ySNo zSNo wSNo u(x + y + z) + (w + u) = (u + y + z) + (w + x)
Axiom. (add_SNo_1_ordsucc) We take the following as an axiom:
∀n ∈ ω, n + 1 = ordsucc n
Axiom. (add_SNo_eps_Lt) We take the following as an axiom:
∀x, SNo x∀n ∈ ω, x < x + eps_ n
Axiom. (add_SNo_eps_Lt') We take the following as an axiom:
∀x y, SNo xSNo y∀n ∈ ω, x < yx < y + eps_ n
Axiom. (SNoLt_minus_pos) We take the following as an axiom:
∀x y, SNo xSNo yx < y0 < y + - x
Axiom. (add_SNo_omega_In_cases) We take the following as an axiom:
∀m, ∀n ∈ ω, ∀k, nat_p kmn + kmnm + - nk
Axiom. (add_SNo_Lt4) We take the following as an axiom:
∀x y z w u v, SNo xSNo ySNo zSNo wSNo uSNo vx < wy < uz < vx + y + z < w + u + v
Axiom. (add_SNo_3_3_3_Lt1) We take the following as an axiom:
∀x y z w u, SNo xSNo ySNo zSNo wSNo ux + y < z + wx + y + u < z + w + u
Axiom. (add_SNo_3_2_3_Lt1) We take the following as an axiom:
∀x y z w u, SNo xSNo ySNo zSNo wSNo uy + x < z + wx + u + y < z + w + u
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 xSNoL y}{m (z 0) y + m x (z 1) + - m (z 0) (z 1)|z ∈ SNoR xSNoR y}) ({m (w 0) y + m x (w 1) + - m (w 0) (w 1)|w ∈ SNoL xSNoR y}{m (z 0) y + m x (z 1) + - m (z 0) (z 1)|z ∈ SNoR xSNoL y})) of type setsetset.
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 yx * y = SNoCut ({(w 0) * y + x * (w 1) + - (w 0) * (w 1)|w ∈ SNoL xSNoL y}{(z 0) * y + x * (z 1) + - (z 0) * (z 1)|z ∈ SNoR xSNoR y}) ({(w 0) * y + x * (w 1) + - (w 0) * (w 1)|w ∈ SNoL xSNoR y}{(z 0) * y + x * (z 1) + - (z 0) * (z 1)|z ∈ SNoR xSNoL y})
Axiom. (mul_SNo_eq_2) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (∀L R, (∀u, uL(∀q : prop, (∀w0 ∈ SNoL x, ∀w1 ∈ SNoL y, u = w0 * y + x * w1 + - w0 * w1q)(∀z0 ∈ SNoR x, ∀z1 ∈ SNoR y, u = z0 * y + x * z1 + - z0 * z1q)q))(∀w0 ∈ SNoL x, ∀w1 ∈ SNoL y, w0 * y + x * w1 + - w0 * w1L)(∀z0 ∈ SNoR x, ∀z1 ∈ SNoR y, z0 * y + x * z1 + - z0 * z1L)(∀u, uR(∀q : prop, (∀w0 ∈ SNoL x, ∀z1 ∈ SNoR y, u = w0 * y + x * z1 + - w0 * z1q)(∀z0 ∈ SNoR x, ∀w1 ∈ SNoL y, u = z0 * y + x * w1 + - z0 * w1q)q))(∀w0 ∈ SNoL x, ∀z1 ∈ SNoR y, w0 * y + x * z1 + - w0 * z1R)(∀z0 ∈ SNoR x, ∀w1 ∈ SNoL y, z0 * y + x * w1 + - z0 * w1R)x * y = SNoCut L Rp)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:
∀x y, SNo xSNo ySNo (x * y)
Axiom. (SNo_mul_SNo_lem) We take the following as an axiom:
∀x y u v, SNo xSNo ySNo uSNo vSNo (u * y + x * v + - (u * v))
Axiom. (SNo_mul_SNo_3) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zSNo (x * y * z)
Axiom. (mul_SNo_eq_3) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (∀L R, SNoCutP L R(∀u, uL(∀q : prop, (∀w0 ∈ SNoL x, ∀w1 ∈ SNoL y, u = w0 * y + x * w1 + - w0 * w1q)(∀z0 ∈ SNoR x, ∀z1 ∈ SNoR y, u = z0 * y + x * z1 + - z0 * z1q)q))(∀w0 ∈ SNoL x, ∀w1 ∈ SNoL y, w0 * y + x * w1 + - w0 * w1L)(∀z0 ∈ SNoR x, ∀z1 ∈ SNoR y, z0 * y + x * z1 + - z0 * z1L)(∀u, uR(∀q : prop, (∀w0 ∈ SNoL x, ∀z1 ∈ SNoR y, u = w0 * y + x * z1 + - w0 * z1q)(∀z0 ∈ SNoR x, ∀w1 ∈ SNoL y, u = z0 * y + x * w1 + - z0 * w1q)q))(∀w0 ∈ SNoL x, ∀z1 ∈ SNoR y, w0 * y + x * z1 + - w0 * z1R)(∀z0 ∈ SNoR x, ∀w1 ∈ SNoL y, z0 * y + x * w1 + - z0 * w1R)x * y = SNoCut L Rp)p
Axiom. (mul_SNo_Lt) We take the following as an axiom:
∀x y u v, SNo xSNo ySNo uSNo vu < xv < yu * y + x * v < x * y + u * v
Axiom. (mul_SNo_Le) We take the following as an axiom:
∀x y u v, SNo xSNo ySNo uSNo vuxvyu * y + x * vx * y + u * v
Axiom. (mul_SNo_SNoL_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀u ∈ SNoL (x * y), (∃v ∈ SNoL x, ∃w ∈ SNoL y, u + v * wv * y + x * w)(∃v ∈ SNoR x, ∃w ∈ SNoR y, u + v * wv * y + x * w)
Axiom. (mul_SNo_SNoL_interpolate_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀u ∈ SNoL (x * y), ∀p : prop, (∀v ∈ SNoL x, ∀w ∈ SNoL y, u + v * wv * y + x * wp)(∀v ∈ SNoR x, ∀w ∈ SNoR y, u + v * wv * y + x * wp)p
Axiom. (mul_SNo_SNoR_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀u ∈ SNoR (x * y), (∃v ∈ SNoL x, ∃w ∈ SNoR y, v * y + x * wu + v * w)(∃v ∈ SNoR x, ∃w ∈ SNoL y, v * y + x * wu + v * w)
Axiom. (mul_SNo_SNoR_interpolate_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀u ∈ SNoR (x * y), ∀p : prop, (∀v ∈ SNoL x, ∀w ∈ SNoR y, v * y + x * wu + v * wp)(∀v ∈ SNoR x, ∀w ∈ SNoL y, v * y + x * wu + v * wp)p
Axiom. (mul_SNo_Subq_lem) We take the following as an axiom:
∀x y X Y Z W, ∀U U', (∀u, uU(∀q : prop, (∀w0 ∈ X, ∀w1 ∈ Y, u = w0 * y + x * w1 + - w0 * w1q)(∀z0 ∈ Z, ∀z1 ∈ W, u = z0 * y + x * z1 + - z0 * z1q)q))(∀w0 ∈ X, ∀w1 ∈ Y, w0 * y + x * w1 + - w0 * w1U')(∀w0 ∈ Z, ∀w1 ∈ W, w0 * y + x * w1 + - w0 * w1U')UU'
Axiom. (mul_SNo_zeroR) We take the following as an axiom:
∀x, SNo xx * 0 = 0
Axiom. (mul_SNo_oneR) We take the following as an axiom:
∀x, SNo xx * 1 = x
Axiom. (mul_SNo_com) We take the following as an axiom:
∀x y, SNo xSNo yx * y = y * x
Axiom. (mul_SNo_minus_distrL) We take the following as an axiom:
∀x y, SNo xSNo y(- x) * y = - x * y
Axiom. (mul_SNo_minus_distrR) We take the following as an axiom:
∀x y, SNo xSNo yx * (- y) = - (x * y)
Axiom. (mul_SNo_distrR) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z(x + y) * z = x * z + y * z
Axiom. (mul_SNo_distrL) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * (y + z) = x * y + x * z
Beginning of Section mul_SNo_assoc_lems
Variable M : setsetset
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 xSNo ySNo (x * y)
Hypothesis DL : ∀x y z, SNo xSNo ySNo zx * (y + z) = x * y + x * z
Hypothesis DR : ∀x y z, SNo xSNo ySNo z(x + y) * z = x * z + y * z
Hypothesis IL : ∀x y, SNo xSNo y∀u ∈ SNoL (x * y), ∀p : prop, (∀v ∈ SNoL x, ∀w ∈ SNoL y, u + v * wv * y + x * wp)(∀v ∈ SNoR x, ∀w ∈ SNoR y, u + v * wv * y + x * wp)p
Hypothesis IR : ∀x y, SNo xSNo y∀u ∈ SNoR (x * y), ∀p : prop, (∀v ∈ SNoL x, ∀w ∈ SNoR y, v * y + x * wu + v * wp)(∀v ∈ SNoR x, ∀w ∈ SNoL y, v * y + x * wu + v * wp)p
Hypothesis M_Lt : ∀x y u v, SNo xSNo ySNo uSNo vu < xv < yu * y + x * v < x * y + u * v
Hypothesis M_Le : ∀x y u v, SNo xSNo ySNo uSNo vuxvyu * y + x * vx * y + u * v
Axiom. (mul_SNo_assoc_lem1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo 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 * wq)(∀v ∈ SNoR x, ∀w ∈ SNoR (y * z), u = v * (y * z) + x * w + - v * wq)q)∀u ∈ L, u < (x * y) * z
Axiom. (mul_SNo_assoc_lem2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo 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 * wq)(∀v ∈ SNoR x, ∀w ∈ SNoL (y * z), u = v * (y * z) + x * w + - v * wq)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 xSNo ySNo zx * (y * z) = (x * y) * z
Axiom. (mul_nat_mul_SNo) We take the following as an axiom:
∀n m ∈ ω, mul_nat n m = n * m
Axiom. (mul_SNo_In_omega) We take the following as an axiom:
∀n m ∈ ω, n * mω
Axiom. (mul_SNo_zeroL) We take the following as an axiom:
∀x, SNo x0 * x = 0
Axiom. (mul_SNo_oneL) We take the following as an axiom:
∀x, SNo x1 * x = x
Axiom. (pos_mul_SNo_Lt) We take the following as an axiom:
∀x y z, SNo x0 < xSNo ySNo zy < zx * y < x * z
Axiom. (nonneg_mul_SNo_Le) We take the following as an axiom:
∀x y z, SNo x0xSNo ySNo zyzx * yx * z
Axiom. (neg_mul_SNo_Lt) We take the following as an axiom:
∀x y z, SNo xx < 0SNo ySNo zz < yx * y < x * z
Axiom. (pos_mul_SNo_Lt') We take the following as an axiom:
∀x y z, SNo xSNo ySNo z0 < zx < yx * z < y * z
Axiom. (mul_SNo_Lt1_pos_Lt) We take the following as an axiom:
∀x y, SNo xSNo yx < 10 < yx * y < y
Axiom. (nonneg_mul_SNo_Le') We take the following as an axiom:
∀x y z, SNo xSNo ySNo z0zxyx * zy * z
Axiom. (mul_SNo_Le1_nonneg_Le) We take the following as an axiom:
∀x y, SNo xSNo yx10yx * yy
Axiom. (pos_mul_SNo_Lt2) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w0 < x0 < yx < zy < wx * y < z * w
Axiom. (nonneg_mul_SNo_Le2) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w0x0yxzywx * yz * w
Axiom. (mul_SNo_pos_pos) We take the following as an axiom:
∀x y, SNo xSNo y0 < x0 < y0 < x * y
Axiom. (mul_SNo_pos_neg) We take the following as an axiom:
∀x y, SNo xSNo y0 < xy < 0x * y < 0
Axiom. (mul_SNo_neg_pos) We take the following as an axiom:
∀x y, SNo xSNo yx < 00 < yx * y < 0
Axiom. (mul_SNo_neg_neg) We take the following as an axiom:
∀x y, SNo xSNo yx < 0y < 00 < x * y
Axiom. (SNo_sqr_nonneg) We take the following as an axiom:
∀x, SNo x0x * x
Axiom. (SNo_zero_or_sqr_pos) We take the following as an axiom:
∀x, SNo xx = 00 < x * x
Axiom. (SNo_foil) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y) * (z + w) = x * z + x * w + y * z + y * w
Axiom. (mul_SNo_minus_minus) We take the following as an axiom:
∀x y, SNo xSNo y(- x) * (- y) = x * y
Axiom. (mul_SNo_com_3_0_1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * y * z = y * x * z
Axiom. (mul_SNo_com_3b_1_2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z(x * y) * z = (x * z) * y
Axiom. (mul_SNo_com_4_inner_mid) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x * y) * (z * w) = (x * z) * (y * w)
Axiom. (mul_SNo_rotate_3_1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * y * z = z * x * y
Axiom. (mul_SNo_rotate_4_1) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx * y * z * w = w * x * y * z
Axiom. (SNo_foil_mm) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + - y) * (z + - w) = x * z + - x * w + - y * z + y * w
Axiom. (mul_SNo_nonzero_cancel) We take the following as an axiom:
∀x y z, SNo xx0SNo ySNo zx * y = x * zy = z
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.
Definition. We define exp_SNo_nat to be λn m : setnat_primrec 1 (λ_ r ⇒ n * r) m of type setsetset.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term exp_SNo_nat.
Axiom. (exp_SNo_nat_0) We take the following as an axiom:
∀x, SNo xx ^ 0 = 1
Axiom. (exp_SNo_nat_S) We take the following as an axiom:
∀x, SNo x∀n, nat_p nx ^ (ordsucc n) = x * x ^ n
Axiom. (SNo_exp_SNo_nat) We take the following as an axiom:
∀x, SNo x∀n, nat_p nSNo (x ^ n)
Axiom. (nat_exp_SNo_nat) We take the following as an axiom:
∀x, nat_p x∀n, nat_p nnat_p (x ^ n)
Axiom. (eps_ordsucc_half_add) We take the following as an axiom:
∀n, nat_p neps_ (ordsucc n) + eps_ (ordsucc n) = eps_ n
Axiom. (eps_1_half_eq1) We take the following as an axiom:
eps_ 1 + eps_ 1 = 1
Axiom. (eps_1_half_eq2) We take the following as an axiom:
2 * eps_ 1 = 1
Axiom. (double_eps_1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + x = y + zx = eps_ 1 * (y + z)
Axiom. (exp_SNo_1_bd) We take the following as an axiom:
∀x, SNo x1x∀n, nat_p n1x ^ n
Axiom. (exp_SNo_2_bd) We take the following as an axiom:
∀n, nat_p nn < 2 ^ n
Axiom. (mul_SNo_eps_power_2) We take the following as an axiom:
∀n, nat_p neps_ n * 2 ^ n = 1
Axiom. (eps_bd_1) We take the following as an axiom:
∀n ∈ ω, eps_ n1
Axiom. (mul_SNo_eps_power_2') We take the following as an axiom:
∀n, nat_p n2 ^ n * eps_ n = 1
Axiom. (exp_SNo_nat_mul_add) We take the following as an axiom:
∀x, SNo x∀m, nat_p m∀n, nat_p nx ^ m * x ^ n = x ^ (m + n)
Axiom. (exp_SNo_nat_mul_add') We take the following as an axiom:
∀x, SNo x∀m n ∈ ω, x ^ m * x ^ n = x ^ (m + n)
Axiom. (exp_SNo_nat_pos) We take the following as an axiom:
∀x, SNo x0 < x∀n, nat_p n0 < x ^ n
Axiom. (mul_SNo_eps_eps_add_SNo) We take the following as an axiom:
∀m n ∈ ω, eps_ m * eps_ n = eps_ (m + n)
Axiom. (SNoS_omega_Lev_equip) We take the following as an axiom:
∀n, nat_p nequip {x ∈ SNoS_ ω|SNoLev x = n} (2 ^ n)
Axiom. (SNoS_finite) We take the following as an axiom:
∀n ∈ ω, finite (SNoS_ n)
Axiom. (SNoS_omega_SNoL_finite) We take the following as an axiom:
∀x ∈ SNoS_ ω, finite (SNoL x)
Axiom. (SNoS_omega_SNoR_finite) We take the following as an axiom:
∀x ∈ SNoS_ ω, finite (SNoR x)
End of Section SurrealExp
Beginning of Section Int
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_SNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_SNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_SNo.
Object. The name int is a term of type set.
Axiom. (int_SNo_cases) We take the following as an axiom:
∀p : setprop, (∀n ∈ ω, p n)(∀n ∈ ω, p (- n))∀x ∈ int, p x
Axiom. (int_SNo) We take the following as an axiom:
∀x ∈ int, SNo x
Axiom. (Subq_omega_int) We take the following as an axiom:
ωint
Axiom. (int_minus_SNo_omega) We take the following as an axiom:
∀n ∈ ω, - nint
Axiom. (int_add_SNo_lem) We take the following as an axiom:
∀n ∈ ω, ∀m, nat_p m- n + mint
Axiom. (int_add_SNo) We take the following as an axiom:
∀x y ∈ int, x + yint
Axiom. (int_minus_SNo) We take the following as an axiom:
∀x ∈ int, - xint
Axiom. (int_mul_SNo) We take the following as an axiom:
∀x y ∈ int, x * yint
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 0x then x else - x of type setset.
Axiom. (nonneg_abs_SNo) We take the following as an axiom:
∀x, 0xabs_SNo x = x
Axiom. (not_nonneg_abs_SNo) We take the following as an axiom:
∀x, ¬ (0x)abs_SNo x = - x
Axiom. (abs_SNo_0) We take the following as an axiom:
abs_SNo 0 = 0
Axiom. (pos_abs_SNo) We take the following as an axiom:
∀x, 0 < xabs_SNo x = x
Axiom. (neg_abs_SNo) We take the following as an axiom:
∀x, SNo xx < 0abs_SNo x = - x
Axiom. (SNo_abs_SNo) We take the following as an axiom:
∀x, SNo xSNo (abs_SNo x)
Axiom. (abs_SNo_Lev) We take the following as an axiom:
∀x, SNo xSNoLev (abs_SNo x) = SNoLev x
Axiom. (abs_SNo_minus) We take the following as an axiom:
∀x, SNo xabs_SNo (- x) = abs_SNo x
Axiom. (abs_SNo_dist_swap) We take the following as an axiom:
∀x y, SNo xSNo yabs_SNo (x + - y) = abs_SNo (y + - x)
Axiom. (SNo_triangle) We take the following as an axiom:
∀x y, SNo xSNo yabs_SNo (x + y)abs_SNo x + abs_SNo y
Axiom. (SNo_triangle2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zabs_SNo (x + - z)abs_SNo (x + - y) + abs_SNo (y + - z)
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 ⇒ xXSNo x∀y ∈ X, SNo yyx of type setsetprop.
Definition. We define SNo_min_of to be λX x ⇒ xXSNo x∀y ∈ X, SNo yxy of type setsetprop.
Axiom. (minus_SNo_max_min) We take the following as an axiom:
∀X y, (∀x ∈ X, SNo x)SNo_max_of X ySNo_min_of {- x|x ∈ X} (- y)
Axiom. (minus_SNo_max_min') We take the following as an axiom:
∀X y, (∀x ∈ X, SNo x)SNo_max_of {- x|x ∈ X} ySNo_min_of X (- y)
Axiom. (minus_SNo_min_max) We take the following as an axiom:
∀X y, (∀x ∈ X, SNo x)SNo_min_of X ySNo_max_of {- x|x ∈ X} (- y)
Axiom. (double_SNo_max_1) We take the following as an axiom:
∀x y, SNo xSNo_max_of (SNoL x) y∀z, SNo zx < zy + z < x + x∃w ∈ SNoR z, y + w = x + x
Axiom. (double_SNo_min_1) We take the following as an axiom:
∀x y, SNo xSNo_min_of (SNoR x) y∀z, SNo zz < xx + x < y + z∃w ∈ SNoL z, y + w = x + x
Axiom. (finite_max_exists) We take the following as an axiom:
∀X, (∀x ∈ X, SNo x)finite XX0∃x, SNo_max_of X x
Axiom. (finite_min_exists) We take the following as an axiom:
∀X, (∀x ∈ X, SNo x)finite XX0∃x, SNo_min_of X x
Axiom. (SNoS_omega_SNoL_max_exists) We take the following as an axiom:
∀x ∈ SNoS_ ω, SNoL x = 0∃y, SNo_max_of (SNoL x) y
Axiom. (SNoS_omega_SNoR_min_exists) We take the following as an axiom:
∀x ∈ SNoS_ ω, SNoR x = 0∃y, SNo_min_of (SNoR x) y
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.
Axiom. (nonneg_diadic_rational_p_SNoS_omega) We take the following as an axiom:
∀k ∈ ω, ∀n, nat_p neps_ k * nSNoS_ ω
Definition. We define diadic_rational_p to be λx ⇒ ∃k ∈ ω, ∃m ∈ int, x = eps_ k * m of type setprop.
Axiom. (diadic_rational_p_SNoS_omega) We take the following as an axiom:
∀x, diadic_rational_p xxSNoS_ ω
Axiom. (int_diadic_rational_p) We take the following as an axiom:
Axiom. (omega_diadic_rational_p) We take the following as an axiom:
∀m ∈ ω, diadic_rational_p m
Axiom. (eps_diadic_rational_p) We take the following as an axiom:
∀k ∈ ω, diadic_rational_p (eps_ k)
Axiom. (minus_SNo_diadic_rational_p) We take the following as an axiom:
Axiom. (mul_SNo_diadic_rational_p) We take the following as an axiom:
Axiom. (add_SNo_diadic_rational_p) We take the following as an axiom:
Axiom. (SNoS_omega_diadic_rational_p_lem) We take the following as an axiom:
∀n, nat_p n∀x, SNo xSNoLev x = ndiadic_rational_p x
Axiom. (SNoS_omega_diadic_rational_p) We take the following as an axiom:
Axiom. (mul_SNo_SNoS_omega) We take the following as an axiom:
∀x y ∈ SNoS_ ω, x * ySNoS_ ω
End of Section DiadicRationals

Part 8

Beginning of Section Reals
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_SNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_SNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_SNo.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term SNoLt.
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term SNoLe.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term exp_SNo_nat.
Theorem. (SNoS_omega_drat_intvl) The following is provable:
∀x ∈ SNoS_ ω, ∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k
Proof:
Let x be given.
Assume Hx.
Apply SNoS_E2 ω omega_ordinal x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4.
Let k be given.
Assume Hk.
We will prove ∃q ∈ SNoS_ ω, q < xx < q + eps_ k.
We prove the intermediate claim Lk1: SNo (eps_ (ordsucc k)).
An exact proof term for the current goal is SNo_eps_ (ordsucc k) (omega_ordsucc k Hk).
We use x + - eps_ (ordsucc k) to witness the existential quantifier.
Apply andI to the current goal.
We will prove x + - eps_ (ordsucc k)SNoS_ ω.
An exact proof term for the current goal is add_SNo_SNoS_omega x Hx (- eps_ (ordsucc k)) (minus_SNo_SNoS_omega (eps_ (ordsucc k)) (SNo_eps_SNoS_omega (ordsucc k) (omega_ordsucc k Hk))).
Apply andI to the current goal.
We will prove x + - eps_ (ordsucc k) < x.
Apply add_SNo_minus_Lt1b x (eps_ (ordsucc k)) x Hx3 Lk1 Hx3 to the current goal.
We will prove x < x + eps_ (ordsucc k).
An exact proof term for the current goal is add_SNo_eps_Lt x Hx3 (ordsucc k) (omega_ordsucc k Hk).
We will prove x < (x + - eps_ (ordsucc k)) + eps_ k.
rewrite the current goal using eps_ordsucc_half_add k (omega_nat_p k Hk) (from right to left).
We will prove x < (x + - eps_ (ordsucc k)) + (eps_ (ordsucc k) + eps_ (ordsucc k)).
rewrite the current goal using add_SNo_com_4_inner_mid x (- eps_ (ordsucc k)) (eps_ (ordsucc k)) (eps_ (ordsucc k)) Hx3 (SNo_minus_SNo (eps_ (ordsucc k)) Lk1) Lk1 Lk1 (from left to right).
We will prove x < (x + eps_ (ordsucc k)) + (- eps_ (ordsucc k) + eps_ (ordsucc k)).
rewrite the current goal using add_SNo_minus_SNo_linv (eps_ (ordsucc k)) Lk1 (from left to right).
rewrite the current goal using add_SNo_0R (x + eps_ (ordsucc k)) (SNo_add_SNo x (eps_ (ordsucc k)) Hx3 Lk1) (from left to right).
We will prove x < x + eps_ (ordsucc k).
An exact proof term for the current goal is add_SNo_eps_Lt x Hx3 (ordsucc k) (omega_ordsucc k Hk).
Theorem. (SNoS_ordsucc_omega_bdd_above) The following is provable:
∀x ∈ SNoS_ (ordsucc ω), x < ω∃N ∈ ω, x < N
Proof:
Let x be given.
Assume Hx1 Hx2.
Apply SNoS_E2 (ordsucc ω) ordsucc_omega_ordinal x Hx1 to the current goal.
Assume Hx1a Hx1b Hx1c Hx1d.
Apply SNoLtE x ω Hx1c SNo_omega Hx2 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev zSNoLev xSNoLev ω.
Assume Hz3: SNoEq_ (SNoLev z) z x.
Assume Hz4: SNoEq_ (SNoLev z) z ω.
Assume Hz5: x < z.
Assume Hz6: z < ω.
Assume Hz7: SNoLev zx.
Assume Hz8: SNoLev zω.
We prove the intermediate claim Lz1: ordinal (SNoLev z).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is Hz1.
We prove the intermediate claim Lz2: SNo (SNoLev z).
Apply ordinal_SNo to the current goal.
An exact proof term for the current goal is Lz1.
We use (SNoLev z) to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hz8.
We will prove x < SNoLev z.
Apply SNoLtLe_tra x z (SNoLev z) Hx1c Hz1 Lz2 Hz5 to the current goal.
We will prove zSNoLev z.
Apply ordinal_SNoLev_max_2 (SNoLev z) Lz1 z Hz1 to the current goal.
We will prove SNoLev zordsucc (SNoLev z).
Apply ordsuccI2 to the current goal.
Assume H1: SNoLev xSNoLev ω.
Assume H2: SNoEq_ (SNoLev x) x ω.
Assume H3: SNoLev xω.
We prove the intermediate claim Lx1: ordinal (SNoLev x).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is Hx1c.
We prove the intermediate claim Lx2: ordinal (ordsucc (SNoLev x)).
Apply ordinal_ordsucc to the current goal.
An exact proof term for the current goal is Lx1.
We use (ordsucc (SNoLev x)) to witness the existential quantifier.
Apply andI to the current goal.
Apply omega_ordsucc to the current goal.
An exact proof term for the current goal is H3.
We will prove x < ordsucc (SNoLev x).
Apply ordinal_SNoLev_max (ordsucc (SNoLev x)) Lx2 x Hx1c to the current goal.
We will prove SNoLev xordsucc (SNoLev x).
Apply ordsuccI2 to the current goal.
rewrite the current goal using ordinal_SNoLev ω omega_ordinal (from left to right).
Assume H1: ωSNoLev x.
We will prove False.
Apply ordsuccE ω (SNoLev x) Hx1a to the current goal.
Assume H2: SNoLev xω.
An exact proof term for the current goal is In_no2cycle (SNoLev x) ω H2 H1.
Assume H2: SNoLev x = ω.
Apply In_irref ω to the current goal.
rewrite the current goal using H2 (from right to left) at position 2.
An exact proof term for the current goal is H1.
Theorem. (SNoS_ordsucc_omega_bdd_below) The following is provable:
∀x ∈ SNoS_ (ordsucc ω), - ω < x∃N ∈ ω, - N < x
Proof:
Let x be given.
Assume Hx1 Hx2.
Apply SNoS_E2 (ordsucc ω) ordsucc_omega_ordinal x Hx1 to the current goal.
Assume Hx1a Hx1b Hx1c Hx1d.
We prove the intermediate claim Lx1: - xSNoS_ (ordsucc ω).
An exact proof term for the current goal is minus_SNo_SNoS_ (ordsucc ω) ordsucc_omega_ordinal x Hx1.
We prove the intermediate claim Lx2: - x < ω.
Apply minus_SNo_Lt_contra1 ω x SNo_omega Hx1c to the current goal.
We will prove - ω < x.
An exact proof term for the current goal is Hx2.
Apply SNoS_ordsucc_omega_bdd_above (- x) Lx1 Lx2 to the current goal.
Let N be given.
Assume HN.
Apply HN to the current goal.
Assume HN1: Nω.
Assume HN2: - 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 HN1.
We will prove - N < x.
Apply minus_SNo_Lt_contra1 x N Hx1c (omega_SNo N HN1) to the current goal.
We will prove - x < N.
An exact proof term for the current goal is HN2.
Theorem. (SNoS_ordsucc_omega_bdd_drat_intvl) The following is provable:
∀x ∈ SNoS_ (ordsucc ω), - ω < xx < ω∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k
Proof:
Let x be given.
Assume Hx1 Hx2 Hx3.
Apply SNoS_E2 (ordsucc ω) ordsucc_omega_ordinal x Hx1 to the current goal.
Assume Hx1a Hx1b Hx1c Hx1d.
Apply dneg to the current goal.
Assume HC: ¬ (∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k).
We prove the intermediate claim L1: xSNoS_ ω.
Assume H1: xSNoS_ ω.
Apply HC to the current goal.
An exact proof term for the current goal is SNoS_omega_drat_intvl x H1.
We prove the intermediate claim L2: ∀k, nat_p k∃q ∈ SNoS_ ω, q < xx < q + eps_ k.
Apply nat_ind to the current goal.
We will prove ∃q ∈ SNoS_ ω, q < xx < q + eps_ 0.
rewrite the current goal using eps_0_1 (from left to right).
We will prove ∃q ∈ SNoS_ ω, q < xx < q + 1.
We prove the intermediate claim L1a: ∀N, nat_p N- N < xx < N∃q ∈ SNoS_ ω, q < xx < q + 1.
Apply nat_ind to the current goal.
rewrite the current goal using minus_SNo_0 (from left to right).
Assume H1: 0 < x.
Assume H2: x < 0.
We will prove False.
Apply SNoLt_irref x to the current goal.
An exact proof term for the current goal is SNoLt_tra x 0 x Hx1c SNo_0 Hx1c H2 H1.
Let N be given.
Assume HN.
Assume IHN: - N < xx < N∃q ∈ SNoS_ ω, q < xx < q + 1.
Assume H1: - ordsucc N < x.
Assume H2: x < ordsucc N.
We will prove ∃q ∈ SNoS_ ω, q < xx < q + 1.
We prove the intermediate claim LN1: SNo N.
An exact proof term for the current goal is nat_p_SNo N HN.
We prove the intermediate claim LN2: SNo (- N).
An exact proof term for the current goal is SNo_minus_SNo N LN1.
We prove the intermediate claim LN3: NSNoS_ ω.
Apply omega_SNoS_omega to the current goal.
An exact proof term for the current goal is nat_p_omega N HN.
Apply SNoLt_trichotomy_or_impred x N Hx1c LN1 to the current goal.
Assume H3: x < N.
Apply SNoLt_trichotomy_or_impred x (- N) Hx1c LN2 to the current goal.
Assume H4: x < - N.
We use (- ordsucc N) to witness the existential quantifier.
Apply andI to the current goal.
We will prove - ordsucc NSNoS_ ω.
Apply minus_SNo_SNoS_omega to the current goal.
We will prove ordsucc NSNoS_ ω.
Apply omega_SNoS_omega to the current goal.
Apply omega_ordsucc to the current goal.
Apply nat_p_omega to the current goal.
An exact proof term for the current goal is HN.
Apply andI to the current goal.
We will prove - ordsucc N < x.
An exact proof term for the current goal is H1.
We will prove x < - ordsucc N + 1.
rewrite the current goal using add_SNo_1_ordsucc N (nat_p_omega N HN) (from right to left).
We will prove x < - (N + 1) + 1.
rewrite the current goal using minus_add_SNo_distr N 1 LN1 SNo_1 (from left to right).
We will prove x < (- N + - 1) + 1.
rewrite the current goal using add_SNo_minus_R2' (- N) 1 LN2 SNo_1 (from left to right).
We will prove x < - N.
An exact proof term for the current goal is H4.
Assume H4: x = - N.
We will prove False.
Apply L1 to the current goal.
We will prove xSNoS_ ω.
rewrite the current goal using H4 (from left to right).
Apply minus_SNo_SNoS_omega to the current goal.
We will prove NSNoS_ ω.
An exact proof term for the current goal is LN3.
Assume H4: - N < x.
An exact proof term for the current goal is IHN H4 H3.
Assume H3: x = N.
We will prove False.
Apply L1 to the current goal.
We will prove xSNoS_ ω.
rewrite the current goal using H3 (from left to right).
We will prove NSNoS_ ω.
An exact proof term for the current goal is LN3.
Assume H3: N < x.
We use N to witness the existential quantifier.
Apply andI to the current goal.
We will prove NSNoS_ ω.
An exact proof term for the current goal is LN3.
Apply andI to the current goal.
We will prove N < x.
An exact proof term for the current goal is H3.
We will prove x < N + 1.
rewrite the current goal using add_SNo_1_ordsucc N (nat_p_omega N HN) (from left to right).
We will prove x < ordsucc N.
An exact proof term for the current goal is H2.
Apply SNoS_ordsucc_omega_bdd_above x Hx1 Hx3 to the current goal.
Let N be given.
Assume HN.
Apply HN to the current goal.
Assume HN1: Nω.
Assume HN2: x < N.
Apply SNoS_ordsucc_omega_bdd_below x Hx1 Hx2 to the current goal.
Let N' be given.
Assume HN'.
Apply HN' to the current goal.
Assume HN'1: N'ω.
Assume HN'2: - N' < x.
Apply SNoLt_trichotomy_or_impred N N' (omega_SNo N HN1) (omega_SNo N' HN'1) to the current goal.
Assume H1: N < N'.
Apply L1a N' (omega_nat_p N' HN'1) HN'2 to the current goal.
We will prove x < N'.
An exact proof term for the current goal is SNoLt_tra x N N' Hx1c (omega_SNo N HN1) (omega_SNo N' HN'1) HN2 H1.
Assume H1: N = N'.
Apply L1a N' (omega_nat_p N' HN'1) HN'2 to the current goal.
We will prove x < N'.
rewrite the current goal using H1 (from right to left).
An exact proof term for the current goal is HN2.
Assume H1: N' < N.
Apply L1a N (omega_nat_p N HN1) to the current goal.
We will prove - N < x.
Apply SNoLt_tra (- N) (- N') x (SNo_minus_SNo N (omega_SNo N HN1)) (SNo_minus_SNo N' (omega_SNo N' HN'1)) Hx1c to the current goal.
We will prove - N < - N'.
Apply minus_SNo_Lt_contra N' N (omega_SNo N' HN'1) (omega_SNo N HN1) to the current goal.
An exact proof term for the current goal is H1.
We will prove - N' < x.
An exact proof term for the current goal is HN'2.
We will prove x < N.
An exact proof term for the current goal is HN2.
Let k be given.
Assume Hk.
Assume IHk.
Apply IHk to the current goal.
Let q be given.
Assume H.
Apply H to the current goal.
Assume Hq1: qSNoS_ ω.
Assume H.
Apply H to the current goal.
Assume Hq2: q < x.
Assume Hq3: x < q + eps_ k.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
We will prove ∃q ∈ SNoS_ ω, q < xx < q + eps_ (ordsucc k).
Apply SNoLt_trichotomy_or_impred x (q + eps_ (ordsucc k)) Hx1c (SNo_add_SNo q (eps_ (ordsucc k)) Hq1c (SNo_eps_ (ordsucc k) (omega_ordsucc k (nat_p_omega k Hk)))) to the current goal.
Assume H1: x < q + eps_ (ordsucc k).
We use q to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hq1.
Apply andI to the current goal.
An exact proof term for the current goal is Hq2.
An exact proof term for the current goal is H1.
Assume H1: x = q + eps_ (ordsucc k).
We will prove False.
Apply L1 to the current goal.
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is add_SNo_SNoS_omega q Hq1 (eps_ (ordsucc k)) (SNo_eps_SNoS_omega (ordsucc k) (omega_ordsucc k (nat_p_omega k Hk))).
Assume H1: q + eps_ (ordsucc k) < x.
We use (q + eps_ (ordsucc k)) to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is add_SNo_SNoS_omega q Hq1 (eps_ (ordsucc k)) (SNo_eps_SNoS_omega (ordsucc k) (omega_ordsucc k (nat_p_omega k Hk))).
Apply andI to the current goal.
An exact proof term for the current goal is H1.
We will prove x < (q + eps_ (ordsucc k)) + eps_ (ordsucc k).
rewrite the current goal using add_SNo_assoc q (eps_ (ordsucc k)) (eps_ (ordsucc k)) Hq1c (SNo_eps_ (ordsucc k) (omega_ordsucc k (nat_p_omega k Hk))) (SNo_eps_ (ordsucc k) (omega_ordsucc k (nat_p_omega k Hk))) (from right to left).
We will prove x < q + (eps_ (ordsucc k) + eps_ (ordsucc k)).
rewrite the current goal using eps_ordsucc_half_add k Hk (from left to right).
We will prove x < q + eps_ k.
An exact proof term for the current goal is Hq3.
Apply HC to the current goal.
Let k be given.
Assume Hk.
An exact proof term for the current goal is L2 k (omega_nat_p k Hk).
Definition. We define real to be {x ∈ SNoS_ (ordsucc ω)|xωx- ω(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)} of type set.
Theorem. (real_I) The following is provable:
∀x ∈ SNoS_ (ordsucc ω), xωx- ω(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)xreal
Proof:
Let x be given.
Assume Hx H1 H2 H3.
We will prove x{x ∈ SNoS_ (ordsucc ω)|xωx- ω(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)}.
Apply SepI to the current goal.
An exact proof term for the current goal is Hx.
We will prove xωx- ω(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x).
Apply and3I to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is H2.
An exact proof term for the current goal is H3.
Theorem. (real_E) The following is provable:
∀x ∈ real, ∀p : prop, (SNo xSNoLev xordsucc ωxSNoS_ (ordsucc ω)- ω < xx < ω(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)(∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k)p)p
Proof:
Let x be given.
Assume Hx.
Let p be given.
Assume Hp.
Apply SepE (SNoS_ (ordsucc ω)) (λx ⇒ xωx- ω(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)) x Hx to the current goal.
Assume H1 H2.
Apply H2 to the current goal.
Assume H2.
Apply H2 to the current goal.
Assume H2: xω.
Assume H3: x- ω.
Assume H4.
Apply SNoS_E2 (ordsucc ω) ordsucc_omega_ordinal x H1 to the current goal.
Assume H1a H1b H1c H1d.
We prove the intermediate claim L1: x < ω.
We prove the intermediate claim L1a: xω.
Apply ordinal_SNoLev_max_2 ω omega_ordinal x H1c to the current goal.
We will prove SNoLev xordsucc ω.
An exact proof term for the current goal is H1a.
Apply SNoLeE x ω H1c SNo_omega L1a to the current goal.
Assume H.
An exact proof term for the current goal is H.
Assume H: x = ω.
We will prove False.
An exact proof term for the current goal is H2 H.
We prove the intermediate claim L2: - ω < x.
We prove the intermediate claim L2a: - ωx.
Apply mordinal_SNoLev_min_2 ω omega_ordinal x H1c to the current goal.
We will prove SNoLev xordsucc ω.
An exact proof term for the current goal is H1a.
Apply SNoLeE (- ω) x (SNo_minus_SNo ω SNo_omega) H1c L2a to the current goal.
Assume H.
An exact proof term for the current goal is H.
Assume H: - ω = x.
We will prove False.
Apply H3 to the current goal.
Use symmetry.
An exact proof term for the current goal is H.
We prove the intermediate claim L3: ∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k.
An exact proof term for the current goal is SNoS_ordsucc_omega_bdd_drat_intvl x H1 L2 L1.
An exact proof term for the current goal is Hp H1c H1a H1 L2 L1 H4 L3.
Theorem. (real_SNo) The following is provable:
∀x ∈ real, SNo x
Proof:
Let x be given.
Assume Hx.
Apply real_E x Hx to the current goal.
Assume Hx1 _ _ _ _ _ _.
An exact proof term for the current goal is Hx1.
Theorem. (real_SNoS_omega_prop) The following is provable:
∀x ∈ real, ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x
Proof:
Let x be given.
Assume Hx.
Apply real_E x Hx to the current goal.
Assume _ _ _ _ _ Hx6 _.
An exact proof term for the current goal is Hx6.
Theorem. (SNoS_omega_real) The following is provable:
Proof:
Let x be given.
Assume Hx: xSNoS_ ω.
Apply SNoS_E2 ω omega_ordinal x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4.
Apply real_I to the current goal.
We will prove xSNoS_ (ordsucc ω).
An exact proof term for the current goal is Hx.
We will prove xω.
Assume H1: x = ω.
Apply In_irref (SNoLev x) to the current goal.
We will prove SNoLev xSNoLev x.
rewrite the current goal using H1 (from left to right) at position 2.
We will prove SNoLev xSNoLev ω.
rewrite the current goal using ordinal_SNoLev ω omega_ordinal (from left to right).
An exact proof term for the current goal is Hx1.
We will prove x- ω.
Assume H1: x = - ω.
Apply In_irref (SNoLev x) to the current goal.
We will prove SNoLev xSNoLev x.
rewrite the current goal using H1 (from left to right) at position 2.
We will prove SNoLev xSNoLev (- ω).
rewrite the current goal using minus_SNo_Lev ω SNo_omega (from left to right).
We will prove SNoLev xSNoLev ω.
rewrite the current goal using ordinal_SNoLev ω omega_ordinal (from left to right).
An exact proof term for the current goal is Hx1.
Let q be given.
Assume Hq: qSNoS_ ω.
Assume H1: ∀k ∈ ω, abs_SNo (q + - x) < eps_ k.
Apply SNoS_E2 ω omega_ordinal q Hq to the current goal.
Assume Hq1 Hq2 Hq3 Hq4.
We will prove q = x.
Apply SNoLt_trichotomy_or_impred q x Hq3 Hx3 to the current goal.
Assume Hqx: q < x.
We will prove False.
We prove the intermediate claim L1: 0 < x + - q.
Apply SNoLt_minus_pos q x Hq3 Hx3 to the current goal.
An exact proof term for the current goal is Hqx.
We prove the intermediate claim L2: x + - qSNoS_ ω.
An exact proof term for the current goal is add_SNo_SNoS_omega x Hx (- q) (minus_SNo_SNoS_omega q Hq).
Apply SNoS_E2 ω omega_ordinal (x + - q) L2 to the current goal.
Assume H2: SNoLev (x + - q)ω.
Assume H3: ordinal (SNoLev (x + - q)).
Assume H4: SNo (x + - q).
Assume H5: SNo_ (SNoLev (x + - q)) (x + - q).
Apply SNoLt_irref (x + - q) to the current goal.
Apply SNoLt_tra (x + - q) (eps_ (SNoLev (x + - q))) (x + - q) H4 (SNo_eps_ (SNoLev (x + - q)) H2) H4 to the current goal.
We will prove x + - q < eps_ (SNoLev (x + - q)).
We prove the intermediate claim L3: abs_SNo (q + - x) = x + - q.
rewrite the current goal using abs_SNo_dist_swap q x Hq3 Hx3 (from left to right).
An exact proof term for the current goal is pos_abs_SNo (x + - q) L1.
rewrite the current goal using L3 (from right to left) at position 1.
An exact proof term for the current goal is H1 (SNoLev (x + - q)) H2.
We will prove eps_ (SNoLev (x + - q)) < x + - q.
Apply SNo_pos_eps_Lt (SNoLev (x + - q)) (omega_nat_p (SNoLev (x + - q)) H2) (x + - q) to the current goal.
We will prove (x + - q)SNoS_ (ordsucc (SNoLev (x + - q))).
Apply SNoS_I (ordsucc (SNoLev (x + - q))) (ordinal_ordsucc (SNoLev (x + - q)) H3) (x + - q) (SNoLev (x + - q)) to the current goal.
Apply ordsuccI2 to the current goal.
An exact proof term for the current goal is H5.
An exact proof term for the current goal is L1.
Assume Hqx: q = x.
An exact proof term for the current goal is Hqx.
Assume Hxq: x < q.
We will prove False.
We prove the intermediate claim L4: 0 < q + - x.
Apply SNoLt_minus_pos x q Hx3 Hq3 to the current goal.
An exact proof term for the current goal is Hxq.
We prove the intermediate claim L5: q + - xSNoS_ ω.
An exact proof term for the current goal is add_SNo_SNoS_omega q Hq (- x) (minus_SNo_SNoS_omega x Hx).
Apply SNoS_E2 ω omega_ordinal (q + - x) L5 to the current goal.
Assume H2: SNoLev (q + - x)ω.
Assume H3: ordinal (SNoLev (q + - x)).
Assume H4: SNo (q + - x).
Assume H5: SNo_ (SNoLev (q + - x)) (q + - x).
Apply SNoLt_irref (q + - x) to the current goal.
Apply SNoLt_tra (q + - x) (eps_ (SNoLev (q + - x))) (q + - x) H4 (SNo_eps_ (SNoLev (q + - x)) H2) H4 to the current goal.
We will prove q + - x < eps_ (SNoLev (q + - x)).
We prove the intermediate claim L6: abs_SNo (q + - x) = q + - x.
An exact proof term for the current goal is pos_abs_SNo (q + - x) L4.
rewrite the current goal using L6 (from right to left) at position 1.
An exact proof term for the current goal is H1 (SNoLev (q + - x)) H2.
We will prove eps_ (SNoLev (q + - x)) < q + - x.
Apply SNo_pos_eps_Lt (SNoLev (q + - x)) (omega_nat_p (SNoLev (q + - x)) H2) (q + - x) to the current goal.
We will prove (q + - x)SNoS_ (ordsucc (SNoLev (q + - x))).
Apply SNoS_I (ordsucc (SNoLev (q + - x))) (ordinal_ordsucc (SNoLev (q + - x)) H3) (q + - x) (SNoLev (q + - x)) to the current goal.
Apply ordsuccI2 to the current goal.
An exact proof term for the current goal is H5.
An exact proof term for the current goal is L4.
Theorem. (real_0) The following is provable:
0real
Proof:
An exact proof term for the current goal is SNoS_omega_real 0 (omega_SNoS_omega 0 (nat_p_omega 0 nat_0)).
Theorem. (real_1) The following is provable:
1real
Proof:
An exact proof term for the current goal is SNoS_omega_real 1 (omega_SNoS_omega 1 (nat_p_omega 1 nat_1)).
Theorem. (SNoLev_In_real_SNoS_omega) The following is provable:
∀x ∈ real, ∀w, SNo wSNoLev wSNoLev xwSNoS_ ω
Proof:
Let x be given.
Assume Hx.
Let w be given.
Assume Hw1 Hw2.
Apply real_E x Hx to the current goal.
Assume Hx1: SNo x.
Assume Hx2: SNoLev xordsucc ω.
Assume _ _ _ _ _.
We prove the intermediate claim L1: SNoLev wω.
Apply ordsuccE ω (SNoLev x) Hx2 to the current goal.
Assume H1: SNoLev xω.
An exact proof term for the current goal is omega_TransSet (SNoLev x) H1 (SNoLev w) Hw2.
Assume H1: SNoLev x = ω.
rewrite the current goal using H1 (from right to left).
An exact proof term for the current goal is Hw2.
Apply SNoS_I ω omega_ordinal w (SNoLev w) L1 to the current goal.
We will prove SNo_ (SNoLev w) w.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hw1.
Theorem. (minus_SNo_prereal_1) The following is provable:
∀x, SNo x(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - - x) < eps_ k)q = - x)
Proof:
Let x be given.
Assume Hx H1.
Let q be given.
Assume Hq1: qSNoS_ ω.
rewrite the current goal using minus_SNo_invol x Hx (from left to right).
Assume Hq2: ∀k ∈ ω, abs_SNo (q + x) < eps_ k.
We will prove q = - x.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
rewrite the current goal using minus_SNo_invol q Hq1c (from right to left).
We will prove - - q = - x.
Use f_equal.
We will prove - q = x.
Apply H1 (- q) (minus_SNo_SNoS_omega q Hq1) to the current goal.
Let k be given.
Assume Hk.
We will prove abs_SNo (- q + - x) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap (- q) x (SNo_minus_SNo q Hq1c) Hx (from left to right).
We will prove abs_SNo (x + - - q) < eps_ k.
rewrite the current goal using minus_SNo_invol q Hq1c (from left to right).
We will prove abs_SNo (x + q) < eps_ k.
rewrite the current goal using add_SNo_com x q Hx Hq1c (from left to right).
We will prove abs_SNo (q + x) < eps_ k.
An exact proof term for the current goal is Hq2 k Hk.
Theorem. (minus_SNo_prereal_2) The following is provable:
∀x, SNo x(∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k)(∀k ∈ ω, ∃q ∈ SNoS_ ω, q < - x- x < q + eps_ k)
Proof:
Let x be given.
Assume Hx H1.
Let k be given.
Assume Hk.
Apply H1 k Hk to the current goal.
Let q be given.
Assume Hq.
Apply Hq to the current goal.
Assume Hq1: qSNoS_ ω.
Assume Hq.
Apply Hq to the current goal.
Assume Hq2: q < x.
Assume Hq3: x < q + eps_ k.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
We prove the intermediate claim Lqk: SNo (q + eps_ k).
An exact proof term for the current goal is SNo_add_SNo q (eps_ k) Hq1c (SNo_eps_ k Hk).
We use (- (q + eps_ k)) to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is minus_SNo_SNoS_omega (q + eps_ k) (add_SNo_SNoS_omega q Hq1 (eps_ k) (SNo_eps_SNoS_omega k Hk)).
Apply andI to the current goal.
We will prove - (q + eps_ k) < - x.
Apply minus_SNo_Lt_contra x (q + eps_ k) Hx Lqk to the current goal.
We will prove x < q + eps_ k.
An exact proof term for the current goal is Hq3.
We will prove - x < - (q + eps_ k) + eps_ k.
rewrite the current goal using minus_add_SNo_distr q (eps_ k) Hq1c (SNo_eps_ k Hk) (from left to right).
We will prove - x < (- q + - eps_ k) + eps_ k.
rewrite the current goal using add_SNo_minus_R2' (- q) (eps_ k) (SNo_minus_SNo q Hq1c) (SNo_eps_ k Hk) (from left to right).
We will prove - x < - q.
Apply minus_SNo_Lt_contra q x Hq1c Hx to the current goal.
We will prove q < x.
An exact proof term for the current goal is Hq2.
Theorem. (SNo_prereal_incr_lower_pos) The following is provable:
∀x, SNo x0 < x(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)(∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k)∀k ∈ ω, ∀p : prop, (∀q ∈ SNoS_ ω, 0 < qq < xx < q + eps_ kp)p
Proof:
Let x be given.
Assume Hx Hx0 Hx2 Hx3.
Let k be given.
Assume Hk.
Let p be given.
Assume Hp.
Apply Hx3 k Hk to the current goal.
Let q be given.
Assume H.
Apply H to the current goal.
Assume Hq1: qSNoS_ ω.
Assume H.
Apply H to the current goal.
Assume Hq2: q < x.
Assume Hq3: x < q + eps_ k.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
Apply SNoLtLe_or 0 q SNo_0 Hq1c to the current goal.
Assume H1: 0 < q.
An exact proof term for the current goal is Hp q Hq1 H1 Hq2 Hq3.
Assume H1: q0.
Apply xm (∀k' ∈ ω, x < eps_ k') to the current goal.
Assume H2: ∀k' ∈ ω, x < eps_ k'.
We will prove False.
We prove the intermediate claim L1: 0 = x.
Apply Hx2 0 (omega_SNoS_omega 0 (nat_p_omega 0 nat_0)) to the current goal.
Let k' be given.
Assume Hk': k'ω.
We will prove abs_SNo (0 + - x) < eps_ k'.
rewrite the current goal using add_SNo_0L (- x) (SNo_minus_SNo x Hx) (from left to right).
We will prove abs_SNo (- x) < eps_ k'.
rewrite the current goal using abs_SNo_minus x Hx (from left to right).
We will prove abs_SNo x < eps_ k'.
rewrite the current goal using pos_abs_SNo x Hx0 (from left to right).
An exact proof term for the current goal is H2 k' Hk'.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
rewrite the current goal using L1 (from right to left) at position 1.
An exact proof term for the current goal is Hx0.
Assume H2: ¬ (∀k' ∈ ω, x < eps_ k').
Apply dneg to the current goal.
Assume H3: ¬ p.
Apply H2 to the current goal.
Let k' be given.
Assume Hk': k'ω.
Apply SNoLtLe_or x (eps_ k') Hx (SNo_eps_ k' Hk') to the current goal.
Assume H4: x < eps_ k'.
An exact proof term for the current goal is H4.
Assume H4: eps_ k'x.
We prove the intermediate claim Lek': SNo (eps_ k').
Apply SNo_eps_ to the current goal.
An exact proof term for the current goal is Hk'.
We prove the intermediate claim LeSk': SNo (eps_ (ordsucc k')).
Apply SNo_eps_ to the current goal.
Apply omega_ordsucc to the current goal.
An exact proof term for the current goal is Hk'.
We prove the intermediate claim LeSk'pos: 0 < eps_ (ordsucc k').
Apply SNo_eps_pos to the current goal.
Apply omega_ordsucc to the current goal.
An exact proof term for the current goal is Hk'.
Apply H3 to the current goal.
Apply Hp (eps_ (ordsucc k')) to the current goal.
We will prove eps_ (ordsucc k')SNoS_ ω.
Apply SNo_eps_SNoS_omega to the current goal.
Apply omega_ordsucc to the current goal.
An exact proof term for the current goal is Hk'.
We will prove 0 < eps_ (ordsucc k').
An exact proof term for the current goal is LeSk'pos.
We will prove eps_ (ordsucc k') < x.
Apply SNoLtLe_tra (eps_ (ordsucc k')) (eps_ k') x LeSk' Lek' Hx to the current goal.
We will prove eps_ (ordsucc k') < eps_ k'.
An exact proof term for the current goal is SNo_eps_decr (ordsucc k') (omega_ordsucc k' Hk') k' (ordsuccI2 k').
We will prove eps_ k'x.
An exact proof term for the current goal is H4.
We will prove x < eps_ (ordsucc k') + eps_ k.
We prove the intermediate claim L2: q < eps_ (ordsucc k').
Apply SNoLeLt_tra q 0 (eps_ (ordsucc k')) Hq1c SNo_0 LeSk' to the current goal.
We will prove q0.
An exact proof term for the current goal is H1.
We will prove 0 < eps_ (ordsucc k').
An exact proof term for the current goal is LeSk'pos.
Apply SNoLt_tra x (q + eps_ k) (eps_ (ordsucc k') + eps_ k) Hx (SNo_add_SNo q (eps_ k) Hq1c (SNo_eps_ k Hk)) (SNo_add_SNo (eps_ (ordsucc k')) (eps_ k) LeSk' (SNo_eps_ k Hk)) to the current goal.
We will prove x < q + eps_ k.
An exact proof term for the current goal is Hq3.
We will prove q + eps_ k < eps_ (ordsucc k') + eps_ k.
Apply add_SNo_Lt1 q (eps_ k) (eps_ (ordsucc k')) Hq1c (SNo_eps_ k Hk) LeSk' to the current goal.
We will prove q < eps_ (ordsucc k').
An exact proof term for the current goal is L2.
Theorem. (real_minus_SNo) The following is provable:
∀x ∈ real, - xreal
Proof:
Let x be given.
Assume Hx.
Apply real_E x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4 Hx5 Hx6 Hx7.
Apply real_I to the current goal.
We will prove - xSNoS_ (ordsucc ω).
An exact proof term for the current goal is minus_SNo_SNoS_ (ordsucc ω) ordsucc_omega_ordinal x Hx3.
We will prove - xω.
Assume H1: - x = ω.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
rewrite the current goal using minus_SNo_invol x Hx1 (from right to left) at position 1.
We will prove - - x < x.
rewrite the current goal using H1 (from left to right).
We will prove - ω < x.
An exact proof term for the current goal is Hx4.
We will prove - x- ω.
Assume H1: - x = - ω.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
rewrite the current goal using minus_SNo_invol x Hx1 (from right to left) at position 2.
We will prove x < - - x.
rewrite the current goal using H1 (from left to right).
We will prove x < - - ω.
rewrite the current goal using minus_SNo_invol ω SNo_omega (from left to right).
We will prove x < ω.
An exact proof term for the current goal is Hx5.
We will prove ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - - x) < eps_ k)q = - x.
An exact proof term for the current goal is minus_SNo_prereal_1 x Hx1 Hx6.
Theorem. (SNo_prereal_incr_lower_approx) The following is provable:
∀x, SNo x(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)(∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k)∃f ∈ SNoS_ ωω, ∀n ∈ ω, f n < xx < f n + eps_ n∀i ∈ n, f i < f n
Proof:
Let x be given.
Assume H1 H2 H3.
Set f' to be the term nat_primrec (Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ 0)) (λn r ⇒ (Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ (ordsucc n)r < q))) of type setset.
Set f to be the term λn ∈ ωf' n.
We prove the intermediate claim Lf'0: f' 0 = Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ 0).
An exact proof term for the current goal is nat_primrec_0 (Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ 0)) (λn r ⇒ (Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ (ordsucc n)r < q))).
We prove the intermediate claim Lf'0b: f' 0SNoS_ ωf' 0 < xx < f' 0 + eps_ 0.
rewrite the current goal using Lf'0 (from left to right).
Apply Eps_i_ex (λq ⇒ qSNoS_ ωq < xx < q + eps_ 0) to the current goal.
We will prove ∃q, qSNoS_ ωq < xx < q + eps_ 0.
Apply H3 0 (nat_p_omega 0 nat_0) to the current goal.
Let q be given.
Assume Hq.
Apply Hq to the current goal.
Assume Hq1 Hq.
Apply Hq to the current goal.
Assume Hq2 Hq3.
We use q to witness the existential quantifier.
Apply and3I to the current goal.
An exact proof term for the current goal is Hq1.
An exact proof term for the current goal is Hq2.
An exact proof term for the current goal is Hq3.
We prove the intermediate claim Lf'S: ∀n, nat_p nf' (ordsucc n) = Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ (ordsucc n)f' n < q).
An exact proof term for the current goal is nat_primrec_S (Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ 0)) (λn r ⇒ (Eps_i (λq ⇒ qSNoS_ ωq < xx < q + eps_ (ordsucc n)r < q))).
We prove the intermediate claim L1: ∀n, nat_p nf' nSNoS_ ωf' n < xx < f' n + eps_ n∀i ∈ n, SNo (f i)f i < f' n.
Apply nat_ind to the current goal.
We will prove f' 0SNoS_ ωf' 0 < xx < f' 0 + eps_ 0∀i ∈ 0, SNo (f i)f i < f' 0.
Apply Lf'0b to the current goal.
Assume H H6.
Apply H to the current goal.
Assume H4 H5.
Apply and4I to the current goal.
An exact proof term for the current goal is H4.
An exact proof term for the current goal is H5.
An exact proof term for the current goal is H6.
Let i be given.
Assume Hi.
We will prove False.
An exact proof term for the current goal is EmptyE i Hi.
Let n be given.
Assume Hn.
Assume IHn: f' nSNoS_ ωf' n < xx < f' n + eps_ n∀i ∈ n, SNo (f i)f i < f' n.
We will prove f' (ordsucc n)SNoS_ ωf' (ordsucc n) < xx < f' (ordsucc n) + eps_ (ordsucc n)∀i ∈ ordsucc n, SNo (f i)f i < f' (ordsucc n).
Apply IHn to the current goal.
Assume IHn123 IHn4.
Apply IHn123 to the current goal.
Assume IHn12 IHn3.
Apply IHn12 to the current goal.
Assume IHn1 IHn2.
Apply SNoS_E2 ω omega_ordinal (f' n) IHn1 to the current goal.
Assume _ _.
Assume IHn1c: SNo (f' n).
Assume _.
We prove the intermediate claim L1b: ∃q, qSNoS_ ωq < xx < q + eps_ (ordsucc n)f' n < q.
Apply H3 (ordsucc n) (nat_p_omega (ordsucc n) (nat_ordsucc n Hn)) to the current goal.
Let q be given.
Assume Hq.
Apply Hq to the current goal.
Assume Hq1 Hq.
Apply Hq to the current goal.
Assume Hq2 Hq3.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
Apply SNoLtLe_or (f' n) q IHn1c Hq1c to the current goal.
Assume H4: f' n < q.
We use q to witness the existential quantifier.
Apply and4I to the current goal.
An exact proof term for the current goal is Hq1.
An exact proof term for the current goal is Hq2.
An exact proof term for the current goal is Hq3.
An exact proof term for the current goal is H4.
Assume H4: qf' n.
We prove the intermediate claim L1ba: SNo (- f' n).
An exact proof term for the current goal is SNo_minus_SNo (f' n) IHn1c.
We prove the intermediate claim L1bb: SNo (x + - f' n).
An exact proof term for the current goal is SNo_add_SNo x (- f' n) H1 L1ba.
We prove the intermediate claim L1bc: SNo (eps_ (ordsucc n)).
An exact proof term for the current goal is SNo_eps_ (ordsucc n) (omega_ordsucc n (nat_p_omega n Hn)).
Apply xm (∃k ∈ ω, eps_ kx + - f' n) to the current goal.
Assume H5.
Apply H5 to the current goal.
Let k be given.
Assume H5.
Apply H5 to the current goal.
Assume Hk1: kω.
Assume Hk2: eps_ kx + - f' n.
We use (f' n + eps_ (ordsucc k)) to witness the existential quantifier.
We prove the intermediate claim Lk1: ordsucc kω.
An exact proof term for the current goal is omega_ordsucc k Hk1.
We prove the intermediate claim Lk2: SNo (eps_ (ordsucc k)).
An exact proof term for the current goal is SNo_eps_ (ordsucc k) Lk1.
We prove the intermediate claim Lk3: f' n + eps_ (ordsucc k)SNoS_ ω.
An exact proof term for the current goal is add_SNo_SNoS_omega (f' n) IHn1 (eps_ (ordsucc k)) (SNo_eps_SNoS_omega (ordsucc k) (omega_ordsucc k Hk1)).
Apply SNoS_E2 ω omega_ordinal (f' n + eps_ (ordsucc k)) Lk3 to the current goal.
Assume _ _.
Assume H6: SNo (f' n + eps_ (ordsucc k)).
Assume _.
Apply and4I to the current goal.
An exact proof term for the current goal is Lk3.
We will prove f' n + eps_ (ordsucc k) < x.
Apply SNoLtLe_tra (f' n + eps_ (ordsucc k)) (f' n + eps_ k) x to the current goal.
An exact proof term for the current goal is H6.
An exact proof term for the current goal is SNo_add_SNo (f' n) (eps_ k) IHn1c (SNo_eps_ k Hk1).
An exact proof term for the current goal is H1.
We will prove f' n + eps_ (ordsucc k) < f' n + eps_ k.
Apply add_SNo_Lt2 (f' n) (eps_ (ordsucc k)) (eps_ k) IHn1c Lk2 (SNo_eps_ k Hk1) to the current goal.
We will prove eps_ (ordsucc k) < eps_ k.
Apply SNo_eps_decr to the current goal.
We will prove ordsucc kω.
An exact proof term for the current goal is Lk1.
We will prove kordsucc k.
Apply ordsuccI2 to the current goal.
We will prove f' n + eps_ kx.
Apply add_SNo_minus_L2' (f' n) x IHn1c H1 (λu v ⇒ f' n + eps_ ku) to the current goal.
We will prove f' n + eps_ kf' n + (- f' n + x).
rewrite the current goal using add_SNo_com (- f' n) x L1ba H1 (from left to right).
We will prove f' n + eps_ kf' n + (x + - f' n).
An exact proof term for the current goal is add_SNo_Le2 (f' n) (eps_ k) (x + - f' n) IHn1c (SNo_eps_ k Hk1) L1bb Hk2.
We will prove x < (f' n + eps_ (ordsucc k)) + eps_ (ordsucc n).
rewrite the current goal using add_SNo_com_3b_1_2 (f' n) (eps_ (ordsucc k)) (eps_ (ordsucc n)) IHn1c Lk2 L1bc (from left to right).
We will prove x < (f' n + eps_ (ordsucc n)) + eps_ (ordsucc k).
Apply add_SNo_eps_Lt' x (f' n + eps_ (ordsucc n)) H1 (SNo_add_SNo (f' n) (eps_ (ordsucc n)) IHn1c L1bc) (ordsucc k) Lk1 to the current goal.
We will prove x < f' n + eps_ (ordsucc n).
Apply SNoLtLe_tra x (q + (eps_ (ordsucc n))) to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is SNo_add_SNo q (eps_ (ordsucc n)) Hq1c L1bc.
An exact proof term for the current goal is SNo_add_SNo (f' n) (eps_ (ordsucc n)) IHn1c L1bc.
We will prove x < q + eps_ (ordsucc n).
An exact proof term for the current goal is Hq3.
We will prove q + eps_ (ordsucc n)f' n + eps_ (ordsucc n).
An exact proof term for the current goal is add_SNo_Le1 q (eps_ (ordsucc n)) (f' n) Hq1c L1bc IHn1c H4.
We will prove f' n < f' n + eps_ (ordsucc k).
An exact proof term for the current goal is add_SNo_eps_Lt (f' n) IHn1c (ordsucc k) (omega_ordsucc k Hk1).
Assume H5: ¬ (∃k ∈ ω, eps_ kx + - f' n).
We will prove False.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
We prove the intermediate claim L1bd: 0 < x + - f' n.
Apply add_SNo_Lt1_cancel 0 (f' n) (x + - f' n) SNo_0 IHn1c L1bb to the current goal.
We will prove 0 + f' n < (x + - f' n) + f' n.
rewrite the current goal using add_SNo_0L (f' n) IHn1c (from left to right).
rewrite the current goal using add_SNo_minus_R2' x (f' n) H1 IHn1c (from left to right).
We will prove f' n < x.
An exact proof term for the current goal is IHn2.
We prove the intermediate claim L1be: f' n = x.
Apply H2 (f' n) IHn1 to the current goal.
Let k be given.
Assume Hk.
We will prove abs_SNo (f' n + - x) < eps_ k.
Apply SNoLtLe_or (x + - f' n) (eps_ k) L1bb (SNo_eps_ k Hk) to the current goal.
Assume H6: x + - f' n < eps_ k.
We will prove abs_SNo (f' n + - x) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap (f' n) x IHn1c H1 (from left to right).
We will prove abs_SNo (x + - f' n) < eps_ k.
rewrite the current goal using pos_abs_SNo (x + - f' n) L1bd (from left to right).
An exact proof term for the current goal is H6.
Assume H6: eps_ kx + - f' n.
Apply H5 to the current goal.
We use k to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hk.
An exact proof term for the current goal is H6.
rewrite the current goal using L1be (from right to left) at position 1.
An exact proof term for the current goal is IHn2.
We prove the intermediate claim L1c: f' (ordsucc n)SNoS_ ωf' (ordsucc n) < xx < f' (ordsucc n) + eps_ (ordsucc n)f' n < f' (ordsucc n).
rewrite the current goal using Lf'S n Hn (from left to right).
An exact proof term for the current goal is Eps_i_ex (λq ⇒ qSNoS_ ωq < xx < q + eps_ (ordsucc n)f' n < q) L1b.
Apply L1c to the current goal.
Assume H H7.
Apply H to the current goal.
Assume H H6.
Apply H to the current goal.
Assume H4 H5.
Apply and4I to the current goal.
An exact proof term for the current goal is H4.
An exact proof term for the current goal is H5.
An exact proof term for the current goal is H6.
Let i be given.
Assume Hi: iordsucc n.
Assume Hfi: SNo (f i).
Apply ordsuccE n i Hi to the current goal.
Assume H8: in.
We will prove f i < f' (ordsucc n).
Apply SNoLt_tra (f i) (f' n) (f' (ordsucc n)) to the current goal.
We will prove SNo (f i).
An exact proof term for the current goal is Hfi.
An exact proof term for the current goal is IHn1c.
Apply SNoS_E2 ω omega_ordinal (f' (ordsucc n)) H4 to the current goal.
Assume _ _ H9 _.
An exact proof term for the current goal is H9.
Apply IHn to the current goal.
Assume _.
Assume IHn4: ∀i ∈ n, SNo (f i)f i < f' n.
An exact proof term for the current goal is IHn4 i H8 Hfi.
An exact proof term for the current goal is H7.
Assume H8: i = n.
rewrite the current goal using H8 (from left to right).
We will prove f n < f' (ordsucc n).
rewrite the current goal using beta ω f' n (nat_p_omega n Hn) (from left to right).
An exact proof term for the current goal is H7.
We prove the intermediate claim L2: ∀n ∈ ω, f' nSNoS_ ωf n < xx < f n + eps_ n∀i ∈ n, SNo (f i)f i < f n.
Let n be given.
Assume Hn.
An exact proof term for the current goal is beta ω f' n Hn (λu v ⇒ f' nSNoS_ ωv < xx < v + eps_ n∀i ∈ n, SNo (f i)f i < v) (L1 n (omega_nat_p n Hn)).
We use f to witness the existential quantifier.
Apply andI to the current goal.
We will prove (λn ∈ ωf' n)∏n ∈ ω, SNoS_ ω.
Apply lam_Pi to the current goal.
Let n be given.
Assume Hn.
Apply L2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
Let n be given.
Assume Hn.
Apply L2 n Hn to the current goal.
Assume H H7.
Apply H to the current goal.
Assume H H6.
Apply H to the current goal.
Assume H4 H5.
Apply and3I to the current goal.
An exact proof term for the current goal is H5.
An exact proof term for the current goal is H6.
Let i be given.
Assume Hi: in.
Apply H7 i Hi to the current goal.
We will prove SNo (f i).
We prove the intermediate claim Li: iω.
An exact proof term for the current goal is nat_p_omega i (nat_p_trans n (omega_nat_p n Hn) i Hi).
rewrite the current goal using beta ω f' i Li (from left to right).
We will prove SNo (f' i).
Apply L2 i Li to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
Apply H to the current goal.
Assume H8: f' iSNoS_ ω.
Assume _.
Apply SNoS_E2 ω omega_ordinal (f' i) H8 to the current goal.
Assume _ _ H9 _.
We will prove SNo (f' i).
An exact proof term for the current goal is H9.
Theorem. (SNo_prereal_decr_upper_approx) The following is provable:
∀x, SNo x(∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x)(∀k ∈ ω, ∃q ∈ SNoS_ ω, q < xx < q + eps_ k)∃g ∈ SNoS_ ωω, ∀n ∈ ω, g n + - eps_ n < xx < g n∀i ∈ n, g n < g i
Proof:
Let x be given.
Assume H1 H2 H3.
We prove the intermediate claim L1: SNo (- x).
An exact proof term for the current goal is SNo_minus_SNo x H1.
Apply SNo_prereal_incr_lower_approx (- x) L1 (minus_SNo_prereal_1 x H1 H2) (minus_SNo_prereal_2 x H1 H3) to the current goal.
Let f be given.
Assume Hf.
Apply Hf to the current goal.
Assume Hf1: fSNoS_ ωω.
Assume Hf2: ∀n ∈ ω, f n < - x- x < f n + eps_ n∀i ∈ n, f i < f n.
We prove the intermediate claim Lf: ∀n ∈ ω, SNo (f n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (f n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) f n Hf1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
Set g to be the term λn ∈ ω- f n.
We use g to witness the existential quantifier.
Apply andI to the current goal.
We will prove gSNoS_ ωω.
We will prove (λn ∈ ω- f n)∏_ ∈ ω, SNoS_ ω.
Apply lam_Pi to the current goal.
Let n be given.
Assume Hn.
We will prove - f nSNoS_ ω.
Apply minus_SNo_SNoS_omega to the current goal.
We will prove f nSNoS_ ω.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) f n Hf1 Hn.
Let n be given.
Assume Hn.
We will prove g n + - eps_ n < xx < g n∀i ∈ n, g n < g i.
We prove the intermediate claim L1: - f n + - eps_ n < xx < - f n∀i ∈ n, - f n < g i.
Apply Hf2 n Hn to the current goal.
Assume H.
Apply H to the current goal.
Assume Hf2a: f n < - x.
Assume Hf2b: - x < f n + eps_ n.
Assume Hf2c: ∀i ∈ n, f i < f n.
Apply and3I to the current goal.
We will prove - f n + - eps_ n < x.
rewrite the current goal using minus_add_SNo_distr (f n) (eps_ n) (Lf n Hn) (SNo_eps_ n Hn) (from right to left).
We will prove - (f n + eps_ n) < x.
Apply minus_SNo_Lt_contra1 x (f n + eps_ n) H1 (SNo_add_SNo (f n) (eps_ n) (Lf n Hn) (SNo_eps_ n Hn)) to the current goal.
We will prove - x < f n + eps_ n.
An exact proof term for the current goal is Hf2b.
We will prove x < - f n.
Apply minus_SNo_Lt_contra2 (f n) x (Lf n Hn) H1 to the current goal.
We will prove f n < - x.
An exact proof term for the current goal is Hf2a.
Let i be given.
Assume Hi.
We prove the intermediate claim Li: iω.
An exact proof term for the current goal is nat_p_omega i (nat_p_trans n (omega_nat_p n Hn) i Hi).
rewrite the current goal using beta ω (λn ⇒ - f n) i Li (from left to right).
We will prove - f n < - f i.
Apply minus_SNo_Lt_contra (f i) (f n) (Lf i Li) (Lf n Hn) to the current goal.
An exact proof term for the current goal is Hf2c i Hi.
We prove the intermediate claim L2: g n = - f n.
An exact proof term for the current goal is beta ω (λn ⇒ - f n) n Hn.
An exact proof term for the current goal is L2 (λu v ⇒ v + - eps_ n < xx < v∀i ∈ n, v < g i) L1.
Theorem. (SNoCutP_SNoCut_lim) The following is provable:
∀lambda, ordinal lambda(∀alpha ∈ lambda, ordsucc alphalambda)∀L R ⊆ SNoS_ lambda, SNoCutP L RSNoLev (SNoCut L R)ordsucc lambda
Proof:
Let lambda be given.
Assume Hl1 Hl2.
Let L be given.
Assume HL.
Let R be given.
Assume HR HLR.
We prove the intermediate claim L1: ∀x ∈ L, SNoLev xlambda.
Let x be given.
Assume Hx.
Apply SNoS_E2 lambda Hl1 x (HL x Hx) to the current goal.
Assume H _ _ _.
An exact proof term for the current goal is H.
We prove the intermediate claim L2: ∀y ∈ R, SNoLev ylambda.
Let y be given.
Assume Hy.
Apply SNoS_E2 lambda Hl1 y (HR y Hy) to the current goal.
Assume H _ _ _.
An exact proof term for the current goal is H.
We prove the intermediate claim L3: ordinal ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Apply ordinal_binunion to the current goal.
Apply ordinal_famunion to the current goal.
Let x be given.
Assume Hx.
Apply SNoS_E2 lambda Hl1 x (HL x Hx) to the current goal.
Assume _ H _ _.
We will prove ordinal (ordsucc (SNoLev x)).
Apply ordinal_ordsucc to the current goal.
We will prove ordinal (SNoLev x).
An exact proof term for the current goal is H.
Apply ordinal_famunion to the current goal.
Let y be given.
Assume Hy.
Apply SNoS_E2 lambda Hl1 y (HR y Hy) to the current goal.
Assume _ H _ _.
We will prove ordinal (ordsucc (SNoLev y)).
Apply ordinal_ordsucc to the current goal.
We will prove ordinal (SNoLev y).
An exact proof term for the current goal is H.
We prove the intermediate claim L4: ordinal (ordsucc lambda).
Apply ordinal_ordsucc to the current goal.
An exact proof term for the current goal is Hl1.
We prove the intermediate claim L5: ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)))ordsucc lambda.
Apply ordinal_ordsucc_In_Subq to the current goal.
We will prove ordinal (ordsucc lambda).
An exact proof term for the current goal is L4.
We will prove ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)))ordsucc lambda.
Apply ordinal_In_Or_Subq ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))) (ordsucc lambda) L3 L4 to the current goal.
Assume H1.
An exact proof term for the current goal is H1.
Assume H1: ordsucc lambda((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
We will prove False.
Apply binunionE (x ∈ Lordsucc (SNoLev x)) (y ∈ Rordsucc (SNoLev y)) lambda (H1 lambda (ordsuccI2 lambda)) to the current goal.
Assume H2: lambdax ∈ Lordsucc (SNoLev x).
Apply famunionE_impred L (λx ⇒ ordsucc (SNoLev x)) lambda H2 to the current goal.
Let x be given.
Assume Hx: xL.
Assume H3: lambdaordsucc (SNoLev x).
Apply In_no2cycle lambda (ordsucc (SNoLev x)) H3 to the current goal.
We will prove ordsucc (SNoLev x)lambda.
Apply Hl2 to the current goal.
An exact proof term for the current goal is L1 x Hx.
Assume H2: lambday ∈ Rordsucc (SNoLev y).
Apply famunionE_impred R (λy ⇒ ordsucc (SNoLev y)) lambda H2 to the current goal.
Let y be given.
Assume Hy: yR.
Assume H3: lambdaordsucc (SNoLev y).
Apply In_no2cycle lambda (ordsucc (SNoLev y)) H3 to the current goal.
We will prove ordsucc (SNoLev y)lambda.
Apply Hl2 to the current goal.
An exact proof term for the current goal is L2 y Hy.
Apply SNoCutP_SNoCut_impred L R HLR to the current goal.
Assume H1: SNo (SNoCut L R).
Assume H2: SNoLev (SNoCut L R)ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Assume _ _ _.
An exact proof term for the current goal is L5 (SNoLev (SNoCut L R)) H2.
Theorem. (SNoCutP_SNoCut_omega) The following is provable:
∀L R ⊆ SNoS_ ω, SNoCutP L RSNoLev (SNoCut L R)ordsucc ω
Proof:
An exact proof term for the current goal is SNoCutP_SNoCut_lim ω omega_ordinal omega_ordsucc.
Theorem. (SNo_approx_real_lem) The following is provable:
∀f g ∈ SNoS_ ωω, (∀n m ∈ ω, f n < g m)∀p : prop, (SNoCutP {f n|n ∈ ω} {g n|n ∈ ω}SNo (SNoCut {f n|n ∈ ω} {g n|n ∈ ω})SNoLev (SNoCut {f n|n ∈ ω} {g n|n ∈ ω})ordsucc ωSNoCut {f n|n ∈ ω} {g n|n ∈ ω}SNoS_ (ordsucc ω)(∀n ∈ ω, f n < SNoCut {f n|n ∈ ω} {g n|n ∈ ω})(∀n ∈ ω, SNoCut {f n|n ∈ ω} {g n|n ∈ ω} < g n)p)p
Proof:
Let f be given.
Assume Hf1.
Let g be given.
Assume Hg1 Hfg.
Let p be given.
Assume Hp.
Set L to be the term {f n|n ∈ ω}.
Set R to be the term {g n|n ∈ ω}.
Set x to be the term SNoCut L R.
We prove the intermediate claim Lf: ∀n ∈ ω, SNo (f n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (f n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) f n Hf1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lg: ∀n ∈ ω, SNo (g n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (g n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) g n Hg1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim L1: SNoCutP L R.
We will prove (∀w ∈ L, SNo w)(∀z ∈ R, SNo z)(∀w ∈ L, ∀z ∈ R, w < z).
Apply and3I to the current goal.
Let w be given.
Assume Hw: wL.
Apply ReplE_impred ω (λn ⇒ f n) w Hw to the current goal.
Let n be given.
Assume Hn.
Assume Hwn: w = f n.
rewrite the current goal using Hwn (from left to right).
We will prove SNo (f n).
An exact proof term for the current goal is Lf n Hn.
Let z be given.
Assume Hz: zR.
Apply ReplE_impred ω (λn ⇒ g n) z Hz to the current goal.
Let m be given.
Assume Hm.
Assume Hzm: z = g m.
rewrite the current goal using Hzm (from left to right).
We will prove SNo (g m).
An exact proof term for the current goal is Lg m Hm.
Let w be given.
Assume Hw: wL.
Let z be given.
Assume Hz: zR.
Apply ReplE_impred ω (λn ⇒ f n) w Hw to the current goal.
Let n be given.
Assume Hn.
Assume Hwn: w = f n.
rewrite the current goal using Hwn (from left to right).
Apply ReplE_impred ω (λn ⇒ g n) z Hz to the current goal.
Let m be given.
Assume Hm.
Assume Hzm: z = g m.
rewrite the current goal using Hzm (from left to right).
We will prove f n < g m.
An exact proof term for the current goal is Hfg n Hn m Hm.
Apply SNoCutP_SNoCut_impred L R L1 to the current goal.
Assume HLR1: SNo x.
Assume HLR2: SNoLev xordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Assume HLR3: ∀w ∈ L, w < x.
Assume HLR4: ∀y ∈ R, x < y.
Assume HLR5: ∀z, SNo z(∀w ∈ L, w < z)(∀y ∈ R, z < y)SNoLev xSNoLev zSNoEq_ (SNoLev x) x z.
We prove the intermediate claim L2: LSNoS_ ω.
Let w be given.
Assume Hw.
Apply ReplE_impred ω (λn ⇒ f n) w Hw to the current goal.
Let n be given.
Assume Hn.
Assume Hwn: w = f n.
rewrite the current goal using Hwn (from left to right).
We will prove f nSNoS_ ω.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) f n Hf1 Hn.
We prove the intermediate claim L3: RSNoS_ ω.
Let z be given.
Assume Hz: zR.
Apply ReplE_impred ω (λn ⇒ g n) z Hz to the current goal.
Let m be given.
Assume Hm.
Assume Hzm: z = g m.
rewrite the current goal using Hzm (from left to right).
We will prove g mSNoS_ ω.
An exact proof term for the current goal is (ap_Pi ω (λ_ ⇒ SNoS_ ω) g m Hg1 Hm).
We prove the intermediate claim L4: SNoLev xordsucc ω.
An exact proof term for the current goal is SNoCutP_SNoCut_omega L L2 R L3 L1.
We prove the intermediate claim L5: xSNoS_ (ordsucc ω).
Apply SNoS_I (ordsucc ω) ordsucc_omega_ordinal x (SNoLev x) to the current goal.
We will prove SNoLev xordsucc ω.
An exact proof term for the current goal is L4.
We will prove SNo_ (SNoLev x) x.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is HLR1.
Apply Hp L1 HLR1 L4 L5 to the current goal.
Let n be given.
Assume Hn.
We will prove f n < x.
Apply HLR3 to the current goal.
An exact proof term for the current goal is ReplI ω (λn ⇒ f n) n Hn.
Let n be given.
Assume Hn.
We will prove x < g n.
Apply HLR4 to the current goal.
An exact proof term for the current goal is ReplI ω (λn ⇒ g n) n Hn.
Theorem. (SNo_approx_real) The following is provable:
∀x, SNo x∀f g ∈ SNoS_ ωω, (∀n ∈ ω, f n < x)(∀n ∈ ω, x < f n + eps_ n)(∀n ∈ ω, ∀i ∈ n, f i < f n)(∀n ∈ ω, x < g n)(∀n ∈ ω, ∀i ∈ n, g n < g i)x = SNoCut {f n|n ∈ ω} {g n|n ∈ ω}xreal
Proof:
Let x be given.
Assume Hx.
Let f be given.
Assume Hf1.
Let g be given.
Assume Hg1 Hf2 Hf3 Hf4 Hg3 Hg4.
Set L to be the term {f n|n ∈ ω}.
Set R to be the term {g n|n ∈ ω}.
Assume Hxfg: x = SNoCut L R.
We prove the intermediate claim Lmx: SNo (- x).
An exact proof term for the current goal is SNo_minus_SNo x Hx.
We prove the intermediate claim Lf: ∀n ∈ ω, SNo (f n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (f n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) f n Hf1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lg: ∀n ∈ ω, SNo (g n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (g n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) g n Hg1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lfg: ∀n m ∈ ω, f n < g m.
Let n be given.
Assume Hn.
Let m be given.
Assume Hm.
Apply SNoLt_tra (f n) x (g m) (Lf n Hn) Hx (Lg m Hm) to the current goal.
An exact proof term for the current goal is Hf2 n Hn.
An exact proof term for the current goal is Hg3 m Hm.
Apply SNo_approx_real_lem f Hf1 g Hg1 Lfg to the current goal.
rewrite the current goal using Hxfg (from right to left).
Assume H1: SNoCutP L R.
Assume H2: SNo x.
rewrite the current goal using Hxfg (from right to left).
Assume H3: SNoLev xordsucc ω.
rewrite the current goal using Hxfg (from right to left).
Assume H4: xSNoS_ (ordsucc ω).
rewrite the current goal using Hxfg (from right to left).
Assume H5: ∀n ∈ ω, f n < x.
rewrite the current goal using Hxfg (from right to left).
Assume H6: ∀n ∈ ω, x < g n.
Apply SNoCutP_SNoCut_impred L R H1 to the current goal.
Assume _ _ _ _.
Assume H7: ∀z, SNo z(∀w ∈ L, w < z)(∀y ∈ R, z < y)SNoLev (SNoCut L R)SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z.
Apply ordsuccE ω (SNoLev x) H3 to the current goal.
Assume H8: SNoLev xω.
Apply SNoS_omega_real to the current goal.
We will prove xSNoS_ ω.
Apply SNoS_I ω omega_ordinal x (SNoLev x) H8 to the current goal.
We will prove SNo_ (SNoLev x) x.
An exact proof term for the current goal is SNoLev_ x Hx.
Assume H8: SNoLev x = ω.
Apply real_I to the current goal.
We will prove xSNoS_ (ordsucc ω).
An exact proof term for the current goal is H4.
We will prove xω.
Assume H9: x = ω.
We prove the intermediate claim Lbd1: x < g 0.
An exact proof term for the current goal is Hg3 0 (nat_p_omega 0 nat_0).
Apply real_E (g 0) (SNoS_omega_real (g 0) (ap_Pi ω (λ_ ⇒ SNoS_ ω) g 0 Hg1 (nat_p_omega 0 nat_0))) to the current goal.
Assume Hg0a: SNo (g 0).
Assume _ _ _.
Assume Hg0b: g 0 < ω.
Assume _ _.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLt_tra x (g 0) x Hx Hg0a Hx Lbd1 to the current goal.
We will prove g 0 < x.
rewrite the current goal using H9 (from left to right).
We will prove g 0 < ω.
An exact proof term for the current goal is Hg0b.
We will prove x- ω.
Assume H9: x = - ω.
We prove the intermediate claim Lbd2: f 0 < x.
An exact proof term for the current goal is Hf2 0 (nat_p_omega 0 nat_0).
Apply real_E (f 0) (SNoS_omega_real (f 0) (ap_Pi ω (λ_ ⇒ SNoS_ ω) f 0 Hf1 (nat_p_omega 0 nat_0))) to the current goal.
Assume Hf0a: SNo (f 0).
Assume _ _.
Assume Hf0b: - ω < f 0.
Assume _ _ _.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLt_tra x (f 0) x Hx Hf0a Hx to the current goal.
We will prove x < f 0.
rewrite the current goal using H9 (from left to right).
An exact proof term for the current goal is Hf0b.
We will prove f 0 < x.
An exact proof term for the current goal is Lbd2.
We will prove ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x.
Let q be given.
Assume Hq1 Hq2.
We will prove q = x.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
We prove the intermediate claim Lmq: SNo (- q).
An exact proof term for the current goal is SNo_minus_SNo q Hq1c.
We prove the intermediate claim Lxmq: SNo (x + - q).
An exact proof term for the current goal is SNo_add_SNo x (- q) Hx Lmq.
We prove the intermediate claim Lqmx: SNo (q + - x).
An exact proof term for the current goal is SNo_add_SNo q (- x) Hq1c Lmx.
We prove the intermediate claim L5: ∀w ∈ L, w < q.
Let w be given.
Assume Hw.
Apply ReplE_impred ω (λn ⇒ f n) w Hw to the current goal.
Let n be given.
Assume Hn.
Assume Hwn: w = f n.
rewrite the current goal using Hwn (from left to right).
We will prove f n < q.
Apply SNoLtLe_or (f n) q (Lf n Hn) Hq1c to the current goal.
Assume H9: f n < q.
An exact proof term for the current goal is H9.
Assume H9: qf n.
Apply real_E (f (ordsucc n)) (SNoS_omega_real (f (ordsucc n)) (ap_Pi ω (λ_ ⇒ SNoS_ ω) f (ordsucc n) Hf1 (omega_ordsucc n Hn))) to the current goal.
Assume _ _ _ _ _.
Assume Hfn2: ∀q' ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q' + - f (ordsucc n)) < eps_ k)q' = f (ordsucc n).
Assume _.
We prove the intermediate claim L5a: SNo (f (ordsucc n)).
An exact proof term for the current goal is Lf (ordsucc n) (omega_ordsucc n Hn).
We prove the intermediate claim L5b: q < f (ordsucc n).
Apply SNoLeLt_tra q (f n) (f (ordsucc n)) Hq1c (Lf n Hn) L5a H9 to the current goal.
We will prove f n < f (ordsucc n).
Apply Hf4 (ordsucc n) (omega_ordsucc n Hn) to the current goal.
We will prove nordsucc n.
Apply ordsuccI2 to the current goal.
We prove the intermediate claim L5c: 0 < f (ordsucc n) + - q.
An exact proof term for the current goal is SNoLt_minus_pos q (f (ordsucc n)) Hq1c L5a L5b.
We prove the intermediate claim L5d: SNo (f (ordsucc n) + - q).
An exact proof term for the current goal is SNo_add_SNo (f (ordsucc n)) (- q) L5a Lmq.
We prove the intermediate claim L5e: f (ordsucc n) < x.
An exact proof term for the current goal is Hf2 (ordsucc n) (omega_ordsucc n Hn).
We prove the intermediate claim L5f: q < x.
An exact proof term for the current goal is SNoLt_tra q (f (ordsucc n)) x Hq1c L5a Hx L5b L5e.
We prove the intermediate claim L5g: 0 < x + - q.
An exact proof term for the current goal is SNoLt_minus_pos q x Hq1c Hx L5f.
We prove the intermediate claim L5h: abs_SNo (q + - x) = x + - q.
rewrite the current goal using abs_SNo_dist_swap q x Hq1c Hx (from left to right).
An exact proof term for the current goal is pos_abs_SNo (x + - q) L5g.
We prove the intermediate claim L5i: q = f (ordsucc n).
Apply Hfn2 q Hq1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (q + - f (ordsucc n)) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap q (f (ordsucc n)) Hq1c (Lf (ordsucc n) (omega_ordsucc n Hn)) (from left to right).
We will prove abs_SNo (f (ordsucc n) + - q) < eps_ k.
rewrite the current goal using pos_abs_SNo (f (ordsucc n) + - q) L5c (from left to right).
We will prove f (ordsucc n) + - q < eps_ k.
Apply SNoLt_tra (f (ordsucc n) + - q) (x + - q) (eps_ k) L5d Lxmq (SNo_eps_ k Hk) to the current goal.
We will prove f (ordsucc n) + - q < x + - q.
Apply add_SNo_Lt1 (f (ordsucc n)) (- q) x L5a Lmq Hx to the current goal.
We will prove f (ordsucc n) < x.
An exact proof term for the current goal is L5e.
We will prove x + - q < eps_ k.
rewrite the current goal using L5h (from right to left).
We will prove abs_SNo (q + - x) < eps_ k.
An exact proof term for the current goal is Hq2 k Hk.
Apply SNoLt_irref q to the current goal.
rewrite the current goal using L5i (from left to right) at position 2.
An exact proof term for the current goal is L5b.
We prove the intermediate claim L6: ∀z ∈ R, q < z.
Let z be given.
Assume Hz: zR.
Apply ReplE_impred ω (λn ⇒ g n) z Hz to the current goal.
Let m be given.
Assume Hm.
Assume Hzm: z = g m.
rewrite the current goal using Hzm (from left to right).
We will prove q < g m.
Apply SNoLtLe_or q (g m) Hq1c (Lg m Hm) to the current goal.
Assume H9: q < g m.
An exact proof term for the current goal is H9.
Assume H9: g mq.
Apply real_E (g (ordsucc m)) (SNoS_omega_real (g (ordsucc m)) (ap_Pi ω (λ_ ⇒ SNoS_ ω) g (ordsucc m) Hg1 (omega_ordsucc m Hm))) to the current goal.
Assume _ _ _ _ _.
Assume Hgm2: ∀q' ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q' + - g (ordsucc m)) < eps_ k)q' = g (ordsucc m).
Assume _.
We prove the intermediate claim L6a: SNo (g (ordsucc m)).
An exact proof term for the current goal is Lg (ordsucc m) (omega_ordsucc m Hm).
We prove the intermediate claim L6b: g (ordsucc m) < q.
Apply SNoLtLe_tra (g (ordsucc m)) (g m) q L6a (Lg m Hm) Hq1c to the current goal.
We will prove g (ordsucc m) < g m.
Apply Hg4 (ordsucc m) (omega_ordsucc m Hm) to the current goal.
We will prove mordsucc m.
Apply ordsuccI2 to the current goal.
An exact proof term for the current goal is H9.
We prove the intermediate claim L6c: 0 < q + - g (ordsucc m).
An exact proof term for the current goal is SNoLt_minus_pos (g (ordsucc m)) q L6a Hq1c L6b.
We prove the intermediate claim L6d: SNo (q + - g (ordsucc m)).
An exact proof term for the current goal is SNo_add_SNo q (- g (ordsucc m)) Hq1c (SNo_minus_SNo (g (ordsucc m)) L6a).
We prove the intermediate claim L6e: x < g (ordsucc m).
An exact proof term for the current goal is Hg3 (ordsucc m) (omega_ordsucc m Hm).
We prove the intermediate claim L6f: x < q.
An exact proof term for the current goal is SNoLt_tra x (g (ordsucc m)) q Hx L6a Hq1c L6e L6b.
We prove the intermediate claim L6g: 0 < q + - x.
An exact proof term for the current goal is SNoLt_minus_pos x q Hx Hq1c L6f.
We prove the intermediate claim L6h: abs_SNo (q + - x) = q + - x.
An exact proof term for the current goal is pos_abs_SNo (q + - x) L6g.
We prove the intermediate claim L6i: q = g (ordsucc m).
Apply Hgm2 q Hq1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (q + - g (ordsucc m)) < eps_ k.
rewrite the current goal using pos_abs_SNo (q + - g (ordsucc m)) L6c (from left to right).
We will prove q + - g (ordsucc m) < eps_ k.
Apply SNoLt_tra (q + - g (ordsucc m)) (q + - x) (eps_ k) L6d Lqmx (SNo_eps_ k Hk) to the current goal.
We will prove q + - g (ordsucc m) < q + - x.
Apply add_SNo_Lt2 q (- g (ordsucc m)) (- x) Hq1c (SNo_minus_SNo (g (ordsucc m)) L6a) Lmx to the current goal.
We will prove - g (ordsucc m) < - x.
Apply minus_SNo_Lt_contra x (g (ordsucc m)) Hx L6a to the current goal.
An exact proof term for the current goal is L6e.
We will prove q + - x < eps_ k.
rewrite the current goal using L6h (from right to left).
We will prove abs_SNo (q + - x) < eps_ k.
An exact proof term for the current goal is Hq2 k Hk.
Apply SNoLt_irref q to the current goal.
rewrite the current goal using L6i (from left to right) at position 1.
An exact proof term for the current goal is L6b.
Apply H7 q Hq1c L5 L6 to the current goal.
rewrite the current goal using Hxfg (from right to left).
rewrite the current goal using H8 (from left to right).
Assume H9: ωSNoLev q.
We will prove False.
Apply In_irref (SNoLev q) to the current goal.
We will prove SNoLev qSNoLev q.
Apply H9 to the current goal.
We will prove SNoLev qω.
An exact proof term for the current goal is Hq1a.
Theorem. (SNo_approx_real_rep) The following is provable:
∀x ∈ real, ∀p : prop, (∀f g ∈ SNoS_ ωω, (∀n ∈ ω, f n < x)(∀n ∈ ω, x < f n + eps_ n)(∀n ∈ ω, ∀i ∈ n, f i < f n)(∀n ∈ ω, g n + - eps_ n < x)(∀n ∈ ω, x < g n)(∀n ∈ ω, ∀i ∈ n, g n < g i)SNoCutP {f n|n ∈ ω} {g n|n ∈ ω}x = SNoCut {f n|n ∈ ω} {g n|n ∈ ω}p)p
Proof:
Let x be given.
Assume Hx.
Let p be given.
Assume Hp.
Apply real_E x Hx to the current goal.
Assume Hx1 Hx2 Hx3 _ _ Hx4 Hx5.
Apply SNo_prereal_incr_lower_approx x Hx1 Hx4 Hx5 to the current goal.
Let f be given.
Assume Hf.
Apply Hf to the current goal.
Assume Hf1 Hf2.
Apply SNo_prereal_decr_upper_approx x Hx1 Hx4 Hx5 to the current goal.
Let g be given.
Assume Hg.
Apply Hg to the current goal.
Assume Hg1 Hg2.
We prove the intermediate claim Lf: ∀n ∈ ω, SNo (f n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (f n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) f n Hf1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lg: ∀n ∈ ω, SNo (g n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (g n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) g n Hg1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lf1: ∀n ∈ ω, f n < x.
Let n be given.
Assume Hn.
Apply Hf2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lf2: ∀n ∈ ω, x < f n + eps_ n.
Let n be given.
Assume Hn.
Apply Hf2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim Lf3: ∀n ∈ ω, ∀i ∈ n, f i < f n.
Let n be given.
Assume Hn.
Apply Hf2 n Hn to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim Lg1: ∀n ∈ ω, g n + - eps_ n < x.
Let n be given.
Assume Hn.
Apply Hg2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lg2: ∀n ∈ ω, x < g n.
Let n be given.
Assume Hn.
Apply Hg2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim Lg3: ∀n ∈ ω, ∀i ∈ n, g n < g i.
Let n be given.
Assume Hn.
Apply Hg2 n Hn to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim Lfg: ∀n m ∈ ω, f n < g m.
Let n be given.
Assume Hn.
Let m be given.
Assume Hm.
Apply SNoLt_tra (f n) x (g m) (Lf n Hn) Hx1 (Lg m Hm) to the current goal.
We will prove f n < x.
An exact proof term for the current goal is Lf1 n Hn.
We will prove x < g m.
An exact proof term for the current goal is Lg2 m Hm.
Set L to be the term {f n|n ∈ ω}.
Set R to be the term {g n|n ∈ ω}.
Apply SNo_approx_real_lem f Hf1 g Hg1 Lfg to the current goal.
Assume H1: SNoCutP L R.
Assume H2: SNo (SNoCut L R).
Assume H3: SNoLev (SNoCut L R)ordsucc ω.
Assume H4: SNoCut L RSNoS_ (ordsucc ω).
Assume H5: ∀n ∈ ω, f n < SNoCut L R.
Assume H6: ∀n ∈ ω, SNoCut L R < g n.
We prove the intermediate claim Lxfg: x = SNoCut L R.
rewrite the current goal using SNo_eta x Hx1 (from left to right).
Apply SNoCut_ext (SNoL x) (SNoR x) L R (SNoCutP_SNoL_SNoR x Hx1) H1 to the current goal.
Let w be given.
Assume Hw: wSNoL x.
We will prove w < SNoCut L R.
Apply SNoL_E x Hx1 w Hw to the current goal.
Assume Hw1: SNo w.
Assume Hw2: SNoLev wSNoLev x.
Assume Hw3: w < x.
We prove the intermediate claim Lw1: wSNoS_ ω.
An exact proof term for the current goal is SNoLev_In_real_SNoS_omega x Hx w Hw1 Hw2.
We prove the intermediate claim Lw2: 0 < x + - w.
An exact proof term for the current goal is SNoLt_minus_pos w x Hw1 Hx1 Hw3.
We prove the intermediate claim Lw3: ∃k ∈ ω, w + eps_ kx.
Apply dneg to the current goal.
Assume H7: ¬ ∃k ∈ ω, w + eps_ kx.
We prove the intermediate claim Lw3a: w = x.
Apply Hx4 w Lw1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (w + - x) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap w x Hw1 Hx1 (from left to right).
We will prove abs_SNo (x + - w) < eps_ k.
rewrite the current goal using pos_abs_SNo (x + - w) Lw2 (from left to right).
We will prove x + - w < eps_ k.
Apply SNoLtLe_or (x + - w) (eps_ k) (SNo_add_SNo x (- w) Hx1 (SNo_minus_SNo w Hw1)) (SNo_eps_ k Hk) to the current goal.
Assume H8: x + - w < eps_ k.
An exact proof term for the current goal is H8.
Assume H8: eps_ kx + - w.
We will prove False.
Apply H7 to the current goal.
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 will prove w + eps_ kx.
rewrite the current goal using add_SNo_minus_R2' x w Hx1 Hw1 (from right to left).
We will prove w + eps_ k(x + - w) + w.
rewrite the current goal using add_SNo_com w (eps_ k) Hw1 (SNo_eps_ k Hk) (from left to right).
We will prove eps_ k + w(x + - w) + w.
An exact proof term for the current goal is add_SNo_Le1 (eps_ k) w (x + - w) (SNo_eps_ k Hk) Hw1 (SNo_add_SNo x (- w) Hx1 (SNo_minus_SNo w Hw1)) H8.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using Lw3a (from right to left) at position 1.
An exact proof term for the current goal is Hw3.
Apply Lw3 to the current goal.
Let k be given.
Assume Hk.
Apply Hk to the current goal.
Assume Hk1: kω.
Assume Hk2: w + eps_ kx.
We will prove w < SNoCut L R.
Apply SNoLt_tra w (f k) (SNoCut L R) Hw1 (Lf k Hk1) H2 to the current goal.
We will prove w < f k.
Apply add_SNo_Lt1_cancel w (eps_ k) (f k) Hw1 (SNo_eps_ k Hk1) (Lf k Hk1) to the current goal.
We will prove w + eps_ k < f k + eps_ k.
Apply SNoLeLt_tra (w + eps_ k) x (f k + eps_ k) (SNo_add_SNo w (eps_ k) Hw1 (SNo_eps_ k Hk1)) Hx1 (SNo_add_SNo (f k) (eps_ k) (Lf k Hk1) (SNo_eps_ k Hk1)) Hk2 to the current goal.
We will prove x < f k + eps_ k.
Apply Hf2 k Hk1 to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We will prove f k < SNoCut L R.
An exact proof term for the current goal is H5 k Hk1.
Let z be given.
Assume Hz: zSNoR x.
We will prove SNoCut L R < z.
Apply SNoR_E x Hx1 z Hz to the current goal.
Assume Hz1: SNo z.
Assume Hz2: SNoLev zSNoLev x.
Assume Hz3: x < z.
We prove the intermediate claim Lz1: zSNoS_ ω.
An exact proof term for the current goal is SNoLev_In_real_SNoS_omega x Hx z Hz1 Hz2.
We prove the intermediate claim Lz2: 0 < z + - x.
An exact proof term for the current goal is SNoLt_minus_pos x z Hx1 Hz1 Hz3.
We prove the intermediate claim Lz3: ∃k ∈ ω, x + eps_ kz.
Apply dneg to the current goal.
Assume H7: ¬ ∃k ∈ ω, x + eps_ kz.
We prove the intermediate claim Lz3a: z = x.
Apply Hx4 z Lz1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (z + - x) < eps_ k.
rewrite the current goal using pos_abs_SNo (z + - x) Lz2 (from left to right).
We will prove z + - x < eps_ k.
Apply SNoLtLe_or (z + - x) (eps_ k) (SNo_add_SNo z (- x) Hz1 (SNo_minus_SNo x Hx1)) (SNo_eps_ k Hk) to the current goal.
Assume H8: z + - x < eps_ k.
An exact proof term for the current goal is H8.
Assume H8: eps_ kz + - x.
We will prove False.
Apply H7 to the current goal.
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 will prove x + eps_ kz.
rewrite the current goal using add_SNo_minus_R2' z x Hz1 Hx1 (from right to left).
We will prove x + eps_ k(z + - x) + x.
rewrite the current goal using add_SNo_com x (eps_ k) Hx1 (SNo_eps_ k Hk) (from left to right).
We will prove eps_ k + x(z + - x) + x.
An exact proof term for the current goal is add_SNo_Le1 (eps_ k) x (z + - x) (SNo_eps_ k Hk) Hx1 (SNo_add_SNo z (- x) Hz1 (SNo_minus_SNo x Hx1)) H8.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using Lz3a (from right to left) at position 2.
An exact proof term for the current goal is Hz3.
Apply Lz3 to the current goal.
Let k be given.
Assume Hk.
Apply Hk to the current goal.
Assume Hk1: kω.
Assume Hk2: x + eps_ kz.
We will prove SNoCut L R < z.
Apply SNoLt_tra (SNoCut L R) (g k) z H2 (Lg k Hk1) Hz1 to the current goal.
An exact proof term for the current goal is H6 k Hk1.
We will prove g k < z.
Apply SNoLtLe_tra (g k) (x + eps_ k) z (Lg k Hk1) (SNo_add_SNo x (eps_ k) Hx1 (SNo_eps_ k Hk1)) Hz1 to the current goal.
We will prove g k < x + eps_ k.
Apply add_SNo_minus_Lt1 (g k) (eps_ k) x (Lg k Hk1) (SNo_eps_ k Hk1) Hx1 to the current goal.
We will prove g k + - eps_ k < x.
An exact proof term for the current goal is Lg1 k Hk1.
We will prove x + eps_ kz.
An exact proof term for the current goal is Hk2.
Let w be given.
Assume Hw: wL.
rewrite the current goal using SNo_eta x Hx1 (from right to left).
We will prove w < x.
Apply ReplE_impred ω (λn ⇒ f n) w Hw to the current goal.
Let n be given.
Assume Hn.
Assume Hwn: w = f n.
rewrite the current goal using Hwn (from left to right).
We will prove f n < x.
An exact proof term for the current goal is Lf1 n Hn.
Let z be given.
Assume Hz: zR.
rewrite the current goal using SNo_eta x Hx1 (from right to left).
We will prove x < z.
Apply ReplE_impred ω (λn ⇒ g n) z Hz to the current goal.
Let m be given.
Assume Hm.
Assume Hzm: z = g m.
rewrite the current goal using Hzm (from left to right).
We will prove x < g m.
An exact proof term for the current goal is Lg2 m Hm.
An exact proof term for the current goal is Hp f Hf1 g Hg1 Lf1 Lf2 Lf3 Lg1 Lg2 Lg3 H1 Lxfg.
Theorem. (real_add_SNo) The following is provable:
∀x y ∈ real, x + yreal
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
Apply SNo_approx_real_rep x Hx to the current goal.
Let fL be given.
Assume HfL.
Let fR be given.
Assume HfR HfL1 HfL2 HfL3 HfR1 HfR2 HfR3 HfLR HxfLR.
Apply SNo_approx_real_rep y Hy to the current goal.
Let gL be given.
Assume HgL.
Let gR be given.
Assume HgR HgL1 HgL2 HgL3 HgR1 HgR2 HgR3 HgLR HygLR.
Set hL to be the term λn ∈ ωfL (ordsucc n) + gL (ordsucc n).
Set hR to be the term λn ∈ ωfR (ordsucc n) + gR (ordsucc n).
Set L to be the term {hL n|n ∈ ω}.
Set R to be the term {hR n|n ∈ ω}.
We prove the intermediate claim Lx: SNo x.
An exact proof term for the current goal is real_SNo x Hx.
We prove the intermediate claim Ly: SNo y.
An exact proof term for the current goal is real_SNo y Hy.
We prove the intermediate claim Lxy: SNo (x + y).
An exact proof term for the current goal is SNo_add_SNo x y Lx Ly.
We prove the intermediate claim Lx2: ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x.
An exact proof term for the current goal is real_SNoS_omega_prop x Hx.
We prove the intermediate claim Ly2: ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - y) < eps_ k)q = y.
An exact proof term for the current goal is real_SNoS_omega_prop y Hy.
We prove the intermediate claim LfLa: ∀n ∈ ω, fL (ordsucc n)SNoS_ ω.
Let n be given.
Assume Hn.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) fL (ordsucc n) HfL (omega_ordsucc n Hn).
We prove the intermediate claim LfLb: ∀n ∈ ω, SNo (fL (ordsucc n)).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (fL (ordsucc n)) (LfLa n Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim LgLa: ∀n ∈ ω, gL (ordsucc n)SNoS_ ω.
Let n be given.
Assume Hn.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) gL (ordsucc n) HgL (omega_ordsucc n Hn).
We prove the intermediate claim LgLb: ∀n ∈ ω, SNo (gL (ordsucc n)).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (gL (ordsucc n)) (LgLa n Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim LfRa: ∀n ∈ ω, fR (ordsucc n)SNoS_ ω.
Let n be given.
Assume Hn.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) fR (ordsucc n) HfR (omega_ordsucc n Hn).
We prove the intermediate claim LfRb: ∀n ∈ ω, SNo (fR (ordsucc n)).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (fR (ordsucc n)) (LfRa n Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim LgRa: ∀n ∈ ω, gR (ordsucc n)SNoS_ ω.
Let n be given.
Assume Hn.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) gR (ordsucc n) HgR (omega_ordsucc n Hn).
We prove the intermediate claim LgRb: ∀n ∈ ω, SNo (gR (ordsucc n)).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (gR (ordsucc n)) (LgRa n Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim LhL: ∀n ∈ ω, hL n = fL (ordsucc n) + gL (ordsucc n).
Let n be given.
Assume Hn.
An exact proof term for the current goal is beta ω (λn ⇒ fL (ordsucc n) + gL (ordsucc n)) n Hn.
We prove the intermediate claim LhR: ∀n ∈ ω, hR n = fR (ordsucc n) + gR (ordsucc n).
Let n be given.
Assume Hn.
An exact proof term for the current goal is beta ω (λn ⇒ fR (ordsucc n) + gR (ordsucc n)) n Hn.
We prove the intermediate claim LhLb: ∀n ∈ ω, SNo (hL n).
Let n be given.
Assume Hn.
rewrite the current goal using LhL n Hn (from left to right).
We will prove SNo (fL (ordsucc n) + gL (ordsucc n)).
An exact proof term for the current goal is SNo_add_SNo (fL (ordsucc n)) (gL (ordsucc n)) (LfLb n Hn) (LgLb n Hn).
We prove the intermediate claim LhRb: ∀n ∈ ω, SNo (hR n).
Let n be given.
Assume Hn.
rewrite the current goal using LhR n Hn (from left to right).
We will prove SNo (fR (ordsucc n) + gR (ordsucc n)).
An exact proof term for the current goal is SNo_add_SNo (fR (ordsucc n)) (gR (ordsucc n)) (LfRb n Hn) (LgRb n Hn).
We prove the intermediate claim L1: hLSNoS_ ωω.
We will prove (λn ∈ ωfL (ordsucc n) + gL (ordsucc n))∏_ ∈ ω, SNoS_ ω.
Apply lam_Pi to the current goal.
Let n be given.
Assume Hn.
We will prove fL (ordsucc n) + gL (ordsucc n)SNoS_ ω.
Apply add_SNo_SNoS_omega to the current goal.
An exact proof term for the current goal is LfLa n Hn.
An exact proof term for the current goal is LgLa n Hn.
We prove the intermediate claim L2: hRSNoS_ ωω.
We will prove (λn ∈ ωfR (ordsucc n) + gR (ordsucc n))∏_ ∈ ω, SNoS_ ω.
Apply lam_Pi to the current goal.
Let n be given.
Assume Hn.
We will prove fR (ordsucc n) + gR (ordsucc n)SNoS_ ω.
Apply add_SNo_SNoS_omega to the current goal.
An exact proof term for the current goal is LfRa n Hn.
An exact proof term for the current goal is LgRa n Hn.
We prove the intermediate claim L3: ∀n ∈ ω, hL n < x + y.
Let n be given.
Assume Hn.
rewrite the current goal using LhL n Hn (from left to right).
We will prove fL (ordsucc n) + gL (ordsucc n) < x + y.
Apply add_SNo_Lt3 (fL (ordsucc n)) (gL (ordsucc n)) x y (LfLb n Hn) (LgLb n Hn) Lx Ly to the current goal.
We will prove fL (ordsucc n) < x.
An exact proof term for the current goal is HfL1 (ordsucc n) (omega_ordsucc n Hn).
We will prove gL (ordsucc n) < y.
An exact proof term for the current goal is HgL1 (ordsucc n) (omega_ordsucc n Hn).
We prove the intermediate claim L4: ∀n ∈ ω, x + y < hL n + eps_ n.
Let n be given.
Assume Hn.
rewrite the current goal using LhL n Hn (from left to right).
We will prove x + y < (fL (ordsucc n) + gL (ordsucc n)) + eps_ n.
rewrite the current goal using eps_ordsucc_half_add n (omega_nat_p n Hn) (from right to left).
We will prove x + y < (fL (ordsucc n) + gL (ordsucc n)) + (eps_ (ordsucc n) + eps_ (ordsucc n)).
We prove the intermediate claim LeSn: SNo (eps_ (ordsucc n)).
An exact proof term for the current goal is SNo_eps_ (ordsucc n) (omega_ordsucc n Hn).
rewrite the current goal using add_SNo_com_4_inner_mid (fL (ordsucc n)) (gL (ordsucc n)) (eps_ (ordsucc n)) (eps_ (ordsucc n)) (LfLb n Hn) (LgLb n Hn) LeSn LeSn (from left to right).
We will prove x + y < (fL (ordsucc n) + eps_ (ordsucc n)) + (gL (ordsucc n) + eps_ (ordsucc n)).
Apply add_SNo_Lt3 x y (fL (ordsucc n) + eps_ (ordsucc n)) (gL (ordsucc n) + eps_ (ordsucc n)) Lx Ly (SNo_add_SNo (fL (ordsucc n)) (eps_ (ordsucc n)) (LfLb n Hn) LeSn) (SNo_add_SNo (gL (ordsucc n)) (eps_ (ordsucc n)) (LgLb n Hn) LeSn) to the current goal.
An exact proof term for the current goal is HfL2 (ordsucc n) (omega_ordsucc n Hn).
An exact proof term for the current goal is HgL2 (ordsucc n) (omega_ordsucc n Hn).
We prove the intermediate claim L5: ∀n ∈ ω, ∀i ∈ n, hL i < hL n.
Let n be given.
Assume Hn.
Let i be given.
Assume Hi.
rewrite the current goal using LhL n Hn (from left to right).
We prove the intermediate claim Li: iω.
An exact proof term for the current goal is nat_p_omega i (nat_p_trans n (omega_nat_p n Hn) i Hi).
rewrite the current goal using LhL i Li (from left to right).
We will prove fL (ordsucc i) + gL (ordsucc i) < fL (ordsucc n) + gL (ordsucc n).
Apply add_SNo_Lt3 (fL (ordsucc i)) (gL (ordsucc i)) (fL (ordsucc n)) (gL (ordsucc n)) (LfLb i Li) (LgLb i Li) (LfLb n Hn) (LgLb n Hn) to the current goal.
We will prove fL (ordsucc i) < fL (ordsucc n).
An exact proof term for the current goal is HfL3 (ordsucc n) (omega_ordsucc n Hn) (ordsucc i) (nat_ordsucc_in_ordsucc n (omega_nat_p n Hn) i Hi).
We will prove gL (ordsucc i) < gL (ordsucc n).
An exact proof term for the current goal is HgL3 (ordsucc n) (omega_ordsucc n Hn) (ordsucc i) (nat_ordsucc_in_ordsucc n (omega_nat_p n Hn) i Hi).
We prove the intermediate claim L6: ∀n ∈ ω, hR n + - eps_ n < x + y.
Let n be given.
Assume Hn.
rewrite the current goal using LhR n Hn (from left to right).
We will prove (fR (ordsucc n) + gR (ordsucc n)) + - eps_ n < x + y.
rewrite the current goal using eps_ordsucc_half_add n (omega_nat_p n Hn) (from right to left).
We will prove (fR (ordsucc n) + gR (ordsucc n)) + - (eps_ (ordsucc n) + eps_ (ordsucc n)) < x + y.
We prove the intermediate claim LeSn: SNo (eps_ (ordsucc n)).
An exact proof term for the current goal is SNo_eps_ (ordsucc n) (omega_ordsucc n Hn).
We prove the intermediate claim LmeSn: SNo (- eps_ (ordsucc n)).
An exact proof term for the current goal is SNo_minus_SNo (eps_ (ordsucc n)) LeSn.
rewrite the current goal using minus_add_SNo_distr (eps_ (ordsucc n)) (eps_ (ordsucc n)) LeSn LeSn (from left to right).
We will prove (fR (ordsucc n) + gR (ordsucc n)) + (- eps_ (ordsucc n) + - eps_ (ordsucc n)) < x + y.
rewrite the current goal using add_SNo_com_4_inner_mid (fR (ordsucc n)) (gR (ordsucc n)) (- eps_ (ordsucc n)) (- eps_ (ordsucc n)) (LfRb n Hn) (LgRb n Hn) LmeSn LmeSn (from left to right).
We will prove (fR (ordsucc n) + - eps_ (ordsucc n)) + (gR (ordsucc n) + - eps_ (ordsucc n)) < x + y.
Apply add_SNo_Lt3 (fR (ordsucc n) + - eps_ (ordsucc n)) (gR (ordsucc n) + - eps_ (ordsucc n)) x y (SNo_add_SNo (fR (ordsucc n)) (- eps_ (ordsucc n)) (LfRb n Hn) LmeSn) (SNo_add_SNo (gR (ordsucc n)) (- eps_ (ordsucc n)) (LgRb n Hn) LmeSn) Lx Ly to the current goal.
We will prove fR (ordsucc n) + - eps_ (ordsucc n) < x.
An exact proof term for the current goal is HfR1 (ordsucc n) (omega_ordsucc n Hn).
We will prove gR (ordsucc n) + - eps_ (ordsucc n) < y.
An exact proof term for the current goal is HgR1 (ordsucc n) (omega_ordsucc n Hn).
We prove the intermediate claim L7: ∀n ∈ ω, x + y < hR n.
Let n be given.
Assume Hn.
rewrite the current goal using LhR n Hn (from left to right).
We will prove x + y < fR (ordsucc n) + gR (ordsucc n).
Apply add_SNo_Lt3 x y (fR (ordsucc n)) (gR (ordsucc n)) Lx Ly (LfRb n Hn) (LgRb n Hn) to the current goal.
We will prove x < fR (ordsucc n).
An exact proof term for the current goal is HfR2 (ordsucc n) (omega_ordsucc n Hn).
We will prove y < gR (ordsucc n).
An exact proof term for the current goal is HgR2 (ordsucc n) (omega_ordsucc n Hn).
We prove the intermediate claim L8: ∀n ∈ ω, ∀i ∈ n, hR n < hR i.
Let n be given.
Assume Hn.
Let i be given.
Assume Hi.
rewrite the current goal using LhR n Hn (from left to right).
We prove the intermediate claim Li: iω.
An exact proof term for the current goal is nat_p_omega i (nat_p_trans n (omega_nat_p n Hn) i Hi).
rewrite the current goal using LhR i Li (from left to right).
We will prove fR (ordsucc n) + gR (ordsucc n) < fR (ordsucc i) + gR (ordsucc i).
Apply add_SNo_Lt3 (fR (ordsucc n)) (gR (ordsucc n)) (fR (ordsucc i)) (gR (ordsucc i)) (LfRb n Hn) (LgRb n Hn) (LfRb i Li) (LgRb i Li) to the current goal.
We will prove fR (ordsucc n) < fR (ordsucc i).
An exact proof term for the current goal is HfR3 (ordsucc n) (omega_ordsucc n Hn) (ordsucc i) (nat_ordsucc_in_ordsucc n (omega_nat_p n Hn) i Hi).
We will prove gR (ordsucc n) < gR (ordsucc i).
An exact proof term for the current goal is HgR3 (ordsucc n) (omega_ordsucc n Hn) (ordsucc i) (nat_ordsucc_in_ordsucc n (omega_nat_p n Hn) i Hi).
We prove the intermediate claim LLR: SNoCutP L R.
We will prove (∀w ∈ L, SNo w)(∀z ∈ R, SNo z)(∀w ∈ L, ∀z ∈ R, w < z).
Apply and3I to the current goal.
Let w be given.
Assume Hw.
Apply ReplE_impred ω (λn ⇒ hL n) w Hw to the current goal.
Let n be given.
Assume Hn: nω.
Assume Hwn: w = hL n.
rewrite the current goal using Hwn (from left to right).
We will prove SNo (hL n).
An exact proof term for the current goal is LhLb n Hn.
Let z be given.
Assume Hz.
Apply ReplE_impred ω (λn ⇒ hR n) z Hz to the current goal.
Let m be given.
Assume Hm: mω.
Assume Hzm: z = hR m.
rewrite the current goal using Hzm (from left to right).
We will prove SNo (hR m).
An exact proof term for the current goal is LhRb m Hm.
Let w be given.
Assume Hw.
Let z be given.
Assume Hz.
Apply ReplE_impred ω (λn ⇒ hL n) w Hw to the current goal.
Let n be given.
Assume Hn: nω.
Assume Hwn: w = hL n.
rewrite the current goal using Hwn (from left to right).
Apply ReplE_impred ω (λn ⇒ hR n) z Hz to the current goal.
Let m be given.
Assume Hm: mω.
Assume Hzm: z = hR m.
rewrite the current goal using Hzm (from left to right).
We will prove hL n < hR m.
Apply SNoLt_tra (hL n) (x + y) (hR m) (LhLb n Hn) (SNo_add_SNo x y Lx Ly) (LhRb m Hm) to the current goal.
We will prove hL n < x + y.
An exact proof term for the current goal is L3 n Hn.
We will prove x + y < hR m.
An exact proof term for the current goal is L7 m Hm.
Apply SNoCutP_SNoCut_impred L R LLR to the current goal.
Assume HLR1 HLR2 HLR3 HLR4 HLR5.
We prove the intermediate claim L9: x + y = SNoCut L R.
rewrite the current goal using add_SNo_eq x Lx y Ly (from left to right).
We will prove SNoCut ({w + y|w ∈ SNoL x}{x + w|w ∈ SNoL y}) ({z + y|z ∈ SNoR x}{x + z|z ∈ SNoR y}) = SNoCut L R.
Apply SNoCut_ext ({w + y|w ∈ SNoL x}{x + w|w ∈ SNoL y}) ({z + y|z ∈ SNoR x}{x + z|z ∈ SNoR y}) L R (add_SNo_SNoCutP x y Lx Ly) LLR to the current goal.
We will prove ∀w ∈ {w + y|w ∈ SNoL x}{x + w|w ∈ SNoL y}, w < SNoCut L R.
Let w be given.
Assume Hw.
Apply binunionE {w + y|w ∈ SNoL x} {x + w|w ∈ SNoL y} w Hw to the current goal.
Assume Hw: w{w + y|w ∈ SNoL x}.
Apply ReplE_impred (SNoL x) (λw ⇒ w + y) w Hw to the current goal.
Let w' be given.
Assume Hw': w'SNoL x.
Assume Hww'.
rewrite the current goal using Hww' (from left to right).
We will prove w' + y < SNoCut L R.
Apply SNoL_E x Lx w' Hw' to the current goal.
Assume Hw'1 Hw'2 Hw'3.
We prove the intermediate claim Lw'1: w'SNoS_ ω.
An exact proof term for the current goal is SNoLev_In_real_SNoS_omega x Hx w' Hw'1 Hw'2.
We prove the intermediate claim Lw'2: ∃n ∈ ω, w' + yhL n.
Apply dneg to the current goal.
Assume HC: ¬ (∃n ∈ ω, w' + yhL n).
We prove the intermediate claim Lw'2a: 0 < x + - w'.
Apply SNoLt_minus_pos w' x Hw'1 Lx Hw'3 to the current goal.
We prove the intermediate claim Lw'2b: w' = x.
Apply Lx2 w' Lw'1 to the current goal.
Let k be given.
Assume Hk.
We will prove abs_SNo (w' + - x) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap w' x Hw'1 Lx (from left to right).
We will prove abs_SNo (x + - w') < eps_ k.
rewrite the current goal using pos_abs_SNo (x + - w') Lw'2a (from left to right).
We will prove x + - w' < eps_ k.
Apply add_SNo_minus_Lt1b x w' (eps_ k) Lx Hw'1 (SNo_eps_ k Hk) to the current goal.
We will prove x < eps_ k + w'.
Apply SNoLtLe_or x (eps_ k + w') Lx (SNo_add_SNo (eps_ k) w' (SNo_eps_ k Hk) Hw'1) to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: eps_ k + w'x.
We will prove False.
Apply HC to the current goal.
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 will prove w' + yhL k.
Apply SNoLtLe to the current goal.
We will prove w' + y < hL k.
Apply add_SNo_Lt1_cancel (w' + y) (eps_ k) (hL k) (SNo_add_SNo w' y Hw'1 Ly) (SNo_eps_ k Hk) (LhLb k Hk) to the current goal.
We will prove (w' + y) + eps_ k < hL k + eps_ k.
Apply SNoLeLt_tra ((w' + y) + eps_ k) (x + y) (hL k + eps_ k) (SNo_add_SNo (w' + y) (eps_ k) (SNo_add_SNo w' y Hw'1 Ly) (SNo_eps_ k Hk)) Lxy (SNo_add_SNo (hL k) (eps_ k) (LhLb k Hk) (SNo_eps_ k Hk)) to the current goal.
We will prove (w' + y) + eps_ kx + y.
rewrite the current goal using add_SNo_com_3b_1_2 w' y (eps_ k) Hw'1 Ly (SNo_eps_ k Hk) (from left to right).
We will prove (w' + eps_ k) + yx + y.
Apply add_SNo_Le1 (w' + eps_ k) y x (SNo_add_SNo w' (eps_ k) Hw'1 (SNo_eps_ k Hk)) Ly Lx to the current goal.
We will prove w' + eps_ kx.
rewrite the current goal using add_SNo_com w' (eps_ k) Hw'1 (SNo_eps_ k Hk) (from left to right).
We will prove eps_ k + w'x.
An exact proof term for the current goal is H2.
We will prove x + y < hL k + eps_ k.
An exact proof term for the current goal is L4 k Hk.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
rewrite the current goal using Lw'2b (from right to left) at position 1.
An exact proof term for the current goal is Hw'3.
Apply Lw'2 to the current goal.
Let n be given.
Assume Hn.
Apply Hn to the current goal.
Assume Hn1 Hn2.
Apply SNoLeLt_tra (w' + y) (hL n) (SNoCut L R) (SNo_add_SNo w' y Hw'1 Ly) (LhLb n Hn1) HLR1 to the current goal.
We will prove w' + yhL n.
An exact proof term for the current goal is Hn2.
We will prove hL n < SNoCut L R.
Apply HLR3 to the current goal.
We will prove hL nL.
Apply ReplI to the current goal.
An exact proof term for the current goal is Hn1.
Assume Hw: w{x + w|w ∈ SNoL y}.
Apply ReplE_impred (SNoL y) (λw ⇒ x + w) w Hw to the current goal.
Let w' be given.
Assume Hw': w'SNoL y.
Assume Hww'.
rewrite the current goal using Hww' (from left to right).
We will prove x + w' < SNoCut L R.
Apply SNoL_E y Ly w' Hw' to the current goal.
Assume Hw'1 Hw'2 Hw'3.
We prove the intermediate claim Lw'1: w'SNoS_ ω.
An exact proof term for the current goal is SNoLev_In_real_SNoS_omega y Hy w' Hw'1 Hw'2.
We prove the intermediate claim Lw'2: ∃n ∈ ω, x + w'hL n.
Apply dneg to the current goal.
Assume HC: ¬ (∃n ∈ ω, x + w'hL n).
We prove the intermediate claim Lw'2a: 0 < y + - w'.
Apply SNoLt_minus_pos w' y Hw'1 Ly Hw'3 to the current goal.
We prove the intermediate claim Lw'2b: w' = y.
Apply Ly2 w' Lw'1 to the current goal.
Let k be given.
Assume Hk.
We will prove abs_SNo (w' + - y) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap w' y Hw'1 Ly (from left to right).
We will prove abs_SNo (y + - w') < eps_ k.
rewrite the current goal using pos_abs_SNo (y + - w') Lw'2a (from left to right).
We will prove y + - w' < eps_ k.
Apply add_SNo_minus_Lt1b y w' (eps_ k) Ly Hw'1 (SNo_eps_ k Hk) to the current goal.
We will prove y < eps_ k + w'.
Apply SNoLtLe_or y (eps_ k + w') Ly (SNo_add_SNo (eps_ k) w' (SNo_eps_ k Hk) Hw'1) to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: eps_ k + w'y.
We will prove False.
Apply HC to the current goal.
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 will prove x + w'hL k.
Apply SNoLtLe to the current goal.
We will prove x + w' < hL k.
Apply add_SNo_Lt1_cancel (x + w') (eps_ k) (hL k) (SNo_add_SNo x w' Lx Hw'1) (SNo_eps_ k Hk) (LhLb k Hk) to the current goal.
We will prove (x + w') + eps_ k < hL k + eps_ k.
Apply SNoLeLt_tra ((x + w') + eps_ k) (x + y) (hL k + eps_ k) (SNo_add_SNo (x + w') (eps_ k) (SNo_add_SNo x w' Lx Hw'1) (SNo_eps_ k Hk)) Lxy (SNo_add_SNo (hL k) (eps_ k) (LhLb k Hk) (SNo_eps_ k Hk)) to the current goal.
We will prove (x + w') + eps_ kx + y.
rewrite the current goal using add_SNo_assoc x w' (eps_ k) Lx Hw'1 (SNo_eps_ k Hk) (from right to left).
We will prove x + (w' + eps_ k)x + y.
Apply add_SNo_Le2 x (w' + eps_ k) y Lx (SNo_add_SNo w' (eps_ k) Hw'1 (SNo_eps_ k Hk)) Ly to the current goal.
We will prove w' + eps_ ky.
rewrite the current goal using add_SNo_com w' (eps_ k) Hw'1 (SNo_eps_ k Hk) (from left to right).
We will prove eps_ k + w'y.
An exact proof term for the current goal is H2.
We will prove x + y < hL k + eps_ k.
An exact proof term for the current goal is L4 k Hk.
Apply SNoLt_irref y to the current goal.
We will prove y < y.
rewrite the current goal using Lw'2b (from right to left) at position 1.
An exact proof term for the current goal is Hw'3.
Apply Lw'2 to the current goal.
Let n be given.
Assume Hn.
Apply Hn to the current goal.
Assume Hn1 Hn2.
Apply SNoLeLt_tra (x + w') (hL n) (SNoCut L R) (SNo_add_SNo x w' Lx Hw'1) (LhLb n Hn1) HLR1 to the current goal.
We will prove x + w'hL n.
An exact proof term for the current goal is Hn2.
We will prove hL n < SNoCut L R.
Apply HLR3 to the current goal.
We will prove hL nL.
Apply ReplI to the current goal.
An exact proof term for the current goal is Hn1.
We will prove ∀z ∈ {z + y|z ∈ SNoR x}{x + z|z ∈ SNoR y}, SNoCut L R < z.
Let z be given.
Assume Hz.
Apply binunionE {z + y|z ∈ SNoR x} {x + z|z ∈ SNoR y} z Hz to the current goal.
Assume Hz: z{z + y|z ∈ SNoR x}.
Apply ReplE_impred (SNoR x) (λz ⇒ z + y) z Hz to the current goal.
Let z' be given.
Assume Hz': z'SNoR x.
Assume Hzz'.
rewrite the current goal using Hzz' (from left to right).
We will prove SNoCut L R < z' + y.
Apply SNoR_E x Lx z' Hz' to the current goal.
Assume Hz'1 Hz'2 Hz'3.
We prove the intermediate claim Lz'1: z'SNoS_ ω.
An exact proof term for the current goal is SNoLev_In_real_SNoS_omega x Hx z' Hz'1 Hz'2.
We prove the intermediate claim Lz'2: ∃n ∈ ω, hR nz' + y.
Apply dneg to the current goal.
Assume HC: ¬ (∃n ∈ ω, hR nz' + y).
We prove the intermediate claim Lz'2a: 0 < z' + - x.
Apply SNoLt_minus_pos x z' Lx Hz'1 Hz'3 to the current goal.
We prove the intermediate claim Lz'2b: z' = x.
Apply Lx2 z' Lz'1 to the current goal.
Let k be given.
Assume Hk.
We will prove abs_SNo (z' + - x) < eps_ k.
rewrite the current goal using pos_abs_SNo (z' + - x) Lz'2a (from left to right).
We will prove z' + - x < eps_ k.
Apply add_SNo_minus_Lt1b z' x (eps_ k) Hz'1 Lx (SNo_eps_ k Hk) to the current goal.
We will prove z' < eps_ k + x.
Apply SNoLtLe_or z' (eps_ k + x) Hz'1 (SNo_add_SNo (eps_ k) x (SNo_eps_ k Hk) Lx) to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: eps_ k + xz'.
We will prove False.
Apply HC to the current goal.
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 will prove hR kz' + y.
Apply SNoLtLe to the current goal.
Apply add_SNo_Lt1_cancel (hR k) (- eps_ k) (z' + y) (LhRb k Hk) (SNo_minus_SNo (eps_ k) (SNo_eps_ k Hk)) (SNo_add_SNo z' y Hz'1 Ly) to the current goal.
We will prove hR k + - eps_ k < (z' + y) + - eps_ k.
Apply SNoLtLe_tra (hR k + - eps_ k) (x + y) ((z' + y) + - eps_ k) (SNo_add_SNo (hR k) (- eps_ k) (LhRb k Hk) (SNo_minus_SNo (eps_ k) (SNo_eps_ k Hk))) Lxy (SNo_add_SNo (z' + y) (- eps_ k) (SNo_add_SNo z' y Hz'1 Ly) (SNo_minus_SNo (eps_ k) (SNo_eps_ k Hk))) to the current goal.
We will prove hR k + - eps_ k < x + y.
An exact proof term for the current goal is L6 k Hk.
We will prove x + y(z' + y) + - eps_ k.
Apply add_SNo_minus_Le2b (z' + y) (eps_ k) (x + y) (SNo_add_SNo z' y Hz'1 Ly) (SNo_eps_ k Hk) Lxy to the current goal.
We will prove (x + y) + eps_ kz' + y.
rewrite the current goal using add_SNo_com_3b_1_2 x y (eps_ k) Lx Ly (SNo_eps_ k Hk) (from left to right).
We will prove (x + eps_ k) + yz' + y.
Apply add_SNo_Le1 (x + eps_ k) y z' (SNo_add_SNo x (eps_ k) Lx (SNo_eps_ k Hk)) Ly Hz'1 to the current goal.
We will prove x + eps_ kz'.
rewrite the current goal using add_SNo_com x (eps_ k) Lx (SNo_eps_ k Hk) (from left to right).
An exact proof term for the current goal is H2.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
rewrite the current goal using Lz'2b (from right to left) at position 2.
An exact proof term for the current goal is Hz'3.
Apply Lz'2 to the current goal.
Let n be given.
Assume Hn.
Apply Hn to the current goal.
Assume Hn1 Hn2.
Apply SNoLtLe_tra (SNoCut L R) (hR n) (z' + y) HLR1 (LhRb n Hn1) (SNo_add_SNo z' y Hz'1 Ly) to the current goal.
We will prove SNoCut L R < hR n.
Apply HLR4 to the current goal.
We will prove hR nR.
Apply ReplI to the current goal.
An exact proof term for the current goal is Hn1.
We will prove hR nz' + y.
An exact proof term for the current goal is Hn2.
Assume Hz: z{x + z|z ∈ SNoR y}.
Apply ReplE_impred (SNoR y) (λz ⇒ x + z) z Hz to the current goal.
Let z' be given.
Assume Hz': z'SNoR y.
Assume Hzz'.
rewrite the current goal using Hzz' (from left to right).
We will prove SNoCut L R < x + z'.
Apply SNoR_E y Ly z' Hz' to the current goal.
Assume Hz'1 Hz'2 Hz'3.
We prove the intermediate claim Lz'1: z'SNoS_ ω.
An exact proof term for the current goal is SNoLev_In_real_SNoS_omega y Hy z' Hz'1 Hz'2.
We prove the intermediate claim Lz'2: ∃n ∈ ω, hR nx + z'.
Apply dneg to the current goal.
Assume HC: ¬ (∃n ∈ ω, hR nx + z').
We prove the intermediate claim Lz'2a: 0 < z' + - y.
Apply SNoLt_minus_pos y z' Ly Hz'1 Hz'3 to the current goal.
We prove the intermediate claim Lz'2b: z' = y.
Apply Ly2 z' Lz'1 to the current goal.
Let k be given.
Assume Hk.
We will prove abs_SNo (z' + - y) < eps_ k.
rewrite the current goal using pos_abs_SNo (z' + - y) Lz'2a (from left to right).
We will prove z' + - y < eps_ k.
Apply add_SNo_minus_Lt1b z' y (eps_ k) Hz'1 Ly (SNo_eps_ k Hk) to the current goal.
We will prove z' < eps_ k + y.
Apply SNoLtLe_or z' (eps_ k + y) Hz'1 (SNo_add_SNo (eps_ k) y (SNo_eps_ k Hk) Ly) to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: eps_ k + yz'.
We will prove False.
Apply HC to the current goal.
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 will prove hR kx + z'.
Apply SNoLtLe to the current goal.
Apply add_SNo_Lt1_cancel (hR k) (- eps_ k) (x + z') (LhRb k Hk) (SNo_minus_SNo (eps_ k) (SNo_eps_ k Hk)) (SNo_add_SNo x z' Lx Hz'1) to the current goal.
We will prove hR k + - eps_ k < (x + z') + - eps_ k.
Apply SNoLtLe_tra (hR k + - eps_ k) (x + y) ((x + z') + - eps_ k) (SNo_add_SNo (hR k) (- eps_ k) (LhRb k Hk) (SNo_minus_SNo (eps_ k) (SNo_eps_ k Hk))) Lxy (SNo_add_SNo (x + z') (- eps_ k) (SNo_add_SNo x z' Lx Hz'1) (SNo_minus_SNo (eps_ k) (SNo_eps_ k Hk))) to the current goal.
We will prove hR k + - eps_ k < x + y.
An exact proof term for the current goal is L6 k Hk.
We will prove x + y(x + z') + - eps_ k.
Apply add_SNo_minus_Le2b (x + z') (eps_ k) (x + y) (SNo_add_SNo x z' Lx Hz'1) (SNo_eps_ k Hk) Lxy to the current goal.
We will prove (x + y) + eps_ kx + z'.
rewrite the current goal using add_SNo_assoc x y (eps_ k) Lx Ly (SNo_eps_ k Hk) (from right to left).
We will prove x + (y + eps_ k)x + z'.
Apply add_SNo_Le2 x (y + eps_ k) z' Lx (SNo_add_SNo y (eps_ k) Ly (SNo_eps_ k Hk)) Hz'1 to the current goal.
We will prove y + eps_ kz'.
rewrite the current goal using add_SNo_com y (eps_ k) Ly (SNo_eps_ k Hk) (from left to right).
An exact proof term for the current goal is H2.
Apply SNoLt_irref y to the current goal.
We will prove y < y.
rewrite the current goal using Lz'2b (from right to left) at position 2.
An exact proof term for the current goal is Hz'3.
Apply Lz'2 to the current goal.
Let n be given.
Assume Hn.
Apply Hn to the current goal.
Assume Hn1 Hn2.
Apply SNoLtLe_tra (SNoCut L R) (hR n) (x + z') HLR1 (LhRb n Hn1) (SNo_add_SNo x z' Lx Hz'1) to the current goal.
We will prove SNoCut L R < hR n.
Apply HLR4 to the current goal.
We will prove hR nR.
Apply ReplI to the current goal.
An exact proof term for the current goal is Hn1.
We will prove hR nx + z'.
An exact proof term for the current goal is Hn2.
Let w be given.
Assume Hw: wL.
rewrite the current goal using add_SNo_eq x Lx y Ly (from right to left).
We will prove w < x + y.
Apply ReplE_impred ω (λn ⇒ hL n) w Hw to the current goal.
Let n be given.
Assume Hn: nω.
Assume Hwn: w = hL n.
rewrite the current goal using Hwn (from left to right).
We will prove hL n < x + y.
An exact proof term for the current goal is L3 n Hn.
Let z be given.
Assume Hz: zR.
rewrite the current goal using add_SNo_eq x Lx y Ly (from right to left).
We will prove x + y < z.
Apply ReplE_impred ω (λn ⇒ hR n) z Hz to the current goal.
Let n be given.
Assume Hn: nω.
Assume Hzn: z = hR n.
rewrite the current goal using Hzn (from left to right).
We will prove x + y < hR n.
An exact proof term for the current goal is L7 n Hn.
An exact proof term for the current goal is SNo_approx_real (x + y) (SNo_add_SNo x y Lx Ly) hL L1 hR L2 L3 L4 L5 L7 L8 L9.
Theorem. (SNoS_ordsucc_omega_bdd_eps_pos) The following is provable:
∀x ∈ SNoS_ (ordsucc ω), 0 < xx < ω∃N ∈ ω, eps_ N * x < 1
Proof:
Let x be given.
Assume Hx1 Hx2 Hx3.
Apply SNoS_E2 (ordsucc ω) ordsucc_omega_ordinal x Hx1 to the current goal.
Assume Hx1a Hx1b Hx1c Hx1d.
Apply SNoS_ordsucc_omega_bdd_above x Hx1 Hx3 to the current goal.
Let N be given.
Assume HN.
Apply HN to the current goal.
Assume HN1: Nω.
Assume HN2: x < N.
We prove the intermediate claim LN: SNo N.
An exact proof term for the current goal is omega_SNo N HN1.
We use N to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is HN1.
We will prove eps_ N * x < 1.
Apply SNoLt_tra (eps_ N * x) (eps_ N * N) 1 (SNo_mul_SNo (eps_ N) x (SNo_eps_ N HN1) Hx1c) (SNo_mul_SNo (eps_ N) N (SNo_eps_ N HN1) LN) SNo_1 to the current goal.
We will prove eps_ N * x < eps_ N * N.
Apply pos_mul_SNo_Lt (eps_ N) x N (SNo_eps_ N HN1) (SNo_eps_pos N HN1) Hx1c LN to the current goal.
We will prove x < N.
An exact proof term for the current goal is HN2.
We will prove eps_ N * N < 1.
Apply SNoLtLe_or (eps_ N * N) 1 (SNo_mul_SNo (eps_ N) N (SNo_eps_ N HN1) LN) SNo_1 to the current goal.
Assume H1: eps_ N * N < 1.
An exact proof term for the current goal is H1.
Assume H1: 1eps_ N * N.
We will prove False.
We prove the intermediate claim L2N: SNo (2 ^ N).
An exact proof term for the current goal is SNo_exp_SNo_nat 2 SNo_2 N (omega_nat_p N HN1).
We prove the intermediate claim L1: 2 ^ N2 ^ N * eps_ N * N.
rewrite the current goal using mul_SNo_oneR (2 ^ N) L2N (from right to left) at position 1.
We will prove 2 ^ N * 12 ^ N * eps_ N * N.
Apply nonneg_mul_SNo_Le (2 ^ N) 1 (eps_ N * N) L2N to the current goal.
We will prove 02 ^ N.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is exp_SNo_nat_pos 2 SNo_2 SNoLt_0_2 N (omega_nat_p N HN1).
An exact proof term for the current goal is SNo_1.
An exact proof term for the current goal is SNo_mul_SNo (eps_ N) N (SNo_eps_ N HN1) LN.
We will prove 1eps_ N * N.
An exact proof term for the current goal is H1.
Apply SNoLt_irref (2 ^ N) to the current goal.
We will prove 2 ^ N < 2 ^ N.
Apply SNoLeLt_tra (2 ^ N) N (2 ^ N) L2N LN L2N to the current goal.
We will prove 2 ^ NN.
rewrite the current goal using mul_SNo_oneL N LN (from right to left) at position 2.
We will prove 2 ^ N1 * N.
rewrite the current goal using mul_SNo_eps_power_2' N (omega_nat_p N HN1) (from right to left) at position 2.
We will prove 2 ^ N(2 ^ N * eps_ N) * N.
rewrite the current goal using mul_SNo_assoc (2 ^ N) (eps_ N) N L2N (SNo_eps_ N HN1) LN (from right to left).
An exact proof term for the current goal is L1.
We will prove N < 2 ^ N.
An exact proof term for the current goal is exp_SNo_2_bd N (omega_nat_p N HN1).
Theorem. (real_mul_SNo_pos) The following is provable:
∀x y ∈ real, 0 < x0 < yx * yreal
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy Hx0 Hy0.
Apply dneg to the current goal.
Assume HC: x * yreal.
Apply real_E x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4 Hx5 Hx6 Hx7.
Apply real_E y Hy to the current goal.
Assume Hy1 Hy2 Hy3 Hy4 Hy5 Hy6 Hy7.
We prove the intermediate claim Lx7: ∀k ∈ ω, ∀p : prop, (∀q ∈ SNoS_ ω, 0 < qq < xx < q + eps_ kp)p.
An exact proof term for the current goal is SNo_prereal_incr_lower_pos x Hx1 Hx0 Hx6 Hx7.
We prove the intermediate claim Ly7: ∀k ∈ ω, ∀p : prop, (∀q ∈ SNoS_ ω, 0 < qq < yy < q + eps_ kp)p.
An exact proof term for the current goal is SNo_prereal_incr_lower_pos y Hy1 Hy0 Hy6 Hy7.
We prove the intermediate claim Lxy: SNo (x * y).
An exact proof term for the current goal is SNo_mul_SNo x y Hx1 Hy1.
We prove the intermediate claim Lmxy: SNo (- x * y).
An exact proof term for the current goal is SNo_minus_SNo (x * y) Lxy.
We prove the intermediate claim Lxy2: SNoLev (x * y)ω.
Assume H1: SNoLev (x * y)ω.
Apply HC to the current goal.
Apply SNoS_omega_real (x * y) to the current goal.
We will prove x * ySNoS_ ω.
Apply SNoS_I ω omega_ordinal (x * y) (SNoLev (x * y)) H1 to the current goal.
We will prove SNo_ (SNoLev (x * y)) (x * y).
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Lxy.
We prove the intermediate claim Lxy3: ∀q, SNo qSNoLev qωSNoLev qSNoLev (x * y).
Let q be given.
Assume Hq1 Hq2.
Apply ordinal_trichotomy_or_impred (SNoLev q) (SNoLev (x * y)) (SNoLev_ordinal q Hq1) (SNoLev_ordinal (x * y) Lxy) to the current goal.
Assume H1.
An exact proof term for the current goal is H1.
Assume H1: SNoLev q = SNoLev (x * y).
We will prove False.
Apply Lxy2 to the current goal.
rewrite the current goal using H1 (from right to left).
An exact proof term for the current goal is Hq2.
Assume H1: SNoLev (x * y)SNoLev q.
We will prove False.
Apply Lxy2 to the current goal.
Apply nat_p_omega to the current goal.
An exact proof term for the current goal is nat_p_trans (SNoLev q) (omega_nat_p (SNoLev q) Hq2) (SNoLev (x * y)) H1.
We prove the intermediate claim LLx: SNoL xSNoS_ ω.
Let v be given.
Assume Hv.
Apply SNoL_E x Hx1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev x.
Assume Hv3.
Apply SNoS_I ω omega_ordinal v (SNoLev v) to the current goal.
We will prove SNoLev vω.
Apply ordsuccE ω (SNoLev x) Hx2 to the current goal.
Assume H1: SNoLev xω.
An exact proof term for the current goal is omega_TransSet (SNoLev x) H1 (SNoLev v) Hv2.
Assume H1: SNoLev x = ω.
rewrite the current goal using H1 (from right to left).
An exact proof term for the current goal is Hv2.
We will prove SNo_ (SNoLev v) v.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hv1.
We prove the intermediate claim LRx: SNoR xSNoS_ ω.
Let v be given.
Assume Hv.
Apply SNoR_E x Hx1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev x.
Assume Hv3.
Apply SNoS_I ω omega_ordinal v (SNoLev v) to the current goal.
We will prove SNoLev vω.
Apply ordsuccE ω (SNoLev x) Hx2 to the current goal.
Assume H1: SNoLev xω.
An exact proof term for the current goal is omega_TransSet (SNoLev x) H1 (SNoLev v) Hv2.
Assume H1: SNoLev x = ω.
rewrite the current goal using H1 (from right to left).
An exact proof term for the current goal is Hv2.
We will prove SNo_ (SNoLev v) v.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hv1.
We prove the intermediate claim LLy: SNoL ySNoS_ ω.
Let v be given.
Assume Hv.
Apply SNoL_E y Hy1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev y.
Assume Hv3.
Apply SNoS_I ω omega_ordinal v (SNoLev v) to the current goal.
We will prove SNoLev vω.
Apply ordsuccE ω (SNoLev y) Hy2 to the current goal.
Assume H1: SNoLev yω.
An exact proof term for the current goal is omega_TransSet (SNoLev y) H1 (SNoLev v) Hv2.
Assume H1: SNoLev y = ω.
rewrite the current goal using H1 (from right to left).
An exact proof term for the current goal is Hv2.
We will prove SNo_ (SNoLev v) v.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hv1.
We prove the intermediate claim LRy: SNoR ySNoS_ ω.
Let v be given.
Assume Hv.
Apply SNoR_E y Hy1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev y.
Assume Hv3.
Apply SNoS_I ω omega_ordinal v (SNoLev v) to the current goal.
We will prove SNoLev vω.
Apply ordsuccE ω (SNoLev y) Hy2 to the current goal.
Assume H1: SNoLev yω.
An exact proof term for the current goal is omega_TransSet (SNoLev y) H1 (SNoLev v) Hv2.
Assume H1: SNoLev y = ω.
rewrite the current goal using H1 (from right to left).
An exact proof term for the current goal is Hv2.
We will prove SNo_ (SNoLev v) v.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hv1.
We prove the intermediate claim LLx2: ∀v ∈ SNoL x, ∀p : prop, (∀k, kωeps_ kx + - vp)p.
Let v be given.
Assume Hv.
Let p be given.
Assume Hp.
Apply SNoL_E x Hx1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev x.
Assume Hv3: v < x.
Apply xm (∀k ∈ ω, abs_SNo (v + - x) < eps_ k) to the current goal.
Assume H1.
We will prove False.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
rewrite the current goal using Hx6 v (LLx v Hv) H1 (from right to left) at position 1.
We will prove v < x.
An exact proof term for the current goal is Hv3.
Assume H1: ¬ (∀k ∈ ω, abs_SNo (v + - x) < eps_ k).
Apply dneg to the current goal.
Assume H2: ¬ p.
Apply H1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (v + - x) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap v x Hv1 Hx1 (from left to right).
We will prove abs_SNo (x + - v) < eps_ k.
rewrite the current goal using pos_abs_SNo (x + - v) (SNoLt_minus_pos v x Hv1 Hx1 Hv3) (from left to right).
We will prove x + - v < eps_ k.
Apply SNoLtLe_or (x + - v) (eps_ k) (SNo_add_SNo x (- v) Hx1 (SNo_minus_SNo v Hv1)) (SNo_eps_ k Hk) to the current goal.
Assume H3: x + - v < eps_ k.
An exact proof term for the current goal is H3.
Assume H3: eps_ kx + - v.
We will prove False.
Apply H2 to the current goal.
Apply Hp k Hk to the current goal.
An exact proof term for the current goal is H3.
We prove the intermediate claim LRx2: ∀v ∈ SNoR x, ∀p : prop, (∀k, kωeps_ kv + - xp)p.
Let v be given.
Assume Hv.
Let p be given.
Assume Hp.
Apply SNoR_E x Hx1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev x.
Assume Hv3: x < v.
Apply xm (∀k ∈ ω, abs_SNo (v + - x) < eps_ k) to the current goal.
Assume H1.
We will prove False.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
rewrite the current goal using Hx6 v (LRx v Hv) H1 (from right to left) at position 2.
We will prove x < v.
An exact proof term for the current goal is Hv3.
Assume H1: ¬ (∀k ∈ ω, abs_SNo (v + - x) < eps_ k).
Apply dneg to the current goal.
Assume H2: ¬ p.
Apply H1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (v + - x) < eps_ k.
rewrite the current goal using pos_abs_SNo (v + - x) (SNoLt_minus_pos x v Hx1 Hv1 Hv3) (from left to right).
We will prove v + - x < eps_ k.
Apply SNoLtLe_or (v + - x) (eps_ k) (SNo_add_SNo v (- x) Hv1 (SNo_minus_SNo x Hx1)) (SNo_eps_ k Hk) to the current goal.
Assume H3: v + - x < eps_ k.
An exact proof term for the current goal is H3.
Assume H3: eps_ kv + - x.
We will prove False.
Apply H2 to the current goal.
Apply Hp k Hk to the current goal.
An exact proof term for the current goal is H3.
We prove the intermediate claim LLy2: ∀v ∈ SNoL y, ∀p : prop, (∀k, kωeps_ ky + - vp)p.
Let v be given.
Assume Hv.
Let p be given.
Assume Hp.
Apply SNoL_E y Hy1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev y.
Assume Hv3: v < y.
Apply xm (∀k ∈ ω, abs_SNo (v + - y) < eps_ k) to the current goal.
Assume H1.
We will prove False.
Apply SNoLt_irref y to the current goal.
We will prove y < y.
rewrite the current goal using Hy6 v (LLy v Hv) H1 (from right to left) at position 1.
We will prove v < y.
An exact proof term for the current goal is Hv3.
Assume H1: ¬ (∀k ∈ ω, abs_SNo (v + - y) < eps_ k).
Apply dneg to the current goal.
Assume H2: ¬ p.
Apply H1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (v + - y) < eps_ k.
rewrite the current goal using abs_SNo_dist_swap v y Hv1 Hy1 (from left to right).
We will prove abs_SNo (y + - v) < eps_ k.
rewrite the current goal using pos_abs_SNo (y + - v) (SNoLt_minus_pos v y Hv1 Hy1 Hv3) (from left to right).
We will prove y + - v < eps_ k.
Apply SNoLtLe_or (y + - v) (eps_ k) (SNo_add_SNo y (- v) Hy1 (SNo_minus_SNo v Hv1)) (SNo_eps_ k Hk) to the current goal.
Assume H3: y + - v < eps_ k.
An exact proof term for the current goal is H3.
Assume H3: eps_ ky + - v.
We will prove False.
Apply H2 to the current goal.
Apply Hp k Hk to the current goal.
An exact proof term for the current goal is H3.
We prove the intermediate claim LRy2: ∀v ∈ SNoR y, ∀p : prop, (∀k, kωeps_ kv + - yp)p.
Let v be given.
Assume Hv.
Let p be given.
Assume Hp.
Apply SNoR_E y Hy1 v Hv to the current goal.
Assume Hv1: SNo v.
Assume Hv2: SNoLev vSNoLev y.
Assume Hv3: y < v.
Apply xm (∀k ∈ ω, abs_SNo (v + - y) < eps_ k) to the current goal.
Assume H1.
We will prove False.
Apply SNoLt_irref y to the current goal.
We will prove y < y.
rewrite the current goal using Hy6 v (LRy v Hv) H1 (from right to left) at position 2.
We will prove y < v.
An exact proof term for the current goal is Hv3.
Assume H1: ¬ (∀k ∈ ω, abs_SNo (v + - y) < eps_ k).
Apply dneg to the current goal.
Assume H2: ¬ p.
Apply H1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (v + - y) < eps_ k.
rewrite the current goal using pos_abs_SNo (v + - y) (SNoLt_minus_pos y v Hy1 Hv1 Hv3) (from left to right).
We will prove v + - y < eps_ k.
Apply SNoLtLe_or (v + - y) (eps_ k) (SNo_add_SNo v (- y) Hv1 (SNo_minus_SNo y Hy1)) (SNo_eps_ k Hk) to the current goal.
Assume H3: v + - y < eps_ k.
An exact proof term for the current goal is H3.
Assume H3: eps_ kv + - y.
We will prove False.
Apply H2 to the current goal.
Apply Hp k Hk to the current goal.
An exact proof term for the current goal is H3.
Apply mul_SNo_eq_3 x y Hx1 Hy1 to the current goal.
Let L and R be given.
Assume HLR: SNoCutP L R.
Assume HLE: ∀u, uL∀q : prop, (∀w0 ∈ SNoL x, ∀w1 ∈ SNoL y, u = w0 * y + x * w1 + - w0 * w1q)(∀z0 ∈ SNoR x, ∀z1 ∈ SNoR y, u = z0 * y + x * z1 + - z0 * z1q)q.
Assume HLI1: ∀w0 ∈ SNoL x, ∀w1 ∈ SNoL y, w0 * y + x * w1 + - w0 * w1L.
Assume HLI2: ∀z0 ∈ SNoR x, ∀z1 ∈ SNoR y, z0 * y + x * z1 + - z0 * z1L.
Assume HRE: ∀u, uR∀q : prop, (∀w0 ∈ SNoL x, ∀z1 ∈ SNoR y, u = w0 * y + x * z1 + - w0 * z1q)(∀z0 ∈ SNoR x, ∀w1 ∈ SNoL y, u = z0 * y + x * w1 + - z0 * w1q)q.
Assume HRI1: ∀w0 ∈ SNoL x, ∀z1 ∈ SNoR y, w0 * y + x * z1 + - w0 * z1R.
Assume HRI2: ∀z0 ∈ SNoR x, ∀w1 ∈ SNoL y, z0 * y + x * w1 + - z0 * w1R.
Assume HxyLR: x * y = SNoCut L R.
We prove the intermediate claim L1: ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - (x * y)) < eps_ k)q = x * y.
Let q be given.
Assume Hq1 Hq2.
We will prove q = x * y.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
Apply SNoLt_trichotomy_or_impred q (x * y) Hq1c Lxy to the current goal.
Assume H1: q < x * y.
We will prove False.
We prove the intermediate claim Lq1: qSNoL (x * y).
Apply SNoL_I to the current goal.
An exact proof term for the current goal is Lxy.
An exact proof term for the current goal is Hq1c.
We will prove SNoLev qSNoLev (x * y).
An exact proof term for the current goal is Lxy3 q Hq1c Hq1a.
We will prove q < x * y.
An exact proof term for the current goal is H1.
Apply mul_SNo_SNoL_interpolate_impred x y Hx1 Hy1 q Lq1 to the current goal.
Let v be given.
Assume Hv: vSNoL x.
Let w be given.
Assume Hw: wSNoL y.
Apply SNoL_E x Hx1 v Hv to the current goal.
Assume Hv1 _ _.
Apply SNoL_E y Hy1 w Hw to the current goal.
Assume Hw1 _ _.
Assume H2: q + v * wv * y + x * w.
We prove the intermediate claim Lvw: SNo (v * w).
An exact proof term for the current goal is SNo_mul_SNo v w Hv1 Hw1.
We prove the intermediate claim Lxw: SNo (x * w).
An exact proof term for the current goal is SNo_mul_SNo x w ?? Hw1.
We prove the intermediate claim Lmxw: SNo (- x * w).
An exact proof term for the current goal is SNo_minus_SNo (x * w) Lxw.
We prove the intermediate claim Lvy: SNo (v * y).
An exact proof term for the current goal is SNo_mul_SNo v y Hv1 ??.
We prove the intermediate claim Lmvy: SNo (- v * y).
An exact proof term for the current goal is SNo_minus_SNo (v * y) Lvy.
We prove the intermediate claim Lxmv: SNo (x + - v).
An exact proof term for the current goal is SNo_add_SNo x (- v) ?? (SNo_minus_SNo v ??).
We prove the intermediate claim Lymw: SNo (y + - w).
An exact proof term for the current goal is SNo_add_SNo y (- w) ?? (SNo_minus_SNo w ??).
Apply LLx2 v Hv to the current goal.
Let k be given.
Assume Hk1: kω.
Assume Hk2: eps_ kx + - v.
Apply LLy2 w Hw to the current goal.
Let k' be given.
Assume Hk'1: k'ω.
Assume Hk'2: eps_ k'y + - w.
We prove the intermediate claim Lek: SNo (eps_ k).
An exact proof term for the current goal is SNo_eps_ k Hk1.
We prove the intermediate claim Lek': SNo (eps_ k').
An exact proof term for the current goal is SNo_eps_ k' Hk'1.
We prove the intermediate claim Lkk': k + k'ω.
An exact proof term for the current goal is add_SNo_In_omega k Hk1 k' Hk'1.
We prove the intermediate claim Lekk': SNo (eps_ (k + k')).
An exact proof term for the current goal is SNo_eps_ (k + k') Lkk'.
We prove the intermediate claim Lekek': SNo (eps_ k * eps_ k').
An exact proof term for the current goal is SNo_mul_SNo (eps_ k) (eps_ k') Lek Lek'.
We prove the intermediate claim L1a: abs_SNo (q + - (x * y)) < eps_ (k + k').
An exact proof term for the current goal is Hq2 (k + k') (add_SNo_In_omega k Hk1 k' Hk'1).
We prove the intermediate claim L1b: eps_ (k + k')abs_SNo (q + - (x * y)).
rewrite the current goal using abs_SNo_dist_swap q (x * y) Hq1c Lxy (from left to right).
We will prove eps_ (k + k')abs_SNo (x * y + - q).
rewrite the current goal using pos_abs_SNo (x * y + - q) (SNoLt_minus_pos q (x * y) Hq1c Lxy H1) (from left to right).
We will prove eps_ (k + k')x * y + - q.
Apply add_SNo_minus_Le2b (x * y) q (eps_ (k + k')) Lxy Hq1c Lekk' to the current goal.
We will prove eps_ (k + k') + qx * y.
rewrite the current goal using mul_SNo_eps_eps_add_SNo k Hk1 k' Hk'1 (from right to left).
We will prove eps_ k * eps_ k' + qx * y.
Apply SNoLe_tra (eps_ k * eps_ k' + q) ((x + - v) * (y + - w) + q) (x * y) (SNo_add_SNo (eps_ k * eps_ k') q ?? ??) (SNo_add_SNo ((x + - v) * (y + - w)) q (SNo_mul_SNo (x + - v) (y + - w) Lxmv Lymw) Hq1c) Lxy to the current goal.
We will prove eps_ k * eps_ k' + q(x + - v) * (y + - w) + q.
Apply add_SNo_Le1 (eps_ k * eps_ k') q ((x + - v) * (y + - w)) Lekek' Hq1c (SNo_mul_SNo (x + - v) (y + - w) Lxmv Lymw) to the current goal.
We will prove eps_ k * eps_ k'(x + - v) * (y + - w).
Apply nonneg_mul_SNo_Le2 (eps_ k) (eps_ k') (x + - v) (y + - w) Lek Lek' Lxmv Lymw to the current goal.
We will prove 0eps_ k.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k Hk1.
We will prove 0eps_ k'.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k' Hk'1.
We will prove eps_ kx + - v.
An exact proof term for the current goal is Hk2.
We will prove eps_ k'y + - w.
An exact proof term for the current goal is Hk'2.
We will prove (x + - v) * (y + - w) + qx * y.
rewrite the current goal using SNo_foil_mm x v y w Hx1 Hv1 Hy1 Hw1 (from left to right).
We will prove (x * y + - x * w + - v * y + v * w) + qx * y.
rewrite the current goal using add_SNo_assoc_4 (x * y) (- x * w) (- v * y) (v * w) ?? ?? ?? ?? (from left to right).
We will prove ((x * y + - x * w + - v * y) + v * w) + qx * y.
rewrite the current goal using add_SNo_assoc (x * y + - x * w + - v * y) (v * w) q (SNo_add_SNo_3 (x * y) (- x * w) (- v * y) ?? ?? ??) ?? Hq1c (from right to left).
We will prove (x * y + - x * w + - v * y) + (v * w + q)x * y.
rewrite the current goal using add_SNo_com (v * w) q ?? Hq1c (from left to right).
We will prove (x * y + - x * w + - v * y) + (q + v * w)x * y.
Apply SNoLe_tra ((x * y + - x * w + - v * y) + (q + v * w)) ((x * y + - x * w + - v * y) + (v * y + x * w)) (x * y) (SNo_add_SNo (x * y + - x * w + - v * y) (q + v * w) (SNo_add_SNo_3 (x * y) (- x * w) (- v * y) ?? ?? ??) (SNo_add_SNo q (v * w) Hq1c ??)) (SNo_add_SNo (x * y + - x * w + - v * y) (v * y + x * w) (SNo_add_SNo_3 (x * y) (- x * w) (- v * y) ?? ?? ??) (SNo_add_SNo (v * y) (x * w) ?? ??)) (SNo_mul_SNo x y Hx1 Hy1) to the current goal.
We will prove (x * y + - x * w + - v * y) + (q + v * w)(x * y + - x * w + - v * y) + (v * y + x * w).
An exact proof term for the current goal is add_SNo_Le2 (x * y + - x * w + - v * y) (q + v * w) (v * y + x * w) (SNo_add_SNo_3 (x * y) (- x * w) (- v * y) ?? ?? ??) (SNo_add_SNo q (v * w) Hq1c ??) (SNo_add_SNo (v * y) (x * w) ?? ??) H2.
We will prove (x * y + - x * w + - v * y) + (v * y + x * w)x * y.
rewrite the current goal using add_SNo_minus_SNo_prop5 (x * y) (- x * w) (v * y) (x * w) ?? ?? ?? ?? (from left to right).
We will prove x * y + - x * w + x * wx * y.
rewrite the current goal using add_SNo_minus_SNo_linv (x * w) ?? (from left to right).
We will prove x * y + 0x * y.
rewrite the current goal using add_SNo_0R (x * y) ?? (from left to right).
We will prove x * yx * y.
Apply SNoLe_ref to the current goal.
Apply SNoLt_irref (eps_ (k + k')) to the current goal.
We will prove eps_ (k + k') < eps_ (k + k').
An exact proof term for the current goal is SNoLeLt_tra (eps_ (k + k')) (abs_SNo (q + - (x * y))) (eps_ (k + k')) Lekk' (SNo_abs_SNo (q + - (x * y)) (SNo_add_SNo q (- (x * y)) Hq1c ??)) Lekk' L1b L1a.
Let v be given.
Assume Hv: vSNoR x.
Let w be given.
Assume Hw: wSNoR y.
Apply SNoR_E x Hx1 v Hv to the current goal.
Assume Hv1 _ _.
Apply SNoR_E y Hy1 w Hw to the current goal.
Assume Hw1 _ _.
Assume H2: q + v * wv * y + x * w.
We prove the intermediate claim Lvw: SNo (v * w).
An exact proof term for the current goal is SNo_mul_SNo v w Hv1 Hw1.
We prove the intermediate claim Lxw: SNo (x * w).
An exact proof term for the current goal is SNo_mul_SNo x w ?? Hw1.
We prove the intermediate claim Lmxw: SNo (- x * w).
An exact proof term for the current goal is SNo_minus_SNo (x * w) Lxw.
We prove the intermediate claim Lvy: SNo (v * y).
An exact proof term for the current goal is SNo_mul_SNo v y Hv1 ??.
We prove the intermediate claim Lmvy: SNo (- v * y).
An exact proof term for the current goal is SNo_minus_SNo (v * y) Lvy.
We prove the intermediate claim Lvmx: SNo (v + - x).
An exact proof term for the current goal is SNo_add_SNo v (- x) ?? (SNo_minus_SNo x ??).
We prove the intermediate claim Lwmy: SNo (w + - y).
An exact proof term for the current goal is SNo_add_SNo w (- y) ?? (SNo_minus_SNo y ??).
Apply LRx2 v Hv to the current goal.
Let k be given.
Assume Hk1: kω.
Assume Hk2: eps_ kv + - x.
Apply LRy2 w Hw to the current goal.
Let k' be given.
Assume Hk'1: k'ω.
Assume Hk'2: eps_ k'w + - y.
We prove the intermediate claim Lek: SNo (eps_ k).
An exact proof term for the current goal is SNo_eps_ k Hk1.
We prove the intermediate claim Lek': SNo (eps_ k').
An exact proof term for the current goal is SNo_eps_ k' Hk'1.
We prove the intermediate claim Lkk': k + k'ω.
An exact proof term for the current goal is add_SNo_In_omega k Hk1 k' Hk'1.
We prove the intermediate claim Lekk': SNo (eps_ (k + k')).
An exact proof term for the current goal is SNo_eps_ (k + k') Lkk'.
We prove the intermediate claim Lekek': SNo (eps_ k * eps_ k').
An exact proof term for the current goal is SNo_mul_SNo (eps_ k) (eps_ k') Lek Lek'.
We prove the intermediate claim L1c: abs_SNo (q + - (x * y)) < eps_ (k + k').
An exact proof term for the current goal is Hq2 (k + k') (add_SNo_In_omega k Hk1 k' Hk'1).
We prove the intermediate claim L1d: eps_ (k + k')abs_SNo (q + - (x * y)).
rewrite the current goal using abs_SNo_dist_swap q (x * y) Hq1c Lxy (from left to right).
We will prove eps_ (k + k')abs_SNo (x * y + - q).
rewrite the current goal using pos_abs_SNo (x * y + - q) (SNoLt_minus_pos q (x * y) Hq1c Lxy H1) (from left to right).
We will prove eps_ (k + k')x * y + - q.
Apply add_SNo_minus_Le2b (x * y) q (eps_ (k + k')) Lxy Hq1c Lekk' to the current goal.
We will prove eps_ (k + k') + qx * y.
rewrite the current goal using mul_SNo_eps_eps_add_SNo k Hk1 k' Hk'1 (from right to left).
We will prove eps_ k * eps_ k' + qx * y.
Apply SNoLe_tra (eps_ k * eps_ k' + q) ((v + - x) * (w + - y) + q) (x * y) (SNo_add_SNo (eps_ k * eps_ k') q ?? Hq1c) (SNo_add_SNo ((v + - x) * (w + - y)) q (SNo_mul_SNo (v + - x) (w + - y) ?? ??) Hq1c) Lxy to the current goal.
We will prove eps_ k * eps_ k' + q(v + - x) * (w + - y) + q.
Apply add_SNo_Le1 (eps_ k * eps_ k') q ((v + - x) * (w + - y)) Lekek' Hq1c (SNo_mul_SNo (v + - x) (w + - y) ?? ??) to the current goal.
We will prove eps_ k * eps_ k'(v + - x) * (w + - y).
Apply nonneg_mul_SNo_Le2 (eps_ k) (eps_ k') (v + - x) (w + - y) Lek Lek' ?? ?? to the current goal.
We will prove 0eps_ k.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k Hk1.
We will prove 0eps_ k'.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k' Hk'1.
We will prove eps_ kv + - x.
An exact proof term for the current goal is Hk2.
We will prove eps_ k'w + - y.
An exact proof term for the current goal is Hk'2.
We will prove (v + - x) * (w + - y) + qx * y.
rewrite the current goal using SNo_foil_mm v x w y Hv1 Hx1 Hw1 Hy1 (from left to right).
We will prove (v * w + - v * y + - x * w + x * y) + qx * y.
rewrite the current goal using add_SNo_assoc_4 (v * w) (- v * y) (- x * w) (x * y) ?? ?? ?? ?? (from left to right).
We will prove ((v * w + - v * y + - x * w) + x * y) + qx * y.
rewrite the current goal using add_SNo_assoc (v * w + - v * y + - x * w) (x * y) q (SNo_add_SNo_3 (v * w) (- v * y) (- x * w) ?? ?? ??) ?? Hq1c (from right to left).
We will prove (v * w + - v * y + - x * w) + (x * y + q)x * y.
rewrite the current goal using add_SNo_com (x * y) q ?? Hq1c (from left to right).
We will prove (v * w + - v * y + - x * w) + (q + x * y)x * y.
rewrite the current goal using add_SNo_3a_2b (v * w) (- v * y) (- x * w) q (x * y) ?? ?? ?? ?? ?? (from left to right).
We will prove (x * y + - v * y + - x * w) + (q + v * w)x * y.
Apply SNoLe_tra ((x * y + - v * y + - x * w) + (q + v * w)) ((x * y + - v * y + - x * w) + (v * y + x * w)) (x * y) (SNo_add_SNo (x * y + - v * y + - x * w) (q + v * w) (SNo_add_SNo_3 (x * y) (- v * y) (- x * w) ?? ?? ??) (SNo_add_SNo q (v * w) ?? ??)) (SNo_add_SNo (x * y + - v * y + - x * w) (v * y + x * w) (SNo_add_SNo_3 (x * y) (- v * y) (- x * w) ?? ?? ??) (SNo_add_SNo (v * y) (x * w) ?? ??)) ?? to the current goal.
We will prove (x * y + - v * y + - x * w) + (q + v * w)(x * y + - v * y + - x * w) + (v * y + x * w).
Apply add_SNo_Le2 (x * y + - v * y + - x * w) (q + v * w) (v * y + x * w) (SNo_add_SNo_3 (x * y) (- v * y) (- x * w) ?? ?? ??) (SNo_add_SNo q (v * w) ?? ??) (SNo_add_SNo (v * y) (x * w) ?? ??) to the current goal.
We will prove q + v * wv * y + x * w.
An exact proof term for the current goal is H2.
We will prove (x * y + - v * y + - x * w) + (v * y + x * w)x * y.
rewrite the current goal using add_SNo_com (v * y) (x * w) ?? ?? (from left to right).
We will prove (x * y + - v * y + - x * w) + (x * w + v * y)x * y.
rewrite the current goal using add_SNo_minus_SNo_prop5 (x * y) (- v * y) (x * w) (v * y) ?? ?? ?? ?? (from left to right).
We will prove x * y + - v * y + v * yx * y.
rewrite the current goal using add_SNo_minus_SNo_linv (v * y) ?? (from left to right).
We will prove x * y + 0x * y.
rewrite the current goal using add_SNo_0R (x * y) ?? (from left to right).
Apply SNoLe_ref to the current goal.
Apply SNoLt_irref (eps_ (k + k')) to the current goal.
We will prove eps_ (k + k') < eps_ (k + k').
An exact proof term for the current goal is SNoLeLt_tra (eps_ (k + k')) (abs_SNo (q + - (x * y))) (eps_ (k + k')) Lekk' (SNo_abs_SNo (q + - (x * y)) (SNo_add_SNo q (- (x * y)) Hq1c (SNo_minus_SNo (x * y) Lxy))) Lekk' L1d L1c.
Assume H1: q = x * y.
An exact proof term for the current goal is H1.
Assume H1: x * y < q.
We will prove False.
We prove the intermediate claim Lq2: qSNoR (x * y).
Apply SNoR_I to the current goal.
An exact proof term for the current goal is Lxy.
An exact proof term for the current goal is Hq1c.
We will prove SNoLev qSNoLev (x * y).
An exact proof term for the current goal is Lxy3 q Hq1c Hq1a.
We will prove x * y < q.
An exact proof term for the current goal is H1.
Apply mul_SNo_SNoR_interpolate_impred x y Hx1 Hy1 q Lq2 to the current goal.
Let v be given.
Assume Hv: vSNoL x.
Let w be given.
Assume Hw: wSNoR y.
Apply SNoL_E x Hx1 v Hv to the current goal.
Assume Hv1 _ _.
Apply SNoR_E y Hy1 w Hw to the current goal.
Assume Hw1 _ _.
Assume H2: v * y + x * wq + v * w.
We prove the intermediate claim Lvy: SNo (v * y).
An exact proof term for the current goal is SNo_mul_SNo v y Hv1 Hy1.
We prove the intermediate claim Lxw: SNo (x * w).
An exact proof term for the current goal is SNo_mul_SNo x w ?? Hw1.
We prove the intermediate claim Lmxw: SNo (- x * w).
An exact proof term for the current goal is SNo_minus_SNo (x * w) Lxw.
We prove the intermediate claim Lvw: SNo (v * w).
An exact proof term for the current goal is SNo_mul_SNo v w Hv1 ??.
We prove the intermediate claim Lmvw: SNo (- v * w).
An exact proof term for the current goal is SNo_minus_SNo (v * w) Lvw.
We prove the intermediate claim Lxmv: SNo (x + - v).
An exact proof term for the current goal is SNo_add_SNo x (- v) ?? (SNo_minus_SNo v ??).
We prove the intermediate claim Lwmy: SNo (w + - y).
An exact proof term for the current goal is SNo_add_SNo w (- y) ?? (SNo_minus_SNo y ??).
Apply LLx2 v Hv to the current goal.
Let k be given.
Assume Hk1: kω.
Assume Hk2: eps_ kx + - v.
Apply LRy2 w Hw to the current goal.
Let k' be given.
Assume Hk'1: k'ω.
Assume Hk'2: eps_ k'w + - y.
We prove the intermediate claim Lek: SNo (eps_ k).
An exact proof term for the current goal is SNo_eps_ k Hk1.
We prove the intermediate claim Lek': SNo (eps_ k').
An exact proof term for the current goal is SNo_eps_ k' Hk'1.
We prove the intermediate claim Lkk': k + k'ω.
An exact proof term for the current goal is add_SNo_In_omega k Hk1 k' Hk'1.
We prove the intermediate claim Lekk': SNo (eps_ (k + k')).
An exact proof term for the current goal is SNo_eps_ (k + k') Lkk'.
We prove the intermediate claim Lekek': SNo (eps_ k * eps_ k').
An exact proof term for the current goal is SNo_mul_SNo (eps_ k) (eps_ k') Lek Lek'.
We prove the intermediate claim L1e: abs_SNo (q + - (x * y)) < eps_ (k + k').
An exact proof term for the current goal is Hq2 (k + k') (add_SNo_In_omega k Hk1 k' Hk'1).
We prove the intermediate claim L1f: eps_ (k + k')abs_SNo (q + - (x * y)).
rewrite the current goal using pos_abs_SNo (q + - x * y) (SNoLt_minus_pos (x * y) q Lxy Hq1c H1) (from left to right).
We will prove eps_ (k + k')q + - x * y.
Apply add_SNo_minus_Le2b q (x * y) (eps_ (k + k')) Hq1c Lxy Lekk' to the current goal.
We will prove eps_ (k + k') + x * yq.
rewrite the current goal using mul_SNo_eps_eps_add_SNo k Hk1 k' Hk'1 (from right to left).
We will prove eps_ k * eps_ k' + x * yq.
Apply SNoLe_tra (eps_ k * eps_ k' + x * y) ((x + - v) * (w + - y) + x * y) q (SNo_add_SNo (eps_ k * eps_ k') (x * y) ?? ??) (SNo_add_SNo ((x + - v) * (w + - y)) (x * y) (SNo_mul_SNo (x + - v) (w + - y) Lxmv Lwmy) Lxy) Hq1c to the current goal.
We will prove eps_ k * eps_ k' + x * y(x + - v) * (w + - y) + x * y.
Apply add_SNo_Le1 (eps_ k * eps_ k') (x * y) ((x + - v) * (w + - y)) Lekek' Lxy (SNo_mul_SNo (x + - v) (w + - y) Lxmv Lwmy) to the current goal.
We will prove eps_ k * eps_ k'(x + - v) * (w + - y).
Apply nonneg_mul_SNo_Le2 (eps_ k) (eps_ k') (x + - v) (w + - y) Lek Lek' Lxmv Lwmy to the current goal.
We will prove 0eps_ k.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k Hk1.
We will prove 0eps_ k'.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k' Hk'1.
We will prove eps_ kx + - v.
An exact proof term for the current goal is Hk2.
We will prove eps_ k'w + - y.
An exact proof term for the current goal is Hk'2.
We will prove (x + - v) * (w + - y) + x * yq.
rewrite the current goal using SNo_foil_mm x v w y Hx1 Hv1 Hw1 Hy1 (from left to right).
We will prove (x * w + - x * y + - v * w + v * y) + x * yq.
rewrite the current goal using add_SNo_rotate_4_1 (- x * y) (- v * w) (v * y) (x * w) ?? ?? ?? ?? (from right to left).
We will prove (- x * y + - v * w + v * y + x * w) + x * yq.
rewrite the current goal using add_SNo_com (- x * y + - v * w + v * y + x * w) (x * y) (SNo_add_SNo_4 (- x * y) (- v * w) (v * y) (x * w) ?? ?? ?? ??) ?? (from left to right).
rewrite the current goal using add_SNo_minus_L2' (x * y) (- v * w + v * y + x * w) ?? (SNo_add_SNo_3 (- v * w) (v * y) (x * w) ?? ?? ??) (from left to right).
We will prove - v * w + v * y + x * wq.
Apply SNoLe_tra (- v * w + v * y + x * w) (- v * w + q + v * w) q (SNo_add_SNo_3 (- v * w) (v * y) (x * w) ?? ?? ??) (SNo_add_SNo_3 (- v * w) q (v * w) ?? ?? ??) Hq1c to the current goal.
We will prove - v * w + v * y + x * w- v * w + q + v * w.
An exact proof term for the current goal is add_SNo_Le2 (- v * w) (v * y + x * w) (q + v * w) ?? (SNo_add_SNo (v * y) (x * w) ?? ??) (SNo_add_SNo q (v * w) Hq1c ??) H2.
We will prove - v * w + q + v * wq.
rewrite the current goal using add_SNo_com q (v * w) ?? ?? (from left to right).
rewrite the current goal using add_SNo_minus_L2 (v * w) q ?? ?? (from left to right).
We will prove qq.
Apply SNoLe_ref to the current goal.
Apply SNoLt_irref (eps_ (k + k')) to the current goal.
We will prove eps_ (k + k') < eps_ (k + k').
An exact proof term for the current goal is SNoLeLt_tra (eps_ (k + k')) (abs_SNo (q + - (x * y))) (eps_ (k + k')) Lekk' (SNo_abs_SNo (q + - (x * y)) (SNo_add_SNo q (- (x * y)) Hq1c ??)) Lekk' L1f L1e.
Let v be given.
Assume Hv: vSNoR x.
Let w be given.
Assume Hw: wSNoL y.
Apply SNoR_E x Hx1 v Hv to the current goal.
Assume Hv1 _ _.
Apply SNoL_E y Hy1 w Hw to the current goal.
Assume Hw1 _ _.
Assume H2: v * y + x * wq + v * w.
We prove the intermediate claim Lvy: SNo (v * y).
An exact proof term for the current goal is SNo_mul_SNo v y Hv1 Hy1.
We prove the intermediate claim Lxw: SNo (x * w).
An exact proof term for the current goal is SNo_mul_SNo x w ?? Hw1.
We prove the intermediate claim Lvw: SNo (v * w).
An exact proof term for the current goal is SNo_mul_SNo v w Hv1 ??.
We prove the intermediate claim Lmvw: SNo (- v * w).
An exact proof term for the current goal is SNo_minus_SNo (v * w) Lvw.
We prove the intermediate claim Lvmx: SNo (v + - x).
An exact proof term for the current goal is SNo_add_SNo v (- x) ?? (SNo_minus_SNo x ??).
We prove the intermediate claim Lymw: SNo (y + - w).
An exact proof term for the current goal is SNo_add_SNo y (- w) ?? (SNo_minus_SNo w ??).
Apply LRx2 v Hv to the current goal.
Let k be given.
Assume Hk1: kω.
Assume Hk2: eps_ kv + - x.
Apply LLy2 w Hw to the current goal.
Let k' be given.
Assume Hk'1: k'ω.
Assume Hk'2: eps_ k'y + - w.
We prove the intermediate claim Lek: SNo (eps_ k).
An exact proof term for the current goal is SNo_eps_ k Hk1.
We prove the intermediate claim Lek': SNo (eps_ k').
An exact proof term for the current goal is SNo_eps_ k' Hk'1.
We prove the intermediate claim Lkk': k + k'ω.
An exact proof term for the current goal is add_SNo_In_omega k Hk1 k' Hk'1.
We prove the intermediate claim Lekk': SNo (eps_ (k + k')).
An exact proof term for the current goal is SNo_eps_ (k + k') Lkk'.
We prove the intermediate claim Lekek': SNo (eps_ k * eps_ k').
An exact proof term for the current goal is SNo_mul_SNo (eps_ k) (eps_ k') Lek Lek'.
We prove the intermediate claim L1g: abs_SNo (q + - (x * y)) < eps_ (k + k').
An exact proof term for the current goal is Hq2 (k + k') (add_SNo_In_omega k Hk1 k' Hk'1).
We prove the intermediate claim L1h: eps_ (k + k')abs_SNo (q + - (x * y)).
rewrite the current goal using pos_abs_SNo (q + - x * y) (SNoLt_minus_pos (x * y) q Lxy Hq1c H1) (from left to right).
We will prove eps_ (k + k')q + - x * y.
Apply add_SNo_minus_Le2b q (x * y) (eps_ (k + k')) Hq1c Lxy Lekk' to the current goal.
We will prove eps_ (k + k') + x * yq.
rewrite the current goal using mul_SNo_eps_eps_add_SNo k Hk1 k' Hk'1 (from right to left).
We will prove eps_ k * eps_ k' + x * yq.
Apply SNoLe_tra (eps_ k * eps_ k' + x * y) ((v + - x) * (y + - w) + x * y) q (SNo_add_SNo (eps_ k * eps_ k') (x * y) ?? Lxy) (SNo_add_SNo ((v + - x) * (y + - w)) (x * y) (SNo_mul_SNo (v + - x) (y + - w) ?? ??) Lxy) Hq1c to the current goal.
We will prove eps_ k * eps_ k' + x * y(v + - x) * (y + - w) + x * y.
Apply add_SNo_Le1 (eps_ k * eps_ k') (x * y) ((v + - x) * (y + - w)) Lekek' Lxy (SNo_mul_SNo (v + - x) (y + - w) ?? ??) to the current goal.
We will prove eps_ k * eps_ k'(v + - x) * (y + - w).
Apply nonneg_mul_SNo_Le2 (eps_ k) (eps_ k') (v + - x) (y + - w) Lek Lek' ?? ?? to the current goal.
We will prove 0eps_ k.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k Hk1.
We will prove 0eps_ k'.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k' Hk'1.
We will prove eps_ kv + - x.
An exact proof term for the current goal is Hk2.
We will prove eps_ k'y + - w.
An exact proof term for the current goal is Hk'2.
We will prove (v + - x) * (y + - w) + x * yq.
rewrite the current goal using SNo_foil_mm v x y w Hv1 Hx1 Hy1 Hw1 (from left to right).
We will prove (v * y + - v * w + - x * y + x * w) + x * yq.
rewrite the current goal using add_SNo_rotate_4_1 (v * y) (- v * w) (- x * y) (x * w) ?? ?? ?? ?? (from left to right).
rewrite the current goal using add_SNo_rotate_4_1 (x * w) (v * y) (- v * w) (- x * y) ?? ?? ?? ?? (from left to right).
We will prove (- x * y + x * w + v * y + - v * w) + x * yq.
rewrite the current goal using add_SNo_com (- x * y + x * w + v * y + - v * w) (x * y) (SNo_add_SNo_4 (- x * y) (x * w) (v * y) (- v * w) ?? ?? ?? ??) ?? (from left to right).
We will prove x * y + - x * y + x * w + v * y + - v * wq.
rewrite the current goal using add_SNo_minus_L2' (x * y) (x * w + v * y + - v * w) ?? (SNo_add_SNo_3 (x * w) (v * y) (- v * w) ?? ?? ??) (from left to right).
We will prove x * w + v * y + - v * wq.
rewrite the current goal using add_SNo_rotate_3_1 (x * w) (v * y) (- v * w) ?? ?? ?? (from left to right).
We will prove - v * w + x * w + v * yq.
Apply SNoLe_tra (- v * w + x * w + v * y) (- v * w + q + v * w) q (SNo_add_SNo_3 (- v * w) (x * w) (v * y) ?? ?? ??) (SNo_add_SNo_3 (- v * w) q (v * w) ?? ?? ??) ?? to the current goal.
We will prove - v * w + x * w + v * y- v * w + q + v * w.
Apply add_SNo_Le2 (- v * w) (x * w + v * y) (q + v * w) ?? (SNo_add_SNo (x * w) (v * y) ?? ??) (SNo_add_SNo q (v * w) ?? ??) to the current goal.
We will prove x * w + v * yq + v * w.
rewrite the current goal using add_SNo_com (x * w) (v * y) ?? ?? (from left to right).
An exact proof term for the current goal is H2.
We will prove - v * w + q + v * wq.
rewrite the current goal using add_SNo_com q (v * w) ?? ?? (from left to right).
We will prove - v * w + v * w + qq.
rewrite the current goal using add_SNo_minus_L2 (v * w) q ?? ?? (from left to right).
We will prove qq.
Apply SNoLe_ref to the current goal.
Apply SNoLt_irref (eps_ (k + k')) to the current goal.
We will prove eps_ (k + k') < eps_ (k + k').
An exact proof term for the current goal is SNoLeLt_tra (eps_ (k + k')) (abs_SNo (q + - (x * y))) (eps_ (k + k')) Lekk' (SNo_abs_SNo (q + - (x * y)) (SNo_add_SNo q (- (x * y)) Hq1c (SNo_minus_SNo (x * y) Lxy))) Lekk' L1h L1g.
We prove the intermediate claim LNex: ∃N ∈ ω, eps_ N * x < 1eps_ N * y < 1.
Apply SNoS_ordsucc_omega_bdd_eps_pos x Hx3 Hx0 Hx5 to the current goal.
Let N be given.
Assume HN.
Apply HN to the current goal.
Assume HN1: Nω.
Assume HN2: eps_ N * x < 1.
Apply SNoS_ordsucc_omega_bdd_eps_pos y Hy3 Hy0 Hy5 to the current goal.
Let N' be given.
Assume HN'.
Apply HN' to the current goal.
Assume HN'1: N'ω.
Assume HN'2: eps_ N' * y < 1.
Apply ordinal_trichotomy_or_impred N N' (nat_p_ordinal N (omega_nat_p N HN1)) (nat_p_ordinal N' (omega_nat_p N' HN'1)) to the current goal.
Assume H1: NN'.
We use N' to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is HN'1.
Apply andI to the current goal.
We will prove eps_ N' * x < 1.
Apply SNoLt_tra (eps_ N' * x) (eps_ N * x) 1 (SNo_mul_SNo (eps_ N') x (SNo_eps_ N' HN'1) Hx1) (SNo_mul_SNo (eps_ N) x (SNo_eps_ N HN1) Hx1) SNo_1 to the current goal.
We will prove eps_ N' * x < eps_ N * x.
Apply pos_mul_SNo_Lt' (eps_ N') (eps_ N) x (SNo_eps_ N' HN'1) (SNo_eps_ N HN1) Hx1 Hx0 to the current goal.
We will prove eps_ N' < eps_ N.
An exact proof term for the current goal is SNo_eps_decr N' HN'1 N H1.
An exact proof term for the current goal is HN2.
An exact proof term for the current goal is HN'2.
Assume H1: N = N'.
We use N to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is HN1.
Apply andI to the current goal.
An exact proof term for the current goal is HN2.
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is HN'2.
Assume H1: N'N.
We use N to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is HN1.
Apply andI to the current goal.
An exact proof term for the current goal is HN2.
We will prove eps_ N * y < 1.
Apply SNoLt_tra (eps_ N * y) (eps_ N' * y) 1 (SNo_mul_SNo (eps_ N) y (SNo_eps_ N HN1) Hy1) (SNo_mul_SNo (eps_ N') y (SNo_eps_ N' HN'1) Hy1) SNo_1 to the current goal.
We will prove eps_ N * y < eps_ N' * y.
Apply pos_mul_SNo_Lt' (eps_ N) (eps_ N') y (SNo_eps_ N HN1) (SNo_eps_ N' HN'1) Hy1 Hy0 to the current goal.
We will prove eps_ N < eps_ N'.
An exact proof term for the current goal is SNo_eps_decr N HN1 N' H1.
An exact proof term for the current goal is HN'2.
Apply LNex to the current goal.
Let N be given.
Assume HN.
Apply HN to the current goal.
Assume HN1: Nω.
Assume HN.
Apply HN to the current goal.
Assume HN2: eps_ N * x < 1.
Assume HN3: eps_ N * y < 1.
We prove the intermediate claim L2: ∀k ∈ ω, ∃q ∈ SNoS_ ω, q < x * yx * y < q + eps_ k.
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 Lk1: k + 1ω.
An exact proof term for the current goal is add_SNo_In_omega k Hk 1 (nat_p_omega 1 nat_1).
We prove the intermediate claim Lk2: k + 2ω.
An exact proof term for the current goal is add_SNo_In_omega k Hk 2 (nat_p_omega 2 nat_2).
Set k' to be the term N + k + 2.
We prove the intermediate claim Lk': k'ω.
An exact proof term for the current goal is add_SNo_In_omega N HN1 (k + 2) Lk2.
We prove the intermediate claim Lek': SNo (eps_ k').
An exact proof term for the current goal is SNo_eps_ k' Lk'.
Apply Lx7 k' Lk' to the current goal.
Let q be given.
Assume Hq1: qSNoS_ ω.
Assume Hqpos: 0 < q.
Assume Hq2: q < x.
Assume Hq3: x < q + eps_ k'.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
Apply Ly7 k' Lk' to the current goal.
Let q' be given.
Assume Hq'1: q'SNoS_ ω.
Assume Hq'pos: 0 < q'.
Assume Hq'2: q' < y.
Assume Hq'3: y < q' + eps_ k'.
Apply SNoS_E2 ω omega_ordinal q' Hq'1 to the current goal.
Assume Hq'1a Hq'1b Hq'1c Hq'1d.
We prove the intermediate claim Lqq': SNo (q * q').
An exact proof term for the current goal is SNo_mul_SNo q q' Hq1c Hq'1c.
We use (q * q') to witness the existential quantifier.
Apply andI to the current goal.
We will prove q * q'SNoS_ ω.
An exact proof term for the current goal is mul_SNo_SNoS_omega q Hq1 q' Hq'1.
Apply andI to the current goal.
We will prove q * q' < x * y.
An exact proof term for the current goal is pos_mul_SNo_Lt2 q q' x y Hq1c Hq'1c Hx1 Hy1 Hqpos Hq'pos Hq2 Hq'2.
We will prove x * y < q * q' + eps_ k.
Apply SNoLt_tra (x * y) ((q + eps_ k') * (q' + eps_ k')) (q * q' + eps_ k) Lxy (SNo_mul_SNo (q + eps_ k') (q' + eps_ k') (SNo_add_SNo q (eps_ k') Hq1c Lek') (SNo_add_SNo q' (eps_ k') Hq'1c Lek')) (SNo_add_SNo (q * q') (eps_ k) (SNo_mul_SNo q q' Hq1c Hq'1c) Lek) to the current goal.
We will prove x * y < (q + eps_ k') * (q' + eps_ k').
An exact proof term for the current goal is pos_mul_SNo_Lt2 x y (q + eps_ k') (q' + eps_ k') Hx1 Hy1 (SNo_add_SNo q (eps_ k') Hq1c Lek') (SNo_add_SNo q' (eps_ k') Hq'1c Lek') Hx0 Hy0 Hq3 Hq'3.
We will prove (q + eps_ k') * (q' + eps_ k') < q * q' + eps_ k.
rewrite the current goal using SNo_foil q (eps_ k') q' (eps_ k') Hq1c Lek' Hq'1c Lek' (from left to right).
We will prove q * q' + q * eps_ k' + eps_ k' * q' + eps_ k' * eps_ k' < q * q' + eps_ k.
Apply add_SNo_Lt2 (q * q') (q * eps_ k' + eps_ k' * q' + eps_ k' * eps_ k') (eps_ k) Lqq' (SNo_add_SNo_3 (q * eps_ k') (eps_ k' * q') (eps_ k' * eps_ k') (SNo_mul_SNo q (eps_ k') Hq1c Lek') (SNo_mul_SNo (eps_ k') q' Lek' Hq'1c) (SNo_mul_SNo (eps_ k') (eps_ k') Lek' Lek')) Lek to the current goal.
We will prove q * eps_ k' + eps_ k' * q' + eps_ k' * eps_ k' < eps_ k.
We will prove q * eps_ (N + k + 2) + eps_ (N + k + 2) * q' + eps_ (N + k + 2) * eps_ (N + k + 2) < eps_ k.
rewrite the current goal using mul_SNo_eps_eps_add_SNo N HN1 (k + 2) Lk2 (from right to left).
We will prove q * eps_ N * eps_ (k + 2) + (eps_ N * eps_ (k + 2)) * q' + (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2)) < eps_ k.
rewrite the current goal using eps_ordsucc_half_add k (omega_nat_p k Hk) (from right to left).
We will prove q * eps_ N * eps_ (k + 2) + (eps_ N * eps_ (k + 2)) * q' + (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2)) < eps_ (ordsucc k) + eps_ (ordsucc k).
rewrite the current goal using eps_ordsucc_half_add (ordsucc k) (nat_ordsucc k (omega_nat_p k Hk)) (from right to left) at position 1.
We will prove q * eps_ N * eps_ (k + 2) + (eps_ N * eps_ (k + 2)) * q' + (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2)) < (eps_ (ordsucc (ordsucc k)) + eps_ (ordsucc (ordsucc k))) + eps_ (ordsucc k).
rewrite the current goal using add_SNo_1_ordsucc k Hk (from right to left).
We will prove q * eps_ N * eps_ (k + 2) + (eps_ N * eps_ (k + 2)) * q' + (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2)) < (eps_ (ordsucc (k + 1)) + eps_ (ordsucc (k + 1))) + eps_ (k + 1).
rewrite the current goal using add_SNo_1_ordsucc (k + 1) (add_SNo_In_omega k Hk 1 (nat_p_omega 1 nat_1)) (from right to left).
We will prove q * eps_ N * eps_ (k + 2) + (eps_ N * eps_ (k + 2)) * q' + (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2)) < (eps_ (((k + 1) + 1)) + eps_ (((k + 1) + 1))) + eps_ (k + 1).
rewrite the current goal using add_SNo_assoc k 1 1 (omega_SNo k Hk) SNo_1 SNo_1 (from right to left).
rewrite the current goal using add_SNo_1_1_2 (from left to right).
We will prove q * eps_ N * eps_ (k + 2) + (eps_ N * eps_ (k + 2)) * q' + (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2)) < (eps_ (k + 2) + eps_ (k + 2)) + eps_ (k + 1).
We prove the intermediate claim LeN: SNo (eps_ N).
An exact proof term for the current goal is SNo_eps_ N HN1.
We prove the intermediate claim Lek1: SNo (eps_ (k + 1)).
An exact proof term for the current goal is SNo_eps_ (k + 1) Lk1.
We prove the intermediate claim Lek2: SNo (eps_ (k + 2)).
An exact proof term for the current goal is SNo_eps_ (k + 2) Lk2.
We prove the intermediate claim LeNek2: SNo (eps_ N * eps_ (k + 2)).
An exact proof term for the current goal is SNo_mul_SNo (eps_ N) (eps_ (k + 2)) LeN Lek2.
We prove the intermediate claim LeNek2sq: SNo ((eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2))).
An exact proof term for the current goal is SNo_mul_SNo (eps_ N * eps_ (k + 2)) (eps_ N * eps_ (k + 2)) LeNek2 LeNek2.
rewrite the current goal using add_SNo_assoc (eps_ (k + 2)) (eps_ (k + 2)) (eps_ (k + 1)) Lek2 Lek2 Lek1 (from right to left).
Apply add_SNo_Lt4 (q * eps_ N * eps_ (k + 2)) ((eps_ N * eps_ (k + 2)) * q') ((eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2))) (eps_ (k + 2)) (eps_ (k + 2)) (eps_ (k + 1)) (SNo_mul_SNo q (eps_ N * eps_ (k + 2)) Hq1c LeNek2) (SNo_mul_SNo (eps_ N * eps_ (k + 2)) q' LeNek2 Hq'1c) LeNek2sq Lek2 Lek2 Lek1 to the current goal.
We will prove q * eps_ N * eps_ (k + 2) < eps_ (k + 2).
rewrite the current goal using mul_SNo_assoc q (eps_ N) (eps_ (k + 2)) Hq1c LeN Lek2 (from left to right).
We will prove (q * eps_ N) * eps_ (k + 2) < eps_ (k + 2).
Apply mul_SNo_Lt1_pos_Lt (q * eps_ N) (eps_ (k + 2)) (SNo_mul_SNo q (eps_ N) Hq1c LeN) Lek2 to the current goal.
We will prove q * eps_ N < 1.
Apply SNoLt_tra (q * eps_ N) (x * eps_ N) 1 (SNo_mul_SNo q (eps_ N) Hq1c LeN) (SNo_mul_SNo x (eps_ N) Hx1 LeN) SNo_1 to the current goal.
We will prove q * eps_ N < x * eps_ N.
Apply pos_mul_SNo_Lt' q x (eps_ N) Hq1c Hx1 (SNo_eps_ N HN1) to the current goal.
We will prove 0 < eps_ N.
An exact proof term for the current goal is SNo_eps_pos N HN1.
We will prove q < x.
An exact proof term for the current goal is Hq2.
We will prove x * eps_ N < 1.
rewrite the current goal using mul_SNo_com x (eps_ N) Hx1 LeN (from left to right).
An exact proof term for the current goal is HN2.
We will prove 0 < eps_ (k + 2).
An exact proof term for the current goal is SNo_eps_pos (k + 2) Lk2.
We will prove (eps_ N * eps_ (k + 2)) * q' < eps_ (k + 2).
rewrite the current goal using mul_SNo_com (eps_ N * eps_ (k + 2)) q' (SNo_mul_SNo (eps_ N) (eps_ (k + 2)) LeN Lek2) Hq'1c (from left to right).
We will prove q' * (eps_ N * eps_ (k + 2)) < eps_ (k + 2).
rewrite the current goal using mul_SNo_assoc q' (eps_ N) (eps_ (k + 2)) Hq'1c LeN Lek2 (from left to right).
We will prove (q' * eps_ N) * eps_ (k + 2) < eps_ (k + 2).
Apply mul_SNo_Lt1_pos_Lt (q' * eps_ N) (eps_ (k + 2)) (SNo_mul_SNo q' (eps_ N) Hq'1c LeN) Lek2 to the current goal.
We will prove q' * eps_ N < 1.
Apply SNoLt_tra (q' * eps_ N) (y * eps_ N) 1 (SNo_mul_SNo q' (eps_ N) Hq'1c LeN) (SNo_mul_SNo y (eps_ N) Hy1 LeN) SNo_1 to the current goal.
We will prove q' * eps_ N < y * eps_ N.
Apply pos_mul_SNo_Lt' q' y (eps_ N) Hq'1c Hy1 (SNo_eps_ N HN1) to the current goal.
We will prove 0 < eps_ N.
An exact proof term for the current goal is SNo_eps_pos N HN1.
We will prove q' < y.
An exact proof term for the current goal is Hq'2.
We will prove y * eps_ N < 1.
rewrite the current goal using mul_SNo_com y (eps_ N) Hy1 LeN (from left to right).
An exact proof term for the current goal is HN3.
We will prove 0 < eps_ (k + 2).
An exact proof term for the current goal is SNo_eps_pos (k + 2) Lk2.
We will prove (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2)) < eps_ (k + 1).
Apply SNoLeLt_tra ((eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2))) (eps_ (k + 2)) (eps_ (k + 1)) LeNek2sq Lek2 Lek1 to the current goal.
We will prove (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2))eps_ (k + 2).
Apply SNoLe_tra ((eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2))) (eps_ N * eps_ (k + 2)) (eps_ (k + 2)) LeNek2sq LeNek2 Lek2 to the current goal.
We will prove (eps_ N * eps_ (k + 2)) * (eps_ N * eps_ (k + 2))eps_ N * eps_ (k + 2).
Apply mul_SNo_Le1_nonneg_Le (eps_ N * eps_ (k + 2)) (eps_ N * eps_ (k + 2)) LeNek2 LeNek2 to the current goal.
We will prove eps_ N * eps_ (k + 2)1.
rewrite the current goal using mul_SNo_oneL 1 SNo_1 (from right to left) at position 2.
We will prove eps_ N * eps_ (k + 2)1 * 1.
Apply nonneg_mul_SNo_Le2 (eps_ N) (eps_ (k + 2)) 1 1 LeN Lek2 SNo_1 SNo_1 to the current goal.
We will prove 0eps_ N.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos N HN1.
We will prove 0eps_ (k + 2).
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos (k + 2) Lk2.
We will prove eps_ N1.
Apply eps_bd_1 to the current goal.
An exact proof term for the current goal is HN1.
We will prove eps_ (k + 2)1.
Apply eps_bd_1 to the current goal.
An exact proof term for the current goal is Lk2.
We will prove 0eps_ N * eps_ (k + 2).
Apply SNoLtLe to the current goal.
Apply mul_SNo_pos_pos (eps_ N) (eps_ (k + 2)) LeN Lek2 to the current goal.
An exact proof term for the current goal is SNo_eps_pos N HN1.
An exact proof term for the current goal is SNo_eps_pos (k + 2) Lk2.
We will prove eps_ N * eps_ (k + 2)eps_ (k + 2).
Apply mul_SNo_Le1_nonneg_Le (eps_ N) (eps_ (k + 2)) LeN Lek2 to the current goal.
We will prove eps_ N1.
Apply eps_bd_1 to the current goal.
An exact proof term for the current goal is HN1.
We will prove 0eps_ (k + 2).
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos (k + 2) Lk2.
We will prove eps_ (k + 2) < eps_ (k + 1).
Apply SNo_eps_decr (k + 2) Lk2 (k + 1) to the current goal.
We will prove k + 1k + 2.
Apply ordinal_SNoLt_In (k + 1) (k + 2) (nat_p_ordinal (k + 1) (omega_nat_p (k + 1) Lk1)) (nat_p_ordinal (k + 2) (omega_nat_p (k + 2) Lk2)) to the current goal.
We will prove k + 1 < k + 2.
Apply add_SNo_Lt2 k 1 2 (omega_SNo k Hk) SNo_1 SNo_2 to the current goal.
We will prove 1 < 2.
An exact proof term for the current goal is SNoLt_1_2.
Apply SNo_prereal_incr_lower_approx (x * y) Lxy L1 L2 to the current goal.
Let hL be given.
Assume HhL.
Apply HhL to the current goal.
Assume HhL1: hLSNoS_ ωω.
Assume HhL2: ∀n ∈ ω, hL n < x * yx * y < hL n + eps_ n∀i ∈ n, hL i < hL n.
Apply SNo_prereal_decr_upper_approx (x * y) Lxy L1 L2 to the current goal.
Let hR be given.
Assume HhR.
Apply HhR to the current goal.
Assume HhR1: hRSNoS_ ωω.
Assume HhR2: ∀n ∈ ω, hR n + - eps_ n < x * yx * y < hR n∀i ∈ n, hR n < hR i.
We prove the intermediate claim LhL: ∀n ∈ ω, SNo (hL n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (hL n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) hL n HhL1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim LhR: ∀n ∈ ω, SNo (hR n).
Let n be given.
Assume Hn.
Apply SNoS_E2 ω omega_ordinal (hR n) (ap_Pi ω (λ_ ⇒ SNoS_ ω) hR n HhR1 Hn) to the current goal.
Assume _ _ H _.
An exact proof term for the current goal is H.
We prove the intermediate claim L3: ∀n ∈ ω, hL n < x * y.
Let n be given.
Assume Hn.
Apply HhL2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
We prove the intermediate claim L4: ∀n ∈ ω, x * y < hR n.
Let n be given.
Assume Hn.
Apply HhR2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim L5: ∀n m ∈ ω, hL n < hR m.
Let n be given.
Assume Hn.
Let m be given.
Assume Hm.
Apply SNoLt_tra (hL n) (x * y) (hR m) (LhL n Hn) Lxy (LhR m Hm) to the current goal.
We will prove hL n < x * y.
An exact proof term for the current goal is L3 n Hn.
We will prove x * y < hR m.
An exact proof term for the current goal is L4 m Hm.
Apply SNo_approx_real_lem hL HhL1 hR HhR1 L5 to the current goal.
Assume HhLR1: SNoCutP {hL n|n ∈ ω} {hR n|n ∈ ω}.
Assume HhLR2: SNo (SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}).
Assume _ _.
Assume HhLR5: ∀n ∈ ω, hL n < SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}.
Assume HhLR6: ∀n ∈ ω, SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω} < hR n.
We prove the intermediate claim L6: ∀n ∈ ω, x * y < hL n + eps_ n.
Let n be given.
Assume Hn.
Apply HhL2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim L7: ∀n ∈ ω, ∀i ∈ n, hL i < hL n.
Let n be given.
Assume Hn.
Apply HhL2 n Hn to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim L8: ∀n ∈ ω, hR n + - eps_ n < x * y.
Let n be given.
Assume Hn.
Apply HhR2 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
We prove the intermediate claim L9: ∀n ∈ ω, ∀i ∈ n, hR n < hR i.
Let n be given.
Assume Hn.
Apply HhR2 n Hn to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
We prove the intermediate claim L10: x * y = SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}.
rewrite the current goal using HxyLR (from left to right).
We will prove SNoCut L R = SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}.
Apply SNoCut_ext L R {hL n|n ∈ ω} {hR n|n ∈ ω} HLR HhLR1 to the current goal.
Let w be given.
Assume Hw: wL.
We will prove w < SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}.
Apply HLE w Hw to the current goal.
Let w0 be given.
Assume Hw0: w0SNoL x.
Let w1 be given.
Assume Hw1: w1SNoL y.
Assume Hwe: w = w0 * y + x * w1 + - w0 * w1.
Apply LLx2 w0 Hw0 to the current goal.
Let k0 be given.
Assume Hk0: k0ω.
Assume Hk0b: eps_ k0x + - w0.
Apply LLy2 w1 Hw1 to the current goal.
Let k1 be given.
Assume Hk1: k1ω.
Assume Hk1b: eps_ k1y + - w1.
Apply SNoL_E x Hx1 w0 Hw0 to the current goal.
Assume Hw01: SNo w0.
Assume Hw02: SNoLev w0SNoLev x.
Assume Hw03: w0 < x.
Apply SNoL_E y Hy1 w1 Hw1 to the current goal.
Assume Hw11: SNo w1.
Assume Hw12: SNoLev w1SNoLev y.
Assume Hw13: w1 < y.
We prove the intermediate claim Lek0: SNo (eps_ k0).
An exact proof term for the current goal is SNo_eps_ k0 Hk0.
We prove the intermediate claim Lek1: SNo (eps_ k1).
An exact proof term for the current goal is SNo_eps_ k1 Hk1.
We prove the intermediate claim Lk0k1: k0 + k1ω.
An exact proof term for the current goal is add_SNo_In_omega k0 Hk0 k1 Hk1.
We prove the intermediate claim Lek0k1: SNo (eps_ (k0 + k1)).
An exact proof term for the current goal is SNo_eps_ (k0 + k1) Lk0k1.
We prove the intermediate claim LhLk0k1: SNo (hL (k0 + k1)).
An exact proof term for the current goal is LhL (k0 + k1) Lk0k1.
We prove the intermediate claim Lw0y: SNo (w0 * y).
An exact proof term for the current goal is SNo_mul_SNo w0 y Hw01 Hy1.
We prove the intermediate claim Lxw1: SNo (x * w1).
An exact proof term for the current goal is SNo_mul_SNo x w1 Hx1 Hw11.
We prove the intermediate claim Lw0w1: SNo (w0 * w1).
An exact proof term for the current goal is SNo_mul_SNo w0 w1 Hw01 Hw11.
We prove the intermediate claim Lmw0w1: SNo (- w0 * w1).
An exact proof term for the current goal is SNo_minus_SNo (w0 * w1) Lw0w1.
We prove the intermediate claim Lw0yxw1mw0w1: SNo (w0 * y + x * w1 + - w0 * w1).
An exact proof term for the current goal is SNo_add_SNo_3 (w0 * y) (x * w1) (- w0 * w1) Lw0y Lxw1 Lmw0w1.
rewrite the current goal using Hwe (from left to right).
Apply SNoLeLt_tra (w0 * y + x * w1 + - w0 * w1) (hL (k0 + k1)) (SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}) Lw0yxw1mw0w1 LhLk0k1 HhLR2 to the current goal.
We will prove w0 * y + x * w1 + - w0 * w1hL (k0 + k1).
Apply SNoLtLe_or (hL (k0 + k1)) (w0 * y + x * w1 + - w0 * w1) LhLk0k1 Lw0yxw1mw0w1 to the current goal.
Assume H1: hL (k0 + k1) < w0 * y + x * w1 + - w0 * w1.
We will prove False.
Apply SNoLt_irref (x * y) to the current goal.
We will prove x * y < x * y.
Apply SNoLt_tra (x * y) (hL (k0 + k1) + eps_ (k0 + k1)) (x * y) Lxy (SNo_add_SNo (hL (k0 + k1)) (eps_ (k0 + k1)) LhLk0k1 Lek0k1) Lxy (L6 (k0 + k1) Lk0k1) to the current goal.
We will prove hL (k0 + k1) + eps_ (k0 + k1) < x * y.
Apply SNoLtLe_tra (hL (k0 + k1) + eps_ (k0 + k1)) ((w0 * y + x * w1 + - w0 * w1) + eps_ (k0 + k1)) (x * y) (SNo_add_SNo (hL (k0 + k1)) (eps_ (k0 + k1)) LhLk0k1 Lek0k1) (SNo_add_SNo (w0 * y + x * w1 + - w0 * w1) (eps_ (k0 + k1)) Lw0yxw1mw0w1 Lek0k1) Lxy to the current goal.
We will prove hL (k0 + k1) + eps_ (k0 + k1) < (w0 * y + x * w1 + - w0 * w1) + eps_ (k0 + k1).
Apply add_SNo_Lt1 (hL (k0 + k1)) (eps_ (k0 + k1)) (w0 * y + x * w1 + - w0 * w1) LhLk0k1 Lek0k1 Lw0yxw1mw0w1 to the current goal.
An exact proof term for the current goal is H1.
We will prove (w0 * y + x * w1 + - w0 * w1) + eps_ (k0 + k1)x * y.
rewrite the current goal using add_SNo_com (w0 * y + x * w1 + - w0 * w1) (eps_ (k0 + k1)) Lw0yxw1mw0w1 Lek0k1 (from left to right).
Apply add_SNo_minus_Le2 (x * y) (w0 * y + x * w1 + - w0 * w1) (eps_ (k0 + k1)) Lxy Lw0yxw1mw0w1 Lek0k1 to the current goal.
We will prove eps_ (k0 + k1)x * y + - (w0 * y + x * w1 + - w0 * w1).
rewrite the current goal using add_SNo_com_3_0_1 (w0 * y) (x * w1) (- w0 * w1) Lw0y Lxw1 Lmw0w1 (from left to right).
We will prove eps_ (k0 + k1)x * y + - (x * w1 + w0 * y + - w0 * w1).
rewrite the current goal using minus_add_SNo_distr_3 (x * w1) (w0 * y) (- w0 * w1) Lxw1 Lw0y Lmw0w1 (from left to right).
We will prove eps_ (k0 + k1)x * y + - x * w1 + - w0 * y + - - w0 * w1.
rewrite the current goal using mul_SNo_minus_distrL w0 y Hw01 Hy1 (from right to left).
rewrite the current goal using mul_SNo_minus_distrL w0 w1 Hw01 Hw11 (from right to left).
We will prove eps_ (k0 + k1)x * y + - x * w1 + (- w0) * y + - (- w0) * w1.
rewrite the current goal using mul_SNo_minus_distrR x w1 Hx1 Hw11 (from right to left).
rewrite the current goal using mul_SNo_minus_distrR (- w0) w1 (SNo_minus_SNo w0 Hw01) Hw11 (from right to left).
We will prove eps_ (k0 + k1)x * y + x * (- w1) + (- w0) * y + (- w0) * (- w1).
rewrite the current goal using SNo_foil x (- w0) y (- w1) Hx1 (SNo_minus_SNo w0 Hw01) Hy1 (SNo_minus_SNo w1 Hw11) (from right to left).
We will prove eps_ (k0 + k1)(x + - w0) * (y + - w1).
rewrite the current goal using mul_SNo_eps_eps_add_SNo k0 Hk0 k1 Hk1 (from right to left).
We will prove eps_ k0 * eps_ k1(x + - w0) * (y + - w1).
Apply nonneg_mul_SNo_Le2 (eps_ k0) (eps_ k1) (x + - w0) (y + - w1) Lek0 Lek1 (SNo_add_SNo x (- w0) Hx1 (SNo_minus_SNo w0 Hw01)) (SNo_add_SNo y (- w1) Hy1 (SNo_minus_SNo w1 Hw11)) to the current goal.
We will prove 0eps_ k0.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k0 Hk0.
We will prove 0eps_ k1.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k1 Hk1.
We will prove eps_ k0x + - w0.
An exact proof term for the current goal is Hk0b.
We will prove eps_ k1y + - w1.
An exact proof term for the current goal is Hk1b.
Assume H1: w0 * y + x * w1 + - w0 * w1hL (k0 + k1).
An exact proof term for the current goal is H1.
We will prove hL (k0 + k1) < SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}.
An exact proof term for the current goal is HhLR5 (k0 + k1) Lk0k1.
Let z0 be given.
Assume Hz0: z0SNoR x.
Let z1 be given.
Assume Hz1: z1SNoR y.
Assume Hwe: w = z0 * y + x * z1 + - z0 * z1.
Apply LRx2 z0 Hz0 to the current goal.
Let k0 be given.
Assume Hk0: k0ω.
Assume Hk0b: eps_ k0z0 + - x.
Apply LRy2 z1 Hz1 to the current goal.
Let k1 be given.
Assume Hk1: k1ω.
Assume Hk1b: eps_ k1z1 + - y.
Apply SNoR_E x Hx1 z0 Hz0 to the current goal.
Assume Hz01: SNo z0.
Assume Hz02: SNoLev z0SNoLev x.
Assume Hz03: x < z0.
Apply SNoR_E y Hy1 z1 Hz1 to the current goal.
Assume Hz11: SNo z1.
Assume Hz12: SNoLev z1SNoLev y.
Assume Hz13: y < z1.
We prove the intermediate claim Lek0: SNo (eps_ k0).
An exact proof term for the current goal is SNo_eps_ k0 Hk0.
We prove the intermediate claim Lek1: SNo (eps_ k1).
An exact proof term for the current goal is SNo_eps_ k1 Hk1.
We prove the intermediate claim Lk0k1: k0 + k1ω.
An exact proof term for the current goal is add_SNo_In_omega k0 Hk0 k1 Hk1.
We prove the intermediate claim Lek0k1: SNo (eps_ (k0 + k1)).
An exact proof term for the current goal is SNo_eps_ (k0 + k1) Lk0k1.
We prove the intermediate claim LhLk0k1: SNo (hL (k0 + k1)).
An exact proof term for the current goal is LhL (k0 + k1) Lk0k1.
We prove the intermediate claim Lz0y: SNo (z0 * y).
An exact proof term for the current goal is SNo_mul_SNo z0 y Hz01 Hy1.
We prove the intermediate claim Lxz1: SNo (x * z1).
An exact proof term for the current goal is SNo_mul_SNo x z1 Hx1 Hz11.
We prove the intermediate claim Lz0z1: SNo (z0 * z1).
An exact proof term for the current goal is SNo_mul_SNo z0 z1 Hz01 Hz11.
We prove the intermediate claim Lmz0z1: SNo (- z0 * z1).
An exact proof term for the current goal is SNo_minus_SNo (z0 * z1) Lz0z1.
We prove the intermediate claim Lz0yxz1mz0z1: SNo (z0 * y + x * z1 + - z0 * z1).
An exact proof term for the current goal is SNo_add_SNo_3 (z0 * y) (x * z1) (- z0 * z1) Lz0y Lxz1 Lmz0z1.
rewrite the current goal using Hwe (from left to right).
Apply SNoLeLt_tra (z0 * y + x * z1 + - z0 * z1) (hL (k0 + k1)) (SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}) Lz0yxz1mz0z1 LhLk0k1 HhLR2 to the current goal.
We will prove z0 * y + x * z1 + - z0 * z1hL (k0 + k1).
Apply SNoLtLe_or (hL (k0 + k1)) (z0 * y + x * z1 + - z0 * z1) LhLk0k1 Lz0yxz1mz0z1 to the current goal.
Assume H1: hL (k0 + k1) < z0 * y + x * z1 + - z0 * z1.
We will prove False.
Apply SNoLt_irref (x * y) to the current goal.
We will prove x * y < x * y.
Apply SNoLt_tra (x * y) (hL (k0 + k1) + eps_ (k0 + k1)) (x * y) Lxy (SNo_add_SNo (hL (k0 + k1)) (eps_ (k0 + k1)) LhLk0k1 Lek0k1) Lxy (L6 (k0 + k1) Lk0k1) to the current goal.
We will prove hL (k0 + k1) + eps_ (k0 + k1) < x * y.
Apply SNoLtLe_tra (hL (k0 + k1) + eps_ (k0 + k1)) ((z0 * y + x * z1 + - z0 * z1) + eps_ (k0 + k1)) (x * y) (SNo_add_SNo (hL (k0 + k1)) (eps_ (k0 + k1)) LhLk0k1 Lek0k1) (SNo_add_SNo (z0 * y + x * z1 + - z0 * z1) (eps_ (k0 + k1)) Lz0yxz1mz0z1 Lek0k1) Lxy to the current goal.
We will prove hL (k0 + k1) + eps_ (k0 + k1) < (z0 * y + x * z1 + - z0 * z1) + eps_ (k0 + k1).
Apply add_SNo_Lt1 (hL (k0 + k1)) (eps_ (k0 + k1)) (z0 * y + x * z1 + - z0 * z1) LhLk0k1 Lek0k1 Lz0yxz1mz0z1 to the current goal.
An exact proof term for the current goal is H1.
We will prove (z0 * y + x * z1 + - z0 * z1) + eps_ (k0 + k1)x * y.
rewrite the current goal using add_SNo_com (z0 * y + x * z1 + - z0 * z1) (eps_ (k0 + k1)) Lz0yxz1mz0z1 Lek0k1 (from left to right).
Apply add_SNo_minus_Le2 (x * y) (z0 * y + x * z1 + - z0 * z1) (eps_ (k0 + k1)) Lxy Lz0yxz1mz0z1 Lek0k1 to the current goal.
We will prove eps_ (k0 + k1)x * y + - (z0 * y + x * z1 + - z0 * z1).
rewrite the current goal using add_SNo_com (x * y) (- (z0 * y + x * z1 + - z0 * z1)) Lxy (SNo_minus_SNo (z0 * y + x * z1 + - z0 * z1) Lz0yxz1mz0z1) (from left to right).
rewrite the current goal using add_SNo_rotate_3_1 (z0 * y) (x * z1) (- z0 * z1) Lz0y Lxz1 Lmz0z1 (from left to right).
rewrite the current goal using minus_add_SNo_distr_3 (- z0 * z1) (z0 * y) (x * z1) Lmz0z1 Lz0y Lxz1 (from left to right).
rewrite the current goal using minus_SNo_invol (z0 * z1) Lz0z1 (from left to right).
We will prove eps_ (k0 + k1)(z0 * z1 + - z0 * y + - x * z1) + x * y.
rewrite the current goal using add_SNo_assoc_4 (z0 * z1) (- z0 * y) (- x * z1) (x * y) Lz0z1 (SNo_minus_SNo (z0 * y) Lz0y) (SNo_minus_SNo (x * z1) Lxz1) Lxy (from right to left).
We will prove eps_ (k0 + k1)z0 * z1 + - z0 * y + - x * z1 + x * y.
rewrite the current goal using mul_SNo_minus_distrR z0 y Hz01 Hy1 (from right to left).
rewrite the current goal using mul_SNo_minus_distrL x z1 Hx1 Hz11 (from right to left).
We will prove eps_ (k0 + k1)z0 * z1 + z0 * (- y) + (- x) * z1 + x * y.
rewrite the current goal using mul_SNo_minus_minus x y Hx1 Hy1 (from right to left).
We will prove eps_ (k0 + k1)z0 * z1 + z0 * (- y) + (- x) * z1 + (- x) * (- y).
rewrite the current goal using SNo_foil z0 (- x) z1 (- y) Hz01 (SNo_minus_SNo x Hx1) Hz11 (SNo_minus_SNo y Hy1) (from right to left).
We will prove eps_ (k0 + k1)(z0 + - x) * (z1 + - y).
rewrite the current goal using mul_SNo_eps_eps_add_SNo k0 Hk0 k1 Hk1 (from right to left).
We will prove eps_ k0 * eps_ k1(z0 + - x) * (z1 + - y).
Apply nonneg_mul_SNo_Le2 (eps_ k0) (eps_ k1) (z0 + - x) (z1 + - y) Lek0 Lek1 (SNo_add_SNo z0 (- x) Hz01 (SNo_minus_SNo x Hx1)) (SNo_add_SNo z1 (- y) Hz11 (SNo_minus_SNo y Hy1)) to the current goal.
We will prove 0eps_ k0.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k0 Hk0.
We will prove 0eps_ k1.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k1 Hk1.
We will prove eps_ k0z0 + - x.
An exact proof term for the current goal is Hk0b.
We will prove eps_ k1z1 + - y.
An exact proof term for the current goal is Hk1b.
Assume H1: z0 * y + x * z1 + - z0 * z1hL (k0 + k1).
An exact proof term for the current goal is H1.
We will prove hL (k0 + k1) < SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}.
An exact proof term for the current goal is HhLR5 (k0 + k1) Lk0k1.
Let z be given.
Assume Hz: zR.
We will prove SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω} < z.
Apply HRE z Hz to the current goal.
Let w0 be given.
Assume Hw0: w0SNoL x.
Let z1 be given.
Assume Hz1: z1SNoR y.
Assume Hze: z = w0 * y + x * z1 + - w0 * z1.
Apply LLx2 w0 Hw0 to the current goal.
Let k0 be given.
Assume Hk0: k0ω.
Assume Hk0b: eps_ k0x + - w0.
Apply LRy2 z1 Hz1 to the current goal.
Let k1 be given.
Assume Hk1: k1ω.
Assume Hk1b: eps_ k1z1 + - y.
Apply SNoL_E x Hx1 w0 Hw0 to the current goal.
Assume Hw01: SNo w0.
Assume Hw02: SNoLev w0SNoLev x.
Assume Hw03: w0 < x.
Apply SNoR_E y Hy1 z1 Hz1 to the current goal.
Assume Hz11: SNo z1.
Assume Hz12: SNoLev z1SNoLev y.
Assume Hz13: y < z1.
We prove the intermediate claim Lek0: SNo (eps_ k0).
An exact proof term for the current goal is SNo_eps_ k0 Hk0.
We prove the intermediate claim Lek1: SNo (eps_ k1).
An exact proof term for the current goal is SNo_eps_ k1 Hk1.
We prove the intermediate claim Lk0k1: k0 + k1ω.
An exact proof term for the current goal is add_SNo_In_omega k0 Hk0 k1 Hk1.
We prove the intermediate claim Lek0k1: SNo (eps_ (k0 + k1)).
An exact proof term for the current goal is SNo_eps_ (k0 + k1) Lk0k1.
We prove the intermediate claim Lmek0k1: SNo (- eps_ (k0 + k1)).
An exact proof term for the current goal is SNo_minus_SNo (eps_ (k0 + k1)) Lek0k1.
We prove the intermediate claim LhRk0k1: SNo (hR (k0 + k1)).
An exact proof term for the current goal is LhR (k0 + k1) Lk0k1.
We prove the intermediate claim Lw0y: SNo (w0 * y).
An exact proof term for the current goal is SNo_mul_SNo w0 y Hw01 Hy1.
We prove the intermediate claim Lxz1: SNo (x * z1).
An exact proof term for the current goal is SNo_mul_SNo x z1 Hx1 Hz11.
We prove the intermediate claim Lw0z1: SNo (w0 * z1).
An exact proof term for the current goal is SNo_mul_SNo w0 z1 Hw01 Hz11.
We prove the intermediate claim Lmw0z1: SNo (- w0 * z1).
An exact proof term for the current goal is SNo_minus_SNo (w0 * z1) Lw0z1.
We prove the intermediate claim Lw0yxz1mw0z1: SNo (w0 * y + x * z1 + - w0 * z1).
An exact proof term for the current goal is SNo_add_SNo_3 (w0 * y) (x * z1) (- w0 * z1) Lw0y Lxz1 Lmw0z1.
rewrite the current goal using Hze (from left to right).
Apply SNoLtLe_tra (SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}) (hR (k0 + k1)) (w0 * y + x * z1 + - w0 * z1) HhLR2 LhRk0k1 Lw0yxz1mw0z1 to the current goal.
We will prove SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω} < hR (k0 + k1).
An exact proof term for the current goal is HhLR6 (k0 + k1) Lk0k1.
We will prove hR (k0 + k1)w0 * y + x * z1 + - w0 * z1.
Apply SNoLtLe_or (w0 * y + x * z1 + - w0 * z1) (hR (k0 + k1)) Lw0yxz1mw0z1 LhRk0k1 to the current goal.
Assume H1: w0 * y + x * z1 + - w0 * z1 < hR (k0 + k1).
We will prove False.
Apply SNoLt_irref (x * y) to the current goal.
We will prove x * y < x * y.
Apply SNoLt_tra (x * y) (hR (k0 + k1) + - eps_ (k0 + k1)) (x * y) Lxy (SNo_add_SNo (hR (k0 + k1)) (- eps_ (k0 + k1)) LhRk0k1 Lmek0k1) Lxy to the current goal.
We will prove x * y < hR (k0 + k1) + - eps_ (k0 + k1).
Apply SNoLeLt_tra (x * y) ((w0 * y + x * z1 + - w0 * z1) + - eps_ (k0 + k1)) (hR (k0 + k1) + - eps_ (k0 + k1)) Lxy (SNo_add_SNo (w0 * y + x * z1 + - w0 * z1) (- eps_ (k0 + k1)) Lw0yxz1mw0z1 Lmek0k1) (SNo_add_SNo (hR (k0 + k1)) (- eps_ (k0 + k1)) LhRk0k1 Lmek0k1) to the current goal.
We will prove x * y(w0 * y + x * z1 + - w0 * z1) + - eps_ (k0 + k1).
Apply add_SNo_minus_Le2b (w0 * y + x * z1 + - w0 * z1) (eps_ (k0 + k1)) (x * y) Lw0yxz1mw0z1 Lek0k1 Lxy to the current goal.
We will prove x * y + eps_ (k0 + k1)w0 * y + x * z1 + - w0 * z1.
rewrite the current goal using add_SNo_com (x * y) (eps_ (k0 + k1)) Lxy Lek0k1 (from left to right).
Apply add_SNo_minus_Le2 (w0 * y + x * z1 + - w0 * z1) (x * y) (eps_ (k0 + k1)) Lw0yxz1mw0z1 Lxy Lek0k1 to the current goal.
We will prove eps_ (k0 + k1)(w0 * y + x * z1 + - w0 * z1) + - x * y.
rewrite the current goal using add_SNo_rotate_3_1 (w0 * y) (x * z1) (- w0 * z1) Lw0y Lxz1 Lmw0z1 (from left to right).
We will prove eps_ (k0 + k1)(- w0 * z1 + w0 * y + x * z1) + - x * y.
rewrite the current goal using add_SNo_assoc_4 (- w0 * z1) (w0 * y) (x * z1) (- x * y) Lmw0z1 Lw0y Lxz1 Lmxy (from right to left).
We will prove eps_ (k0 + k1)- w0 * z1 + w0 * y + x * z1 + - x * y.
rewrite the current goal using add_SNo_rotate_4_1 (- w0 * z1) (w0 * y) (x * z1) (- x * y) Lmw0z1 Lw0y Lxz1 Lmxy (from left to right).
We will prove eps_ (k0 + k1)- x * y + - w0 * z1 + w0 * y + x * z1.
rewrite the current goal using add_SNo_rotate_4_1 (- x * y) (- w0 * z1) (w0 * y) (x * z1) Lmxy Lmw0z1 Lw0y Lxz1 (from left to right).
We will prove eps_ (k0 + k1)x * z1 + - x * y + - w0 * z1 + w0 * y.
rewrite the current goal using mul_SNo_minus_distrR x y Hx1 Hy1 (from right to left).
rewrite the current goal using mul_SNo_minus_distrL w0 z1 Hw01 Hz11 (from right to left).
rewrite the current goal using mul_SNo_minus_minus w0 y Hw01 Hy1 (from right to left).
We will prove eps_ (k0 + k1)x * z1 + x * (- y) + (- w0) * z1 + (- w0) * (- y).
rewrite the current goal using SNo_foil x (- w0) z1 (- y) Hx1 (SNo_minus_SNo w0 Hw01) Hz11 (SNo_minus_SNo y Hy1) (from right to left).
rewrite the current goal using mul_SNo_eps_eps_add_SNo k0 Hk0 k1 Hk1 (from right to left).
We will prove eps_ k0 * eps_ k1(x + - w0) * (z1 + - y).
Apply nonneg_mul_SNo_Le2 (eps_ k0) (eps_ k1) (x + - w0) (z1 + - y) Lek0 Lek1 (SNo_add_SNo x (- w0) Hx1 (SNo_minus_SNo w0 Hw01)) (SNo_add_SNo z1 (- y) Hz11 (SNo_minus_SNo y Hy1)) to the current goal.
We will prove 0eps_ k0.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k0 Hk0.
We will prove 0eps_ k1.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k1 Hk1.
We will prove eps_ k0x + - w0.
An exact proof term for the current goal is Hk0b.
We will prove eps_ k1z1 + - y.
An exact proof term for the current goal is Hk1b.
We will prove (w0 * y + x * z1 + - w0 * z1) + - eps_ (k0 + k1) < hR (k0 + k1) + - eps_ (k0 + k1).
Apply add_SNo_Lt1 (w0 * y + x * z1 + - w0 * z1) (- eps_ (k0 + k1)) (hR (k0 + k1)) Lw0yxz1mw0z1 Lmek0k1 LhRk0k1 to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is L8 (k0 + k1) Lk0k1.
Assume H1: hR (k0 + k1)w0 * y + x * z1 + - w0 * z1.
An exact proof term for the current goal is H1.
Let z0 be given.
Assume Hz0: z0SNoR x.
Let w1 be given.
Assume Hw1: w1SNoL y.
Assume Hze: z = z0 * y + x * w1 + - z0 * w1.
Apply LRx2 z0 Hz0 to the current goal.
Let k0 be given.
Assume Hk0: k0ω.
Assume Hk0b: eps_ k0z0 + - x.
Apply LLy2 w1 Hw1 to the current goal.
Let k1 be given.
Assume Hk1: k1ω.
Assume Hk1b: eps_ k1y + - w1.
Apply SNoR_E x Hx1 z0 Hz0 to the current goal.
Assume Hz01: SNo z0.
Assume Hz02: SNoLev z0SNoLev x.
Assume Hz03: x < z0.
Apply SNoL_E y Hy1 w1 Hw1 to the current goal.
Assume Hw11: SNo w1.
Assume Hw12: SNoLev w1SNoLev y.
Assume Hw13: w1 < y.
We prove the intermediate claim Lek0: SNo (eps_ k0).
An exact proof term for the current goal is SNo_eps_ k0 Hk0.
We prove the intermediate claim Lek1: SNo (eps_ k1).
An exact proof term for the current goal is SNo_eps_ k1 Hk1.
We prove the intermediate claim Lk0k1: k0 + k1ω.
An exact proof term for the current goal is add_SNo_In_omega k0 Hk0 k1 Hk1.
We prove the intermediate claim Lek0k1: SNo (eps_ (k0 + k1)).
An exact proof term for the current goal is SNo_eps_ (k0 + k1) Lk0k1.
We prove the intermediate claim Lmek0k1: SNo (- eps_ (k0 + k1)).
An exact proof term for the current goal is SNo_minus_SNo (eps_ (k0 + k1)) Lek0k1.
We prove the intermediate claim LhRk0k1: SNo (hR (k0 + k1)).
An exact proof term for the current goal is LhR (k0 + k1) Lk0k1.
We prove the intermediate claim Lz0y: SNo (z0 * y).
An exact proof term for the current goal is SNo_mul_SNo z0 y Hz01 Hy1.
We prove the intermediate claim Lxw1: SNo (x * w1).
An exact proof term for the current goal is SNo_mul_SNo x w1 Hx1 Hw11.
We prove the intermediate claim Lz0w1: SNo (z0 * w1).
An exact proof term for the current goal is SNo_mul_SNo z0 w1 Hz01 Hw11.
We prove the intermediate claim Lmz0w1: SNo (- z0 * w1).
An exact proof term for the current goal is SNo_minus_SNo (z0 * w1) Lz0w1.
We prove the intermediate claim Lz0yxw1mz0w1: SNo (z0 * y + x * w1 + - z0 * w1).
An exact proof term for the current goal is SNo_add_SNo_3 (z0 * y) (x * w1) (- z0 * w1) Lz0y Lxw1 Lmz0w1.
rewrite the current goal using Hze (from left to right).
Apply SNoLtLe_tra (SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω}) (hR (k0 + k1)) (z0 * y + x * w1 + - z0 * w1) HhLR2 LhRk0k1 Lz0yxw1mz0w1 to the current goal.
We will prove SNoCut {hL n|n ∈ ω} {hR n|n ∈ ω} < hR (k0 + k1).
An exact proof term for the current goal is HhLR6 (k0 + k1) Lk0k1.
We will prove hR (k0 + k1)z0 * y + x * w1 + - z0 * w1.
Apply SNoLtLe_or (z0 * y + x * w1 + - z0 * w1) (hR (k0 + k1)) Lz0yxw1mz0w1 LhRk0k1 to the current goal.
Assume H1: z0 * y + x * w1 + - z0 * w1 < hR (k0 + k1).
We will prove False.
Apply SNoLt_irref (x * y) to the current goal.
We will prove x * y < x * y.
Apply SNoLt_tra (x * y) (hR (k0 + k1) + - eps_ (k0 + k1)) (x * y) Lxy (SNo_add_SNo (hR (k0 + k1)) (- eps_ (k0 + k1)) LhRk0k1 Lmek0k1) Lxy to the current goal.
We will prove x * y < hR (k0 + k1) + - eps_ (k0 + k1).
Apply SNoLeLt_tra (x * y) ((z0 * y + x * w1 + - z0 * w1) + - eps_ (k0 + k1)) (hR (k0 + k1) + - eps_ (k0 + k1)) Lxy (SNo_add_SNo (z0 * y + x * w1 + - z0 * w1) (- eps_ (k0 + k1)) Lz0yxw1mz0w1 Lmek0k1) (SNo_add_SNo (hR (k0 + k1)) (- eps_ (k0 + k1)) LhRk0k1 Lmek0k1) to the current goal.
We will prove x * y(z0 * y + x * w1 + - z0 * w1) + - eps_ (k0 + k1).
Apply add_SNo_minus_Le2b (z0 * y + x * w1 + - z0 * w1) (eps_ (k0 + k1)) (x * y) Lz0yxw1mz0w1 Lek0k1 Lxy to the current goal.
We will prove x * y + eps_ (k0 + k1)z0 * y + x * w1 + - z0 * w1.
rewrite the current goal using add_SNo_com (x * y) (eps_ (k0 + k1)) Lxy Lek0k1 (from left to right).
Apply add_SNo_minus_Le2 (z0 * y + x * w1 + - z0 * w1) (x * y) (eps_ (k0 + k1)) Lz0yxw1mz0w1 Lxy Lek0k1 to the current goal.
We will prove eps_ (k0 + k1)(z0 * y + x * w1 + - z0 * w1) + - x * y.
rewrite the current goal using add_SNo_assoc_4 (z0 * y) (x * w1) (- z0 * w1) (- x * y) Lz0y Lxw1 Lmz0w1 Lmxy (from right to left).
We will prove eps_ (k0 + k1)z0 * y + x * w1 + - z0 * w1 + - x * y.
rewrite the current goal using add_SNo_rotate_3_1 (- z0 * w1) (- x * y) (x * w1) Lmz0w1 Lmxy Lxw1 (from right to left).
We will prove eps_ (k0 + k1)z0 * y + - z0 * w1 + - x * y + x * w1.
rewrite the current goal using mul_SNo_minus_distrR z0 w1 Hz01 Hw11 (from right to left).
rewrite the current goal using mul_SNo_minus_distrL x y Hx1 Hy1 (from right to left).
rewrite the current goal using mul_SNo_minus_minus x w1 Hx1 Hw11 (from right to left).
We will prove eps_ (k0 + k1)z0 * y + z0 * (- w1) + (- x) * y + (- x) * (- w1).
rewrite the current goal using SNo_foil z0 (- x) y (- w1) Hz01 (SNo_minus_SNo x Hx1) Hy1 (SNo_minus_SNo w1 Hw11) (from right to left).
rewrite the current goal using mul_SNo_eps_eps_add_SNo k0 Hk0 k1 Hk1 (from right to left).
We will prove eps_ k0 * eps_ k1(z0 + - x) * (y + - w1).
Apply nonneg_mul_SNo_Le2 (eps_ k0) (eps_ k1) (z0 + - x) (y + - w1) Lek0 Lek1 (SNo_add_SNo z0 (- x) Hz01 (SNo_minus_SNo x Hx1)) (SNo_add_SNo y (- w1) Hy1 (SNo_minus_SNo w1 Hw11)) to the current goal.
We will prove 0eps_ k0.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k0 Hk0.
We will prove 0eps_ k1.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is SNo_eps_pos k1 Hk1.
We will prove eps_ k0z0 + - x.
An exact proof term for the current goal is Hk0b.
We will prove eps_ k1y + - w1.
An exact proof term for the current goal is Hk1b.
We will prove (z0 * y + x * w1 + - z0 * w1) + - eps_ (k0 + k1) < hR (k0 + k1) + - eps_ (k0 + k1).
Apply add_SNo_Lt1 (z0 * y + x * w1 + - z0 * w1) (- eps_ (k0 + k1)) (hR (k0 + k1)) Lz0yxw1mz0w1 Lmek0k1 LhRk0k1 to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is L8 (k0 + k1) Lk0k1.
Assume H1: hR (k0 + k1)z0 * y + x * w1 + - z0 * w1.
An exact proof term for the current goal is H1.
Let w be given.
Assume Hw: w{hL n|n ∈ ω}.
rewrite the current goal using HxyLR (from right to left).
We will prove w < x * y.
Apply ReplE_impred ω (λn ⇒ hL n) w Hw to the current goal.
Let n be given.
Assume Hn Hwn.
rewrite the current goal using Hwn (from left to right).
We will prove hL n < x * y.
An exact proof term for the current goal is L3 n Hn.
Let z be given.
Assume Hz: z{hR n|n ∈ ω}.
rewrite the current goal using HxyLR (from right to left).
We will prove x * y < z.
Apply ReplE_impred ω (λn ⇒ hR n) z Hz to the current goal.
Let n be given.
Assume Hn Hzn.
rewrite the current goal using Hzn (from left to right).
We will prove x * y < hR n.
An exact proof term for the current goal is L4 n Hn.
Apply HC to the current goal.
An exact proof term for the current goal is SNo_approx_real (x * y) Lxy hL HhL1 hR HhR1 L3 L6 L7 L4 L9 L10.
Theorem. (real_mul_SNo) The following is provable:
∀x y ∈ real, x * yreal
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
We prove the intermediate claim Lx: SNo x.
An exact proof term for the current goal is real_SNo x Hx.
We prove the intermediate claim Ly: SNo y.
An exact proof term for the current goal is real_SNo y Hy.
We prove the intermediate claim Lxy: SNo (x * y).
An exact proof term for the current goal is SNo_mul_SNo x y Lx Ly.
Apply SNoLt_trichotomy_or_impred x 0 Lx SNo_0 to the current goal.
Assume H1: x < 0.
We prove the intermediate claim Lmx: 0 < - x.
Apply minus_SNo_Lt_contra2 x 0 Lx SNo_0 to the current goal.
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.
Apply SNoLt_trichotomy_or_impred y 0 Ly SNo_0 to the current goal.
Assume H2: y < 0.
We will prove x * yreal.
rewrite the current goal using mul_SNo_minus_minus x y Lx Ly (from right to left).
We will prove (- x) * (- y)real.
Apply real_mul_SNo_pos (- x) (real_minus_SNo x Hx) (- y) (real_minus_SNo y Hy) Lmx to the current goal.
We will prove 0 < - y.
Apply minus_SNo_Lt_contra2 y 0 Ly SNo_0 to the current goal.
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 H2: y = 0.
rewrite the current goal using H2 (from left to right).
rewrite the current goal using mul_SNo_zeroR x Lx (from left to right).
An exact proof term for the current goal is real_0.
Assume H2: 0 < y.
We will prove x * yreal.
rewrite the current goal using minus_SNo_invol (x * y) Lxy (from right to left).
We will prove - - (x * y)real.
rewrite the current goal using mul_SNo_minus_distrL x y Lx Ly (from right to left).
We will prove - ((- x) * y)real.
Apply real_minus_SNo to the current goal.
We will prove (- x) * yreal.
An exact proof term for the current goal is real_mul_SNo_pos (- x) (real_minus_SNo x Hx) y Hy Lmx H2.
Assume H1: x = 0.
We will prove x * yreal.
rewrite the current goal using H1 (from left to right).
rewrite the current goal using mul_SNo_zeroL y Ly (from left to right).
An exact proof term for the current goal is real_0.
Assume H1: 0 < x.
Apply SNoLt_trichotomy_or_impred y 0 Ly SNo_0 to the current goal.
Assume H2: y < 0.
rewrite the current goal using minus_SNo_invol (x * y) Lxy (from right to left).
We will prove - - (x * y)real.
rewrite the current goal using mul_SNo_minus_distrR x y Lx Ly (from right to left).
We will prove - (x * (- y))real.
Apply real_minus_SNo to the current goal.
We will prove x * (- y)real.
Apply real_mul_SNo_pos x Hx (- y) (real_minus_SNo y Hy) H1 to the current goal.
We will prove 0 < - y.
Apply minus_SNo_Lt_contra2 y 0 Ly SNo_0 to the current goal.
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 H2: y = 0.
rewrite the current goal using H2 (from left to right).
rewrite the current goal using mul_SNo_zeroR x Lx (from left to right).
An exact proof term for the current goal is real_0.
Assume H2: 0 < y.
An exact proof term for the current goal is real_mul_SNo_pos x Hx y Hy H1 H2.
Theorem. (abs_SNo_intvl_bd) The following is provable:
∀x y z, SNo xSNo ySNo zxyy < x + zabs_SNo (y + - x) < z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyxz.
We prove the intermediate claim L1: 0y + - x.
rewrite the current goal using add_SNo_minus_SNo_rinv x Hx (from right to left).
We will prove x + - xy + - x.
An exact proof term for the current goal is add_SNo_Le1 x (- x) y Hx (SNo_minus_SNo x Hx) Hy Hxy.
We prove the intermediate claim L2: abs_SNo (y + - x) = y + - x.
Apply nonneg_abs_SNo (y + - x) L1 to the current goal.
rewrite the current goal using L2 (from left to right).
We will prove y + - x < z.
Apply add_SNo_minus_Lt1b y x z Hy Hx Hz to the current goal.
We will prove y < z + x.
rewrite the current goal using add_SNo_com z x Hz Hx (from left to right).
An exact proof term for the current goal is Hyxz.
Theorem. (pos_small_real_recip_ex) The following is provable:
∀x ∈ real, 0 < xx < 1∃y ∈ real, x * y = 1
Proof:
Let x be given.
Assume Hx Hxpos Hxsmall.
Apply dneg to the current goal.
Assume HC: ¬ ∃y ∈ real, x * y = 1.
Apply real_E x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4 Hx5 Hx6 Hx7.
Set L to be the term {q ∈ SNoS_ ω|x * q < 1}.
Set R to be the term {q ∈ SNoS_ ω|1 < x * q}.
We prove the intermediate claim LLE: ∀q ∈ L, ∀p : prop, (SNo qSNoLev qωx * q < 1p)p.
Let q be given.
Assume Hq: qL.
Let p be given.
Assume Hp.
Apply SepE (SNoS_ ω) (λq ⇒ x * q < 1) q Hq to the current goal.
Assume Hq1 Hq2.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a _ Hq1c _.
An exact proof term for the current goal is Hp Hq1c Hq1a Hq2.
We prove the intermediate claim LRE: ∀q ∈ R, ∀p : prop, (SNo qSNoLev qω1 < x * qp)p.
Let q be given.
Assume Hq: qR.
Let p be given.
Assume Hp.
Apply SepE (SNoS_ ω) (λq ⇒ 1 < x * q) q Hq to the current goal.
Assume Hq1 Hq2.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a _ Hq1c _.
An exact proof term for the current goal is Hp Hq1c Hq1a Hq2.
We prove the intermediate claim LLR: SNoCutP L R.
We will prove (∀w ∈ L, SNo w)(∀z ∈ R, SNo z)(∀w ∈ L, ∀z ∈ R, w < z).
Apply and3I to the current goal.
Let w be given.
Assume Hw.
Apply LLE w Hw to the current goal.
Assume H _ _.
An exact proof term for the current goal is H.
Let z be given.
Assume Hz.
Apply LRE z Hz to the current goal.
Assume H _ _.
An exact proof term for the current goal is H.
Let w be given.
Assume Hw.
Let z be given.
Assume Hz.
Apply LLE w Hw to the current goal.
Assume Hw1: SNo w.
Assume _.
Assume Hw3: x * w < 1.
Apply LRE z Hz to the current goal.
Assume Hz1: SNo z.
Assume _.
Assume Hz3: 1 < x * z.
We will prove w < z.
Apply SNoLtLe_or w z ?? ?? to the current goal.
Assume H1: w < z.
An exact proof term for the current goal is H1.
Assume H1: zw.
We will prove False.
Apply SNoLt_irref 1 to the current goal.
We will prove 1 < 1.
Apply SNoLt_tra 1 (x * z) 1 SNo_1 (SNo_mul_SNo x z ?? ??) SNo_1 Hz3 to the current goal.
We will prove x * z < 1.
Apply SNoLeLt_tra (x * z) (x * w) 1 (SNo_mul_SNo x z ?? ??) (SNo_mul_SNo x w ?? ??) SNo_1 to the current goal.
We will prove x * zx * w.
Apply nonneg_mul_SNo_Le x z w ?? (SNoLtLe 0 x ??) ?? ?? to the current goal.
An exact proof term for the current goal is H1.
We will prove x * w < 1.
An exact proof term for the current goal is Hw3.
Set y to be the term SNoCut L R.
Apply SNoCutP_SNoCut_impred L R LLR to the current goal.
Assume HLR1: SNo y.
Assume HLR2: SNoLev yordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Assume HLR3: ∀w ∈ L, w < y.
Assume HLR4: ∀z ∈ R, y < z.
Assume HLR5.
We prove the intermediate claim LyL: ySNoS_ (ordsucc ω).
Apply SNoS_I (ordsucc ω) ordsucc_omega_ordinal y (SNoLev y) to the current goal.
We will prove SNoLev yordsucc ω.
Apply ordinal_In_Or_Subq (SNoLev y) (ordsucc ω) (SNoLev_ordinal y HLR1) ordsucc_omega_ordinal to the current goal.
Assume H1: SNoLev yordsucc ω.
An exact proof term for the current goal is H1.
Assume H1: ordsucc ωSNoLev y.
We will prove False.
We prove the intermediate claim L1: ωSNoLev y.
Apply H1 to the current goal.
Apply ordsuccI2 to the current goal.
We prove the intermediate claim L2: TransSet ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Apply ordinal_TransSet to the current goal.
Apply ordinal_binunion to the current goal.
Apply ordinal_famunion to the current goal.
Let q be given.
Assume Hq: qL.
We will prove ordinal (ordsucc (SNoLev q)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
We will prove SNo q.
Apply LLE q Hq to the current goal.
Assume H _ _.
An exact proof term for the current goal is H.
Apply ordinal_famunion to the current goal.
Let q be given.
Assume Hq: qR.
We will prove ordinal (ordsucc (SNoLev q)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
We will prove SNo q.
Apply LRE q Hq to the current goal.
Assume H _ _.
An exact proof term for the current goal is H.
We prove the intermediate claim L3: ω(x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)).
An exact proof term for the current goal is TransSet_In_ordsucc_Subq (SNoLev y) ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))) L2 HLR2 ω L1.
Apply binunionE (x ∈ Lordsucc (SNoLev x)) (y ∈ Rordsucc (SNoLev y)) ω L3 to the current goal.
Assume H2: ωx ∈ Lordsucc (SNoLev x).
Apply famunionE_impred L (λx ⇒ ordsucc (SNoLev x)) ω H2 to the current goal.
Let q be given.
Assume Hq: qL.
Assume H3: ωordsucc (SNoLev q).
Apply In_no2cycle ω (ordsucc (SNoLev q)) H3 to the current goal.
We will prove ordsucc (SNoLev q)ω.
Apply omega_ordsucc to the current goal.
We will prove SNoLev qω.
Apply LLE q Hq to the current goal.
Assume _ H _.
An exact proof term for the current goal is H.
Assume H2: ωy ∈ Rordsucc (SNoLev y).
Apply famunionE_impred R (λx ⇒ ordsucc (SNoLev x)) ω H2 to the current goal.
Let q be given.
Assume Hq: qR.
Assume H3: ωordsucc (SNoLev q).
Apply In_no2cycle ω (ordsucc (SNoLev q)) H3 to the current goal.
We will prove ordsucc (SNoLev q)ω.
Apply omega_ordsucc to the current goal.
We will prove SNoLev qω.
Apply LRE q Hq to the current goal.
Assume _ H _.
An exact proof term for the current goal is H.
We will prove SNo_ (SNoLev y) y.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is HLR1.
We prove the intermediate claim Ly: yreal.
Apply real_I to the current goal.
We will prove ySNoS_ (ordsucc ω).
An exact proof term for the current goal is LyL.
We will prove yω.
Assume H1: y = ω.
We prove the intermediate claim L4: 0 = x.
Apply Hx6 to the current goal.
We will prove 0SNoS_ ω.
An exact proof term for the current goal is omega_SNoS_omega 0 (nat_p_omega 0 nat_0).
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (0 + - x) < eps_ k.
rewrite the current goal using add_SNo_0L (- x) (SNo_minus_SNo x ??) (from left to right).
We will prove abs_SNo (- x) < eps_ k.
rewrite the current goal using abs_SNo_minus x ?? (from left to right).
We will prove abs_SNo x < eps_ k.
rewrite the current goal using pos_abs_SNo x Hxpos (from left to right).
We will prove x < eps_ k.
Apply SNoLtLe_or x (eps_ k) ?? (SNo_eps_ k Hk) to the current goal.
Assume H2: x < eps_ k.
An exact proof term for the current goal is H2.
Assume H2: eps_ kx.
We will prove False.
Apply SNoLt_irref ω to the current goal.
We will prove ω < ω.
rewrite the current goal using H1 (from right to left) at position 1.
We will prove y < ω.
We prove the intermediate claim L2k: nat_p (2 ^ k).
An exact proof term for the current goal is nat_exp_SNo_nat 2 nat_2 k (omega_nat_p k Hk).
We prove the intermediate claim L2k': SNo (2 ^ k).
An exact proof term for the current goal is nat_p_SNo (2 ^ k) L2k.
We prove the intermediate claim L2k1: 2 ^ k + 1ω.
rewrite the current goal using add_SNo_1_ordsucc (2 ^ k) (nat_p_omega (2 ^ k) L2k) (from left to right).
Apply omega_ordsucc to the current goal.
We will prove 2 ^ kω.
An exact proof term for the current goal is nat_p_omega (2 ^ k) L2k.
Apply SNoLt_tra y (2 ^ k + 1) ω HLR1 (SNo_add_SNo (2 ^ k) 1 L2k' SNo_1) SNo_omega to the current goal.
We will prove y < 2 ^ k + 1.
Apply HLR4 to the current goal.
We will prove 2 ^ k + 1R.
We will prove 2 ^ k + 1{q ∈ SNoS_ ω|1 < x * q}.
Apply SepI to the current goal.
We will prove 2 ^ k + 1SNoS_ ω.
An exact proof term for the current goal is omega_SNoS_omega (2 ^ k + 1) L2k1.
We will prove 1 < x * (2 ^ k + 1).
rewrite the current goal using mul_SNo_distrL x (2 ^ k) 1 ?? L2k' SNo_1 (from left to right).
We will prove 1 < x * 2 ^ k + x * 1.
rewrite the current goal using mul_SNo_oneR x ?? (from left to right).
We will prove 1 < x * 2 ^ k + x.
Apply SNoLtLe_tra 1 (1 + x) (x * 2 ^ k + x) SNo_1 (SNo_add_SNo 1 x SNo_1 ??) (SNo_add_SNo (x * 2 ^ k) x (SNo_mul_SNo x (2 ^ k) ?? L2k') ??) to the current goal.
We will prove 1 < 1 + x.
rewrite the current goal using add_SNo_0R 1 SNo_1 (from right to left) at position 1.
We will prove 1 + 0 < 1 + x.
An exact proof term for the current goal is add_SNo_Lt2 1 0 x SNo_1 SNo_0 ?? Hxpos.
We will prove 1 + xx * 2 ^ k + x.
Apply add_SNo_Le1 1 x (x * 2 ^ k) SNo_1 ?? (SNo_mul_SNo x (2 ^ k) ?? L2k') to the current goal.
We will prove 1x * 2 ^ k.
rewrite the current goal using mul_SNo_eps_power_2 k (omega_nat_p k Hk) (from right to left) at position 1.
We will prove eps_ k * 2 ^ kx * 2 ^ k.
Apply nonneg_mul_SNo_Le' (eps_ k) x (2 ^ k) to the current goal.
An exact proof term for the current goal is SNo_eps_ k Hk.
An exact proof term for the current goal is ??.
An exact proof term for the current goal is L2k'.
We will prove 02 ^ k.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is exp_SNo_nat_pos 2 SNo_2 SNoLt_0_2 k (omega_nat_p k Hk).
We will prove eps_ kx.
An exact proof term for the current goal is H2.
We will prove 2 ^ k + 1 < ω.
Apply ordinal_In_SNoLt ω omega_ordinal to the current goal.
We will prove 2 ^ k + 1ω.
An exact proof term for the current goal is L2k1.
Apply SNoLt_irref 0 to the current goal.
We will prove 0 < 0.
rewrite the current goal using L4 (from left to right) at position 2.
An exact proof term for the current goal is Hxpos.
We will prove y- ω.
Assume H1: y = - ω.
Apply SNoLt_irref 0 to the current goal.
We will prove 0 < 0.
Apply SNoLt_tra 0 y 0 SNo_0 HLR1 SNo_0 to the current goal.
We will prove 0 < y.
Apply HLR3 to the current goal.
We will prove 0L.
We will prove 0{q ∈ SNoS_ ω|x * q < 1}.
Apply SepI to the current goal.
We will prove 0SNoS_ ω.
An exact proof term for the current goal is omega_SNoS_omega 0 (nat_p_omega 0 nat_0).
We will prove x * 0 < 1.
rewrite the current goal using mul_SNo_zeroR x ?? (from left to right).
An exact proof term for the current goal is SNoLt_0_1.
rewrite the current goal using H1 (from left to right).
We will prove - ω < 0.
Apply minus_SNo_Lt_contra1 0 ω SNo_0 SNo_omega to the current goal.
We will prove - 0 < ω.
rewrite the current goal using minus_SNo_0 (from left to right).
We will prove 0 < ω.
An exact proof term for the current goal is ordinal_In_SNoLt ω omega_ordinal 0 (nat_p_omega 0 nat_0).
Let q be given.
Assume Hq1: qSNoS_ ω.
Assume Hq2: ∀k ∈ ω, abs_SNo (q + - y) < eps_ k.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
We prove the intermediate claim Lq: qreal.
An exact proof term for the current goal is SNoS_omega_real q Hq1.
We prove the intermediate claim Lxq: x * qreal.
An exact proof term for the current goal is real_mul_SNo x Hx q Lq.
Apply real_E (x * q) Lxq to the current goal.
Assume Hxq1 Hxq2 Hxq3 Hxq4 Hxq5 Hxq6 Hxq7.
We prove the intermediate claim Lmxq: SNo (- x * q).
An exact proof term for the current goal is SNo_minus_SNo (x * q) ??.
We prove the intermediate claim Lxq1: x * q < 1∃n ∈ ω, x * q + eps_ n1.
Assume H1: x * q < 1.
Apply dneg to the current goal.
Assume HC: ¬ ∃n ∈ ω, x * q + eps_ n1.
We prove the intermediate claim Lxq1a: 1 = x * q.
Apply Hxq6 1 (omega_SNoS_omega 1 (nat_p_omega 1 nat_1)) to the current goal.
Let n be given.
Assume Hn: nω.
We will prove abs_SNo (1 + - x * q) < eps_ n.
rewrite the current goal using pos_abs_SNo (1 + - x * q) (SNoLt_minus_pos (x * q) 1 ?? SNo_1 H1) (from left to right).
We will prove 1 + - x * q < eps_ n.
Apply SNoLtLe_or (1 + - x * q) (eps_ n) (SNo_add_SNo 1 (- x * q) SNo_1 ??) (SNo_eps_ n Hn) to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: eps_ n1 + - x * q.
Apply HC to the current goal.
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 x * q + eps_ n1.
rewrite the current goal using add_SNo_com (x * q) (eps_ n) ?? (SNo_eps_ n Hn) (from left to right).
We will prove eps_ n + x * q1.
Apply add_SNo_minus_Le2 1 (x * q) (eps_ n) SNo_1 ?? (SNo_eps_ n Hn) to the current goal.
We will prove eps_ n1 + - x * q.
An exact proof term for the current goal is H2.
Apply SNoLt_irref 1 to the current goal.
We will prove 1 < 1.
rewrite the current goal using Lxq1a (from left to right) at position 1.
An exact proof term for the current goal is H1.
We prove the intermediate claim L1xq: 1 < x * q∃n ∈ ω, 1x * q + - eps_ n.
Assume H1: 1 < x * q.
Apply dneg to the current goal.
Assume HC: ¬ ∃n ∈ ω, 1x * q + - eps_ n.
We prove the intermediate claim L1xqa: 1 = x * q.
Apply Hxq6 1 (omega_SNoS_omega 1 (nat_p_omega 1 nat_1)) to the current goal.
Let n be given.
Assume Hn: nω.
We will prove abs_SNo (1 + - x * q) < eps_ n.
rewrite the current goal using abs_SNo_dist_swap 1 (x * q) SNo_1 ?? (from left to right).
We will prove abs_SNo (x * q + - 1) < eps_ n.
rewrite the current goal using pos_abs_SNo (x * q + - 1) (SNoLt_minus_pos 1 (x * q) SNo_1 ?? H1) (from left to right).
We will prove x * q + - 1 < eps_ n.
Apply SNoLtLe_or (x * q + - 1) (eps_ n) (SNo_add_SNo (x * q) (- 1) ?? (SNo_minus_SNo 1 SNo_1)) (SNo_eps_ n Hn) to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: eps_ nx * q + - 1.
Apply HC to the current goal.
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 1x * q + - eps_ n.
Apply add_SNo_minus_Le2b (x * q) (eps_ n) 1 ?? (SNo_eps_ n Hn) SNo_1 to the current goal.
We will prove 1 + eps_ nx * q.
rewrite the current goal using add_SNo_com 1 (eps_ n) SNo_1 (SNo_eps_ n Hn) (from left to right).
We will prove eps_ n + 1x * q.
Apply add_SNo_minus_Le2 (x * q) 1 (eps_ n) ?? SNo_1 (SNo_eps_ n Hn) to the current goal.
An exact proof term for the current goal is H2.
Apply SNoLt_irref 1 to the current goal.
We will prove 1 < 1.
rewrite the current goal using L1xqa (from left to right) at position 2.
An exact proof term for the current goal is H1.
We will prove q = y.
Apply SNoLt_trichotomy_or_impred q y Hq1c HLR1 to the current goal.
Assume H1: q < y.
We will prove False.
Apply SNoLt_trichotomy_or_impred (x * q) 1 Hxq1 SNo_1 to the current goal.
Assume H2: x * q < 1.
Apply Lxq1 H2 to the current goal.
Let n be given.
Assume H.
Apply H to the current goal.
Assume Hn: nω.
Assume H3: x * q + eps_ n1.
We prove the intermediate claim Lqeny: q + eps_ n < y.
Apply HLR3 to the current goal.
We will prove q + eps_ nL.
Apply SepI to the current goal.
We will prove q + eps_ nSNoS_ ω.
An exact proof term for the current goal is add_SNo_SNoS_omega q Hq1 (eps_ n) (SNo_eps_SNoS_omega n Hn).
We will prove x * (q + eps_ n) < 1.
rewrite the current goal using mul_SNo_distrL x q (eps_ n) ?? ?? (SNo_eps_ n Hn) (from left to right).
We will prove x * q + x * eps_ n < 1.
Apply SNoLtLe_tra (x * q + x * eps_ n) (x * q + eps_ n) 1 (SNo_add_SNo (x * q) (x * eps_ n) ?? (SNo_mul_SNo x (eps_ n) ?? (SNo_eps_ n Hn))) (SNo_add_SNo (x * q) (eps_ n) ?? (SNo_eps_ n Hn)) SNo_1 to the current goal.
We will prove x * q + x * eps_ n < x * q + eps_ n.
Apply add_SNo_Lt2 (x * q) (x * eps_ n) (eps_ n) ?? (SNo_mul_SNo x (eps_ n) ?? (SNo_eps_ n Hn)) (SNo_eps_ n Hn) to the current goal.
We will prove x * eps_ n < eps_ n.
An exact proof term for the current goal is mul_SNo_Lt1_pos_Lt x (eps_ n) ?? (SNo_eps_ n Hn) Hxsmall (SNo_eps_pos n Hn).
An exact proof term for the current goal is H3.
Apply SNoLt_irref (q + eps_ n) to the current goal.
Apply SNoLt_tra (q + eps_ n) y (q + eps_ n) (SNo_add_SNo q (eps_ n) ?? (SNo_eps_ n Hn)) HLR1 (SNo_add_SNo q (eps_ n) ?? (SNo_eps_ n Hn)) Lqeny to the current goal.
We will prove y < q + eps_ n.
rewrite the current goal using add_SNo_com q (eps_ n) ?? (SNo_eps_ n Hn) (from left to right).
We will prove y < eps_ n + q.
Apply add_SNo_minus_Lt1 y q (eps_ n) HLR1 ?? (SNo_eps_ n Hn) to the current goal.
We will prove y + - q < eps_ n.
rewrite the current goal using pos_abs_SNo (y + - q) (SNoLt_minus_pos q y ?? HLR1 H1) (from right to left).
We will prove abs_SNo (y + - q) < eps_ n.
rewrite the current goal using abs_SNo_dist_swap y q HLR1 ?? (from left to right).
We will prove abs_SNo (q + - y) < eps_ n.
An exact proof term for the current goal is Hq2 n Hn.
Assume H2: x * q = 1.
We will prove False.
Apply HC to the current goal.
We will prove ∃y ∈ real, x * y = 1.
We use q to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Lq.
An exact proof term for the current goal is H2.
Assume H2: 1 < x * q.
Apply SNoLt_irref q to the current goal.
Apply SNoLt_tra q y q ?? HLR1 ?? H1 to the current goal.
We will prove y < q.
Apply HLR4 to the current goal.
We will prove qR.
Apply SepI to the current goal.
An exact proof term for the current goal is Hq1.
An exact proof term for the current goal is H2.
Assume H1: q = y.
An exact proof term for the current goal is H1.
Assume H1: y < q.
We will prove False.
Apply SNoLt_trichotomy_or_impred (x * q) 1 Hxq1 SNo_1 to the current goal.
Assume H2: x * q < 1.
Apply SNoLt_irref q to the current goal.
Apply SNoLt_tra q y q ?? HLR1 ?? to the current goal.
We will prove q < y.
Apply HLR3 to the current goal.
We will prove qL.
Apply SepI to the current goal.
An exact proof term for the current goal is Hq1.
An exact proof term for the current goal is H2.
An exact proof term for the current goal is H1.
Assume H2: x * q = 1.
We will prove False.
Apply HC to the current goal.
We will prove ∃y ∈ real, x * y = 1.
We use q to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Lq.
An exact proof term for the current goal is H2.
Assume H2: 1 < x * q.
Apply L1xq H2 to the current goal.
Let n be given.
Assume H.
Apply H to the current goal.
Assume Hn: nω.
Assume H3: 1x * q + - eps_ n.
We prove the intermediate claim Lyqen: y < q + - eps_ n.
Apply HLR4 to the current goal.
We will prove q + - eps_ nR.
Apply SepI to the current goal.
We will prove q + - eps_ nSNoS_ ω.
Apply add_SNo_SNoS_omega q Hq1 (- eps_ n) to the current goal.
We will prove - eps_ nSNoS_ ω.
Apply minus_SNo_SNoS_omega to the current goal.
An exact proof term for the current goal is SNo_eps_SNoS_omega n Hn.
We will prove 1 < x * (q + - eps_ n).
rewrite the current goal using mul_SNo_distrL x q (- eps_ n) ?? ?? (SNo_minus_SNo (eps_ n) (SNo_eps_ n Hn)) (from left to right).
We will prove 1 < x * q + x * (- eps_ n).
Apply SNoLeLt_tra 1 (x * q + - eps_ n) (x * q + x * (- eps_ n)) SNo_1 (SNo_add_SNo (x * q) (- (eps_ n)) ?? (SNo_minus_SNo (eps_ n) (SNo_eps_ n Hn))) (SNo_add_SNo (x * q) (x * (- eps_ n)) ?? (SNo_mul_SNo x (- eps_ n) ?? (SNo_minus_SNo (eps_ n) (SNo_eps_ n Hn)))) H3 to the current goal.
We will prove x * q + - eps_ n < x * q + x * (- eps_ n).
Apply add_SNo_Lt2 (x * q) (- eps_ n) (x * (- eps_ n)) ?? (SNo_minus_SNo (eps_ n) (SNo_eps_ n Hn)) (SNo_mul_SNo x (- eps_ n) ?? (SNo_minus_SNo (eps_ n) (SNo_eps_ n Hn))) to the current goal.
We will prove - eps_ n < x * (- eps_ n).
rewrite the current goal using mul_SNo_minus_distrR x (eps_ n) ?? (SNo_eps_ n Hn) (from left to right).
We will prove - eps_ n < - x * eps_ n.
Apply minus_SNo_Lt_contra (x * eps_ n) (eps_ n) (SNo_mul_SNo x (eps_ n) ?? (SNo_eps_ n Hn)) (SNo_eps_ n Hn) to the current goal.
We will prove x * eps_ n < eps_ n.
An exact proof term for the current goal is mul_SNo_Lt1_pos_Lt x (eps_ n) ?? (SNo_eps_ n Hn) Hxsmall (SNo_eps_pos n Hn).
Apply SNoLt_irref y to the current goal.
Apply SNoLt_tra y (q + - eps_ n) y HLR1 (SNo_add_SNo q (- eps_ n) ?? (SNo_minus_SNo (eps_ n) (SNo_eps_ n Hn))) HLR1 Lyqen to the current goal.
We will prove q + - eps_ n < y.
Apply add_SNo_minus_Lt1b q (eps_ n) y ?? (SNo_eps_ n Hn) HLR1 to the current goal.
We will prove q < y + eps_ n.
rewrite the current goal using add_SNo_com y (eps_ n) HLR1 (SNo_eps_ n Hn) (from left to right).
We will prove q < eps_ n + y.
Apply add_SNo_minus_Lt1 q y (eps_ n) ?? HLR1 (SNo_eps_ n Hn) to the current goal.
We will prove q + - y < eps_ n.
rewrite the current goal using pos_abs_SNo (q + - y) (SNoLt_minus_pos y q HLR1 ?? H1) (from right to left).
We will prove abs_SNo (q + - y) < eps_ n.
An exact proof term for the current goal is Hq2 n Hn.
Apply real_E y Ly to the current goal.
Assume Hy1 Hy2 Hy3 Hy4 Hy5 Hy6 Hy7.
We prove the intermediate claim Lxy: x * yreal.
An exact proof term for the current goal is real_mul_SNo x Hx y Ly.
We prove the intermediate claim Lxy': SNo (x * y).
An exact proof term for the current goal is real_SNo (x * y) Lxy.
Apply real_E (x * y) Lxy to the current goal.
Assume Hxy1: SNo (x * y).
Assume Hxy2.
Assume Hxy3.
Assume Hxy4.
Assume Hxy5.
Assume Hxy6: ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - (x * y)) < eps_ k)q = x * y.
Assume Hxy7: ∀k ∈ ω, ∃q ∈ SNoS_ ω, q < x * yx * y < q + eps_ k.
Apply HC to the current goal.
We use y to witness the existential quantifier.
Apply andI to the current goal.
We will prove yreal.
An exact proof term for the current goal is Ly.
We will prove x * y = 1.
Use symmetry.
Apply Hxy6 to the current goal.
We will prove 1SNoS_ ω.
Apply omega_SNoS_omega 1 (nat_p_omega 1 nat_1) to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (1 + - (x * y)) < eps_ k.
Apply Hy7 (ordsucc k) (omega_ordsucc k Hk) to the current goal.
Let q be given.
Assume H.
Apply H to the current goal.
Assume Hq1: qSNoS_ ω.
Assume H.
Apply H to the current goal.
Assume Hq2: q < y.
Assume Hq3: y < q + eps_ (ordsucc k).
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
We prove the intermediate claim Lxq: SNo (x * q).
An exact proof term for the current goal is SNo_mul_SNo x q ?? ??.
We prove the intermediate claim LeSk: SNo (eps_ (ordsucc k)).
An exact proof term for the current goal is SNo_eps_ (ordsucc k) (omega_ordsucc k Hk).
We prove the intermediate claim LxeSk: SNo (x * eps_ (ordsucc k)).
An exact proof term for the current goal is SNo_mul_SNo x (eps_ (ordsucc k)) ?? ??.
We prove the intermediate claim LqeSk: SNo (q + eps_ (ordsucc k)).
An exact proof term for the current goal is SNo_add_SNo q (eps_ (ordsucc k)) ?? ??.
We prove the intermediate claim L1mxq: SNo (1 + - (x * q)).
An exact proof term for the current goal is SNo_add_SNo 1 (- (x * q)) SNo_1 (SNo_minus_SNo (x * q) ??).
We prove the intermediate claim Lxqmxy: SNo (x * q + - (x * y)).
An exact proof term for the current goal is SNo_add_SNo (x * q) (- (x * y)) ?? (SNo_minus_SNo (x * y) ??).
We prove the intermediate claim L1: x * (q + eps_ (ordsucc k)) < x * q + eps_ (ordsucc k).
rewrite the current goal using mul_SNo_distrL x q (eps_ (ordsucc k)) ?? ?? ?? (from left to right).
We will prove x * q + x * eps_ (ordsucc k) < x * q + eps_ (ordsucc k).
Apply add_SNo_Lt2 (x * q) (x * eps_ (ordsucc k)) (eps_ (ordsucc k)) ?? ?? ?? to the current goal.
We will prove x * eps_ (ordsucc k) < eps_ (ordsucc k).
Apply mul_SNo_Lt1_pos_Lt x (eps_ (ordsucc k)) ?? ?? ?? to the current goal.
An exact proof term for the current goal is SNo_eps_pos (ordsucc k) (omega_ordsucc k Hk).
Apply SNoLeLt_tra (abs_SNo (1 + - (x * y))) (abs_SNo (1 + - (x * q)) + abs_SNo (x * q + - (x * y))) (eps_ k) to the current goal.
An exact proof term for the current goal is SNo_abs_SNo (1 + - x * y) (SNo_add_SNo 1 (- (x * y)) SNo_1 (SNo_minus_SNo (x * y) ??)).
An exact proof term for the current goal is SNo_add_SNo (abs_SNo (1 + - (x * q))) (abs_SNo (x * q + - (x * y))) (SNo_abs_SNo (1 + - (x * q)) ??) (SNo_abs_SNo (x * q + - (x * y)) ??).
An exact proof term for the current goal is SNo_eps_ k Hk.
An exact proof term for the current goal is SNo_triangle2 1 (x * q) (x * y) SNo_1 (SNo_mul_SNo x q ?? ??) (SNo_mul_SNo x y ?? ??).
We will prove abs_SNo (1 + - x * q) + abs_SNo (x * q + - x * y) < eps_ k.
rewrite the current goal using eps_ordsucc_half_add k (omega_nat_p k Hk) (from right to left).
We will prove abs_SNo (1 + - x * q) + abs_SNo (x * q + - x * y) < eps_ (ordsucc k) + eps_ (ordsucc k).
Apply add_SNo_Lt3 to the current goal.
An exact proof term for the current goal is SNo_abs_SNo (1 + - (x * q)) ??.
An exact proof term for the current goal is SNo_abs_SNo (x * q + - (x * y)) ??.
An exact proof term for the current goal is LeSk.
An exact proof term for the current goal is LeSk.
We will prove abs_SNo (1 + - x * q) < eps_ (ordsucc k).
Apply abs_SNo_intvl_bd (x * q) 1 (eps_ (ordsucc k)) ?? SNo_1 ?? to the current goal.
We will prove x * q1.
Apply SNoLtLe_or 1 (x * q) SNo_1 Lxq to the current goal.
Assume H1: 1 < x * q.
We will prove False.
Apply SNoLt_irref q to the current goal.
We will prove q < q.
Apply SNoLt_tra q y q ?? ?? ?? Hq2 to the current goal.
We will prove y < q.
Apply HLR4 to the current goal.
We will prove qR.
Apply SepI to the current goal.
We will prove qSNoS_ ω.
An exact proof term for the current goal is Hq1.
We will prove 1 < x * q.
An exact proof term for the current goal is H1.
Assume H1: x * q1.
An exact proof term for the current goal is H1.
We will prove 1 < x * q + eps_ (ordsucc k).
Apply SNoLeLt_tra 1 (x * (q + eps_ (ordsucc k))) (x * q + eps_ (ordsucc k)) SNo_1 (SNo_mul_SNo x (q + eps_ (ordsucc k)) ?? ??) (SNo_add_SNo (x * q) (eps_ (ordsucc k)) ?? ??) to the current goal.
We will prove 1x * (q + eps_ (ordsucc k)).
Apply SNoLtLe_or (x * (q + eps_ (ordsucc k))) 1 (SNo_mul_SNo x (q + eps_ (ordsucc k)) ?? ??) SNo_1 to the current goal.
Assume H1: x * (q + eps_ (ordsucc k)) < 1.
We will prove False.
Apply SNoLt_irref y to the current goal.
We will prove y < y.
Apply SNoLt_tra y (q + eps_ (ordsucc k)) y ?? ?? ?? Hq3 to the current goal.
We will prove q + eps_ (ordsucc k) < y.
Apply HLR3 to the current goal.
We will prove q + eps_ (ordsucc k)L.
Apply SepI to the current goal.
Apply add_SNo_SNoS_omega to the current goal.
An exact proof term for the current goal is Hq1.
An exact proof term for the current goal is SNo_eps_SNoS_omega (ordsucc k) (omega_ordsucc k Hk).
We will prove x * (q + eps_ (ordsucc k)) < 1.
An exact proof term for the current goal is H1.
Assume H1.
An exact proof term for the current goal is H1.
We will prove x * (q + eps_ (ordsucc k)) < x * q + eps_ (ordsucc k).
An exact proof term for the current goal is L1.
We will prove abs_SNo (x * q + - x * y) < eps_ (ordsucc k).
rewrite the current goal using abs_SNo_dist_swap (x * q) (x * y) Lxq Lxy' (from left to right).
Apply abs_SNo_intvl_bd (x * q) (x * y) (eps_ (ordsucc k)) ?? ?? ?? to the current goal.
We will prove x * qx * y.
Apply SNoLtLe to the current goal.
We will prove x * q < x * y.
Apply pos_mul_SNo_Lt x q y ?? ?? ?? ?? to the current goal.
We will prove q < y.
An exact proof term for the current goal is Hq2.
We will prove x * y < x * q + eps_ (ordsucc k).
Apply SNoLt_tra (x * y) (x * (q + eps_ (ordsucc k))) (x * q + eps_ (ordsucc k)) ?? (SNo_mul_SNo x (q + eps_ (ordsucc k)) ?? ??) (SNo_add_SNo (x * q) (eps_ (ordsucc k)) ?? ??) to the current goal.
Apply pos_mul_SNo_Lt x y (q + eps_ (ordsucc k)) ?? ?? ?? ?? to the current goal.
An exact proof term for the current goal is Hq3.
We will prove x * (q + eps_ (ordsucc k)) < x * q + eps_ (ordsucc k).
An exact proof term for the current goal is L1.
Theorem. (pos_real_recip_ex) The following is provable:
∀x ∈ real, 0 < x∃y ∈ real, x * y = 1
Proof:
Let x be given.
Assume Hx Hxpos.
Apply real_E x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4 Hx5 Hx6 Hx7.
Apply SNoS_ordsucc_omega_bdd_eps_pos x ?? Hxpos ?? to the current goal.
Let N be given.
Assume H.
Apply H to the current goal.
Assume HN: Nω.
Assume H1: eps_ N * x < 1.
We prove the intermediate claim L1: eps_ Nreal.
An exact proof term for the current goal is SNoS_omega_real (eps_ N) (SNo_eps_SNoS_omega N HN).
We prove the intermediate claim L2: 0 < eps_ N * x.
An exact proof term for the current goal is mul_SNo_pos_pos (eps_ N) x (SNo_eps_ N HN) ?? (SNo_eps_pos N HN) ??.
Apply pos_small_real_recip_ex (eps_ N * x) (real_mul_SNo (eps_ N) ?? x ??) L2 H1 to the current goal.
Let y be given.
Assume H.
Apply H to the current goal.
Assume Hy: yreal.
Assume H2: (eps_ N * x) * y = 1.
We prove the intermediate claim LN: SNo (eps_ N).
An exact proof term for the current goal is SNo_eps_ N HN.
We use (eps_ N * y) to witness the existential quantifier.
Apply andI to the current goal.
We will prove eps_ N * yreal.
Apply real_mul_SNo to the current goal.
Apply SNoS_omega_real to the current goal.
We will prove eps_ NSNoS_ ω.
An exact proof term for the current goal is SNo_eps_SNoS_omega N HN.
An exact proof term for the current goal is Hy.
We will prove x * (eps_ N * y) = 1.
rewrite the current goal using mul_SNo_assoc x (eps_ N) y ?? ?? (real_SNo y Hy) (from left to right).
We will prove (x * eps_ N) * y = 1.
rewrite the current goal using mul_SNo_com x (eps_ N) ?? ?? (from left to right).
An exact proof term for the current goal is H2.
Theorem. (nonzero_real_recip_ex) The following is provable:
∀x ∈ real, x0∃y ∈ real, x * y = 1
Proof:
Let x be given.
Assume Hx.
Assume Hxnz: x0.
We prove the intermediate claim Lx: SNo x.
An exact proof term for the current goal is real_SNo x Hx.
Apply SNoLt_trichotomy_or_impred x 0 Lx SNo_0 to the current goal.
Assume H1: x < 0.
We prove the intermediate claim L1: 0 < - x.
Apply minus_SNo_Lt_contra2 x 0 Lx SNo_0 to the current goal.
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.
Apply pos_real_recip_ex (- x) (real_minus_SNo x Hx) L1 to the current goal.
Let y be given.
Assume H2.
Apply H2 to the current goal.
Assume Hy: yreal.
Assume H2: (- x) * y = 1.
We use (- y) to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is real_minus_SNo y Hy.
We will prove x * (- y) = 1.
rewrite the current goal using mul_SNo_minus_distrR x y Lx (real_SNo y Hy) (from left to right).
We will prove - (x * y) = 1.
rewrite the current goal using mul_SNo_minus_distrL x y Lx (real_SNo y Hy) (from right to left).
An exact proof term for the current goal is H2.
Assume H1: x = 0.
We will prove False.
An exact proof term for the current goal is Hxnz H1.
Assume H1: 0 < x.
An exact proof term for the current goal is pos_real_recip_ex x Hx H1.
Theorem. (real_Archimedean) The following is provable:
∀x y ∈ real, 0 < x0y∃n ∈ ω, yn * x
Proof:
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
Assume Hxpos Hynneg.
Apply real_E x Hx to the current goal.
Assume Hx1 Hx2 Hx3 Hx4 Hx5.
Assume Hx6: ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x.
Assume Hx7.
We prove the intermediate claim L1: ∃n ∈ ω, eps_ nx.
Apply dneg to the current goal.
Assume HC: ¬ (∃n ∈ ω, eps_ nx).
We prove the intermediate claim L1a: 0 = x.
Apply Hx6 0 (omega_SNoS_omega 0 (nat_p_omega 0 nat_0)) to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (0 + - x) < eps_ k.
rewrite the current goal using add_SNo_0L (- x) (SNo_minus_SNo x Hx1) (from left to right).
We will prove abs_SNo (- x) < eps_ k.
rewrite the current goal using abs_SNo_minus x Hx1 (from left to right).
We will prove abs_SNo x < eps_ k.
rewrite the current goal using pos_abs_SNo x Hxpos (from left to right).
We will prove x < eps_ k.
Apply SNoLtLe_or x (eps_ k) Hx1 (SNo_eps_ k Hk) to the current goal.
Assume H1.
An exact proof term for the current goal is H1.
Assume H1: eps_ kx.
We will prove False.
Apply HC to the current goal.
We use k to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hk.
An exact proof term for the current goal is H1.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using L1a (from right to left) at position 1.
An exact proof term for the current goal is Hxpos.
Apply L1 to the current goal.
Let n be given.
Assume Hn.
Apply Hn to the current goal.
Assume Hn1: nω.
Assume Hn2: eps_ nx.
We prove the intermediate claim L2n: nat_p (2 ^ n).
Apply nat_exp_SNo_nat to the current goal.
An exact proof term for the current goal is nat_2.
An exact proof term for the current goal is omega_nat_p n Hn1.
We prove the intermediate claim L2nb: SNo (2 ^ n).
An exact proof term for the current goal is SNo_exp_SNo_nat 2 SNo_2 n (omega_nat_p n Hn1).
We prove the intermediate claim L2nc: 02 ^ n.
Apply ordinal_SNoLev_max_2 to the current goal.
We will prove ordinal (2 ^ n).
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is L2n.
An exact proof term for the current goal is SNo_0.
We will prove SNoLev 0ordsucc (2 ^ n).
rewrite the current goal using SNoLev_0 (from left to right).
We will prove 0ordsucc (2 ^ n).
Apply nat_0_in_ordsucc to the current goal.
An exact proof term for the current goal is L2n.
We prove the intermediate claim L2: 12 ^ n * x.
rewrite the current goal using mul_SNo_eps_power_2' n (omega_nat_p n Hn1) (from right to left) at position 1.
We will prove 2 ^ n * eps_ n2 ^ n * x.
Apply nonneg_mul_SNo_Le (2 ^ n) (eps_ n) x L2nb L2nc (SNo_eps_ n Hn1) Hx1 to the current goal.
We will prove eps_ nx.
An exact proof term for the current goal is Hn2.
Apply real_E y Hy to the current goal.
Assume Hy1 Hy2.
Assume Hy3: ySNoS_ (ordsucc ω).
Assume Hy4.
Assume Hy5: y < ω.
Assume Hy6 Hy7.
Apply SNoS_ordsucc_omega_bdd_above y Hy3 Hy5 to the current goal.
Let N be given.
Assume HN.
Apply HN to the current goal.
Assume HN1: Nω.
Assume HN2: y < N.
We use (N * 2 ^ n) to witness the existential quantifier.
Apply andI to the current goal.
We will prove N * 2 ^ nω.
We will prove N * 2 ^ nω.
rewrite the current goal using mul_nat_mul_SNo N HN1 (2 ^ n) (nat_p_omega (2 ^ n) L2n) (from right to left).
We will prove mul_nat N (2 ^ n)ω.
Apply nat_p_omega to the current goal.
Apply mul_nat_p to the current goal.
An exact proof term for the current goal is omega_nat_p N HN1.
An exact proof term for the current goal is L2n.
We will prove y(N * 2 ^ n) * x.
We prove the intermediate claim LN1: SNo N.
An exact proof term for the current goal is omega_SNo N HN1.
We prove the intermediate claim LN2n: SNo (N * 2 ^ n).
Apply SNo_mul_SNo to the current goal.
An exact proof term for the current goal is LN1.
An exact proof term for the current goal is L2nb.
Apply SNoLe_tra y N ((N * 2 ^ n) * x) Hy1 LN1 (SNo_mul_SNo (N * 2 ^ n) x LN2n Hx1) to the current goal.
We will prove yN.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is HN2.
We will prove N(N * 2 ^ n) * x.
rewrite the current goal using mul_SNo_oneR N LN1 (from right to left) at position 1.
We will prove N * 1(N * 2 ^ n) * x.
rewrite the current goal using mul_SNo_assoc N (2 ^ n) x LN1 L2nb Hx1 (from right to left).
We will prove N * 1N * (2 ^ n * x).
We prove the intermediate claim LN2: 0N.
Apply ordinal_SNoLev_max_2 to the current goal.
We will prove ordinal N.
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is omega_nat_p N HN1.
An exact proof term for the current goal is SNo_0.
We will prove SNoLev 0ordsucc N.
rewrite the current goal using SNoLev_0 (from left to right).
We will prove 0ordsucc N.
Apply nat_0_in_ordsucc to the current goal.
An exact proof term for the current goal is omega_nat_p N HN1.
Apply nonneg_mul_SNo_Le N 1 (2 ^ n * x) LN1 LN2 SNo_1 to the current goal.
We will prove SNo (2 ^ n * x).
An exact proof term for the current goal is SNo_mul_SNo (2 ^ n) x L2nb Hx1.
We will prove 12 ^ n * x.
An exact proof term for the current goal is L2.
Theorem. (real_complete1) The following is provable:
∀a b ∈ realω, (∀n ∈ ω, a nb na na (ordsucc n)b (ordsucc n)b n)∃x ∈ real, ∀n ∈ ω, a nxxb n
Proof:
Let a be given.
Assume Ha.
Let b be given.
Assume Hb H1.
Apply dneg to the current goal.
Assume HC: ¬ (∃x ∈ real, ∀n ∈ ω, a nxxb n).
We will prove False.
We prove the intermediate claim La1: ∀n ∈ ω, SNo (a n).
Let n be given.
Assume Hn.
Apply real_E (a n) (ap_Pi ω (λ_ ⇒ real) a n Ha Hn) to the current goal.
Assume H _ _ _ _ _ _.
An exact proof term for the current goal is H.
We prove the intermediate claim Lb1: ∀n ∈ ω, SNo (b n).
Let n be given.
Assume Hn.
Apply real_E (b n) (ap_Pi ω (λ_ ⇒ real) b n Hb Hn) to the current goal.
Assume H _ _ _ _ _ _.
An exact proof term for the current goal is H.
We prove the intermediate claim La2: ∀n, nat_p n∀m ∈ n, a ma n.
Apply nat_ind to the current goal.
Let m be given.
Assume Hm: m0.
We will prove False.
An exact proof term for the current goal is EmptyE m Hm.
Let n be given.
Assume Hn.
Assume IHn: ∀m ∈ n, a ma n.
Let m be given.
Assume Hm: mordsucc n.
We will prove a ma (ordsucc n).
We prove the intermediate claim Ln: nω.
An exact proof term for the current goal is nat_p_omega n Hn.
We prove the intermediate claim LSn: ordsucc nω.
An exact proof term for the current goal is omega_ordsucc n Ln.
We prove the intermediate claim Lm: mω.
An exact proof term for the current goal is omega_TransSet (ordsucc n) LSn m Hm.
We prove the intermediate claim LanSn: a na (ordsucc n).
Apply H1 n Ln to the current goal.
Assume H _.
Apply H to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
Apply ordsuccE n m Hm to the current goal.
Assume H2: mn.
Apply SNoLe_tra (a m) (a n) (a (ordsucc n)) (La1 m Lm) (La1 n Ln) (La1 (ordsucc n) LSn) to the current goal.
We will prove a ma n.
An exact proof term for the current goal is IHn m H2.
An exact proof term for the current goal is LanSn.
Assume H2: m = n.
rewrite the current goal using H2 (from left to right).
An exact proof term for the current goal is LanSn.
We prove the intermediate claim Lb2: ∀n, nat_p n∀m ∈ n, b nb m.
Apply nat_ind to the current goal.
Let m be given.
Assume Hm: m0.
We will prove False.
An exact proof term for the current goal is EmptyE m Hm.
Let n be given.
Assume Hn.
Assume IHn: ∀m ∈ n, b nb m.
Let m be given.
Assume Hm: mordsucc n.
We will prove b (ordsucc n)b m.
We prove the intermediate claim Ln: nω.
An exact proof term for the current goal is nat_p_omega n Hn.
We prove the intermediate claim LSn: ordsucc nω.
An exact proof term for the current goal is omega_ordsucc n Ln.
We prove the intermediate claim Lm: mω.
An exact proof term for the current goal is omega_TransSet (ordsucc n) LSn m Hm.
We prove the intermediate claim LbSnn: b (ordsucc n)b n.
Apply H1 n Ln to the current goal.
Assume _ H.
An exact proof term for the current goal is H.
Apply ordsuccE n m Hm to the current goal.
Assume H2: mn.
Apply SNoLe_tra (b (ordsucc n)) (b n) (b m) (Lb1 (ordsucc n) LSn) (Lb1 n Ln) (Lb1 m Lm) to the current goal.
An exact proof term for the current goal is LbSnn.
We will prove b nb m.
An exact proof term for the current goal is IHn m H2.
Assume H2: m = n.
rewrite the current goal using H2 (from left to right).
An exact proof term for the current goal is LbSnn.
We prove the intermediate claim Lab: ∀n m ∈ ω, a nb m.
Let n be given.
Assume Hn.
Let m be given.
Assume Hm.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
We prove the intermediate claim Lm: nat_p m.
An exact proof term for the current goal is omega_nat_p m Hm.
We prove the intermediate claim Labn: a nb n.
Apply H1 n Hn to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
Apply ordinal_trichotomy_or_impred n m (nat_p_ordinal n Ln) (nat_p_ordinal m Lm) to the current goal.
Assume H2: nm.
We will prove a nb m.
Apply SNoLe_tra (a n) (a m) (b m) (La1 n Hn) (La1 m Hm) (Lb1 m Hm) to the current goal.
We will prove a na m.
An exact proof term for the current goal is La2 m Lm n H2.
We will prove a mb m.
Apply H1 m Hm to the current goal.
Assume H _.
Apply H to the current goal.
Assume H _.
An exact proof term for the current goal is H.
Assume H2: n = m.
rewrite the current goal using H2 (from right to left).
We will prove a nb n.
An exact proof term for the current goal is Labn.
Assume H2: mn.
We will prove a nb m.
Apply SNoLe_tra (a n) (b n) (b m) (La1 n Hn) (Lb1 n Hn) (Lb1 m Hm) to the current goal.
We will prove a nb n.
An exact proof term for the current goal is Labn.
We will prove b nb m.
An exact proof term for the current goal is Lb2 n Ln m H2.
Set L to be the term {q ∈ SNoS_ ω|∃n ∈ ω, q < a n}.
Set R to be the term {q ∈ SNoS_ ω|∃n ∈ ω, b n < q}.
Set x to be the term SNoCut L R.
We prove the intermediate claim LL: LSNoS_ ω.
An exact proof term for the current goal is Sep_Subq (SNoS_ ω) (λq ⇒ ∃n ∈ ω, q < a n).
We prove the intermediate claim LR: RSNoS_ ω.
An exact proof term for the current goal is Sep_Subq (SNoS_ ω) (λq ⇒ ∃n ∈ ω, b n < q).
We prove the intermediate claim LLR: SNoCutP L R.
We will prove (∀w ∈ L, SNo w)(∀y ∈ R, SNo y)(∀w ∈ L, ∀y ∈ R, w < y).
Apply and3I to the current goal.
Let w be given.
Assume Hw: wL.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, q < a m) w Hw to the current goal.
Assume H2: wSNoS_ ω.
Assume H3.
Apply H3 to the current goal.
Let n be given.
Assume H3.
Apply H3 to the current goal.
Assume Hn: nω.
Assume H3: w < a n.
Apply SNoS_E2 ω omega_ordinal w H2 to the current goal.
Assume Hw1 Hw2 Hw3 Hw4.
An exact proof term for the current goal is Hw3.
Let z be given.
Assume Hz: zR.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, b m < q) z Hz to the current goal.
Assume H2: zSNoS_ ω.
Assume H3.
Apply H3 to the current goal.
Let m be given.
Assume H3.
Apply H3 to the current goal.
Assume Hm: mω.
Assume H3: b m < z.
Apply SNoS_E2 ω omega_ordinal z H2 to the current goal.
Assume Hz1 Hz2 Hz3 Hz4.
An exact proof term for the current goal is Hz3.
Let w be given.
Assume Hw: wL.
Let z be given.
Assume Hz: zR.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, q < a m) w Hw to the current goal.
Assume H2: wSNoS_ ω.
Assume H3.
Apply H3 to the current goal.
Let n be given.
Assume H3.
Apply H3 to the current goal.
Assume Hn: nω.
Assume H3: w < a n.
Apply SNoS_E2 ω omega_ordinal w H2 to the current goal.
Assume Hw1 Hw2 Hw3 Hw4.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, b m < q) z Hz to the current goal.
Assume H4: zSNoS_ ω.
Assume H5.
Apply H5 to the current goal.
Let m be given.
Assume H5.
Apply H5 to the current goal.
Assume Hm: mω.
Assume H5: b m < z.
Apply SNoS_E2 ω omega_ordinal z H4 to the current goal.
Assume Hz1 Hz2 Hz3 Hz4.
We will prove w < z.
Apply SNoLt_tra w (a n) z Hw3 (La1 n Hn) Hz3 H3 to the current goal.
We will prove a n < z.
Apply SNoLeLt_tra (a n) (b m) z (La1 n Hn) (Lb1 m Hm) Hz3 to the current goal.
We will prove a nb m.
An exact proof term for the current goal is Lab n Hn m Hm.
We will prove b m < z.
An exact proof term for the current goal is H5.
Apply SNoCutP_SNoCut_impred L R LLR to the current goal.
Assume HLR1: SNo (SNoCut L R).
Assume HLR2: SNoLev (SNoCut L R)ordsucc ((x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y))).
Assume HLR3: ∀w ∈ L, w < SNoCut L R.
Assume HLR4: ∀y ∈ R, SNoCut L R < y.
Assume HLR5: ∀z, SNo z(∀x ∈ L, x < z)(∀y ∈ R, z < y)SNoLev (SNoCut L R)SNoLev zSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z.
We prove the intermediate claim Lax: ∀n ∈ ω, a nx.
Let n be given.
Assume Hn.
Apply SNo_approx_real_rep (a n) (ap_Pi ω (λ_ ⇒ real) a n Ha Hn) to the current goal.
Let f be given.
Assume Hf.
Let g be given.
Assume Hg Hf1 Hf2 Hf3 Hg1 Hg2 Hg3 Hfg Hanfg.
rewrite the current goal using Hanfg (from left to right).
We will prove SNoCut {f m|m ∈ ω} {g m|m ∈ ω}SNoCut L R.
Apply SNoCut_Le {f m|m ∈ ω} {g m|m ∈ ω} L R to the current goal.
We will prove SNoCutP {f m|m ∈ ω} {g m|m ∈ ω}.
An exact proof term for the current goal is Hfg.
We will prove SNoCutP L R.
An exact proof term for the current goal is LLR.
Let w be given.
Assume Hw: w{f m|m ∈ ω}.
We will prove w < x.
Apply ReplE_impred ω (λm ⇒ f m) w Hw to the current goal.
Let m be given.
Assume Hm: mω.
Assume Hwm: w = f m.
rewrite the current goal using Hwm (from left to right).
We will prove f m < x.
Apply HLR3 to the current goal.
We will prove f mL.
Apply SepI to the current goal.
We will prove f mSNoS_ ω.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) f m Hf Hm.
We will prove ∃n ∈ ω, f m < a 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.
An exact proof term for the current goal is Hf1 m Hm.
Let z be given.
Assume Hz: zR.
rewrite the current goal using Hanfg (from right to left).
We will prove a n < z.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, b m < q) z Hz to the current goal.
Assume H2: zSNoS_ ω.
Assume H3.
Apply H3 to the current goal.
Let m be given.
Assume H3.
Apply H3 to the current goal.
Assume Hm: mω.
Assume H3: b m < z.
Apply SNoS_E2 ω omega_ordinal z H2 to the current goal.
Assume Hz1 Hz2 Hz3 Hz4.
Apply SNoLeLt_tra (a n) (b m) z (La1 n Hn) (Lb1 m Hm) Hz3 to the current goal.
We will prove a nb m.
An exact proof term for the current goal is Lab n Hn m Hm.
An exact proof term for the current goal is H3.
We prove the intermediate claim Lxb: ∀n ∈ ω, xb n.
Let n be given.
Assume Hn.
We will prove xb n.
Apply SNo_approx_real_rep (b n) (ap_Pi ω (λ_ ⇒ real) b n Hb Hn) to the current goal.
Let f be given.
Assume Hf.
Let g be given.
Assume Hg Hf1 Hf2 Hf3 Hg1 Hg2 Hg3 Hfg Hbnfg.
rewrite the current goal using Hbnfg (from left to right).
We will prove SNoCut L RSNoCut {f m|m ∈ ω} {g m|m ∈ ω}.
Apply SNoCut_Le L R {f m|m ∈ ω} {g m|m ∈ ω} to the current goal.
We will prove SNoCutP L R.
An exact proof term for the current goal is LLR.
We will prove SNoCutP {f m|m ∈ ω} {g m|m ∈ ω}.
An exact proof term for the current goal is Hfg.
Let w be given.
Assume Hw: wL.
rewrite the current goal using Hbnfg (from right to left).
We will prove w < b n.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, q < a m) w Hw to the current goal.
Assume H2: wSNoS_ ω.
Assume H3.
Apply H3 to the current goal.
Let m be given.
Assume H3.
Apply H3 to the current goal.
Assume Hm: mω.
Assume H3: w < a m.
Apply SNoS_E2 ω omega_ordinal w H2 to the current goal.
Assume Hw1 Hw2 Hw3 Hw4.
Apply SNoLtLe_tra w (a m) (b n) Hw3 (La1 m Hm) (Lb1 n Hn) to the current goal.
An exact proof term for the current goal is H3.
We will prove a mb n.
An exact proof term for the current goal is Lab m Hm n Hn.
Let z be given.
Assume Hz: z{g m|m ∈ ω}.
We will prove x < z.
Apply ReplE_impred ω (λm ⇒ g m) z Hz to the current goal.
Let m be given.
Assume Hm: mω.
Assume Hzm: z = g m.
rewrite the current goal using Hzm (from left to right).
We will prove x < g m.
Apply HLR4 to the current goal.
We will prove g mR.
Apply SepI to the current goal.
We will prove g mSNoS_ ω.
An exact proof term for the current goal is ap_Pi ω (λ_ ⇒ SNoS_ ω) g m Hg Hm.
We will prove ∃n ∈ ω, b n < g m.
We use n to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hn.
An exact proof term for the current goal is Hg2 m Hm.
We prove the intermediate claim Laxb: ∀n ∈ ω, a nxxb n.
Let n be given.
Assume Hn.
Apply andI to the current goal.
An exact proof term for the current goal is Lax n Hn.
An exact proof term for the current goal is Lxb n Hn.
We prove the intermediate claim L1: ∀q ∈ SNoS_ ω, qLqR.
Let q be given.
Assume Hq.
Apply dneg to the current goal.
Assume HCq: ¬ (qLqR).
Apply SNoS_E2 ω omega_ordinal q Hq to the current goal.
Assume Hq1 Hq2 Hq3 Hq4.
We prove the intermediate claim L1a: ∀w ∈ L, w < q.
Let w be given.
Assume Hw: wL.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, q < a m) w Hw to the current goal.
Assume H2: wSNoS_ ω.
Assume H3.
Apply H3 to the current goal.
Let n be given.
Assume H3.
Apply H3 to the current goal.
Assume Hn: nω.
Assume H3: w < a n.
Apply SNoS_E2 ω omega_ordinal w H2 to the current goal.
Assume Hw1 Hw2 Hw3 Hw4.
Apply SNoLtLe_or w q Hw3 Hq3 to the current goal.
Assume H4: w < q.
An exact proof term for the current goal is H4.
Assume H4: qw.
We will prove False.
Apply HCq to the current goal.
Apply orIL to the current goal.
We will prove qL.
Apply SepI to the current goal.
An exact proof term for the current goal is Hq.
We will prove ∃n ∈ ω, q < a 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 q < a n.
An exact proof term for the current goal is SNoLeLt_tra q w (a n) Hq3 Hw3 (La1 n Hn) H4 H3.
We prove the intermediate claim L1b: ∀z ∈ R, q < z.
Let z be given.
Assume Hz: zR.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, b m < q) z Hz to the current goal.
Assume H2: zSNoS_ ω.
Assume H3.
Apply H3 to the current goal.
Let n be given.
Assume H3.
Apply H3 to the current goal.
Assume Hn: nω.
Assume H3: b n < z.
Apply SNoS_E2 ω omega_ordinal z H2 to the current goal.
Assume Hz1 Hz2 Hz3 Hz4.
Apply SNoLtLe_or q z Hq3 Hz3 to the current goal.
Assume H4: q < z.
An exact proof term for the current goal is H4.
Assume H4: zq.
We will prove False.
Apply HCq to the current goal.
Apply orIR to the current goal.
We will prove qR.
Apply SepI to the current goal.
An exact proof term for the current goal is Hq.
We will prove ∃n ∈ ω, b n < q.
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 b n < q.
An exact proof term for the current goal is SNoLtLe_tra (b n) z q (Lb1 n Hn) Hz3 Hq3 H3 H4.
Apply HLR5 q Hq3 L1a L1b to the current goal.
Assume H2: SNoLev xSNoLev q.
Assume _.
Apply HC to the current goal.
We use x to witness the existential quantifier.
Apply andI to the current goal.
Apply SNoS_omega_real to the current goal.
We will prove xSNoS_ ω.
Apply SNoS_I ω omega_ordinal x (SNoLev x) to the current goal.
We will prove SNoLev xω.
Apply omega_TransSet (ordsucc (SNoLev q)) (omega_ordsucc (SNoLev q) Hq1) to the current goal.
We will prove SNoLev xordsucc (SNoLev q).
Apply ordinal_In_Or_Subq (SNoLev x) (ordsucc (SNoLev q)) (SNoLev_ordinal x HLR1) (ordinal_ordsucc (SNoLev q) Hq2) to the current goal.
Assume H3.
An exact proof term for the current goal is H3.
Assume H3: ordsucc (SNoLev q)SNoLev x.
We will prove False.
Apply In_irref (SNoLev q) to the current goal.
Apply H2 to the current goal.
Apply H3 to the current goal.
Apply ordsuccI2 to the current goal.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is HLR1.
An exact proof term for the current goal is Laxb.
Apply HC to the current goal.
We use x to witness the existential quantifier.
Apply andI to the current goal.
We will prove xreal.
Apply real_I to the current goal.
We will prove xSNoS_ (ordsucc ω).
Apply SNoS_I (ordsucc ω) ordsucc_omega_ordinal x (SNoLev x) to the current goal.
We will prove SNoLev xordsucc ω.
An exact proof term for the current goal is SNoCutP_SNoCut_omega L LL R LR LLR.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is HLR1.
We will prove xω.
Assume H2: x = ω.
We prove the intermediate claim Lbd1: xb 0.
An exact proof term for the current goal is Lxb 0 (nat_p_omega 0 nat_0).
Apply real_E (b 0) (ap_Pi ω (λ_ ⇒ real) b 0 Hb (nat_p_omega 0 nat_0)) to the current goal.
Assume Hb0a: SNo (b 0).
Assume _ _ _.
Assume Hb0b: b 0 < ω.
Assume _ _.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLeLt_tra x (b 0) x HLR1 Hb0a HLR1 Lbd1 to the current goal.
We will prove b 0 < x.
rewrite the current goal using H2 (from left to right).
We will prove b 0 < ω.
An exact proof term for the current goal is Hb0b.
We will prove x- ω.
Assume H2: x = - ω.
We prove the intermediate claim Lbd2: a 0x.
An exact proof term for the current goal is Lax 0 (nat_p_omega 0 nat_0).
Apply real_E (a 0) (ap_Pi ω (λ_ ⇒ real) a 0 Ha (nat_p_omega 0 nat_0)) to the current goal.
Assume Ha0a: SNo (a 0).
Assume _ _.
Assume Ha0b: - ω < a 0.
Assume _ _ _.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLtLe_tra x (a 0) x HLR1 Ha0a HLR1 to the current goal.
We will prove x < a 0.
rewrite the current goal using H2 (from left to right).
An exact proof term for the current goal is Ha0b.
We will prove a 0x.
An exact proof term for the current goal is Lbd2.
We will prove ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - x) < eps_ k)q = x.
Let q be given.
Assume Hq1: qSNoS_ ω.
Assume Hq2: ∀k ∈ ω, abs_SNo (q + - x) < eps_ k.
We will prove False.
Apply SNoS_E2 ω omega_ordinal q Hq1 to the current goal.
Assume Hq1a Hq1b Hq1c Hq1d.
Apply L1 q Hq1 to the current goal.
Assume H2: qL.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, q < a m) q H2 to the current goal.
Assume _ H3.
Apply H3 to the current goal.
Let n be given.
Assume H3.
Apply H3 to the current goal.
Assume Hn: nω.
Assume H3: q < a n.
Apply real_E (a n) (ap_Pi ω (λ_ ⇒ real) a n Ha Hn) to the current goal.
Assume _ _ _ _ _.
Assume H4: ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - a n) < eps_ k)q = a n.
Assume _.
We prove the intermediate claim L2: q = a n.
Apply H4 q Hq1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (q + - a n) < eps_ k.
We prove the intermediate claim L2a: 0 < a n + - q.
An exact proof term for the current goal is SNoLt_minus_pos q (a n) Hq1c (La1 n Hn) H3.
We prove the intermediate claim L2b: a nx.
An exact proof term for the current goal is Lax n Hn.
We prove the intermediate claim L2c: 0 < x + - q.
Apply SNoLt_minus_pos q x Hq1c HLR1 to the current goal.
We will prove q < x.
An exact proof term for the current goal is SNoLtLe_tra q (a n) x Hq1c (La1 n Hn) HLR1 H3 L2b.
rewrite the current goal using abs_SNo_dist_swap q (a n) Hq1c (La1 n Hn) (from left to right).
We will prove abs_SNo (a n + - q) < eps_ k.
rewrite the current goal using pos_abs_SNo (a n + - q) L2a (from left to right).
We will prove a n + - q < eps_ k.
Apply SNoLeLt_tra (a n + - q) (x + - q) (eps_ k) (SNo_add_SNo (a n) (- q) (La1 n Hn) (SNo_minus_SNo q Hq1c)) (SNo_add_SNo x (- q) HLR1 (SNo_minus_SNo q Hq1c)) (SNo_eps_ k Hk) to the current goal.
We will prove a n + - qx + - q.
Apply add_SNo_Le1 (a n) (- q) x (La1 n Hn) (SNo_minus_SNo q Hq1c) HLR1 to the current goal.
We will prove a nx.
An exact proof term for the current goal is L2b.
We will prove x + - q < eps_ k.
rewrite the current goal using pos_abs_SNo (x + - q) L2c (from right to left).
rewrite the current goal using abs_SNo_dist_swap x q HLR1 Hq1c (from left to right).
We will prove abs_SNo (q + - x) < eps_ k.
An exact proof term for the current goal is Hq2 k Hk.
Apply SNoLt_irref q to the current goal.
rewrite the current goal using L2 (from left to right) at position 2.
An exact proof term for the current goal is H3.
Assume H2: qR.
Apply SepE (SNoS_ ω) (λq ⇒ ∃m ∈ ω, b m < q) q H2 to the current goal.
Assume _ H3.
Apply H3 to the current goal.
Let n be given.
Assume H3.
Apply H3 to the current goal.
Assume Hn: nω.
Assume H3: b n < q.
Apply real_E (b n) (ap_Pi ω (λ_ ⇒ real) b n Hb Hn) to the current goal.
Assume _ _ _ _ _.
Assume H4: ∀q ∈ SNoS_ ω, (∀k ∈ ω, abs_SNo (q + - b n) < eps_ k)q = b n.
Assume _.
We prove the intermediate claim L3: q = b n.
Apply H4 q Hq1 to the current goal.
Let k be given.
Assume Hk: kω.
We will prove abs_SNo (q + - b n) < eps_ k.
We prove the intermediate claim L3a: 0 < q + - b n.
An exact proof term for the current goal is SNoLt_minus_pos (b n) q (Lb1 n Hn) Hq1c H3.
We prove the intermediate claim L3b: xb n.
An exact proof term for the current goal is Lxb n Hn.
We prove the intermediate claim L3c: 0 < q + - x.
Apply SNoLt_minus_pos x q HLR1 Hq1c to the current goal.
We will prove x < q.
An exact proof term for the current goal is SNoLeLt_tra x (b n) q HLR1 (Lb1 n Hn) Hq1c L3b H3.
We will prove abs_SNo (q + - b n) < eps_ k.
rewrite the current goal using pos_abs_SNo (q + - b n) L3a (from left to right).
We will prove q + - b n < eps_ k.
Apply SNoLeLt_tra (q + - b n) (q + - x) (eps_ k) (SNo_add_SNo q (- b n) Hq1c (SNo_minus_SNo (b n) (Lb1 n Hn))) (SNo_add_SNo q (- x) Hq1c (SNo_minus_SNo x HLR1)) (SNo_eps_ k Hk) to the current goal.
We will prove q + - b nq + - x.
Apply add_SNo_Le2 q (- b n) (- x) Hq1c (SNo_minus_SNo (b n) (Lb1 n Hn)) (SNo_minus_SNo x HLR1) to the current goal.
We will prove - b n- x.
An exact proof term for the current goal is minus_SNo_Le_contra x (b n) HLR1 (Lb1 n Hn) L3b.
We will prove q + - x < eps_ k.
rewrite the current goal using pos_abs_SNo (q + - x) L3c (from right to left).
We will prove abs_SNo (q + - x) < eps_ k.
An exact proof term for the current goal is Hq2 k Hk.
Apply SNoLt_irref q to the current goal.
rewrite the current goal using L3 (from left to right) at position 1.
An exact proof term for the current goal is H3.
An exact proof term for the current goal is Laxb.
Theorem. (real_complete2) The following is provable:
∀a b ∈ realω, (∀n ∈ ω, a nb na na (n + 1)b (n + 1)b n)∃x ∈ real, ∀n ∈ ω, a nxxb n
Proof:
Let a be given.
Assume Ha.
Let b be given.
Assume Hb.
Assume H1.
Apply real_complete1 a Ha b Hb to the current goal.
Let n be given.
Assume Hn.
We will prove a nb na na (ordsucc n)b (ordsucc n)b n.
We prove the intermediate claim L1: ordsucc n = n + 1.
rewrite the current goal using add_nat_add_SNo n Hn 1 (nat_p_omega 1 nat_1) (from right to left).
We will prove ordsucc n = add_nat n 1.
rewrite the current goal using add_nat_SR n 0 nat_0 (from left to right).
We will prove ordsucc n = ordsucc (add_nat n 0).
rewrite the current goal using add_nat_0R (from left to right).
Use reflexivity.
rewrite the current goal using L1 (from left to right).
An exact proof term for the current goal is H1 n Hn.
End of Section Reals