Surreal Numbers as Sets

From Parts 1 and 2

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

Part 3

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.
Theorem. (not_TransSet_Sing1) The following is provable:
¬ TransSet {1}
Proof:
Assume H1: TransSet {1}.
We prove the intermediate claim L1: 0{1}.
An exact proof term for the current goal is H1 1 (SingI 1) 0 In_0_1.
Apply neq_0_1 to the current goal.
An exact proof term for the current goal is SingE 1 0 L1.
Theorem. (not_ordinal_Sing1) The following is provable:
¬ ordinal {1}
Proof:
Assume H1.
Apply H1 to the current goal.
Assume H2 _.
An exact proof term for the current goal is not_TransSet_Sing1 H2.
Theorem. (tagged_not_ordinal) The following is provable:
∀y, ¬ ordinal (y ')
Proof:
Let y be given.
Assume H1: ordinal (y ').
We prove the intermediate claim L1: {1}y '.
We will prove {1}y{{1}}.
Apply binunionI2 to the current goal.
An exact proof term for the current goal is SingI {1}.
Apply not_ordinal_Sing1 to the current goal.
An exact proof term for the current goal is ordinal_Hered (y ') H1 {1} L1.
Theorem. (tagged_notin_ordinal) The following is provable:
∀alpha y, ordinal alpha(y ')alpha
Proof:
Let alpha and y be given.
Assume H1 H2.
Apply tagged_not_ordinal y to the current goal.
An exact proof term for the current goal is ordinal_Hered alpha H1 (y ') H2.
Theorem. (tagged_eqE_Subq) The following is provable:
∀alpha beta, ordinal alphaalpha ' = beta 'alphabeta
Proof:
Let alpha and beta be given.
Assume Ha He.
Let gamma be given.
Assume Hc: gammaalpha.
We prove the intermediate claim L1: gammabeta '.
rewrite the current goal using He (from right to left).
We will prove gammaalpha{{1}}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hc.
Apply binunionE beta {{1}} gamma L1 to the current goal.
Assume H1: gammabeta.
An exact proof term for the current goal is H1.
Assume H1: gamma{{1}}.
We will prove False.
Apply not_ordinal_Sing1 to the current goal.
rewrite the current goal using SingE {1} gamma H1 (from right to left).
An exact proof term for the current goal is ordinal_Hered alpha Ha gamma Hc.
Theorem. (tagged_eqE_eq) The following is provable:
∀alpha beta, ordinal alphaordinal betaalpha ' = beta 'alpha = beta
Proof:
Let alpha and beta be given.
Assume Ha Hb He.
An exact proof term for the current goal is set_ext alpha beta (tagged_eqE_Subq alpha beta Ha He) (tagged_eqE_Subq beta alpha Hb (λq ⇒ He (λu v ⇒ q v u))).
Theorem. (tagged_ReplE) The following is provable:
∀alpha beta, ordinal alphaordinal betabeta '{gamma '|gamma ∈ alpha}betaalpha
Proof:
Let alpha and beta be given.
Assume Ha Hb.
Assume H1: beta '{gamma '|gamma ∈ alpha}.
Apply ReplE_impred alpha (λgamma ⇒ gamma ') (beta ') H1 to the current goal.
Let gamma be given.
Assume H2: gammaalpha.
Assume H3: beta ' = gamma '.
We prove the intermediate claim L2: beta = gamma.
An exact proof term for the current goal is tagged_eqE_eq beta gamma Hb (ordinal_Hered alpha Ha gamma H2) H3.
rewrite the current goal using L2 (from left to right).
An exact proof term for the current goal is H2.
Theorem. (ordinal_notin_tagged_Repl) The following is provable:
∀alpha Y, ordinal alphaalpha{y '|y ∈ Y}
Proof:
Let alpha and Y be given.
Assume H1: ordinal alpha.
Assume H2: alpha{y '|y ∈ Y}.
Apply ReplE_impred Y (λy ⇒ y ') alpha H2 to the current goal.
Let y be given.
Assume H3: yY.
Assume H4: alpha = y '.
Apply tagged_not_ordinal y to the current goal.
We will prove ordinal (y ').
rewrite the current goal using H4 (from right to left).
An exact proof term for the current goal is H1.
Definition. We define SNoElts_ to be λalpha ⇒ alpha{beta '|beta ∈ alpha} of type setset.
Theorem. (SNoElts_mon) The following is provable:
∀alpha beta, alphabetaSNoElts_ alphaSNoElts_ beta
Proof:
Let alpha and beta be given.
Assume H1: alphabeta.
Let x be given.
Assume H2: xalpha{gamma '|gamma ∈ alpha}.
Apply binunionE alpha {gamma '|gamma ∈ alpha} x H2 to the current goal.
Assume H3: xalpha.
We will prove xbeta{gamma '|gamma ∈ beta}.
Apply binunionI1 to the current goal.
Apply H1 to the current goal.
An exact proof term for the current goal is H3.
Assume H3: x{gamma '|gamma ∈ alpha}.
We will prove xbeta{gamma '|gamma ∈ beta}.
Apply binunionI2 to the current goal.
We will prove x{gamma '|gamma ∈ beta}.
Apply ReplE_impred alpha (λgamma ⇒ gamma ') x H3 to the current goal.
Let gamma be given.
Assume H4: gammaalpha.
Assume H5: x = gamma '.
rewrite the current goal using H5 (from left to right).
We will prove gamma '{gamma '|gamma ∈ beta}.
An exact proof term for the current goal is ReplI beta (λgamma ⇒ gamma ') gamma (H1 gamma H4).
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.
Theorem. (PNoEq_PSNo) The following is provable:
∀alpha, ordinal alpha∀p : setprop, PNoEq_ alpha (λbeta ⇒ betaPSNo alpha p) p
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let p be given.
Let beta be given.
Assume Hb: betaalpha.
We will prove betaPSNo alpha pp beta.
Apply iffI to the current goal.
Assume H1: beta{beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} beta H1 to the current goal.
Assume H2: beta{beta ∈ alpha|p beta}.
An exact proof term for the current goal is SepE2 alpha p beta H2.
Assume H2: beta{beta '|beta ∈ alpha, ¬ p beta}.
We will prove False.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λx ⇒ x ') beta H2 to the current goal.
Let gamma be given.
Assume Hc: gammaalpha.
Assume H3: ¬ p gamma.
Assume H4: beta = gamma '.
Apply tagged_notin_ordinal alpha gamma Ha to the current goal.
We will prove gamma 'alpha.
rewrite the current goal using H4 (from right to left).
An exact proof term for the current goal is Hb.
Assume H1: p beta.
We will prove betaPSNo alpha p.
We will prove beta{beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionI1 to the current goal.
Apply SepI to the current goal.
An exact proof term for the current goal is Hb.
An exact proof term for the current goal is H1.
Theorem. (SNo_PSNo) The following is provable:
∀alpha, ordinal alpha∀p : setprop, SNo_ alpha (PSNo alpha p)
Proof:
Let alpha be given.
Assume Ha.
Let p be given.
We will prove PSNo alpha pSNoElts_ alpha∀beta ∈ alpha, exactly1of2 (beta 'PSNo alpha p) (betaPSNo alpha p).
Apply andI to the current goal.
Let u be given.
Assume Hu: uPSNo alpha p.
We will prove uSNoElts_ alpha.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} u Hu to the current goal.
Assume H1: u{beta ∈ alpha|p beta}.
Apply SepE alpha p u H1 to the current goal.
Assume H2: ualpha.
Assume H3: p u.
We will prove ualpha{beta '|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is H2.
Assume H1: u{beta '|beta ∈ alpha, ¬ p beta}.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') u H1 to the current goal.
Let beta be given.
Assume H2: betaalpha.
Assume H3: ¬ p beta.
Assume H4: u = beta '.
We will prove ualpha{beta '|beta ∈ alpha}.
Apply binunionI2 to the current goal.
We will prove u{beta '|beta ∈ alpha}.
rewrite the current goal using H4 (from left to right).
An exact proof term for the current goal is ReplI alpha (λbeta ⇒ beta ') beta H2.
Let beta be given.
Assume H1: betaalpha.
We prove the intermediate claim Lbeta: ordinal beta.
An exact proof term for the current goal is ordinal_Hered alpha Ha beta H1.
We will prove exactly1of2 (beta 'PSNo alpha p) (betaPSNo alpha p).
Apply xm (p beta) to the current goal.
Assume H2: p beta.
Apply exactly1of2_I2 to the current goal.
We will prove beta 'PSNo alpha p.
Assume H3: beta 'PSNo alpha p.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} (beta ') H3 to the current goal.
Assume H4: beta '{beta ∈ alpha|p beta}.
Apply SepE alpha p (beta ') H4 to the current goal.
Assume H5: beta 'alpha.
Assume H6: p (beta ').
We will prove False.
Apply tagged_not_ordinal beta to the current goal.
An exact proof term for the current goal is ordinal_Hered alpha Ha (beta ') H5.
Assume H4: beta '{beta '|beta ∈ alpha, ¬ p beta}.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') (beta ') H4 to the current goal.
Let gamma be given.
Assume H5: gammaalpha.
Assume H6: ¬ p gamma.
Assume H7: beta ' = gamma '.
We prove the intermediate claim Lgamma: ordinal gamma.
An exact proof term for the current goal is ordinal_Hered alpha Ha gamma H5.
We prove the intermediate claim L1: beta = gamma.
An exact proof term for the current goal is tagged_eqE_eq beta gamma Lbeta Lgamma H7.
Apply H6 to the current goal.
We will prove p gamma.
rewrite the current goal using L1 (from right to left).
We will prove p beta.
An exact proof term for the current goal is H2.
We will prove beta{beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is SepI alpha p beta H1 H2.
Assume H2: ¬ p beta.
Apply exactly1of2_I1 to the current goal.
We will prove beta '{beta ∈ alpha|p beta}{beta '|beta ∈ alpha, ¬ p beta}.
Apply binunionI2 to the current goal.
An exact proof term for the current goal is ReplSepI alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') beta H1 H2.
We will prove betaPSNo alpha p.
Assume H3: betaPSNo alpha p.
Apply binunionE {beta ∈ alpha|p beta} {beta '|beta ∈ alpha, ¬ p beta} beta H3 to the current goal.
Assume H4: beta{beta ∈ alpha|p beta}.
Apply SepE alpha p beta H4 to the current goal.
Assume H5: betaalpha.
Assume H6: p beta.
We will prove False.
An exact proof term for the current goal is H2 H6.
Assume H4: beta{beta '|beta ∈ alpha, ¬ p beta}.
Apply ReplSepE_impred alpha (λbeta ⇒ ¬ p beta) (λbeta ⇒ beta ') beta H4 to the current goal.
Let gamma be given.
Assume H5: gammaalpha.
Assume H6: ¬ p gamma.
Assume H7: beta = gamma '.
Apply tagged_not_ordinal gamma to the current goal.
We will prove ordinal (gamma ').
rewrite the current goal using H7 (from right to left).
An exact proof term for the current goal is Lbeta.
Theorem. (SNo_PSNo_eta_) The following is provable:
∀alpha x, ordinal alphaSNo_ alpha xx = PSNo alpha (λbeta ⇒ betax)
Proof:
Let alpha and x be given.
Assume Ha Hx.
Apply Hx to the current goal.
Assume Hx1: xSNoElts_ alpha.
Assume Hx2: ∀beta ∈ alpha, exactly1of2 (beta 'x) (betax).
Apply set_ext to the current goal.
We will prove xPSNo alpha (λbeta ⇒ betax).
Let u be given.
Assume Hu: ux.
Apply binunionE alpha {beta '|beta ∈ alpha} u (Hx1 u Hu) to the current goal.
Assume H1: ualpha.
We will prove u{beta ∈ alpha|betax}{beta '|beta ∈ alpha, betax}.
Apply binunionI1 to the current goal.
Apply SepI to the current goal.
An exact proof term for the current goal is H1.
An exact proof term for the current goal is Hu.
Assume H1: u{beta '|beta ∈ alpha}.
Apply ReplE_impred alpha (λbeta ⇒ beta ') u H1 to the current goal.
Let beta be given.
Assume H2: betaalpha.
Assume H3: u = beta '.
We will prove u{beta ∈ alpha|betax}{beta '|beta ∈ alpha, betax}.
Apply binunionI2 to the current goal.
We will prove u{beta '|beta ∈ alpha, betax}.
rewrite the current goal using H3 (from left to right).
We will prove beta '{beta '|beta ∈ alpha, betax}.
We prove the intermediate claim L2: betax.
Assume H4: betax.
Apply exactly1of2_E (beta 'x) (betax) (Hx2 beta H2) to the current goal.
Assume H5: beta 'x.
Assume H6: betax.
An exact proof term for the current goal is H6 H4.
Assume H4: beta 'x.
Assume H5: betax.
Apply H4 to the current goal.
We will prove (beta ')x.
rewrite the current goal using H3 (from right to left).
We will prove ux.
An exact proof term for the current goal is Hu.
An exact proof term for the current goal is ReplSepI alpha (λbeta ⇒ betax) (λbeta ⇒ beta ') beta H2 L2.
We will prove PSNo alpha (λbeta ⇒ betax)x.
Let u be given.
Assume Hu: uPSNo alpha (λbeta ⇒ betax).
We will prove ux.
Apply binunionE {beta ∈ alpha|betax} {beta '|beta ∈ alpha, betax} u Hu to the current goal.
Assume H1: u{beta ∈ alpha|betax}.
Apply SepE alpha (λbeta ⇒ betax) u H1 to the current goal.
Assume H2: ualpha.
Assume H3: ux.
An exact proof term for the current goal is H3.
Assume H1: u{beta '|beta ∈ alpha, betax}.
Apply ReplSepE_impred alpha (λbeta ⇒ betax) (λbeta ⇒ beta ') u H1 to the current goal.
Let beta be given.
Assume H2: betaalpha.
Assume H3: betax.
Assume H4: u = beta '.
Apply exactly1of2_E (beta 'x) (betax) (Hx2 beta H2) to the current goal.
Assume H5: beta 'x.
Assume H6: betax.
rewrite the current goal using H4 (from left to right).
An exact proof term for the current goal is H5.
Assume H4: beta 'x.
Assume H5: betax.
We will prove False.
An exact proof term for the current goal is H3 H5.
Definition. We define SNo to be λx ⇒ ∃alpha, ordinal alphaSNo_ alpha x of type setprop.
Theorem. (SNo_SNo) The following is provable:
∀alpha, ordinal alpha∀z, SNo_ alpha zSNo z
Proof:
Let alpha be given.
Assume Ha.
Let z be given.
Assume Hz: SNo_ alpha z.
We will prove ∃alpha, ordinal alphaSNo_ alpha z.
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is Hz.
Definition. We define SNoLev to be λx ⇒ Eps_i (λalpha ⇒ ordinal alphaSNo_ alpha x) of type setset.
Theorem. (SNoLev_uniq_Subq) The following is provable:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalphabeta
Proof:
Let x, alpha and beta be given.
Assume Ha Hb Hax Hbx.
Let gamma be given.
Assume Hc: gammaalpha.
We will prove gammabeta.
Apply Hax to the current goal.
Assume Hax1 Hax2.
Apply Hbx to the current goal.
Assume Hbx1 Hbx2.
We prove the intermediate claim Lc: ordinal gamma.
An exact proof term for the current goal is ordinal_Hered alpha Ha gamma Hc.
Apply exactly1of2_or (gamma 'x) (gammax) (Hax2 gamma Hc) to the current goal.
Assume H1: gamma 'x.
We prove the intermediate claim L1: gamma 'beta{delta '|delta ∈ beta}.
An exact proof term for the current goal is Hbx1 (gamma ') H1.
We prove the intermediate claim L2: gamma 'betagamma '{delta '|delta ∈ beta}.
An exact proof term for the current goal is binunionE beta {delta '|delta ∈ beta} (gamma ') L1.
Apply L2 to the current goal.
Assume H2: gamma 'beta.
We will prove False.
An exact proof term for the current goal is tagged_notin_ordinal beta gamma Hb H2.
Assume H2: gamma '{delta '|delta ∈ beta}.
An exact proof term for the current goal is tagged_ReplE beta gamma Hb Lc H2.
Assume H1: gammax.
We prove the intermediate claim L1: gammabeta{delta '|delta ∈ beta}.
An exact proof term for the current goal is Hbx1 gamma H1.
We prove the intermediate claim L2: gammabetagamma{delta '|delta ∈ beta}.
An exact proof term for the current goal is binunionE beta {delta '|delta ∈ beta} gamma L1.
Apply L2 to the current goal.
Assume H2: gammabeta.
An exact proof term for the current goal is H2.
Assume H2: gamma{delta '|delta ∈ beta}.
We will prove False.
An exact proof term for the current goal is ordinal_notin_tagged_Repl gamma beta Lc H2.
Theorem. (SNoLev_uniq) The following is provable:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha = beta
Proof:
Let x, alpha and beta be given.
Assume Ha Hb Hax Hbx.
Apply set_ext to the current goal.
An exact proof term for the current goal is SNoLev_uniq_Subq x alpha beta Ha Hb Hax Hbx.
An exact proof term for the current goal is SNoLev_uniq_Subq x beta alpha Hb Ha Hbx Hax.
Theorem. (SNoLev_prop) The following is provable:
∀x, SNo xordinal (SNoLev x)SNo_ (SNoLev x) x
Proof:
Let x be given.
Assume Hx: SNo x.
An exact proof term for the current goal is Eps_i_ex (λalpha ⇒ ordinal alphaSNo_ alpha x) Hx.
Theorem. (SNoLev_ordinal) The following is provable:
∀x, SNo xordinal (SNoLev x)
Proof:
Let x be given.
Assume Hx.
Apply SNoLev_prop x Hx to the current goal.
Assume H1 _.
An exact proof term for the current goal is H1.
Theorem. (SNoLev_) The following is provable:
∀x, SNo xSNo_ (SNoLev x) x
Proof:
Let x be given.
Assume Hx.
Apply SNoLev_prop x Hx to the current goal.
Assume _ H1.
An exact proof term for the current goal is H1.
Theorem. (SNo_PSNo_eta) The following is provable:
∀x, SNo xx = PSNo (SNoLev x) (λbeta ⇒ betax)
Proof:
Let x be given.
Assume Hx.
Apply SNoLev_prop x Hx to the current goal.
Assume Hx1: ordinal (SNoLev x).
Assume Hx2: SNo_ (SNoLev x) x.
Apply SNo_PSNo_eta_ to the current goal.
We will prove ordinal (SNoLev x).
An exact proof term for the current goal is Hx1.
We will prove SNo_ (SNoLev x) x.
An exact proof term for the current goal is Hx2.
Theorem. (SNoLev_PSNo) The following is provable:
∀alpha, ordinal alpha∀p : setprop, SNoLev (PSNo alpha p) = alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let p be given.
We prove the intermediate claim L1: SNo_ alpha (PSNo alpha p).
An exact proof term for the current goal is SNo_PSNo alpha Ha p.
We prove the intermediate claim L2: SNo (PSNo alpha p).
We will prove ∃beta, ordinal betaSNo_ beta (PSNo alpha p).
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is L1.
Apply SNoLev_prop (PSNo alpha p) L2 to the current goal.
Assume H2: ordinal (SNoLev (PSNo alpha p)).
Assume H3: SNo_ (SNoLev (PSNo alpha p)) (PSNo alpha p).
An exact proof term for the current goal is SNoLev_uniq (PSNo alpha p) (SNoLev (PSNo alpha p)) alpha H2 Ha H3 L1.
Theorem. (SNo_Subq) The following is provable:
∀x y, SNo xSNo ySNoLev xSNoLev y(∀alpha ∈ SNoLev x, alphaxalphay)xy
Proof:
Let x and y be given.
Assume Hx Hy H1 H2.
Apply SNoLev_ x Hx to the current goal.
Assume Hx2a: xSNoElts_ (SNoLev x).
Assume Hx2b: ∀beta ∈ SNoLev x, exactly1of2 (beta 'x) (betax).
Apply SNoLev_ y Hy to the current goal.
Assume Hy2a: ySNoElts_ (SNoLev y).
Assume Hy2b: ∀beta ∈ SNoLev y, exactly1of2 (beta 'y) (betay).
Let u be given.
Assume Hu: ux.
We prove the intermediate claim L1: uSNoLev x{beta '|beta ∈ SNoLev x}.
An exact proof term for the current goal is Hx2a u Hu.
Apply binunionE (SNoLev x) {beta '|beta ∈ SNoLev x} u L1 to the current goal.
Assume H3: uSNoLev x.
Apply H2 u H3 to the current goal.
Assume H4 _.
An exact proof term for the current goal is H4 Hu.
Assume H3: u{beta '|beta ∈ SNoLev x}.
Apply ReplE_impred (SNoLev x) (λgamma ⇒ gamma ') u H3 to the current goal.
Let beta be given.
Assume H4: betaSNoLev x.
Assume H5: u = beta '.
We prove the intermediate claim L3: betaSNoLev y.
An exact proof term for the current goal is H1 beta H4.
Apply exactly1of2_E (beta 'y) (betay) (Hy2b beta L3) to the current goal.
Assume H6: beta 'y.
Assume H7: betay.
We will prove uy.
rewrite the current goal using H5 (from left to right).
An exact proof term for the current goal is H6.
Assume H6: beta 'y.
Assume H7: betay.
We will prove False.
Apply exactly1of2_E (beta 'x) (betax) (Hx2b beta H4) to the current goal.
Assume H8: beta 'x.
Assume H9: betax.
Apply H9 to the current goal.
Apply H2 beta H4 to the current goal.
Assume _ H10.
An exact proof term for the current goal is H10 H7.
Assume H8: beta 'x.
Assume H9: betax.
Apply H8 to the current goal.
We will prove beta 'x.
rewrite the current goal using H5 (from right to left).
An exact proof term for the current goal is Hu.
Definition. We define SNoEq_ to be λalpha x y ⇒ PNoEq_ alpha (λbeta ⇒ betax) (λbeta ⇒ betay) of type setsetsetprop.
Theorem. (SNoEq_I) The following is provable:
∀alpha x y, (∀beta ∈ alpha, betaxbetay)SNoEq_ alpha x y
Proof:
Let alpha, x and y be given.
Assume Hxy.
An exact proof term for the current goal is Hxy.
Theorem. (SNo_eq) The following is provable:
∀x y, SNo xSNo ySNoLev x = SNoLev ySNoEq_ (SNoLev x) x yx = y
Proof:
Let x and y be given.
Assume Hx Hy H1 H2.
Apply set_ext to the current goal.
We will prove xy.
Apply SNo_Subq x y Hx Hy to the current goal.
We will prove SNoLev xSNoLev y.
rewrite the current goal using H1 (from right to left).
Apply Subq_ref to the current goal.
An exact proof term for the current goal is H2.
We will prove yx.
Apply SNo_Subq y x Hy Hx to the current goal.
We will prove SNoLev ySNoLev x.
rewrite the current goal using H1 (from left to right).
Apply Subq_ref to the current goal.
Let alpha be given.
Assume H3: alphaSNoLev y.
We will prove alphayalphax.
Apply iff_sym to the current goal.
We will prove alphaxalphay.
Apply H2 alpha to the current goal.
We will prove alphaSNoLev x.
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is H3.
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.
Theorem. (SNoLtLe) The following is provable:
∀x y, x < yxy
Proof:
Let x and y be given.
Assume H1.
We will prove PNoLe (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay).
Apply PNoLeI1 to the current goal.
An exact proof term for the current goal is H1.
Theorem. (SNoLeE) The following is provable:
∀x y, SNo xSNo yxyx < yx = y
Proof:
Let x and y be given.
Assume Hx Hy.
Assume H1: PNoLe (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay).
Apply H1 to the current goal.
Assume H2: PNoLt (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay).
Apply orIL to the current goal.
An exact proof term for the current goal is H2.
Assume H2.
Apply H2 to the current goal.
Assume H2: SNoLev x = SNoLev y.
Assume H3: PNoEq_ (SNoLev x) (λbeta ⇒ betax) (λbeta ⇒ betay).
Apply orIR to the current goal.
An exact proof term for the current goal is SNo_eq x y Hx Hy H2 H3.
Theorem. (SNoEq_sym_) The following is provable:
∀alpha x y, SNoEq_ alpha x ySNoEq_ alpha y x
Proof:
Let alpha, x and y be given.
An exact proof term for the current goal is PNoEq_sym_ alpha (λbeta ⇒ betax) (λbeta ⇒ betay).
Theorem. (SNoEq_tra_) The following is provable:
∀alpha x y z, SNoEq_ alpha x ySNoEq_ alpha y zSNoEq_ alpha x z
Proof:
Let alpha, x, y and z be given.
An exact proof term for the current goal is PNoEq_tra_ alpha (λbeta ⇒ betax) (λbeta ⇒ betay) (λbeta ⇒ betaz).
Theorem. (SNoLtE) The following is provable:
∀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
Proof:
Let x and y be given.
Assume Hx: SNo x.
Assume Hy: SNo y.
Assume Hxy: PNoLt (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay).
Let p be given.
Assume Hp1 Hp2 Hp3.
We prove the intermediate claim LLx: ordinal (SNoLev x).
Apply SNoLev_ordinal x to the current goal.
An exact proof term for the current goal is Hx.
We prove the intermediate claim LLy: ordinal (SNoLev y).
Apply SNoLev_ordinal y to the current goal.
An exact proof term for the current goal is Hy.
Apply PNoLtE (SNoLev x) (SNoLev y) (λbeta ⇒ betax) (λbeta ⇒ betay) Hxy to the current goal.
Assume H1: PNoLt_ (SNoLev xSNoLev y) (λbeta ⇒ betax) (λbeta ⇒ betay).
Apply PNoLt_E_ (SNoLev xSNoLev y) (λbeta ⇒ betax) (λbeta ⇒ betay) H1 to the current goal.
Let alpha be given.
Assume Ha: alphaSNoLev xSNoLev y.
Assume H2: PNoEq_ alpha (λbeta ⇒ betax) (λbeta ⇒ betay).
Assume H3: alphax.
Assume H4: alphay.
Apply binintersectE (SNoLev x) (SNoLev y) alpha Ha to the current goal.
Assume Ha1: alphaSNoLev x.
Assume Ha2: alphaSNoLev y.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is ordinal_Hered (SNoLev x) LLx alpha Ha1.
Set z to be the term PSNo alpha (λbeta ⇒ betax).
We prove the intermediate claim L1: SNo_ alpha z.
Apply SNo_PSNo to the current goal.
An exact proof term for the current goal is La.
We prove the intermediate claim L2: SNo z.
We will prove ∃alpha, ordinal alphaSNo_ alpha z.
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is La.
An exact proof term for the current goal is L1.
Apply SNoLev_prop z L2 to the current goal.
Assume Hz1: ordinal (SNoLev z).
Assume Hz2: SNo_ (SNoLev z) z.
We prove the intermediate claim L3: SNoLev z = alpha.
An exact proof term for the current goal is SNoLev_uniq z (SNoLev z) alpha Hz1 La Hz2 L1.
We prove the intermediate claim L4: SNoEq_ alpha z x.
We will prove PNoEq_ alpha (λbeta ⇒ betaz) (λbeta ⇒ betax).
We will prove PNoEq_ alpha (λbeta ⇒ betaPSNo alpha (λbeta ⇒ betax)) (λbeta ⇒ betax).
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is La.
We prove the intermediate claim L5: SNoEq_ alpha z y.
Apply SNoEq_tra_ alpha z x y L4 to the current goal.
We will prove SNoEq_ alpha x y.
We will prove PNoEq_ alpha (λbeta ⇒ betax) (λbeta ⇒ betay).
An exact proof term for the current goal is H2.
Apply Hp1 z L2 to the current goal.
We will prove SNoLev zSNoLev xSNoLev y.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is Ha.
We will prove SNoEq_ (SNoLev z) z x.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is L4.
We will prove SNoEq_ (SNoLev z) z y.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is L5.
We will prove x < z.
We will prove PNoLt (SNoLev x) (λbeta ⇒ betax) (SNoLev z) (λbeta ⇒ betaz).
rewrite the current goal using L3 (from left to right).
We will prove PNoLt (SNoLev x) (λbeta ⇒ betax) alpha (λbeta ⇒ betaz).
Apply PNoLtI3 to the current goal.
We will prove alphaSNoLev x.
An exact proof term for the current goal is Ha1.
We will prove PNoEq_ alpha (λbeta ⇒ betax) (λbeta ⇒ betaz).
Apply PNoEq_sym_ to the current goal.
An exact proof term for the current goal is L4.
We will prove alphax.
An exact proof term for the current goal is H3.
We will prove z < y.
We will prove PNoLt (SNoLev z) (λbeta ⇒ betaz) (SNoLev y) (λbeta ⇒ betay).
rewrite the current goal using L3 (from left to right).
We will prove PNoLt alpha (λbeta ⇒ betaz) (SNoLev y) (λbeta ⇒ betay).
Apply PNoLtI2 to the current goal.
We will prove alphaSNoLev y.
An exact proof term for the current goal is Ha2.
We will prove PNoEq_ alpha (λbeta ⇒ betaz) (λbeta ⇒ betay).
An exact proof term for the current goal is L5.
We will prove alphay.
An exact proof term for the current goal is H4.
We will prove SNoLev zx.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is H3.
We will prove SNoLev zy.
rewrite the current goal using L3 (from left to right).
An exact proof term for the current goal is H4.
Assume H1: SNoLev xSNoLev y.
Assume H2: PNoEq_ (SNoLev x) (λbeta ⇒ betax) (λbeta ⇒ betay).
Assume H3: SNoLev xy.
Apply Hp2 to the current goal.
We will prove SNoLev xSNoLev y.
An exact proof term for the current goal is H1.
We will prove SNoEq_ (SNoLev x) x y.
An exact proof term for the current goal is H2.
We will prove SNoLev xy.
An exact proof term for the current goal is H3.
Assume H1: SNoLev ySNoLev x.
Assume H2: PNoEq_ (SNoLev y) (λbeta ⇒ betax) (λbeta ⇒ betay).
Assume H3: SNoLev yx.
Apply Hp3 to the current goal.
We will prove SNoLev ySNoLev x.
An exact proof term for the current goal is H1.
We will prove SNoEq_ (SNoLev y) x y.
An exact proof term for the current goal is H2.
We will prove SNoLev yx.
An exact proof term for the current goal is H3.
Theorem. (SNoLtI2) The following is provable:
∀x y, SNoLev xSNoLev ySNoEq_ (SNoLev x) x ySNoLev xyx < y
Proof:
Let x and y be given.
Assume H1 H2 H3.
We will prove PNoLt (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay).
Apply PNoLtI2 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. (SNoLtI3) The following is provable:
∀x y, SNoLev ySNoLev xSNoEq_ (SNoLev y) x ySNoLev yxx < y
Proof:
Let x and y be given.
Assume H1 H2 H3.
We will prove PNoLt (SNoLev x) (λbeta ⇒ betax) (SNoLev y) (λbeta ⇒ betay).
Apply PNoLtI3 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. (SNoLt_irref) The following is provable:
∀x, ¬ SNoLt x x
Proof:
Let x be given.
An exact proof term for the current goal is PNoLt_irref (SNoLev x) (λbeta ⇒ betax).
Theorem. (SNoLt_trichotomy_or) The following is provable:
∀x y, SNo xSNo yx < yx = yy < x
Proof:
Let x and y be given.
Assume Hx Hy.
Apply PNoLt_trichotomy_or (SNoLev x) (SNoLev y) (λbeta ⇒ betax) (λbeta ⇒ betay) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1.
Apply or3I1 to the current goal.
An exact proof term for the current goal is H1.
Assume H1.
Apply H1 to the current goal.
Assume H2: SNoLev x = SNoLev y.
Assume H3: PNoEq_ (SNoLev x) (λbeta ⇒ betax) (λbeta ⇒ betay).
Apply or3I2 to the current goal.
An exact proof term for the current goal is SNo_eq x y Hx Hy H2 H3.
Assume H1.
Apply or3I3 to the current goal.
An exact proof term for the current goal is H1.
Theorem. (SNoLt_trichotomy_or_impred) The following is provable:
∀x y, SNo xSNo y∀p : prop, (x < yp)(x = yp)(y < xp)p
Proof:
Let x and y be given.
Assume Hx Hy.
Let p be given.
Assume Hp1 Hp2 Hp3.
Apply SNoLt_trichotomy_or x y Hx Hy to the current goal.
Assume H.
Apply H to the current goal.
An exact proof term for the current goal is Hp1.
An exact proof term for the current goal is Hp2.
An exact proof term for the current goal is Hp3.
Theorem. (SNoLt_tra) The following is provable:
∀x y z, SNo xSNo ySNo zx < yy < zx < z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
We will prove PNoLt (SNoLev x) (λbeta ⇒ betax) (SNoLev z) (λbeta ⇒ betaz).
An exact proof term for the current goal is PNoLt_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ betax) (λbeta ⇒ betay) (λbeta ⇒ betaz) Hxy Hyz.
Theorem. (SNoLe_ref) The following is provable:
∀x, SNoLe x x
Proof:
Let x be given.
An exact proof term for the current goal is PNoLe_ref (SNoLev x) (λbeta ⇒ betax).
Theorem. (SNoLe_antisym) The following is provable:
∀x y, SNo xSNo yxyyxx = y
Proof:
Let x and y be given.
Assume Hx Hy Hxy Hyx.
Apply PNoLe_antisym (SNoLev x) (SNoLev y) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (λbeta ⇒ betax) (λbeta ⇒ betay) Hxy Hyx to the current goal.
Assume H1: SNoLev x = SNoLev y.
Assume H2: PNoEq_ (SNoLev x) (λbeta ⇒ betax) (λbeta ⇒ betay).
An exact proof term for the current goal is SNo_eq x y Hx Hy H1 H2.
Theorem. (SNoLtLe_tra) The following is provable:
∀x y z, SNo xSNo ySNo zx < yyzx < z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
An exact proof term for the current goal is PNoLtLe_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ betax) (λbeta ⇒ betay) (λbeta ⇒ betaz) Hxy Hyz.
Theorem. (SNoLeLt_tra) The following is provable:
∀x y z, SNo xSNo ySNo zxyy < zx < z
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
An exact proof term for the current goal is PNoLeLt_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ betax) (λbeta ⇒ betay) (λbeta ⇒ betaz) Hxy Hyz.
Theorem. (SNoLe_tra) The following is provable:
∀x y z, SNo xSNo ySNo zxyyzxz
Proof:
Let x, y and z be given.
Assume Hx Hy Hz Hxy Hyz.
An exact proof term for the current goal is PNoLe_tra (SNoLev x) (SNoLev y) (SNoLev z) (SNoLev_ordinal x Hx) (SNoLev_ordinal y Hy) (SNoLev_ordinal z Hz) (λbeta ⇒ betax) (λbeta ⇒ betay) (λbeta ⇒ betaz) Hxy Hyz.
Theorem. (SNoLtLe_or) The following is provable:
∀x y, SNo xSNo yx < yyx
Proof:
Let x and y be given.
Assume Hx Hy.
Apply SNoLt_trichotomy_or x y Hx Hy to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: x < y.
Apply orIL to the current goal.
An exact proof term for the current goal is H1.
Assume H1: x = y.
Apply orIR to the current goal.
We will prove yx.
rewrite the current goal using H1 (from left to right).
We will prove yy.
Apply SNoLe_ref to the current goal.
Assume H1: y < x.
Apply orIR to the current goal.
We will prove yx.
Apply SNoLtLe to the current goal.
An exact proof term for the current goal is H1.
Theorem. (SNoLt_PSNo_PNoLt) The following is provable:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPSNo alpha p < PSNo beta qPNoLt alpha p beta q
Proof:
Let alpha, beta, p and q be given.
Assume Ha Hb.
We will prove PNoLt (SNoLev (PSNo alpha p)) (λgamma ⇒ gammaPSNo alpha p) (SNoLev (PSNo beta q)) (λgamma ⇒ gammaPSNo beta q)PNoLt alpha p beta q.
rewrite the current goal using SNoLev_PSNo alpha Ha p (from left to right).
rewrite the current goal using SNoLev_PSNo beta Hb q (from left to right).
Assume H1: PNoLt alpha (λgamma ⇒ gammaPSNo alpha p) beta (λgamma ⇒ gammaPSNo beta q).
Apply PNoEqLt_tra alpha beta Ha Hb p (λgamma ⇒ gammaPSNo alpha p) q to the current goal.
We will prove PNoEq_ alpha p (λgamma ⇒ gammaPSNo alpha p).
Apply PNoEq_sym_ to the current goal.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Ha.
We will prove PNoLt alpha (λgamma ⇒ gammaPSNo alpha p) beta q.
Apply PNoLtEq_tra alpha beta Ha Hb (λgamma ⇒ gammaPSNo alpha p) (λgamma ⇒ gammaPSNo beta q) q to the current goal.
An exact proof term for the current goal is H1.
We will prove PNoEq_ beta (λgamma ⇒ gammaPSNo beta q) q.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Hb.
Theorem. (PNoLt_SNoLt_PSNo) The following is provable:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNoLt alpha p beta qPSNo alpha p < PSNo beta q
Proof:
Let alpha, beta, p and q be given.
Assume Ha Hb.
Assume H1: PNoLt alpha p beta q.
We will prove PNoLt (SNoLev (PSNo alpha p)) (λgamma ⇒ gammaPSNo alpha p) (SNoLev (PSNo beta q)) (λgamma ⇒ gammaPSNo beta q).
rewrite the current goal using SNoLev_PSNo alpha Ha p (from left to right).
rewrite the current goal using SNoLev_PSNo beta Hb q (from left to right).
We will prove PNoLt alpha (λgamma ⇒ gammaPSNo alpha p) beta (λgamma ⇒ gammaPSNo beta q).
Apply PNoEqLt_tra alpha beta Ha Hb (λgamma ⇒ gammaPSNo alpha p) p (λgamma ⇒ gammaPSNo beta q) to the current goal.
We will prove PNoEq_ alpha (λgamma ⇒ gammaPSNo alpha p) p.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Ha.
We will prove PNoLt alpha p beta (λgamma ⇒ gammaPSNo beta q).
Apply PNoLtEq_tra alpha beta Ha Hb p q (λgamma ⇒ gammaPSNo beta q) to the current goal.
An exact proof term for the current goal is H1.
We will prove PNoEq_ beta q (λgamma ⇒ gammaPSNo beta q).
Apply PNoEq_sym_ to the current goal.
Apply PNoEq_PSNo to the current goal.
An exact proof term for the current goal is Hb.
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.
Theorem. (SNoCutP_SNoCut) The following is provable:
∀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)
Proof:
Let L and R be given.
Assume HC: SNoCutP L R.
Apply HC to the current goal.
Assume HC.
Apply HC to the current goal.
Assume HL: ∀x ∈ L, SNo x.
Assume HR: ∀y ∈ R, SNo y.
Assume HLR: ∀x ∈ L, ∀y ∈ R, x < y.
Set L' to be the term λalpha p ⇒ ordinal alphaPSNo alpha pL of type set(setprop)prop.
Set R' to be the term λalpha p ⇒ ordinal alphaPSNo alpha pR of type set(setprop)prop.
Set tau to be the term PNo_bd L' R'.
Set w to be the term PNo_pred L' R'.
Set alpha to be the term x ∈ Lordsucc (SNoLev x).
Set beta to be the term y ∈ Rordsucc (SNoLev y).
We will prove SNo (SNoCut L R)SNoLev (SNoCut L R)ordsucc (alphabeta)(∀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 zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gammaSNoCut L R) (λgamma ⇒ gammaz)).
We prove the intermediate claim LLR: PNoLt_pwise L' R'.
Let gamma be given.
Assume Hc: ordinal gamma.
Let p be given.
Assume H1: L' gamma p.
Apply H1 to the current goal.
Assume _ H1.
Let delta be given.
Assume Hd: ordinal delta.
Let q be given.
Assume H2: R' delta q.
Apply H2 to the current goal.
Assume _ H2.
We will prove PNoLt gamma p delta q.
Apply SNoLt_PSNo_PNoLt gamma delta p q Hc Hd to the current goal.
We will prove PSNo gamma p < PSNo delta q.
An exact proof term for the current goal is HLR (PSNo gamma p) H1 (PSNo delta q) H2.
We prove the intermediate claim La: ordinal alpha.
Apply ordinal_famunion L (λx ⇒ ordsucc (SNoLev x)) to the current goal.
Let x be given.
Assume Hx: xL.
We will prove ordinal (ordsucc (SNoLev x)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
We will prove SNo x.
An exact proof term for the current goal is HL x Hx.
We prove the intermediate claim Lb: ordinal beta.
Apply ordinal_famunion R (λy ⇒ ordsucc (SNoLev y)) to the current goal.
Let y be given.
Assume Hy: yR.
We will prove ordinal (ordsucc (SNoLev y)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
We will prove SNo y.
An exact proof term for the current goal is HR y Hy.
We prove the intermediate claim Lab: ordinal (alphabeta).
Apply ordinal_linear alpha beta La Lb to the current goal.
We will prove alphabetaordinal (alphabeta).
rewrite the current goal using Subq_binunion_eq alpha beta (from left to right).
We will prove alphabeta = betaordinal (alphabeta).
Assume H1.
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is Lb.
We will prove betaalphaordinal (alphabeta).
rewrite the current goal using Subq_binunion_eq beta alpha (from left to right).
We will prove betaalpha = alphaordinal (alphabeta).
Assume H1.
rewrite the current goal using binunion_com (from left to right).
rewrite the current goal using H1 (from left to right).
An exact proof term for the current goal is La.
We prove the intermediate claim LLab: PNo_lenbdd (alphabeta) L'.
Let gamma be given.
Let p be given.
Assume H1.
Apply H1 to the current goal.
Assume H1: ordinal gamma.
Assume H2: PSNo gamma pL.
We will prove gammaalphabeta.
Apply binunionI1 to the current goal.
We will prove gammax ∈ Lordsucc (SNoLev x).
Apply famunionI L (λx ⇒ ordsucc (SNoLev x)) (PSNo gamma p) gamma to the current goal.
We will prove PSNo gamma pL.
An exact proof term for the current goal is H2.
We will prove gammaordsucc (SNoLev (PSNo gamma p)).
rewrite the current goal using SNoLev_PSNo gamma H1 p (from left to right).
We will prove gammaordsucc gamma.
Apply ordsuccI2 to the current goal.
We prove the intermediate claim LRab: PNo_lenbdd (alphabeta) R'.
Let gamma be given.
Let p be given.
Assume H1.
Apply H1 to the current goal.
Assume H1: ordinal gamma.
Assume H2: PSNo gamma pR.
We will prove gammaalphabeta.
Apply binunionI2 to the current goal.
We will prove gammay ∈ Rordsucc (SNoLev y).
Apply famunionI R (λy ⇒ ordsucc (SNoLev y)) (PSNo gamma p) gamma to the current goal.
We will prove PSNo gamma pR.
An exact proof term for the current goal is H2.
We will prove gammaordsucc (SNoLev (PSNo gamma p)).
rewrite the current goal using SNoLev_PSNo gamma H1 p (from left to right).
We will prove gammaordsucc gamma.
Apply ordsuccI2 to the current goal.
Apply PNo_bd_pred L' R' LLR (alphabeta) Lab LLab LRab to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: ordinal tau.
Assume H2: PNo_strict_imv L' R' tau w.
Assume H3: ∀gamma ∈ tau, ∀q : setprop, ¬ PNo_strict_imv L' R' gamma q.
Apply H2 to the current goal.
Assume H4: PNo_strict_upperbd L' tau w.
Assume H5: PNo_strict_lowerbd R' tau w.
We prove the intermediate claim LNoC: SNo (SNoCut L R).
We will prove SNo (PSNo tau w).
We will prove ∃alpha, ordinal alphaSNo_ alpha (PSNo tau w).
We use tau to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is H1.
We will prove SNo_ tau (PSNo tau w).
Apply SNo_PSNo tau to the current goal.
We will prove ordinal tau.
An exact proof term for the current goal is H1.
We prove the intermediate claim LLleveqtau: SNoLev (SNoCut L R) = tau.
An exact proof term for the current goal is SNoLev_PSNo tau H1 (PNo_pred L' R').
We prove the intermediate claim LLbdtau: tauordsucc (alphabeta).
An exact proof term for the current goal is PNo_bd_In L' R' LLR (alphabeta) Lab LLab LRab.
We prove the intermediate claim LLbd: SNoLev (SNoCut L R)ordsucc (alphabeta).
rewrite the current goal using LLleveqtau (from left to right).
An exact proof term for the current goal is LLbdtau.
We prove the intermediate claim LLecw: PNoEq_ tau (λgamma ⇒ gammaSNoCut L R) w.
We will prove PNoEq_ tau (λgamma ⇒ gammaPSNo tau w) w.
An exact proof term for the current goal is PNoEq_PSNo tau H1 w.
We prove the intermediate claim LLC: ordinal (SNoLev (SNoCut L R)).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is LNoC.
We prove the intermediate claim LL: ∀x ∈ L, x < SNoCut L R.
Let x be given.
Assume Hx: xL.
We will prove x < SNoCut L R.
We will prove x < PSNo tau w.
We prove the intermediate claim L1: SNo x.
An exact proof term for the current goal is HL x Hx.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x L1.
We prove the intermediate claim L2: x = PSNo (SNoLev x) (λgamma ⇒ gammax).
Apply SNo_PSNo_eta to the current goal.
An exact proof term for the current goal is L1.
We prove the intermediate claim L3: L' (SNoLev x) (λgamma ⇒ gammax).
We will prove ordinal (SNoLev x)PSNo (SNoLev x) (λgamma ⇒ gammax)L.
Apply andI to the current goal.
An exact proof term for the current goal is LLx.
rewrite the current goal using L2 (from right to left).
An exact proof term for the current goal is Hx.
We will prove x < PSNo tau w.
rewrite the current goal using L2 (from left to right).
Apply PNoLt_SNoLt_PSNo (SNoLev x) tau (λgamma ⇒ gammax) w LLx H1 to the current goal.
We will prove PNoLt (SNoLev x) (λgamma ⇒ gammax) tau w.
An exact proof term for the current goal is H4 (SNoLev x) LLx (λgamma ⇒ gammax) L3.
We prove the intermediate claim LR: ∀y ∈ R, SNoCut L R < y.
Let y be given.
Assume Hy: yR.
We will prove SNoCut L R < y.
We will prove PSNo tau w < y.
We prove the intermediate claim L1: SNo y.
An exact proof term for the current goal is HR y Hy.
We prove the intermediate claim LLy: ordinal (SNoLev y).
An exact proof term for the current goal is SNoLev_ordinal y L1.
We prove the intermediate claim L2: y = PSNo (SNoLev y) (λgamma ⇒ gammay).
Apply SNo_PSNo_eta to the current goal.
An exact proof term for the current goal is L1.
We prove the intermediate claim L3: R' (SNoLev y) (λgamma ⇒ gammay).
We will prove ordinal (SNoLev y)PSNo (SNoLev y) (λgamma ⇒ gammay)R.
Apply andI to the current goal.
An exact proof term for the current goal is LLy.
rewrite the current goal using L2 (from right to left).
An exact proof term for the current goal is Hy.
We will prove PSNo tau w < y.
rewrite the current goal using L2 (from left to right).
Apply PNoLt_SNoLt_PSNo tau (SNoLev y) w (λgamma ⇒ gammay) H1 LLy to the current goal.
We will prove PNoLt tau w (SNoLev y) (λgamma ⇒ gammay).
An exact proof term for the current goal is H5 (SNoLev y) LLy (λgamma ⇒ gammay) L3.
Apply and5I to the current goal.
An exact proof term for the current goal is LNoC.
An exact proof term for the current goal is LLbd.
An exact proof term for the current goal is LL.
An exact proof term for the current goal is LR.
We will prove ∀z, SNo z(∀x ∈ L, x < z)(∀y ∈ R, z < y)SNoLev (SNoCut L R)SNoLev zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gammaSNoCut L R) (λgamma ⇒ gammaz).
Let z be given.
Assume Hz: SNo z.
Assume H10: ∀x ∈ L, x < z.
Assume H11: ∀y ∈ R, z < y.
We prove the intermediate claim LLz: ordinal (SNoLev z).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is Hz.
We prove the intermediate claim Lzimv: PNo_strict_imv L' R' (SNoLev z) (λgamma ⇒ gammaz).
We will prove PNo_strict_upperbd L' (SNoLev z) (λgamma ⇒ gammaz)PNo_strict_lowerbd R' (SNoLev z) (λgamma ⇒ gammaz).
Apply andI to the current goal.
Let gamma be given.
Assume Hc: ordinal gamma.
Let q be given.
Assume Hq: L' gamma q.
We will prove PNoLt gamma q (SNoLev z) (λgamma ⇒ gammaz).
Apply Hq to the current goal.
Assume Hq1: ordinal gamma.
Assume Hq2: PSNo gamma qL.
Apply SNoLt_PSNo_PNoLt gamma (SNoLev z) q (λgamma ⇒ gammaz) Hc LLz to the current goal.
We will prove PSNo gamma q < PSNo (SNoLev z) (λgamma ⇒ gammaz).
rewrite the current goal using SNo_PSNo_eta z Hz (from right to left).
We will prove PSNo gamma q < z.
An exact proof term for the current goal is H10 (PSNo gamma q) Hq2.
Let gamma be given.
Assume Hc: ordinal gamma.
Let q be given.
Assume Hq: R' gamma q.
We will prove PNoLt (SNoLev z) (λgamma ⇒ gammaz) gamma q.
Apply Hq to the current goal.
Assume Hq1: ordinal gamma.
Assume Hq2: PSNo gamma qR.
Apply SNoLt_PSNo_PNoLt (SNoLev z) gamma (λgamma ⇒ gammaz) q LLz Hc to the current goal.
We will prove PSNo (SNoLev z) (λgamma ⇒ gammaz) < PSNo gamma q.
rewrite the current goal using SNo_PSNo_eta z Hz (from right to left).
We will prove z < PSNo gamma q.
An exact proof term for the current goal is H11 (PSNo gamma q) Hq2.
We prove the intermediate claim LLznt: SNoLev ztau.
Assume H12: SNoLev ztau.
An exact proof term for the current goal is H3 (SNoLev z) H12 (λgamma ⇒ gammaz) Lzimv.
We prove the intermediate claim LLzlet: tauSNoLev z.
Apply ordinal_In_Or_Subq (SNoLev z) tau LLz H1 to the current goal.
Assume H12: SNoLev ztau.
We will prove False.
An exact proof term for the current goal is LLznt H12.
Assume H12.
An exact proof term for the current goal is H12.
We will prove SNoLev (SNoCut L R)SNoLev zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gammaSNoCut L R) (λgamma ⇒ gammaz).
rewrite the current goal using LLleveqtau (from left to right).
We will prove tauSNoLev zPNoEq_ tau (λgamma ⇒ gammaSNoCut L R) (λgamma ⇒ gammaz).
Apply andI to the current goal.
We will prove tauSNoLev z.
An exact proof term for the current goal is LLzlet.
We will prove PNoEq_ tau (λgamma ⇒ gammaSNoCut L R) (λgamma ⇒ gammaz).
Apply PNoLt_trichotomy_or_ w (λgamma ⇒ gammaz) tau H1 to the current goal.
Assume H12.
Apply H12 to the current goal.
Assume H12: PNoLt_ tau w (λgamma ⇒ gammaz).
We will prove False.
Apply H12 to the current goal.
Let delta be given.
Assume H13.
Apply H13 to the current goal.
Assume Hd: deltatau.
Assume H13.
Apply H13 to the current goal.
Assume H13.
Apply H13 to the current goal.
Assume H13: PNoEq_ delta w (λgamma ⇒ gammaz).
Assume H14: ¬ w delta.
Assume H15: deltaz.
We prove the intermediate claim Ld: ordinal delta.
An exact proof term for the current goal is ordinal_Hered tau H1 delta Hd.
We prove the intermediate claim Lsd: ordinal (ordsucc delta).
An exact proof term for the current goal is ordinal_ordsucc delta Ld.
Set z0 to be the term λeps ⇒ epszepsdelta of type setprop.
Set z1 to be the term λeps ⇒ epszeps = delta of type setprop.
We prove the intermediate claim Lnz0d: ¬ z0 delta.
Assume H10.
Apply H10 to the current goal.
Assume H11: deltaz.
Assume H12: deltadelta.
Apply H12 to the current goal.
Use reflexivity.
We prove the intermediate claim Lz1d: z1 delta.
We will prove deltazdelta = delta.
Apply orIR to the current goal.
Use reflexivity.
Apply H3 delta Hd (λgamma ⇒ gammaz) to the current goal.
We will prove PNo_strict_imv L' R' delta (λgamma ⇒ gammaz).
Apply PNo_rel_split_imv_imp_strict_imv L' R' delta Ld (λgamma ⇒ gammaz) to the current goal.
We will prove PNo_rel_strict_split_imv L' R' delta (λgamma ⇒ gammaz).
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply andI to the current goal.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd w z0 to the current goal.
We will prove PNoEq_ (ordsucc delta) w z0.
Let eps be given.
Assume He: epsordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: epsdelta.
Apply iff_trans (w eps) (epsz) (z0 eps) to the current goal.
An exact proof term for the current goal is H13 eps He1.
An exact proof term for the current goal is PNo_extend0_eq delta (λgamma ⇒ gammaz) eps He1.
Assume He1: eps = delta.
We will prove w epsz0 eps.
rewrite the current goal using He1 (from left to right).
We will prove w deltaz0 delta.
Apply iffI to the current goal.
Assume H16: w delta.
We will prove False.
An exact proof term for the current goal is H14 H16.
Assume H16: z0 delta.
We will prove False.
An exact proof term for the current goal is Lnz0d H16.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) w.
Apply PNo_strict_imv_imp_rel_strict_imv L' R' tau H1 (ordsucc delta) to the current goal.
We will prove ordsucc deltaordsucc tau.
Apply ordinal_ordsucc_In tau H1 to the current goal.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' tau w.
An exact proof term for the current goal is H2.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd (λgamma ⇒ gammaz) z1 to the current goal.
We will prove PNoEq_ (ordsucc delta) (λgamma ⇒ gammaz) z1.
Let eps be given.
Assume He: epsordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: epsdelta.
An exact proof term for the current goal is PNo_extend1_eq delta (λgamma ⇒ gammaz) eps He1.
Assume He1: eps = delta.
We will prove epszz1 eps.
rewrite the current goal using He1 (from left to right).
We will prove deltazz1 delta.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Lz1d.
Assume _.
An exact proof term for the current goal is H15.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) (λgamma ⇒ gammaz).
Apply PNo_strict_imv_imp_rel_strict_imv L' R' (SNoLev z) LLz (ordsucc delta) to the current goal.
We will prove ordsucc deltaordsucc (SNoLev z).
Apply ordinal_ordsucc_In (SNoLev z) LLz to the current goal.
We will prove deltaSNoLev z.
Apply LLzlet to the current goal.
We will prove deltatau.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' (SNoLev z) (λgamma ⇒ gammaz).
An exact proof term for the current goal is Lzimv.
Assume H12: PNoEq_ tau w (λgamma ⇒ gammaz).
Apply PNoEq_tra_ tau (λgamma ⇒ gammaSNoCut L R) w (λgamma ⇒ gammaz) to the current goal.
We will prove PNoEq_ tau (λgamma ⇒ gammaSNoCut L R) w.
An exact proof term for the current goal is LLecw.
We will prove PNoEq_ tau w (λgamma ⇒ gammaz).
An exact proof term for the current goal is H12.
Assume H12: PNoLt_ tau (λgamma ⇒ gammaz) w.
We will prove False.
Apply H12 to the current goal.
Let delta be given.
Assume H13.
Apply H13 to the current goal.
Assume Hd: deltatau.
Assume H13.
Apply H13 to the current goal.
Assume H13.
Apply H13 to the current goal.
Assume H13: PNoEq_ delta (λgamma ⇒ gammaz) w.
Assume H14: deltaz.
Assume H15: w delta.
We prove the intermediate claim Ld: ordinal delta.
An exact proof term for the current goal is ordinal_Hered tau H1 delta Hd.
We prove the intermediate claim Lsd: ordinal (ordsucc delta).
An exact proof term for the current goal is ordinal_ordsucc delta Ld.
Set z0 to be the term λeps ⇒ epszepsdelta of type setprop.
Set z1 to be the term λeps ⇒ epszeps = delta of type setprop.
We prove the intermediate claim Lnz0d: ¬ z0 delta.
Assume H10.
Apply H10 to the current goal.
Assume H11: deltaz.
Assume H12: deltadelta.
Apply H12 to the current goal.
Use reflexivity.
We prove the intermediate claim Lz1d: z1 delta.
We will prove deltazdelta = delta.
Apply orIR to the current goal.
Use reflexivity.
Apply H3 delta Hd (λgamma ⇒ gammaz) to the current goal.
We will prove PNo_strict_imv L' R' delta (λgamma ⇒ gammaz).
Apply PNo_rel_split_imv_imp_strict_imv L' R' delta Ld (λgamma ⇒ gammaz) to the current goal.
We will prove PNo_rel_strict_split_imv L' R' delta (λgamma ⇒ gammaz).
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply andI to the current goal.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z0.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd (λgamma ⇒ gammaz) z0 to the current goal.
We will prove PNoEq_ (ordsucc delta) (λgamma ⇒ gammaz) z0.
Let eps be given.
Assume He: epsordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: epsdelta.
An exact proof term for the current goal is PNo_extend0_eq delta (λgamma ⇒ gammaz) eps He1.
Assume He1: eps = delta.
We will prove epszz0 eps.
rewrite the current goal using He1 (from left to right).
We will prove deltazz0 delta.
Apply iffI to the current goal.
Assume H16: deltaz.
We will prove False.
An exact proof term for the current goal is H14 H16.
Assume H16: z0 delta.
We will prove False.
An exact proof term for the current goal is Lnz0d H16.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) (λgamma ⇒ gammaz).
Apply PNo_strict_imv_imp_rel_strict_imv L' R' (SNoLev z) LLz (ordsucc delta) to the current goal.
We will prove ordsucc deltaordsucc (SNoLev z).
Apply ordinal_ordsucc_In (SNoLev z) LLz to the current goal.
We will prove deltaSNoLev z.
Apply LLzlet to the current goal.
We will prove deltatau.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' (SNoLev z) (λgamma ⇒ gammaz).
An exact proof term for the current goal is Lzimv.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) z1.
Apply PNoEq_rel_strict_imv L' R' (ordsucc delta) Lsd w z1 to the current goal.
We will prove PNoEq_ (ordsucc delta) w z1.
Let eps be given.
Assume He: epsordsucc delta.
Apply ordsuccE delta eps He to the current goal.
Assume He1: epsdelta.
Apply iff_trans (w eps) (epsz) (z1 eps) to the current goal.
Apply iff_sym to the current goal.
An exact proof term for the current goal is H13 eps He1.
An exact proof term for the current goal is PNo_extend1_eq delta (λgamma ⇒ gammaz) eps He1.
Assume He1: eps = delta.
We will prove w epsz1 eps.
rewrite the current goal using He1 (from left to right).
We will prove w deltaz1 delta.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Lz1d.
Assume _.
An exact proof term for the current goal is H15.
We will prove PNo_rel_strict_imv L' R' (ordsucc delta) w.
Apply PNo_strict_imv_imp_rel_strict_imv L' R' tau H1 (ordsucc delta) to the current goal.
We will prove ordsucc deltaordsucc tau.
Apply ordinal_ordsucc_In tau H1 to the current goal.
An exact proof term for the current goal is Hd.
We will prove PNo_strict_imv L' R' tau w.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_impred) The following is provable:
∀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
Proof:
Let L and R be given.
Assume HLR.
Let p be given.
Assume Hp.
Apply SNoCutP_SNoCut L R HLR to the current goal.
Assume H.
Apply H to the current goal.
Assume H.
Apply H to the current goal.
Assume H.
Apply H to the current goal.
An exact proof term for the current goal is Hp.
Theorem. (SNoCutP_L_0) The following is provable:
∀L, (∀x ∈ L, SNo x)SNoCutP L 0
Proof:
Let L be given.
Assume H1.
We will prove (∀x ∈ L, SNo x)(∀y ∈ 0, SNo y)(∀x ∈ L, ∀y ∈ 0, x < y).
Apply and3I to the current goal.
An exact proof term for the current goal is H1.
Let y be given.
Assume Hy.
We will prove False.
An exact proof term for the current goal is EmptyE y Hy.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
We will prove False.
An exact proof term for the current goal is EmptyE y Hy.
Theorem. (SNoCutP_0_R) The following is provable:
∀R, (∀x ∈ R, SNo x)SNoCutP 0 R
Proof:
Let R be given.
Assume H1.
We will prove (∀x ∈ 0, SNo x)(∀y ∈ R, SNo y)(∀x ∈ 0, ∀y ∈ R, x < y).
Apply and3I to the current goal.
Let x be given.
Assume Hx.
We will prove False.
An exact proof term for the current goal is EmptyE x Hx.
An exact proof term for the current goal is H1.
Let x be given.
Assume Hx.
We will prove False.
An exact proof term for the current goal is EmptyE x Hx.
Theorem. (SNoCutP_0_0) The following is provable:
Proof:
Apply SNoCutP_L_0 to the current goal.
Let x be given.
Assume Hx.
We will prove False.
An exact proof term for the current goal is EmptyE x Hx.
Definition. We define SNoS_ to be λalpha ⇒ {x ∈ 𝒫 (SNoElts_ alpha)|∃beta ∈ alpha, SNo_ beta x} of type setset.
Theorem. (SNoS_E) The following is provable:
∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, ∃beta ∈ alpha, SNo_ beta x
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let x be given.
Assume H1: xSNoS_ alpha.
We will prove ∃beta ∈ alpha, SNo_ beta x.
An exact proof term for the current goal is SepE2 (𝒫 (SNoElts_ alpha)) (λx ⇒ ∃beta ∈ alpha, SNo_ beta x) x H1.
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.
Theorem. (SNoS_I) The following is provable:
∀alpha, ordinal alpha∀x, ∀beta ∈ alpha, SNo_ beta xxSNoS_ alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let x be given.
Let beta be given.
Assume Hb: betaalpha.
Assume H1: SNo_ beta x.
Apply H1 to the current goal.
Assume H2: xSNoElts_ beta.
Assume H3: ∀gamma ∈ beta, exactly1of2 (gamma 'x) (gammax).
We will prove xSNoS_ alpha.
We will prove x{x ∈ 𝒫 (SNoElts_ alpha)|∃gamma ∈ alpha, SNo_ gamma x}.
Apply SepI to the current goal.
We will prove x𝒫 (SNoElts_ alpha).
Apply PowerI to the current goal.
We will prove xSNoElts_ alpha.
Apply Subq_tra x (SNoElts_ beta) (SNoElts_ alpha) H2 to the current goal.
We will prove SNoElts_ betaSNoElts_ alpha.
Apply SNoElts_mon to the current goal.
Apply Ha to the current goal.
Assume Ha1 _.
An exact proof term for the current goal is Ha1 beta Hb.
We will prove ∃gamma ∈ alpha, SNo_ gamma x.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Hb.
An exact proof term for the current goal is H1.
Theorem. (SNoS_I2) The following is provable:
∀x y, SNo xSNo ySNoLev xSNoLev yxSNoS_ (SNoLev y)
Proof:
Let x and y be given.
Assume Hx Hy Hxy.
An exact proof term for the current goal is SNoS_I (SNoLev y) (SNoLev_ordinal y Hy) x (SNoLev x) Hxy (SNoLev_ x Hx).
Theorem. (SNoS_Subq) The following is provable:
∀alpha beta, ordinal alphaordinal betaalphabetaSNoS_ alphaSNoS_ beta
Proof:
Let alpha and beta be given.
Assume Ha Hb Hab.
Let x be given.
Assume Hx: xSNoS_ alpha.
Apply SNoS_E alpha Ha x Hx to the current goal.
Let gamma be given.
Assume Hc.
Apply Hc to the current goal.
Assume Hc1: gammaalpha.
Assume Hc2: SNo_ gamma x.
An exact proof term for the current goal is SNoS_I beta Hb x gamma (Hab gamma Hc1) Hc2.
Theorem. (SNoLev_uniq2) The following is provable:
∀alpha, ordinal alpha∀x, SNo_ alpha xSNoLev x = alpha
Proof:
Let alpha be given.
Assume Ha.
Let x be given.
Assume Hx.
Apply SNoLev_prop x (SNo_SNo alpha Ha x Hx) to the current goal.
Assume Hx1: ordinal (SNoLev x).
Assume Hx2: SNo_ (SNoLev x) x.
Apply SNoLev_uniq x to the current goal.
An exact proof term for the current goal is Hx1.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is Hx2.
An exact proof term for the current goal is Hx.
Theorem. (SNoS_E2) The following is provable:
∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, ∀p : prop, (SNoLev xalphaordinal (SNoLev x)SNo xSNo_ (SNoLev x) xp)p
Proof:
Let alpha be given.
Assume Ha.
Let x be given.
Assume Hx.
Let p be given.
Assume Hp.
Apply SNoS_E alpha Ha x Hx to the current goal.
Let beta be given.
Assume H1.
Apply H1 to the current goal.
Assume Hb: betaalpha.
Assume H1: SNo_ beta x.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered alpha Ha beta Hb.
We prove the intermediate claim Lx: SNo x.
An exact proof term for the current goal is SNo_SNo beta Lb x H1.
Apply SNoLev_prop x Lx to the current goal.
Assume Hx1: ordinal (SNoLev x).
Assume Hx2: SNo_ (SNoLev x) x.
We prove the intermediate claim Lxb: SNoLev x = beta.
An exact proof term for the current goal is SNoLev_uniq2 beta Lb x H1.
We prove the intermediate claim Lxa: SNoLev xalpha.
rewrite the current goal using Lxb (from left to right).
An exact proof term for the current goal is Hb.
An exact proof term for the current goal is Hp Lxa Hx1 Lx Hx2.
Theorem. (SNoS_In_neq) The following is provable:
∀w, SNo w∀x ∈ SNoS_ (SNoLev w), xw
Proof:
Let w be given.
Assume Hw: SNo w.
Let x be given.
Assume Hx: xSNoS_ (SNoLev w).
Assume Hxw: x = w.
Apply SNoLev_prop w Hw to the current goal.
Assume Hw1: ordinal (SNoLev w).
Assume Hw2: SNo_ (SNoLev w) w.
Apply SNoS_E2 (SNoLev w) Hw1 x Hx to the current goal.
Assume Hx1: SNoLev xSNoLev w.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove False.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using Hxw (from left to right) at position 2.
An exact proof term for the current goal is Hx1.
Theorem. (SNoS_SNoLev) The following is provable:
∀z, SNo zzSNoS_ (ordsucc (SNoLev z))
Proof:
Let z be given.
Assume Hz: SNo z.
Apply SNoLev_prop z Hz to the current goal.
Assume Hz1: ordinal (SNoLev z).
Assume Hz2: SNo_ (SNoLev z) z.
An exact proof term for the current goal is SNoS_I (ordsucc (SNoLev z)) (ordinal_ordsucc (SNoLev z) Hz1) z (SNoLev z) (ordsuccI2 (SNoLev z)) Hz2.
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.
Theorem. (SNoCutP_SNoL_SNoR) The following is provable:
∀z, SNo zSNoCutP (SNoL z) (SNoR z)
Proof:
Let z be given.
Assume Hz: SNo z.
Set L to be the term SNoL z.
Set R to be the term SNoR z.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
We prove the intermediate claim L1: ∀x ∈ L, SNo x.
Let x be given.
Assume Hx: xL.
We will prove ∃alpha, ordinal alphaSNo_ alpha x.
We prove the intermediate claim L1a: xSNoS_ (SNoLev z).
An exact proof term for the current goal is SepE1 (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx.
Apply SNoS_E (SNoLev z) LLz x L1a to the current goal.
Let beta be given.
Assume H1.
Apply H1 to the current goal.
Assume Hb: betaSNoLev z.
Assume H1: SNo_ beta x.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
An exact proof term for the current goal is H1.
We prove the intermediate claim L2: ∀y ∈ R, SNo y.
Let y be given.
Assume Hy: yR.
We will prove ∃alpha, ordinal alphaSNo_ alpha y.
We prove the intermediate claim L2a: ySNoS_ (SNoLev z).
An exact proof term for the current goal is SepE1 (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy.
Apply SNoS_E (SNoLev z) LLz y L2a to the current goal.
Let beta be given.
Assume H1.
Apply H1 to the current goal.
Assume Hb: betaSNoLev z.
Assume H1: SNo_ beta y.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
An exact proof term for the current goal is H1.
We prove the intermediate claim L3: ∀x ∈ L, ∀y ∈ R, x < y.
Let x be given.
Assume Hx.
Let y be given.
Assume Hy.
Apply SNoLt_tra x z y (L1 x Hx) Hz (L2 y Hy) to the current goal.
We will prove x < z.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx.
We will prove z < y.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy.
We will prove SNoCutP L R.
We will prove (∀x ∈ L, SNo x)(∀y ∈ R, SNo y)(∀x ∈ L, ∀y ∈ R, x < y).
Apply and3I to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
An exact proof term for the current goal is L3.
Theorem. (SNoL_E) The following is provable:
∀x, SNo x∀w ∈ SNoL x, ∀p : prop, (SNo wSNoLev wSNoLev xw < xp)p
Proof:
Let x be given.
Assume Hx: SNo x.
Let w be given.
Assume Hw: wSNoL x.
Let p be given.
Assume Hp.
Apply SepE (SNoS_ (SNoLev x)) (λw ⇒ w < x) w Hw to the current goal.
Assume Hw1: wSNoS_ (SNoLev x).
Assume Hw2: w < x.
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x Hx) w Hw1 to the current goal.
Assume Hw3: SNoLev wSNoLev x.
Assume Hw4: ordinal (SNoLev w).
Assume Hw5: SNo w.
Assume Hw6: SNo_ (SNoLev w) w.
An exact proof term for the current goal is Hp Hw5 Hw3 Hw2.
Theorem. (SNoR_E) The following is provable:
∀x, SNo x∀z ∈ SNoR x, ∀p : prop, (SNo zSNoLev zSNoLev xx < zp)p
Proof:
Let x be given.
Assume Hx: SNo x.
Let z be given.
Assume Hz: zSNoR x.
Let p be given.
Assume Hp.
Apply SepE (SNoS_ (SNoLev x)) (λz ⇒ x < z) z Hz to the current goal.
Assume Hz1: zSNoS_ (SNoLev x).
Assume Hz2: x < z.
Apply SNoS_E2 (SNoLev x) (SNoLev_ordinal x Hx) z Hz1 to the current goal.
Assume Hz3: SNoLev zSNoLev x.
Assume Hz4: ordinal (SNoLev z).
Assume Hz5: SNo z.
Assume Hz6: SNo_ (SNoLev z) z.
An exact proof term for the current goal is Hp Hz5 Hz3 Hz2.
Theorem. (SNoL_SNoS_) The following is provable:
∀z, SNoL zSNoS_ (SNoLev z)
Proof:
Let z be given.
An exact proof term for the current goal is Sep_Subq (SNoS_ (SNoLev z)) (λx ⇒ x < z).
Theorem. (SNoR_SNoS_) The following is provable:
∀z, SNoR zSNoS_ (SNoLev z)
Proof:
Let z be given.
An exact proof term for the current goal is Sep_Subq (SNoS_ (SNoLev z)) (λy ⇒ z < y).
Theorem. (SNoL_SNoS) The following is provable:
∀x, SNo x∀w ∈ SNoL x, wSNoS_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
Let w be given.
Assume Hw: wSNoL x.
Apply SNoL_E x Hx w Hw to the current goal.
Assume Hw1: SNo w.
Assume Hw2: SNoLev wSNoLev x.
Assume Hw3: w < x.
We will prove wSNoS_ (SNoLev x).
An exact proof term for the current goal is SNoS_I2 w x Hw1 Hx Hw2.
Theorem. (SNoR_SNoS) The following is provable:
∀x, SNo x∀z ∈ SNoR x, zSNoS_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
Let z be given.
Assume Hz: zSNoR x.
Apply SNoR_E x Hx z Hz to the current goal.
Assume Hz1: SNo z.
Assume Hz2: SNoLev zSNoLev x.
Assume Hz3: x < z.
We will prove zSNoS_ (SNoLev x).
An exact proof term for the current goal is SNoS_I2 z x Hz1 Hx Hz2.
Theorem. (SNoL_I) The following is provable:
∀z, SNo z∀x, SNo xSNoLev xSNoLev zx < zxSNoL z
Proof:
Let z be given.
Assume Hz.
Let x be given.
Assume Hx Hxz1 Hxz2.
We will prove xSNoL z.
We will prove x{x ∈ SNoS_ (SNoLev z)|x < z}.
Apply SepI to the current goal.
We will prove xSNoS_ (SNoLev z).
An exact proof term for the current goal is SNoS_I2 x z Hx Hz Hxz1.
We will prove x < z.
An exact proof term for the current goal is Hxz2.
Theorem. (SNoR_I) The following is provable:
∀z, SNo z∀y, SNo ySNoLev ySNoLev zz < yySNoR z
Proof:
Let z be given.
Assume Hz.
Let y be given.
Assume Hy Hyz Hzy.
We will prove ySNoR z.
We will prove y{y ∈ SNoS_ (SNoLev z)|z < y}.
Apply SepI to the current goal.
We will prove ySNoS_ (SNoLev z).
An exact proof term for the current goal is SNoS_I2 y z Hy Hz Hyz.
We will prove z < y.
An exact proof term for the current goal is Hzy.
Theorem. (SNo_eta) The following is provable:
∀z, SNo zz = SNoCut (SNoL z) (SNoR z)
Proof:
Let z be given.
Assume Hz: SNo z.
Set L to be the term SNoL z.
Set R to be the term SNoR z.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
We prove the intermediate claim LC: SNoCutP L R.
An exact proof term for the current goal is SNoCutP_SNoL_SNoR z Hz.
Apply SNoCutP_SNoCut L R LC to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1.
Apply H1 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 H3: ∀x ∈ L, x < SNoCut L R.
Assume H4: ∀y ∈ R, SNoCut L R < y.
Assume H5: ∀z, SNo z(∀x ∈ L, x < z)(∀y ∈ R, z < y)SNoLev (SNoCut L R)SNoLev zPNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gammaSNoCut L R) (λgamma ⇒ gammaz).
We prove the intermediate claim L4: ordinal (SNoLev (SNoCut L R)).
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is H1.
We prove the intermediate claim L5: ∀x ∈ L, x < z.
Let x be given.
Assume Hx: xL.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx.
We prove the intermediate claim L6: ∀y ∈ R, z < y.
Let y be given.
Assume Hy: yR.
An exact proof term for the current goal is SepE2 (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy.
Apply H5 z Hz L5 L6 to the current goal.
Assume H6: SNoLev (SNoCut L R)SNoLev z.
Assume H7: PNoEq_ (SNoLev (SNoCut L R)) (λgamma ⇒ gammaSNoCut L R) (λgamma ⇒ gammaz).
We prove the intermediate claim L7: SNoLev (SNoCut L R) = SNoLev z.
Apply ordinal_trichotomy_or (SNoLev (SNoCut L R)) (SNoLev z) L4 LLz to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8: SNoLev (SNoCut L R)SNoLev z.
We will prove False.
Apply SNoLt_trichotomy_or z (SNoCut L R) Hz H1 to the current goal.
Assume H9.
Apply H9 to the current goal.
Assume H9: z < SNoCut L R.
Apply SNoLt_irref (SNoCut L R) to the current goal.
Apply H4 to the current goal.
We will prove SNoCut L RR.
We will prove SNoCut L R{y ∈ SNoS_ (SNoLev z)|z < y}.
Apply SepI to the current goal.
Apply SNoS_I (SNoLev z) LLz (SNoCut L R) (SNoLev (SNoCut L R)) H8 to the current goal.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
An exact proof term for the current goal is SNoLev_ (SNoCut L R) H1.
We will prove z < SNoCut L R.
An exact proof term for the current goal is H9.
Assume H9: z = SNoCut L R.
Apply In_irref (SNoLev z) to the current goal.
rewrite the current goal using H9 (from left to right) at position 1.
An exact proof term for the current goal is H8.
Assume H9: SNoCut L R < z.
Apply SNoLt_irref (SNoCut L R) to the current goal.
Apply H3 to the current goal.
We will prove SNoCut L RL.
We will prove SNoCut L R{x ∈ SNoS_ (SNoLev z)|x < z}.
Apply SepI to the current goal.
Apply SNoS_I (SNoLev z) LLz (SNoCut L R) (SNoLev (SNoCut L R)) H8 to the current goal.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
An exact proof term for the current goal is SNoLev_ (SNoCut L R) H1.
We will prove SNoCut L R < z.
An exact proof term for the current goal is H9.
Assume H8: SNoLev (SNoCut L R) = SNoLev z.
An exact proof term for the current goal is H8.
Assume H8: SNoLev zSNoLev (SNoCut L R).
We will prove False.
Apply In_irref (SNoLev z) to the current goal.
Apply H6 to the current goal.
An exact proof term for the current goal is H8.
We will prove z = SNoCut L R.
Use symmetry.
We will prove SNoCut L R = z.
Apply SNo_eq to the current goal.
We will prove SNo (SNoCut L R).
An exact proof term for the current goal is H1.
We will prove SNo z.
An exact proof term for the current goal is Hz.
We will prove SNoLev (SNoCut L R) = SNoLev z.
An exact proof term for the current goal is L7.
We will prove ∀alpha ∈ SNoLev (SNoCut L R), alphaSNoCut L Ralphaz.
An exact proof term for the current goal is H7.
Theorem. (SNoCutP_SNo_SNoCut) The following is provable:
∀L R, SNoCutP L RSNo (SNoCut L R)
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_L) The following is provable:
∀L R, SNoCutP L R∀x ∈ L, x < SNoCut L R
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume _ H2.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_R) The following is provable:
∀L R, SNoCutP L R∀y ∈ R, SNoCut L R < y
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume H2 _.
Apply H2 to the current goal.
Assume _ H2.
An exact proof term for the current goal is H2.
Theorem. (SNoCutP_SNoCut_fst) The following is provable:
∀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
Proof:
Let L and R be given.
Assume H1: SNoCutP L R.
Apply SNoCutP_SNoCut L R H1 to the current goal.
Assume _ H2.
An exact proof term for the current goal is H2.
Theorem. (SNoCut_Le) The following is provable:
∀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
Proof:
Let L1, R1, L2 and R2 be given.
Assume HLR1 HLR2.
Assume H1: ∀w ∈ L1, w < SNoCut L2 R2.
Assume H2: ∀z ∈ R2, SNoCut L1 R1 < z.
Apply HLR1 to the current goal.
Assume HLR1a.
Apply HLR1a to the current goal.
Assume HLR1a: ∀x ∈ L1, SNo x.
Assume HLR1b: ∀y ∈ R1, SNo y.
Assume HLR1c: ∀x ∈ L1, ∀y ∈ R1, x < y.
Apply HLR2 to the current goal.
Assume HLR2a.
Apply HLR2a to the current goal.
Assume HLR2a: ∀x ∈ L2, SNo x.
Assume HLR2b: ∀y ∈ R2, SNo y.
Assume HLR2c: ∀x ∈ L2, ∀y ∈ R2, x < y.
Set alpha to be the term x ∈ L1ordsucc (SNoLev x).
Set beta to be the term y ∈ R1ordsucc (SNoLev y).
Set gamma to be the term x ∈ L2ordsucc (SNoLev x).
Set delta to be the term y ∈ R2ordsucc (SNoLev y).
Apply SNoCutP_SNoCut L1 R1 HLR1 to the current goal.
Assume H3.
Apply H3 to the current goal.
Assume H3.
Apply H3 to the current goal.
Assume H3.
Apply H3 to the current goal.
Assume H3: SNo (SNoCut L1 R1).
Assume H4: SNoLev (SNoCut L1 R1)ordsucc (alphabeta).
Assume H5: ∀x ∈ L1, x < SNoCut L1 R1.
Assume H6: ∀y ∈ R1, SNoCut L1 R1 < y.
Assume H7: ∀z, SNo z(∀x ∈ L1, x < z)(∀y ∈ R1, z < y)SNoLev (SNoCut L1 R1)SNoLev zSNoEq_ (SNoLev (SNoCut L1 R1)) (SNoCut L1 R1) z.
Apply SNoCutP_SNoCut L2 R2 HLR2 to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8.
Apply H8 to the current goal.
Assume H8: SNo (SNoCut L2 R2).
Assume H9: SNoLev (SNoCut L2 R2)ordsucc (gammadelta).
Assume H10: ∀x ∈ L2, x < SNoCut L2 R2.
Assume H11: ∀y ∈ R2, SNoCut L2 R2 < y.
Assume H12: ∀z, SNo z(∀x ∈ L2, x < z)(∀y ∈ R2, z < y)SNoLev (SNoCut L2 R2)SNoLev zSNoEq_ (SNoLev (SNoCut L2 R2)) (SNoCut L2 R2) z.
Apply SNoLtLe_or (SNoCut L2 R2) (SNoCut L1 R1) H8 H3 to the current goal.
Assume H13: SNoCut L2 R2 < SNoCut L1 R1.
We will prove False.
Apply SNoLtE (SNoCut L2 R2) (SNoCut L1 R1) H8 H3 H13 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev zSNoLev (SNoCut L2 R2)SNoLev (SNoCut L1 R1).
Assume Hz3: SNoEq_ (SNoLev z) z (SNoCut L2 R2).
Assume Hz4: SNoEq_ (SNoLev z) z (SNoCut L1 R1).
Assume Hz5: (SNoCut L2 R2) < z.
Assume Hz6: z < (SNoCut L1 R1).
Assume Hz7: SNoLev z(SNoCut L2 R2).
Assume Hz8: SNoLev z(SNoCut L1 R1).
We prove the intermediate claim LzL1: ∀x ∈ L1, x < z.
Let x be given.
Assume Hx: xL1.
Apply SNoLt_tra x (SNoCut L2 R2) z (HLR1a x Hx) H8 Hz1 to the current goal.
We will prove x < SNoCut L2 R2.
An exact proof term for the current goal is H1 x Hx.
We will prove SNoCut L2 R2 < z.
An exact proof term for the current goal is Hz5.
We prove the intermediate claim LzR1: ∀y ∈ R1, z < y.
Let y be given.
Assume Hy: yR1.
Apply SNoLt_tra z (SNoCut L1 R1) y Hz1 H3 (HLR1b y Hy) to the current goal.
We will prove z < SNoCut L1 R1.
An exact proof term for the current goal is Hz6.
We will prove SNoCut L1 R1 < y.
An exact proof term for the current goal is H6 y Hy.
Apply H7 z Hz1 LzL1 LzR1 to the current goal.
Assume H14: SNoLev (SNoCut L1 R1)SNoLev z.
Assume _.
Apply In_irref (SNoLev z) to the current goal.
Apply H14 to the current goal.
We will prove SNoLev zSNoLev (SNoCut L1 R1).
An exact proof term for the current goal is binintersectE2 (SNoLev (SNoCut L2 R2)) (SNoLev (SNoCut L1 R1)) (SNoLev z) Hz2.
Assume H14: SNoLev (SNoCut L2 R2)SNoLev (SNoCut L1 R1).
Assume H15: SNoEq_ (SNoLev (SNoCut L2 R2)) (SNoCut L2 R2) (SNoCut L1 R1).
Assume H16: SNoLev (SNoCut L2 R2)(SNoCut L1 R1).
Set z to be the term SNoCut L2 R2.
We prove the intermediate claim LzR1: ∀y ∈ R1, z < y.
Let y be given.
Assume Hy: yR1.
Apply SNoLt_tra z (SNoCut L1 R1) y H8 H3 (HLR1b y Hy) to the current goal.
We will prove z < SNoCut L1 R1.
An exact proof term for the current goal is H13.
We will prove SNoCut L1 R1 < y.
An exact proof term for the current goal is H6 y Hy.
Apply H7 z H8 H1 LzR1 to the current goal.
Assume H17: SNoLev (SNoCut L1 R1)SNoLev z.
Assume _.
Apply In_irref (SNoLev z) to the current goal.
Apply H17 to the current goal.
We will prove SNoLev zSNoLev (SNoCut L1 R1).
An exact proof term for the current goal is H14.
Assume H14: SNoLev (SNoCut L1 R1)SNoLev (SNoCut L2 R2).
Assume H15: SNoEq_ (SNoLev (SNoCut L1 R1)) (SNoCut L2 R2) (SNoCut L1 R1).
Assume H16: SNoLev (SNoCut L1 R1)(SNoCut L2 R2).
Set z to be the term SNoCut L1 R1.
We prove the intermediate claim LzL2: ∀x ∈ L2, x < z.
Let x be given.
Assume Hx: xL2.
Apply SNoLt_tra x (SNoCut L2 R2) z (HLR2a x Hx) H8 H3 to the current goal.
We will prove x < SNoCut L2 R2.
An exact proof term for the current goal is H10 x Hx.
We will prove SNoCut L2 R2 < z.
An exact proof term for the current goal is H13.
Apply H12 z H3 LzL2 H2 to the current goal.
Assume H17: SNoLev (SNoCut L2 R2)SNoLev z.
Assume _.
Apply In_irref (SNoLev z) to the current goal.
Apply H17 to the current goal.
We will prove SNoLev zSNoLev (SNoCut L2 R2).
An exact proof term for the current goal is H14.
Assume H13: SNoCut L1 R1SNoCut L2 R2.
An exact proof term for the current goal is H13.
Theorem. (SNoCut_ext) The following is provable:
∀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
Proof:
Let L1, R1, L2 and R2 be given.
Assume HLR1 HLR2.
Assume H1: ∀w ∈ L1, w < SNoCut L2 R2.
Assume H2: ∀z ∈ R1, SNoCut L2 R2 < z.
Assume H3: ∀w ∈ L2, w < SNoCut L1 R1.
Assume H4: ∀z ∈ R2, SNoCut L1 R1 < z.
We prove the intermediate claim LNLR1: SNo (SNoCut L1 R1).
An exact proof term for the current goal is SNoCutP_SNo_SNoCut L1 R1 HLR1.
We prove the intermediate claim LNLR2: SNo (SNoCut L2 R2).
An exact proof term for the current goal is SNoCutP_SNo_SNoCut L2 R2 HLR2.
Apply SNoLe_antisym (SNoCut L1 R1) (SNoCut L2 R2) LNLR1 LNLR2 to the current goal.
We will prove SNoCut L1 R1SNoCut L2 R2.
An exact proof term for the current goal is SNoCut_Le L1 R1 L2 R2 HLR1 HLR2 H1 H4.
We will prove SNoCut L2 R2SNoCut L1 R1.
An exact proof term for the current goal is SNoCut_Le L2 R2 L1 R1 HLR2 HLR1 H3 H2.
Theorem. (SNoLt_SNoL_or_SNoR_impred) The following is provable:
∀x y, SNo xSNo yx < y∀p : prop, (∀z ∈ SNoL y, zSNoR xp)(xSNoL yp)(ySNoR xp)p
Proof:
Let x and y be given.
Assume Hx Hy Hxy.
Let p be given.
Assume Hp1 Hp2 Hp3.
Apply SNoLtE x y Hx Hy Hxy to the current goal.
Let z be given.
Assume Hz1 Hz2 _ _ Hz3 Hz4 _ _.
Apply binintersectE (SNoLev x) (SNoLev y) (SNoLev z) Hz2 to the current goal.
Assume Hz2a Hz2b.
Apply Hp1 z to the current goal.
We will prove zSNoL y.
An exact proof term for the current goal is SNoL_I y Hy z Hz1 Hz2b Hz4.
We will prove zSNoR x.
An exact proof term for the current goal is SNoR_I x Hx z Hz1 Hz2a Hz3.
Assume H1 _ _.
Apply Hp2 to the current goal.
An exact proof term for the current goal is SNoL_I y Hy x Hx H1 Hxy.
Assume H1 _ _.
Apply Hp3 to the current goal.
An exact proof term for the current goal is SNoR_I x Hx y Hy H1 Hxy.
Theorem. (SNoL_or_SNoR_impred) The following is provable:
∀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
Proof:
Let x and y be given.
Assume Hx Hy.
Let p be given.
Assume Hp1 Hp2 Hp3 Hp4 Hp5 Hp6 Hp7.
Apply SNoLt_trichotomy_or_impred x y Hx Hy to the current goal.
Assume H1: x < y.
Apply SNoLt_SNoL_or_SNoR_impred x y Hx Hy H1 to the current goal.
An exact proof term for the current goal is Hp2.
An exact proof term for the current goal is Hp3.
An exact proof term for the current goal is Hp4.
Assume H1: x = y.
An exact proof term for the current goal is Hp1 H1.
Assume H1: y < x.
Apply SNoLt_SNoL_or_SNoR_impred y x Hy Hx H1 to the current goal.
Let z be given.
Assume H2 H3.
An exact proof term for the current goal is Hp5 z H3 H2.
An exact proof term for the current goal is Hp7.
An exact proof term for the current goal is Hp6.
Theorem. (ordinal_SNo_) The following is provable:
∀alpha, ordinal alphaSNo_ alpha alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We will prove alphaSNoElts_ alpha∀beta ∈ alpha, exactly1of2 (beta 'alpha) (betaalpha).
Apply andI to the current goal.
We will prove alphaSNoElts_ alpha.
Let beta be given.
Assume Hb: betaalpha.
We will prove betaalpha{beta '|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hb.
We will prove ∀beta ∈ alpha, exactly1of2 (beta 'alpha) (betaalpha).
Let beta be given.
Assume Hb: betaalpha.
Apply exactly1of2_I2 to the current goal.
We will prove beta 'alpha.
Assume H1: beta 'alpha.
We will prove False.
Apply tagged_not_ordinal beta to the current goal.
We will prove ordinal (beta ').
An exact proof term for the current goal is ordinal_Hered alpha Ha (beta ') H1.
We will prove betaalpha.
An exact proof term for the current goal is Hb.
Theorem. (ordinal_SNo) The following is provable:
∀alpha, ordinal alphaSNo alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We will prove ∃beta, ordinal betaSNo_ beta alpha.
We use alpha to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Ha.
An exact proof term for the current goal is ordinal_SNo_ alpha Ha.
Theorem. (ordinal_SNoLev) The following is provable:
∀alpha, ordinal alphaSNoLev alpha = alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Apply SNoLev_prop alpha (ordinal_SNo alpha Ha) to the current goal.
Assume H1: ordinal (SNoLev alpha).
Assume H2: SNo_ (SNoLev alpha) alpha.
An exact proof term for the current goal is SNoLev_uniq alpha (SNoLev alpha) alpha H1 Ha H2 (ordinal_SNo_ alpha Ha).
Theorem. (ordinal_SNoLev_max) The following is provable:
∀alpha, ordinal alpha∀z, SNo zSNoLev zalphaz < alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let z be given.
Assume Hz: SNo z.
Assume Hz2: SNoLev zalpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
We will prove z < alpha.
Apply SNoLt_trichotomy_or z alpha Hz (ordinal_SNo alpha Ha) to the current goal.
Assume H1.
Apply H1 to the current goal.
Assume H1: z < alpha.
An exact proof term for the current goal is H1.
Assume H1: z = alpha.
We will prove False.
Apply In_irref alpha to the current goal.
rewrite the current goal using La2 (from right to left) at position 1.
We will prove SNoLev alphaalpha.
rewrite the current goal using H1 (from right to left) at position 1.
We will prove SNoLev zalpha.
An exact proof term for the current goal is Hz2.
Assume H1: alpha < z.
We will prove False.
Apply SNoLtE alpha z La1 Hz H1 to the current goal.
Let w be given.
rewrite the current goal using La2 (from left to right).
Assume Hw: SNo w.
Assume H2: SNoLev walphaSNoLev z.
Assume H3: SNoEq_ (SNoLev w) w alpha.
Assume H4: SNoEq_ (SNoLev w) w z.
Assume H5: alpha < w.
Assume H6: w < z.
Assume H7: SNoLev walpha.
We will prove False.
Apply H7 to the current goal.
An exact proof term for the current goal is binintersectE1 alpha (SNoLev z) (SNoLev w) H2.
rewrite the current goal using La2 (from left to right).
Assume H2: alphaSNoLev z.
We will prove False.
An exact proof term for the current goal is In_no2cycle alpha (SNoLev z) H2 Hz2.
rewrite the current goal using La2 (from left to right).
Assume H2: SNoLev zalpha.
Assume H3: SNoEq_ (SNoLev z) alpha z.
Assume H4: SNoLev zalpha.
An exact proof term for the current goal is H4 H2.
Theorem. (ordinal_SNoL) The following is provable:
∀alpha, ordinal alphaSNoL alpha = SNoS_ alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply set_ext to the current goal.
Let x be given.
Assume Hx: xSNoL alpha.
Apply SNoL_E alpha La1 x Hx to the current goal.
Assume Hx1: SNo x.
Assume Hx2: SNoLev xSNoLev alpha.
Assume Hx3: x < alpha.
We will prove xSNoS_ alpha.
rewrite the current goal using La2 (from right to left).
We will prove xSNoS_ (SNoLev alpha).
Apply SNoS_I2 x alpha Hx1 La1 to the current goal.
We will prove SNoLev xSNoLev alpha.
An exact proof term for the current goal is Hx2.
Let x be given.
Assume Hx: xSNoS_ alpha.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev xalpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove xSNoL alpha.
Apply SNoL_I alpha La1 x Hx3 to the current goal.
We will prove SNoLev xSNoLev alpha.
rewrite the current goal using La2 (from left to right).
An exact proof term for the current goal is Hx1.
We will prove x < alpha.
An exact proof term for the current goal is ordinal_SNoLev_max alpha Ha x Hx3 Hx1.
Theorem. (ordinal_SNoR) The following is provable:
∀alpha, ordinal alphaSNoR alpha = Empty
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply Empty_Subq_eq to the current goal.
Let x be given.
Assume Hx: xSNoR alpha.
Apply SNoR_E alpha La1 x Hx to the current goal.
Assume Hx1: SNo x.
rewrite the current goal using La2 (from left to right).
Assume Hx2: SNoLev xalpha.
Assume Hx3: alpha < x.
We will prove False.
Apply SNoLt_irref x to the current goal.
Apply SNoLt_tra x alpha x Hx1 La1 Hx1 to the current goal.
We will prove x < alpha.
An exact proof term for the current goal is ordinal_SNoLev_max alpha Ha x Hx1 Hx2.
We will prove alpha < x.
An exact proof term for the current goal is Hx3.
Theorem. (nat_p_SNo) The following is provable:
∀n, nat_p nSNo n
Proof:
Let n be given.
Assume Hn.
Apply ordinal_SNo 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 Hn.
Theorem. (omega_SNo) The following is provable:
∀n ∈ ω, SNo n
Proof:
Let n be given.
Assume Hn.
Apply nat_p_SNo to the current goal.
Apply omega_nat_p to the current goal.
An exact proof term for the current goal is Hn.
Theorem. (omega_SNoS_omega) The following is provable:
ωSNoS_ ω
Proof:
Let n be given.
Assume Hn: nω.
Apply SNoS_I ω omega_ordinal n n to the current goal.
An exact proof term for the current goal is Hn.
We will prove SNo_ n n.
rewrite the current goal using ordinal_SNoLev n (nat_p_ordinal n (omega_nat_p n Hn)) (from right to left) at position 1.
We will prove SNo_ (SNoLev n) n.
Apply SNoLev_ to the current goal.
Apply omega_SNo to the current goal.
An exact proof term for the current goal is Hn.
Theorem. (ordinal_In_SNoLt) The following is provable:
∀alpha, ordinal alpha∀beta ∈ alpha, beta < alpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Let beta be given.
Assume Hb: betaalpha.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered alpha Ha beta Hb.
We prove the intermediate claim Lb1: SNo beta.
An exact proof term for the current goal is ordinal_SNo beta Lb.
We prove the intermediate claim Lb2: SNoLev beta = beta.
An exact proof term for the current goal is ordinal_SNoLev beta Lb.
Apply ordinal_SNoLev_max alpha Ha beta Lb1 to the current goal.
We will prove SNoLev betaalpha.
rewrite the current goal using Lb2 (from left to right).
An exact proof term for the current goal is Hb.
Theorem. (ordinal_SNoLev_max_2) The following is provable:
∀alpha, ordinal alpha∀z, SNo zSNoLev zordsucc alphazalpha
Proof:
Let alpha be given.
Assume Ha: ordinal alpha.
Apply Ha to the current goal.
Assume Ha1 _.
Let z be given.
Assume Hz: SNo z.
Assume Hz2: SNoLev zordsucc alpha.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply ordsuccE alpha (SNoLev z) Hz2 to the current goal.
Assume Hz3: SNoLev zalpha.
We will prove zalpha.
Apply SNoLtLe to the current goal.
We will prove z < alpha.
An exact proof term for the current goal is ordinal_SNoLev_max alpha Ha z Hz Hz3.
Assume Hz3: SNoLev z = alpha.
Apply dneg to the current goal.
Assume H1: ¬ (zalpha).
We prove the intermediate claim L1: ∀beta, ordinal betabetaalphabetaz.
Apply ordinal_ind to the current goal.
Let beta be given.
Assume Hb: ordinal beta.
Assume IH: ∀gamma ∈ beta, gammaalphagammaz.
Assume Hb2: betaalpha.
Apply dneg to the current goal.
Assume H2: betaz.
Apply H1 to the current goal.
Apply SNoLtLe to the current goal.
We will prove z < alpha.
We prove the intermediate claim Lb1: SNo beta.
An exact proof term for the current goal is ordinal_SNo beta Hb.
We prove the intermediate claim Lb2: SNoLev beta = beta.
An exact proof term for the current goal is ordinal_SNoLev beta Hb.
Apply SNoLt_tra z beta alpha Hz Lb1 La1 to the current goal.
We will prove z < beta.
Apply SNoLtI3 to the current goal.
We will prove SNoLev betaSNoLev z.
rewrite the current goal using Lb2 (from left to right).
rewrite the current goal using Hz3 (from left to right).
We will prove betaalpha.
An exact proof term for the current goal is Hb2.
We will prove SNoEq_ (SNoLev beta) z beta.
rewrite the current goal using Lb2 (from left to right).
Let gamma be given.
Assume Hc: gammabeta.
We will prove gammazgammabeta.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Hc.
Assume _.
We will prove gammaz.
Apply IH gamma Hc to the current goal.
We will prove gammaalpha.
An exact proof term for the current goal is Ha1 beta Hb2 gamma Hc.
We will prove SNoLev betaz.
rewrite the current goal using Lb2 (from left to right).
We will prove betaz.
An exact proof term for the current goal is H2.
We will prove beta < alpha.
An exact proof term for the current goal is ordinal_In_SNoLt alpha Ha beta Hb2.
We prove the intermediate claim L2: alphaz.
Let beta be given.
Assume Hb: betaalpha.
An exact proof term for the current goal is L1 beta (ordinal_Hered alpha Ha beta Hb) Hb.
We prove the intermediate claim L3: z = alpha.
Apply SNo_eq z alpha Hz La1 to the current goal.
We will prove SNoLev z = SNoLev alpha.
rewrite the current goal using La2 (from left to right).
An exact proof term for the current goal is Hz3.
We will prove SNoEq_ (SNoLev z) z alpha.
rewrite the current goal using Hz3 (from left to right).
Let beta be given.
Assume Hb: betaalpha.
We will prove betazbetaalpha.
Apply iffI to the current goal.
Assume _.
An exact proof term for the current goal is Hb.
Assume _.
An exact proof term for the current goal is L2 beta Hb.
Apply H1 to the current goal.
We will prove zalpha.
rewrite the current goal using L3 (from left to right).
We will prove alphaalpha.
Apply SNoLe_ref to the current goal.
Theorem. (ordinal_Subq_SNoLe) The following is provable:
∀alpha beta, ordinal alphaordinal betaalphabetaalphabeta
Proof:
Let alpha and beta be given.
Assume Ha Hb Hab.
We prove the intermediate claim L1: alphaordsucc beta.
Apply ordinal_In_Or_Subq alpha beta Ha Hb to the current goal.
Assume H1: alphabeta.
Apply ordsuccI1 to the current goal.
An exact proof term for the current goal is H1.
Assume H1: betaalpha.
We prove the intermediate claim L1a: alpha = beta.
Apply set_ext to the current goal.
An exact proof term for the current goal is Hab.
An exact proof term for the current goal is H1.
rewrite the current goal using L1a (from left to right).
Apply ordsuccI2 to the current goal.
We prove the intermediate claim La1: SNo alpha.
An exact proof term for the current goal is ordinal_SNo alpha Ha.
We prove the intermediate claim La2: SNoLev alpha = alpha.
An exact proof term for the current goal is ordinal_SNoLev alpha Ha.
Apply ordinal_SNoLev_max_2 beta Hb alpha La1 to the current goal.
We will prove SNoLev alphaordsucc beta.
rewrite the current goal using La2 (from left to right).
An exact proof term for the current goal is L1.
Theorem. (ordinal_SNoLt_In) The following is provable:
∀alpha beta, ordinal alphaordinal betaalpha < betaalphabeta
Proof:
Let alpha and beta be given.
Assume Ha Hb.
Assume H1.
Apply ordinal_In_Or_Subq alpha beta Ha Hb to the current goal.
Assume H2.
An exact proof term for the current goal is H2.
Assume H2: betaalpha.
We will prove False.
Apply SNoLt_irref alpha to the current goal.
We will prove alpha < alpha.
Apply SNoLtLe_tra alpha beta alpha (ordinal_SNo alpha Ha) (ordinal_SNo beta Hb) (ordinal_SNo alpha Ha) H1 to the current goal.
We will prove betaalpha.
An exact proof term for the current goal is ordinal_Subq_SNoLe beta alpha Hb Ha H2.
Theorem. (omega_nonneg) The following is provable:
∀m ∈ ω, 0m
Proof:
Let m be given.
Assume Hm.
Apply ordinal_Subq_SNoLe 0 m ordinal_Empty (nat_p_ordinal m (omega_nat_p m Hm)) to the current goal.
We will prove 0m.
Apply Subq_Empty to the current goal.
Theorem. (SNo_0) The following is provable:
SNo 0
Proof:
An exact proof term for the current goal is ordinal_SNo 0 ordinal_Empty.
Theorem. (SNo_1) The following is provable:
SNo 1
Proof:
Apply ordinal_SNo to the current goal.
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is nat_1.
Theorem. (SNo_2) The following is provable:
SNo 2
Proof:
Apply ordinal_SNo to the current goal.
Apply nat_p_ordinal to the current goal.
An exact proof term for the current goal is nat_2.
Theorem. (SNoLev_0) The following is provable:
SNoLev 0 = 0
Proof:
An exact proof term for the current goal is ordinal_SNoLev 0 ordinal_Empty.
Theorem. (SNoCut_0_0) The following is provable:
SNoCut 0 0 = 0
Proof:
Apply SNoCutP_SNoCut_impred 0 0 SNoCutP_0_0 to the current goal.
Assume H1: SNo (SNoCut 0 0).
rewrite the current goal using famunion_Empty (λx ⇒ ordsucc (SNoLev x)) (from left to right).
rewrite the current goal using binunion_idl 0 (from left to right).
Assume H2: SNoLev (SNoCut 0 0)1.
Assume _ _ _.
We prove the intermediate claim L1: SNoLev (SNoCut 0 0) = 0.
Apply cases_1 (SNoLev (SNoCut 0 0)) H2 (λu ⇒ u = 0) to the current goal.
We will prove 0 = 0.
Use reflexivity.
Apply SNo_eq (SNoCut 0 0) 0 H1 SNo_0 to the current goal.
We will prove SNoLev (SNoCut 0 0) = SNoLev 0.
Use transitivity with and 0.
An exact proof term for the current goal is L1.
Use symmetry.
An exact proof term for the current goal is SNoLev_0.
We will prove SNoEq_ (SNoLev (SNoCut 0 0)) (SNoCut 0 0) 0.
rewrite the current goal using L1 (from left to right).
We will prove SNoEq_ 0 (SNoCut 0 0) 0.
Apply SNoEq_I to the current goal.
Let beta be given.
Assume Hb: beta0.
We will prove False.
An exact proof term for the current goal is EmptyE beta Hb.
Theorem. (SNoL_0) The following is provable:
SNoL 0 = 0
Proof:
Apply Empty_Subq_eq to the current goal.
We will prove SNoL 0Empty.
Let z be given.
Assume Hz: zSNoL 0.
We prove the intermediate claim Lz: zSNoS_ 0.
rewrite the current goal using SNoLev_0 (from right to left).
We will prove zSNoS_ (SNoLev 0).
An exact proof term for the current goal is SNoL_SNoS_ 0 z Hz.
Apply SNoS_E2 0 ordinal_Empty z Lz to the current goal.
Assume Hz1: SNoLev z0.
We will prove False.
An exact proof term for the current goal is EmptyE (SNoLev z) Hz1.
Theorem. (SNoR_0) The following is provable:
SNoR 0 = 0
Proof:
Apply Empty_Subq_eq to the current goal.
We will prove SNoR 0Empty.
Let z be given.
Assume Hz: zSNoR 0.
We prove the intermediate claim Lz: zSNoS_ 0.
rewrite the current goal using SNoLev_0 (from right to left).
We will prove zSNoS_ (SNoLev 0).
An exact proof term for the current goal is SNoR_SNoS_ 0 z Hz.
Apply SNoS_E2 0 ordinal_Empty z Lz to the current goal.
Assume Hz1: SNoLev z0.
We will prove False.
An exact proof term for the current goal is EmptyE (SNoLev z) Hz1.
Theorem. (SNoL_1) The following is provable:
SNoL 1 = 1
Proof:
Apply set_ext to the current goal.
Let x be given.
Assume Hx: xSNoL 1.
We will prove x1.
Apply SNoL_E 1 SNo_1 x Hx to the current goal.
Assume Hxa: SNo x.
rewrite the current goal using ordinal_SNoLev 1 (nat_p_ordinal 1 nat_1) (from left to right).
Assume Hxb: SNoLev x1.
Assume _.
We prove the intermediate claim L1: 0 = x.
Apply SNo_eq 0 x SNo_0 Hxa to the current goal.
We will prove SNoLev 0 = SNoLev x.
rewrite the current goal using SNoLev_0 (from left to right).
We will prove 0 = SNoLev x.
Apply cases_1 (SNoLev x) Hxb (λu ⇒ 0 = u) to the current goal.
We will prove 0 = 0.
Use reflexivity.
We will prove SNoEq_ (SNoLev 0) 0 x.
rewrite the current goal using SNoLev_0 (from left to right).
We will prove SNoEq_ 0 0 x.
Apply SNoEq_I to the current goal.
Let beta be given.
Assume Hb: beta0.
We will prove False.
An exact proof term for the current goal is EmptyE beta Hb.
rewrite the current goal using L1 (from right to left).
An exact proof term for the current goal is In_0_1.
Let x be given.
Assume Hx: x1.
We will prove xSNoL 1.
Apply cases_1 x Hx (λx ⇒ xSNoL 1) to the current goal.
We will prove 0SNoL 1.
Apply SNoL_I 1 SNo_1 0 SNo_0 to the current goal.
We will prove SNoLev 0SNoLev 1.
rewrite the current goal using SNoLev_0 (from left to right).
rewrite the current goal using ordinal_SNoLev 1 (nat_p_ordinal 1 nat_1) (from left to right).
An exact proof term for the current goal is In_0_1.
We will prove 0 < 1.
An exact proof term for the current goal is ordinal_In_SNoLt 1 (nat_p_ordinal 1 nat_1) 0 In_0_1.
Theorem. (SNoR_1) The following is provable:
SNoR 1 = 0
Proof:
An exact proof term for the current goal is ordinal_SNoR 1 (nat_p_ordinal 1 nat_1).
Theorem. (SNo_max_SNoLev) The following is provable:
∀x, SNo x(∀y ∈ SNoS_ (SNoLev x), y < x)SNoLev x = x
Proof:
Let x be given.
Assume Hx: SNo x.
Assume H2: ∀y ∈ SNoS_ (SNoLev x), y < x.
We prove the intermediate claim LLx1: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LLx2: SNo (SNoLev x).
An exact proof term for the current goal is ordinal_SNo (SNoLev x) LLx1.
We prove the intermediate claim L3: xSNoLev x.
Apply ordinal_SNoLev_max_2 (SNoLev x) LLx1 x Hx to the current goal.
We will prove SNoLev xordsucc (SNoLev x).
Apply ordsuccI2 to the current goal.
Apply SNoLeE x (SNoLev x) Hx LLx2 L3 to the current goal.
Assume H3: x < SNoLev x.
We will prove False.
Apply SNoLtE x (SNoLev x) Hx LLx2 H3 to the current goal.
Let z be given.
Assume Hz: SNo z.
Assume Hz1: SNoLev zSNoLev xSNoLev (SNoLev x).
Assume Hz2: SNoEq_ (SNoLev z) z x.
Assume Hz3: SNoEq_ (SNoLev z) z (SNoLev x).
Assume Hz4: x < z.
Assume Hz5: z < SNoLev x.
Assume Hz6: SNoLev zx.
Assume Hz7: SNoLev zSNoLev x.
Apply SNoLt_irref z to the current goal.
Apply SNoLt_tra z x z Hz Hx Hz to the current goal.
We will prove z < x.
Apply H2 to the current goal.
We will prove zSNoS_ (SNoLev x).
Apply SNoS_I (SNoLev x) LLx1 z (SNoLev z) to the current goal.
We will prove SNoLev zSNoLev x.
An exact proof term for the current goal is Hz7.
We will prove SNo_ (SNoLev z) z.
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is Hz.
We will prove x < z.
An exact proof term for the current goal is Hz4.
Assume H4: SNoLev xSNoLev (SNoLev x).
We will prove False.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using ordinal_SNoLev (SNoLev x) LLx1 (from right to left) at position 2.
An exact proof term for the current goal is H4.
Assume H4: SNoLev (SNoLev x)SNoLev x.
We will prove False.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using ordinal_SNoLev (SNoLev x) LLx1 (from right to left) at position 1.
An exact proof term for the current goal is H4.
Assume H3: x = SNoLev x.
Use symmetry.
An exact proof term for the current goal is H3.
Theorem. (SNo_max_ordinal) The following is provable:
∀x, SNo x(∀y ∈ SNoS_ (SNoLev x), y < x)ordinal x
Proof:
Let x be given.
Assume Hx: SNo x.
Assume H2: ∀y ∈ SNoS_ (SNoLev x), y < x.
We will prove ordinal x.
rewrite the current goal using SNo_max_SNoLev x Hx H2 (from right to left).
We will prove ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
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.
Theorem. (SNo_extend0_SNo_) The following is provable:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend0 x)
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
An exact proof term for the current goal is SNo_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) (λdelta ⇒ deltaxdeltaalpha).
Theorem. (SNo_extend1_SNo_) The following is provable:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend1 x)
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
An exact proof term for the current goal is SNo_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) (λdelta ⇒ deltaxdelta = alpha).
Theorem. (SNo_extend0_SNo) The following is provable:
∀x, SNo xSNo (SNo_extend0 x)
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNo_SNo (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend0 x) (SNo_extend0_SNo_ x Hx).
Theorem. (SNo_extend1_SNo) The following is provable:
∀x, SNo xSNo (SNo_extend1 x)
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNo_SNo (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend1 x) (SNo_extend1_SNo_ x Hx).
Theorem. (SNo_extend0_SNoLev) The following is provable:
∀x, SNo xSNoLev (SNo_extend0 x) = ordsucc (SNoLev x)
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNoLev_uniq2 (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend0 x) (SNo_extend0_SNo_ x Hx).
Theorem. (SNo_extend1_SNoLev) The following is provable:
∀x, SNo xSNoLev (SNo_extend1 x) = ordsucc (SNoLev x)
Proof:
Let x be given.
Assume Hx.
An exact proof term for the current goal is SNoLev_uniq2 (ordsucc (SNoLev x)) (ordinal_ordsucc (SNoLev x) (SNoLev_ordinal x Hx)) (SNo_extend1 x) (SNo_extend1_SNo_ x Hx).
Theorem. (SNo_extend0_nIn) The following is provable:
∀x, SNo xSNoLev xSNo_extend0 x
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
Assume H2: alphaPSNo (ordsucc alpha) (λdelta ⇒ deltaxdeltaalpha).
Set p to be the term λdelta ⇒ deltaxdeltaalpha of type setprop.
Apply binunionE {beta ∈ ordsucc alpha|p beta} {beta '|beta ∈ ordsucc alpha, ¬ p beta} alpha H2 to the current goal.
Assume H3: alpha{beta ∈ ordsucc alpha|p beta}.
Apply SepE2 (ordsucc alpha) p alpha H3 to the current goal.
Assume _.
Assume H4: alphaalpha.
Apply H4 to the current goal.
Use reflexivity.
Assume H3: alpha{beta '|beta ∈ ordsucc alpha, ¬ p beta}.
Apply ReplSepE_impred (ordsucc alpha) (λbeta ⇒ ¬ p beta) (λx ⇒ x ') alpha H3 to the current goal.
Let beta be given.
Assume Hb: betaordsucc alpha.
Assume H4: ¬ p beta.
Assume H5: alpha = beta '.
Apply tagged_not_ordinal beta to the current goal.
We will prove ordinal (beta ').
rewrite the current goal using H5 (from right to left).
We will prove ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
Theorem. (SNo_extend1_In) The following is provable:
∀x, SNo xSNoLev xSNo_extend1 x
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
Set p to be the term λdelta ⇒ deltaxdelta = alpha of type setprop.
We will prove alpha{beta ∈ ordsucc alpha|p beta}{beta '|beta ∈ ordsucc alpha, ¬ p beta}.
Apply binunionI1 to the current goal.
Apply SepI to the current goal.
We will prove alphaordsucc alpha.
Apply ordsuccI2 to the current goal.
We will prove alphaxalpha = alpha.
Apply orIR to the current goal.
Use reflexivity.
Theorem. (SNo_extend0_SNoEq) The following is provable:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend0 x) x
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We will prove SNoEq_ alpha (SNo_extend0 x) x.
Set p to be the term λbeta ⇒ betax of type setprop.
Set q to be the term λbeta ⇒ betaxbetaalpha of type setprop.
We will prove PNoEq_ alpha (λbeta ⇒ betaPSNo (ordsucc alpha) q) p.
Apply PNoEq_tra_ alpha (λbeta ⇒ betaPSNo (ordsucc alpha) q) q p to the current goal.
We will prove PNoEq_ alpha (λbeta ⇒ betaPSNo (ordsucc alpha) q) q.
Apply PNoEq_antimon_ (λbeta ⇒ betaPSNo (ordsucc alpha) q) q (ordsucc alpha) (ordinal_ordsucc alpha La) alpha (ordsuccI2 alpha) to the current goal.
We will prove PNoEq_ (ordsucc alpha) (λbeta ⇒ betaPSNo (ordsucc alpha) q) q.
An exact proof term for the current goal is PNoEq_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) q.
We will prove PNoEq_ alpha q p.
Apply PNoEq_sym_ to the current goal.
An exact proof term for the current goal is PNo_extend0_eq alpha p.
Theorem. (SNo_extend1_SNoEq) The following is provable:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend1 x) x
Proof:
Let x be given.
Assume Hx: SNo x.
Set alpha to be the term SNoLev x.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We will prove SNoEq_ alpha (SNo_extend1 x) x.
Set p to be the term λbeta ⇒ betax of type setprop.
Set q to be the term λbeta ⇒ betaxbeta = alpha of type setprop.
We will prove PNoEq_ alpha (λbeta ⇒ betaPSNo (ordsucc alpha) q) p.
Apply PNoEq_tra_ alpha (λbeta ⇒ betaPSNo (ordsucc alpha) q) q p to the current goal.
We will prove PNoEq_ alpha (λbeta ⇒ betaPSNo (ordsucc alpha) q) q.
Apply PNoEq_antimon_ (λbeta ⇒ betaPSNo (ordsucc alpha) q) q (ordsucc alpha) (ordinal_ordsucc alpha La) alpha (ordsuccI2 alpha) to the current goal.
We will prove PNoEq_ (ordsucc alpha) (λbeta ⇒ betaPSNo (ordsucc alpha) q) q.
An exact proof term for the current goal is PNoEq_PSNo (ordsucc alpha) (ordinal_ordsucc alpha La) q.
We will prove PNoEq_ alpha q p.
Apply PNoEq_sym_ to the current goal.
An exact proof term for the current goal is PNo_extend1_eq alpha p.
Theorem. (SNoLev_0_eq_0) The following is provable:
∀x, SNo xSNoLev x = 0x = 0
Proof:
Let x be given.
Assume Hx Hx0.
Apply SNo_eq x 0 Hx SNo_0 to the current goal.
We will prove SNoLev x = SNoLev 0.
rewrite the current goal using SNoLev_0 (from left to right).
An exact proof term for the current goal is Hx0.
We will prove SNoEq_ (SNoLev x) x 0.
rewrite the current goal using Hx0 (from left to right).
Let alpha be given.
Assume Ha: alpha0.
We will prove False.
An exact proof term for the current goal is EmptyE alpha Ha.
Definition. We define eps_ to be λn ⇒ {0}{(ordsucc m) '|m ∈ n} of type setset.
Theorem. (eps_ordinal_In_eq_0) The following is provable:
∀n alpha, ordinal alphaalphaeps_ nalpha = 0
Proof:
Let n and alpha be given.
Assume Ha.
Assume H1: alpha{0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} alpha H1 to the current goal.
Assume H2: alpha{0}.
An exact proof term for the current goal is SingE 0 alpha H2.
Assume H2: alpha{(ordsucc m) '|m ∈ n}.
We will prove False.
Apply ReplE_impred n (λm ⇒ (ordsucc m) ') alpha H2 to the current goal.
Let m be given.
Assume Hm: mn.
Assume H3: alpha = (ordsucc m) '.
Apply tagged_not_ordinal (ordsucc m) to the current goal.
We will prove ordinal ((ordsucc m) ').
rewrite the current goal using H3 (from right to left).
An exact proof term for the current goal is Ha.
Theorem. (eps_0_1) The following is provable:
eps_ 0 = 1
Proof:
Apply set_ext to the current goal.
Let x be given.
Assume Hx: x{0}{(ordsucc m) '|m ∈ 0}.
Apply binunionE {0} {(ordsucc m) '|m ∈ 0} x Hx to the current goal.
Assume Hx: x{0}.
rewrite the current goal using SingE 0 x Hx (from left to right).
We will prove 01.
An exact proof term for the current goal is In_0_1.
Assume Hx: x{(ordsucc m) '|m ∈ 0}.
Apply ReplE_impred 0 (λm ⇒ (ordsucc m) ') x Hx 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 x be given.
Assume Hx: x1.
Apply cases_1 x Hx (λx ⇒ xeps_ 0) to the current goal.
We will prove 0{0}{(ordsucc m) '|m ∈ 0}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Theorem. (SNo__eps_) The following is provable:
∀n ∈ ω, SNo_ (ordsucc n) (eps_ n)
Proof:
Let n be given.
Assume Hn.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
We will prove eps_ nSNoElts_ (ordsucc n)∀m ∈ ordsucc n, exactly1of2 (m 'eps_ n) (meps_ n).
Apply andI to the current goal.
Let x be given.
Assume Hx: x{0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} x Hx to the current goal.
Assume Hx: x{0}.
rewrite the current goal using SingE 0 x Hx (from left to right).
We will prove 0SNoElts_ (ordsucc n).
We will prove 0ordsucc n{beta '|beta ∈ ordsucc n}.
Apply binunionI1 to the current goal.
We will prove 0ordsucc n.
An exact proof term for the current goal is nat_0_in_ordsucc n Ln.
Assume Hx: x{(ordsucc m) '|m ∈ n}.
Apply ReplE_impred n (λm ⇒ (ordsucc m) ') x Hx to the current goal.
Let m be given.
Assume Hm: mn.
Assume Hxm: x = (ordsucc m) '.
We will prove xSNoElts_ (ordsucc n).
We will prove xordsucc n{beta '|beta ∈ ordsucc n}.
Apply binunionI2 to the current goal.
We will prove x{beta '|beta ∈ ordsucc n}.
rewrite the current goal using Hxm (from left to right).
We will prove (ordsucc m) '{beta '|beta ∈ ordsucc n}.
An exact proof term for the current goal is ReplI (ordsucc n) (λbeta ⇒ beta ') (ordsucc m) (nat_ordsucc_in_ordsucc n Ln m Hm).
Let m be given.
Assume Hm: mordsucc n.
We prove the intermediate claim Lm: nat_p m.
An exact proof term for the current goal is nat_p_trans (ordsucc n) (nat_ordsucc n Ln) m Hm.
Apply nat_inv m Lm to the current goal.
Assume Hm: m = 0.
rewrite the current goal using Hm (from left to right).
Apply exactly1of2_I2 to the current goal.
We will prove 0 'eps_ n.
Assume H1: 0 '{0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} (0 ') H1 to the current goal.
Assume H2: 0 '{0}.
Apply EmptyE {1} to the current goal.
We will prove {1}0.
rewrite the current goal using SingE 0 (0 ') H2 (from right to left) at position 2.
We will prove {1}0 '.
We will prove {1}0{{1}}.
Apply binunionI2 to the current goal.
We will prove {1}{{1}}.
Apply SingI to the current goal.
Assume H2: 0 '{(ordsucc m) '|m ∈ n}.
Apply ReplE_impred n (λm ⇒ (ordsucc m) ') (0 ') H2 to the current goal.
Let m be given.
Assume Hm: mn.
Assume H3: 0 ' = (ordsucc m) '.
Apply neq_0_ordsucc m to the current goal.
We will prove 0 = ordsucc m.
Apply tagged_eqE_eq to the current goal.
We will prove ordinal 0.
An exact proof term for the current goal is ordinal_Empty.
We will prove ordinal (ordsucc m).
An exact proof term for the current goal is (nat_p_ordinal (ordsucc m) (nat_ordsucc m (nat_p_trans n Ln m Hm))).
We will prove 0 ' = (ordsucc m) '.
An exact proof term for the current goal is H3.
We will prove 0eps_ n.
We will prove 0{0}{(ordsucc m) '|m ∈ n}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is SingI 0.
Assume H1.
Apply H1 to the current goal.
Let k be given.
Assume H1.
Apply H1 to the current goal.
Assume Hk: nat_p k.
Assume Hmk: m = ordsucc k.
We prove the intermediate claim Lm: nat_p m.
rewrite the current goal using Hmk (from left to right).
An exact proof term for the current goal is nat_ordsucc k Hk.
We prove the intermediate claim LSk: ordsucc kordsucc n.
rewrite the current goal using Hmk (from right to left).
An exact proof term for the current goal is Hm.
We prove the intermediate claim Lk: kn.
Apply ordsuccE n (ordsucc k) LSk to the current goal.
Assume H2: ordsucc kn.
Apply nat_trans n Ln (ordsucc k) H2 to the current goal.
We will prove kordsucc k.
Apply ordsuccI2 to the current goal.
Assume H2: ordsucc k = n.
rewrite the current goal using H2 (from right to left).
Apply ordsuccI2 to the current goal.
Apply exactly1of2_I1 to the current goal.
We will prove m 'eps_ n.
We will prove m '{0}{(ordsucc m) '|m ∈ n}.
Apply binunionI2 to the current goal.
rewrite the current goal using Hmk (from left to right).
We will prove (ordsucc k) '{(ordsucc m) '|m ∈ n}.
An exact proof term for the current goal is ReplI n (λk ⇒ (ordsucc k) ') k Lk.
We will prove meps_ n.
Assume H1: m{0}{(ordsucc m) '|m ∈ n}.
Apply binunionE {0} {(ordsucc m) '|m ∈ n} m H1 to the current goal.
Assume H2: m{0}.
Apply EmptyE 0 to the current goal.
We will prove 00.
rewrite the current goal using SingE 0 m H2 (from right to left) at position 2.
We will prove 0m.
rewrite the current goal using Hmk (from left to right).
An exact proof term for the current goal is nat_0_in_ordsucc k Hk.
Assume H2: m{(ordsucc j) '|j ∈ n}.
Apply ReplE_impred n (λj ⇒ (ordsucc j) ') m H2 to the current goal.
Let j be given.
Assume Hj: jn.
Assume Hmj: m = (ordsucc j) '.
Apply tagged_not_ordinal (ordsucc j) to the current goal.
We will prove ordinal ((ordsucc j) ').
rewrite the current goal using Hmj (from right to left).
We will prove ordinal m.
An exact proof term for the current goal is nat_p_ordinal m Lm.
Theorem. (SNo_eps_) The following is provable:
∀n ∈ ω, SNo (eps_ n)
Proof:
Let n be given.
Assume Hn.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
An exact proof term for the current goal is SNo_SNo (ordsucc n) (ordinal_ordsucc n (nat_p_ordinal n Ln)) (eps_ n) (SNo__eps_ n Hn).
Theorem. (SNo_eps_1) The following is provable:
SNo (eps_ 1)
Proof:
An exact proof term for the current goal is SNo_eps_ 1 (nat_p_omega 1 nat_1).
Theorem. (SNoLev_eps_) The following is provable:
∀n ∈ ω, SNoLev (eps_ n) = ordsucc n
Proof:
Let n be given.
Assume Hn.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
Apply SNoLev_uniq2 (ordsucc n) (ordinal_ordsucc n (nat_p_ordinal n Ln)) (eps_ n) (SNo__eps_ n Hn) to the current goal.
Theorem. (SNo_eps_SNoS_omega) The following is provable:
∀n ∈ ω, eps_ nSNoS_ ω
Proof:
Let n be given.
Assume Hn.
Apply SNoS_I ω omega_ordinal (eps_ n) (ordsucc n) to the current goal.
We will prove ordsucc nω.
An exact proof term for the current goal is omega_ordsucc n Hn.
We will prove SNo_ (ordsucc n) (eps_ n).
An exact proof term for the current goal is SNo__eps_ n Hn.
Theorem. (SNo_eps_decr) The following is provable:
∀n ∈ ω, ∀m ∈ n, eps_ n < eps_ m
Proof:
Let n be given.
Assume Hn.
Let m be given.
Assume Hm.
We prove the intermediate claim Lnn: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
We prove the intermediate claim Lmn: nat_p m.
An exact proof term for the current goal is nat_p_trans n Lnn m Hm.
We prove the intermediate claim Lm: mω.
An exact proof term for the current goal is nat_p_omega m Lmn.
Apply SNoLtI3 to the current goal.
We will prove SNoLev (eps_ m)SNoLev (eps_ n).
rewrite the current goal using SNoLev_eps_ m Lm (from left to right).
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
We will prove ordsucc mordsucc n.
An exact proof term for the current goal is nat_ordsucc_in_ordsucc n Lnn m Hm.
We will prove SNoEq_ (SNoLev (eps_ m)) (eps_ n) (eps_ m).
rewrite the current goal using SNoLev_eps_ m Lm (from left to right).
We will prove SNoEq_ (ordsucc m) (eps_ n) (eps_ m).
Let k be given.
Assume Hk: kordsucc m.
We will prove keps_ nkeps_ m.
We prove the intermediate claim Lk: ordinal k.
An exact proof term for the current goal is nat_p_ordinal k (nat_p_trans (ordsucc m) (nat_ordsucc m Lmn) k Hk).
Apply iffI to the current goal.
Assume H1: keps_ n.
rewrite the current goal using eps_ordinal_In_eq_0 n k Lk H1 (from left to right).
We will prove 0eps_ m.
We will prove 0{0}{(ordsucc j) '|j ∈ m}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Assume H1: keps_ m.
rewrite the current goal using eps_ordinal_In_eq_0 m k Lk H1 (from left to right).
We will prove 0eps_ n.
We will prove 0{0}{(ordsucc j) '|j ∈ n}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
We will prove SNoLev (eps_ m)eps_ n.
rewrite the current goal using SNoLev_eps_ m Lm (from left to right).
Assume H1: ordsucc meps_ n.
Apply neq_ordsucc_0 m to the current goal.
We will prove ordsucc m = 0.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (ordsucc m) (ordinal_ordsucc m (nat_p_ordinal m Lmn)) H1.
Theorem. (SNo_eps_pos) The following is provable:
∀n ∈ ω, 0 < eps_ n
Proof:
Let n be given.
Assume Hn.
Apply SNoLtI2 0 (eps_ n) to the current goal.
We will prove SNoLev 0SNoLev (eps_ n).
rewrite the current goal using SNoLev_0 (from left to right).
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
We will prove 0ordsucc n.
An exact proof term for the current goal is nat_0_in_ordsucc n (omega_nat_p n Hn).
We will prove SNoEq_ (SNoLev 0) 0 (eps_ n).
rewrite the current goal using SNoLev_0 (from left to right).
Let alpha be given.
Assume Ha: alpha0.
We will prove False.
An exact proof term for the current goal is EmptyE alpha Ha.
We will prove SNoLev 0eps_ n.
rewrite the current goal using SNoLev_0 (from left to right).
We will prove 0eps_ n.
We will prove 0{0}{(ordsucc m) '|m ∈ n}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Theorem. (SNo_pos_eps_Lt) The following is provable:
∀n, nat_p n∀x ∈ SNoS_ (ordsucc n), 0 < xeps_ n < x
Proof:
Let n be given.
Assume Hn: nat_p n.
Let x be given.
Assume Hx: xSNoS_ (ordsucc n).
Assume Hxpos: 0 < x.
We prove the intermediate claim Ln: nω.
An exact proof term for the current goal is nat_p_omega n Hn.
Apply SNoS_E2 (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n Hn)) x Hx to the current goal.
Assume Hx1: SNoLev xordsucc n.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove eps_ n < x.
Apply SNoLt_trichotomy_or_impred (eps_ n) x (SNo_eps_ n Ln) Hx3 to the current goal.
Assume H2: eps_ n < x.
An exact proof term for the current goal is H2.
Assume H2: eps_ n = x.
We will prove False.
Apply In_irref (ordsucc n) to the current goal.
rewrite the current goal using SNoLev_eps_ n Ln (from right to left) at position 1.
We will prove SNoLev (eps_ n)ordsucc n.
rewrite the current goal using H2 (from left to right).
An exact proof term for the current goal is Hx1.
Assume H2: x < eps_ n.
We will prove False.
Apply SNoLtE x (eps_ n) Hx3 (SNo_eps_ n Ln) H2 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev zSNoLev xSNoLev (eps_ n).
Assume Hz3: SNoEq_ (SNoLev z) z x.
Assume Hz4: SNoEq_ (SNoLev z) z (eps_ n).
Assume Hz5: x < z.
Assume Hz6: z < eps_ n.
Assume Hz7: SNoLev zx.
Assume Hz8: SNoLev zeps_ n.
We prove the intermediate claim Lz0: z = 0.
Apply SNoLev_0_eq_0 z Hz1 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev z) (SNoLev_ordinal z Hz1) Hz8.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLt_tra x z x Hx3 Hz1 Hx3 Hz5 to the current goal.
We will prove z < x.
rewrite the current goal using Lz0 (from left to right).
An exact proof term for the current goal is Hxpos.
Assume H1: SNoLev xSNoLev (eps_ n).
Assume H2: SNoEq_ (SNoLev x) x (eps_ n).
Assume H3: SNoLev x(eps_ n).
We prove the intermediate claim Lx0: x = 0.
Apply SNoLev_0_eq_0 x Hx3 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev x) Hx2 H3.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using Lx0 (from left to right) at position 1.
An exact proof term for the current goal is Hxpos.
rewrite the current goal using SNoLev_eps_ n Ln (from left to right).
Assume H1: ordsucc nSNoLev x.
We will prove False.
An exact proof term for the current goal is In_no2cycle (SNoLev x) (ordsucc n) Hx1 H1.
Theorem. (SNo_pos_eps_Le) The following is provable:
∀n, nat_p n∀x ∈ SNoS_ (ordsucc (ordsucc n)), 0 < xeps_ nx
Proof:
Let n be given.
Assume Hn.
Let x be given.
Assume Hx: xSNoS_ (ordsucc (ordsucc n)).
Assume Hxpos: 0 < x.
We prove the intermediate claim Ln: nω.
An exact proof term for the current goal is nat_p_omega n Hn.
Apply SNoS_E2 (ordsucc (ordsucc n)) (nat_p_ordinal (ordsucc (ordsucc n)) (nat_ordsucc (ordsucc n) (nat_ordsucc n Hn))) x Hx to the current goal.
Assume Hx1: SNoLev xordsucc (ordsucc n).
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
We will prove eps_ nx.
Apply SNoLtLe_or x (eps_ n) Hx3 (SNo_eps_ n Ln) to the current goal.
Assume H2: x < eps_ n.
We will prove False.
Apply SNoLtE x (eps_ n) Hx3 (SNo_eps_ n Ln) H2 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev zSNoLev xSNoLev (eps_ n).
Assume Hz3: SNoEq_ (SNoLev z) z x.
Assume Hz4: SNoEq_ (SNoLev z) z (eps_ n).
Assume Hz5: x < z.
Assume Hz6: z < eps_ n.
Assume Hz7: SNoLev zx.
Assume Hz8: SNoLev zeps_ n.
We prove the intermediate claim Lz0: z = 0.
Apply SNoLev_0_eq_0 z Hz1 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev z) (SNoLev_ordinal z Hz1) Hz8.
Apply SNoLt_irref x to the current goal.
We will prove x < x.
Apply SNoLt_tra x z x Hx3 Hz1 Hx3 Hz5 to the current goal.
We will prove z < x.
rewrite the current goal using Lz0 (from left to right).
An exact proof term for the current goal is Hxpos.
Assume H1: SNoLev xSNoLev (eps_ n).
Assume H2: SNoEq_ (SNoLev x) x (eps_ n).
Assume H3: SNoLev x(eps_ n).
We prove the intermediate claim Lx0: x = 0.
Apply SNoLev_0_eq_0 x Hx3 to the current goal.
An exact proof term for the current goal is eps_ordinal_In_eq_0 n (SNoLev x) Hx2 H3.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using Lx0 (from left to right) at position 1.
An exact proof term for the current goal is Hxpos.
rewrite the current goal using SNoLev_eps_ n Ln (from left to right).
Assume H3: ordsucc nSNoLev x.
We will prove False.
Apply ordsuccE (ordsucc n) (SNoLev x) Hx1 to the current goal.
Assume H4: SNoLev xordsucc n.
An exact proof term for the current goal is In_no2cycle (SNoLev x) (ordsucc n) H4 H3.
Assume H4: SNoLev x = ordsucc n.
Apply In_irref (SNoLev x) to the current goal.
rewrite the current goal using H4 (from left to right) at position 1.
An exact proof term for the current goal is H3.
Assume H2: eps_ nx.
An exact proof term for the current goal is H2.
Theorem. (eps_SNo_eq) The following is provable:
∀n, nat_p n∀x ∈ SNoS_ (ordsucc n), 0 < xSNoEq_ (SNoLev x) (eps_ n) x∃m ∈ n, x = eps_ m
Proof:
Let n be given.
Assume Hn.
Let x be given.
Assume Hx1: xSNoS_ (ordsucc n).
Assume Hx2: 0 < x.
Assume Hx3: SNoEq_ (SNoLev x) (eps_ n) x.
Apply SNoS_E2 (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n Hn)) x Hx1 to the current goal.
Assume Hx1a: SNoLev xordsucc n.
Assume Hx1b: ordinal (SNoLev x).
Assume Hx1c: SNo x.
Assume Hx1d: SNo_ (SNoLev x) x.
We prove the intermediate claim L1: nat_p (SNoLev x).
Apply nat_p_trans (ordsucc n) (nat_ordsucc n Hn) to the current goal.
We will prove SNoLev xordsucc n.
An exact proof term for the current goal is Hx1a.
Apply nat_inv (SNoLev x) L1 to the current goal.
Assume H1: SNoLev x = 0.
We will prove False.
We prove the intermediate claim L2: x = 0.
An exact proof term for the current goal is SNoLev_0_eq_0 x Hx1c H1.
Apply SNoLt_irref x to the current goal.
rewrite the current goal using L2 (from left to right) at position 1.
An exact proof term for the current goal is Hx2.
Assume H1.
Apply H1 to the current goal.
Let m be given.
Assume H1.
Apply H1 to the current goal.
Assume Hm1: nat_p m.
Assume Hm2: SNoLev x = ordsucc m.
We use m to witness the existential quantifier.
Apply andI to the current goal.
We will prove mn.
Apply nat_ordsucc_trans n Hn (SNoLev x) Hx1a to the current goal.
We will prove mSNoLev x.
rewrite the current goal using Hm2 (from left to right).
Apply ordsuccI2 to the current goal.
We will prove x = eps_ m.
Apply SNo_eq x (eps_ m) Hx1c (SNo_eps_ m (nat_p_omega m Hm1)) to the current goal.
We will prove SNoLev x = SNoLev (eps_ m).
rewrite the current goal using SNoLev_eps_ m (nat_p_omega m Hm1) (from left to right).
An exact proof term for the current goal is Hm2.
We will prove SNoEq_ (SNoLev x) x (eps_ m).
Apply SNoEq_tra_ (SNoLev x) x (eps_ n) (eps_ m) to the current goal.
Apply SNoEq_sym_ to the current goal.
An exact proof term for the current goal is Hx3.
We will prove SNoEq_ (SNoLev x) (eps_ n) (eps_ m).
rewrite the current goal using Hm2 (from left to right).
We will prove SNoEq_ (ordsucc m) (eps_ n) (eps_ m).
Apply SNoEq_I to the current goal.
Let k be given.
Assume Hk: kordsucc m.
We prove the intermediate claim L3: ordinal k.
An exact proof term for the current goal is nat_p_ordinal k (nat_p_trans (ordsucc m) (nat_ordsucc m Hm1) k Hk).
Apply iffI to the current goal.
Assume H2: keps_ n.
rewrite the current goal using eps_ordinal_In_eq_0 n k L3 H2 (from left to right).
We will prove 0eps_ m.
We will prove 0{0}{SetAdjoin (ordsucc k) {1}|k ∈ m}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Assume H2: keps_ m.
rewrite the current goal using eps_ordinal_In_eq_0 m k L3 H2 (from left to right).
We will prove 0eps_ n.
We will prove 0{0}{SetAdjoin (ordsucc k) {1}|k ∈ n}.
Apply binunionI1 to the current goal.
Apply SingI to the current goal.
Theorem. (eps_SNoCutP) The following is provable:
∀n ∈ ω, SNoCutP {0} {eps_ m|m ∈ n}
Proof:
Let n be given.
Assume Hn.
Set L to be the term {0}.
Set R to be the term {eps_ m|m ∈ n}.
We prove the intermediate claim Ln: nat_p n.
An exact proof term for the current goal is omega_nat_p n Hn.
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.
rewrite the current goal using SingE 0 w Hw (from left to right).
An exact proof term for the current goal is SNo_0.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: mn.
Assume Hm2: z = eps_ m.
rewrite the current goal using Hm2 (from left to right).
Apply SNo_eps_ to the current goal.
We will prove mω.
Apply nat_p_omega to the current goal.
An exact proof term for the current goal is nat_p_trans n Ln m Hm1.
Let w be given.
Assume Hw.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: mn.
Assume Hm2: z = eps_ m.
rewrite the current goal using SingE 0 w Hw (from left to right).
rewrite the current goal using Hm2 (from left to right).
We will prove 0 < eps_ m.
Apply SNo_eps_pos to the current goal.
We will prove mω.
Apply nat_p_omega to the current goal.
An exact proof term for the current goal is nat_p_trans n Ln m Hm1.
Theorem. (eps_SNoCut) The following is provable:
∀n ∈ ω, eps_ n = SNoCut {0} {eps_ m|m ∈ n}
Proof:
Let n be given.
Assume Hn.
Set L to be the term {0}.
Set R to be the term {eps_ m|m ∈ n}.
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 L1: SNoCutP L R.
An exact proof term for the current goal is eps_SNoCutP n Hn.
We prove the intermediate claim LRS: ∀z ∈ R, SNo z.
Apply L1 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 L2: (x ∈ Lordsucc (SNoLev x)) = 1.
Apply set_ext to the current goal.
Let k be given.
Assume Hk.
Apply famunionE_impred L (λx ⇒ ordsucc (SNoLev x)) k Hk to the current goal.
Let w be given.
Assume Hw: wL.
rewrite the current goal using SingE 0 w Hw (from left to right).
rewrite the current goal using SNoLev_0 (from left to right).
Assume H2: k1.
We will prove k1.
An exact proof term for the current goal is H2.
Let i be given.
Assume Hi.
Apply cases_1 i Hi (λi ⇒ ix ∈ Lordsucc (SNoLev x)) to the current goal.
We will prove 0x ∈ Lordsucc (SNoLev x).
Apply famunionI L (λx ⇒ ordsucc (SNoLev x)) 0 0 (SingI 0) to the current goal.
We will prove 0ordsucc (SNoLev 0).
rewrite the current goal using SNoLev_0 (from left to right).
An exact proof term for the current goal is In_0_1.
We prove the intermediate claim L3: n0(y ∈ Rordsucc (SNoLev y)) = ordsucc n.
Assume Hn0: n0.
Apply set_ext to the current goal.
Let k be given.
Assume Hk.
Apply famunionE_impred R (λy ⇒ ordsucc (SNoLev y)) k Hk to the current goal.
Let z be given.
Assume Hz: zR.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: mn.
Assume Hm2: z = eps_ m.
rewrite the current goal using Hm2 (from left to right).
rewrite the current goal using SNoLev_eps_ m (nat_p_omega m (nat_p_trans n Ln m Hm1)) (from left to right).
Assume H2: kordsucc (ordsucc m).
We will prove kordsucc n.
We prove the intermediate claim L3a: ordsucc mordsucc n.
Apply ordinal_ordsucc_In to the current goal.
We will prove ordinal n.
Apply nat_p_ordinal n to the current goal.
An exact proof term for the current goal is Ln.
An exact proof term for the current goal is Hm1.
We prove the intermediate claim L3b: ordsucc mordsucc n.
An exact proof term for the current goal is nat_trans (ordsucc n) (nat_ordsucc n Ln) (ordsucc m) L3a.
Apply ordsuccE (ordsucc m) k H2 to the current goal.
Assume H3: kordsucc m.
Apply L3b to the current goal.
An exact proof term for the current goal is H3.
Assume H3: k = ordsucc m.
rewrite the current goal using H3 (from left to right).
An exact proof term for the current goal is L3a.
Let i be given.
Assume Hi: iordsucc n.
We will prove iy ∈ Rordsucc (SNoLev y).
Apply nat_inv n Ln to the current goal.
Assume H2: n = 0.
We will prove False.
An exact proof term for the current goal is Hn0 H2.
Assume H2.
Apply H2 to the current goal.
Let n' be given.
Assume H2.
Apply H2 to the current goal.
Assume Hn'1: nat_p n'.
Assume Hn'2: n = ordsucc n'.
Apply famunionI R (λy ⇒ ordsucc (SNoLev y)) (eps_ n') i to the current goal.
We will prove eps_ n'R.
Apply ReplI to the current goal.
We will prove n'n.
rewrite the current goal using Hn'2 (from left to right).
Apply ordsuccI2 to the current goal.
We will prove iordsucc (SNoLev (eps_ n')).
rewrite the current goal using SNoLev_eps_ n' (nat_p_omega n' Hn'1) (from left to right).
We will prove iordsucc (ordsucc n').
rewrite the current goal using Hn'2 (from right to left).
An exact proof term for the current goal is Hi.
We prove the intermediate claim L4: (x ∈ Lordsucc (SNoLev x))(y ∈ Rordsucc (SNoLev y)) = ordsucc n.
Apply xm (n = 0) to the current goal.
Assume H2: n = 0.
We prove the intermediate claim L4a: R = 0.
Apply Empty_eq to the current goal.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
rewrite the current goal using H2 (from left to right).
Assume Hm1: m0.
We will prove False.
An exact proof term for the current goal is EmptyE m Hm1.
rewrite the current goal using L4a (from left to right).
rewrite the current goal using famunion_Empty (λy ⇒ ordsucc (SNoLev y)) (from left to right).
We will prove (x ∈ Lordsucc (SNoLev x))0 = ordsucc n.
rewrite the current goal using binunion_idr (from left to right).
We will prove (x ∈ Lordsucc (SNoLev x)) = ordsucc n.
rewrite the current goal using H2 (from left to right).
An exact proof term for the current goal is L2.
Assume H2: n0.
rewrite the current goal using L3 H2 (from right to left).
rewrite the current goal using Subq_binunion_eq (from right to left).
rewrite the current goal using L2 (from left to right).
rewrite the current goal using L3 H2 (from left to right).
We will prove 1ordsucc n.
Let i be given.
Assume Hi.
Apply cases_1 i Hi (λi ⇒ iordsucc n) to the current goal.
We will prove 0ordsucc n.
Apply nat_0_in_ordsucc to the current goal.
An exact proof term for the current goal is Ln.
Apply SNoCutP_SNoCut_impred L R L1 to the current goal.
Assume H1: SNo (SNoCut L R).
rewrite the current goal using L4 (from left to right).
Assume H2: SNoLev (SNoCut L R)ordsucc (ordsucc n).
Assume H3: ∀w ∈ L, w < SNoCut L R.
Assume H4: ∀z ∈ R, SNoCut L R < z.
Assume H5: ∀u, SNo u(∀w ∈ L, w < u)(∀z ∈ R, u < z)SNoLev (SNoCut L R)SNoLev uSNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) u.
We prove the intermediate claim L5: SNo (eps_ n).
An exact proof term for the current goal is SNo_eps_ n Hn.
We prove the intermediate claim L6: ∀w ∈ L, w < eps_ n.
Let w be given.
Assume Hw.
rewrite the current goal using SingE 0 w Hw (from left to right).
We will prove 0 < eps_ n.
An exact proof term for the current goal is SNo_eps_pos n Hn.
We prove the intermediate claim L7: ∀z ∈ R, eps_ n < z.
Let z be given.
Assume Hz.
Apply ReplE_impred n eps_ z Hz to the current goal.
Let m be given.
Assume Hm1: mn.
Assume Hm2: z = eps_ m.
rewrite the current goal using Hm2 (from left to right).
We will prove eps_ n < eps_ m.
An exact proof term for the current goal is SNo_eps_decr n Hn m Hm1.
Apply H5 (eps_ n) L5 L6 L7 to the current goal.
Assume H6: SNoLev (SNoCut L R)SNoLev (eps_ n).
Assume H7: SNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) (eps_ n).
Use symmetry.
Apply SNo_eq (SNoCut L R) (eps_ n) H1 L5 to the current goal.
We will prove SNoLev (SNoCut L R) = SNoLev (eps_ n).
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
We will prove SNoLev (SNoCut L R) = ordsucc n.
Apply ordsuccE (ordsucc n) (SNoLev (SNoCut L R)) H2 to the current goal.
Assume H8: SNoLev (SNoCut L R)ordsucc n.
We will prove False.
We prove the intermediate claim L8: eps_ n < SNoCut L R.
Apply SNo_pos_eps_Lt n (omega_nat_p n Hn) (SNoCut L R) to the current goal.
We will prove SNoCut L RSNoS_ (ordsucc n).
Apply SNoS_I (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n (omega_nat_p n Hn))) (SNoCut L R) (SNoLev (SNoCut L R)) H8 to the current goal.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
An exact proof term for the current goal is SNoLev_ (SNoCut L R) H1.
We will prove 0 < SNoCut L R.
Apply H3 to the current goal.
Apply SingI to the current goal.
Apply SNoLtE (eps_ n) (SNoCut L R) (SNo_eps_ n Hn) H1 L8 to the current goal.
Let z be given.
Assume Hz1: SNo z.
Assume Hz2: SNoLev zSNoLev (eps_ n)SNoLev (SNoCut L R).
Assume Hz3: SNoEq_ (SNoLev z) z (eps_ n).
Assume Hz4: SNoEq_ (SNoLev z) z (SNoCut L R).
Assume Hz5: eps_ n < z.
Assume Hz6: z < SNoCut L R.
Assume Hz7: SNoLev zeps_ n.
Assume Hz8: SNoLev zSNoCut L R.
We prove the intermediate claim L9: ∀w ∈ L, w < z.
Let w be given.
Assume Hw.
rewrite the current goal using SingE 0 w Hw (from left to right).
We will prove 0 < z.
Apply SNoLt_tra 0 (eps_ n) z SNo_0 (SNo_eps_ n Hn) Hz1 to the current goal.
An exact proof term for the current goal is SNo_eps_pos n Hn.
An exact proof term for the current goal is Hz5.
We prove the intermediate claim L10: ∀v ∈ R, z < v.
Let v be given.
Assume Hv.
Apply SNoLt_tra z (SNoCut L R) v Hz1 H1 (LRS v Hv) Hz6 to the current goal.
We will prove SNoCut L R < v.
Apply H4 to the current goal.
An exact proof term for the current goal is Hv.
Apply H5 z Hz1 L9 L10 to the current goal.
Assume H9: SNoLev (SNoCut L R)SNoLev z.
We will prove False.
Apply In_irref (SNoLev z) to the current goal.
Apply H9 to the current goal.
An exact proof term for the current goal is binintersectE2 (SNoLev (eps_ n)) (SNoLev (SNoCut L R)) (SNoLev z) Hz2.
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
Assume H9: ordsucc nSNoLev (SNoCut L R).
We will prove False.
An exact proof term for the current goal is In_no2cycle (SNoLev (SNoCut L R)) (ordsucc n) H8 H9.
rewrite the current goal using SNoLev_eps_ n Hn (from left to right).
Assume H9: SNoLev (SNoCut L R)ordsucc n.
Assume H10: SNoEq_ (SNoLev (SNoCut L R)) (eps_ n) (SNoCut L R).
Assume H11: SNoLev (SNoCut L R)eps_ n.
We prove the intermediate claim L11: ∃m ∈ n, SNoCut L R = eps_ m.
Apply eps_SNo_eq n (omega_nat_p n Hn) (SNoCut L R) to the current goal.
We will prove SNoCut L RSNoS_ (ordsucc n).
Apply SNoS_I (ordsucc n) (nat_p_ordinal (ordsucc n) (nat_ordsucc n (omega_nat_p n Hn))) (SNoCut L R) (SNoLev (SNoCut L R)) to the current goal.
We will prove SNoLev (SNoCut L R)ordsucc n.
An exact proof term for the current goal is H9.
We will prove SNo_ (SNoLev (SNoCut L R)) (SNoCut L R).
Apply SNoLev_ to the current goal.
An exact proof term for the current goal is H1.
We will prove 0 < SNoCut L R.
Apply H3 to the current goal.
Apply SingI to the current goal.
We will prove SNoEq_ (SNoLev (SNoCut L R)) (eps_ n) (SNoCut L R).
An exact proof term for the current goal is H10.
Apply L11 to the current goal.
Let m be given.
Assume H12.
Apply H12 to the current goal.
Assume Hm1: mn.
Assume Hm2: SNoCut L R = eps_ m.
Apply SNoLt_irref (eps_ m) to the current goal.
We will prove eps_ m < eps_ m.
rewrite the current goal using Hm2 (from right to left) at position 1.
We will prove SNoCut L R < eps_ m.
Apply H4 to the current goal.
We will prove eps_ m{eps_ m|m ∈ n}.
Apply ReplI to the current goal.
An exact proof term for the current goal is Hm1.
Assume H8: SNoLev (SNoCut L R) = ordsucc n.
An exact proof term for the current goal is H8.
An exact proof term for the current goal is H7.
End of Section TaggedSets2
Theorem. (SNo_etaE) The following is provable:
∀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
Proof:
Let z be given.
Assume Hz: SNo z.
Let p be given.
Assume H1.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
Set L to be the term {x ∈ SNoS_ (SNoLev z)|x < z}.
Set R to be the term {y ∈ SNoS_ (SNoLev z)|z < y}.
We prove the intermediate claim L1: z = SNoCut L R.
An exact proof term for the current goal is SNo_eta z Hz.
We prove the intermediate claim LL: ∀x, xLSNo xSNoLev xSNoLev zx < z.
Let x be given.
Assume Hx: xL.
Apply SepE (SNoS_ (SNoLev z)) (λx ⇒ x < z) x Hx to the current goal.
Assume Hx1: xSNoS_ (SNoLev z).
Assume Hx2: x < z.
Apply SNoS_E (SNoLev z) LLz x Hx1 to the current goal.
Let beta be given.
Assume Hx3.
Apply Hx3 to the current goal.
Assume Hb: betaSNoLev z.
Assume Hx3: SNo_ beta x.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
We prove the intermediate claim Lx1: SNo x.
We will prove ∃alpha, ordinal alphaSNo_ alpha x.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Lb.
An exact proof term for the current goal is Hx3.
We prove the intermediate claim Lx2: SNoLev x = beta.
Apply SNoLev_prop x Lx1 to the current goal.
Assume Hx4: ordinal (SNoLev x).
Assume Hx5: SNo_ (SNoLev x) x.
Apply SNoLev_uniq x to the current goal.
An exact proof term for the current goal is Hx4.
An exact proof term for the current goal is Lb.
Apply Hx5 to the current goal.
An exact proof term for the current goal is Hx3.
We prove the intermediate claim Lx3: SNoLev xSNoLev z.
rewrite the current goal using Lx2 (from left to right).
An exact proof term for the current goal is Hb.
Apply and3I to the current goal.
We will prove SNo x.
An exact proof term for the current goal is Lx1.
We will prove SNoLev xSNoLev z.
An exact proof term for the current goal is Lx3.
We will prove x < z.
An exact proof term for the current goal is Hx2.
We prove the intermediate claim LR: ∀y, yRSNo ySNoLev ySNoLev zz < y.
Let y be given.
Assume Hy: yR.
Apply SepE (SNoS_ (SNoLev z)) (λy ⇒ z < y) y Hy to the current goal.
Assume Hy1: ySNoS_ (SNoLev z).
Assume Hy2: z < y.
Apply SNoS_E (SNoLev z) LLz y Hy1 to the current goal.
Let beta be given.
Assume Hy3.
Apply Hy3 to the current goal.
Assume Hb: betaSNoLev z.
Assume Hy3: SNo_ beta y.
We prove the intermediate claim Lb: ordinal beta.
An exact proof term for the current goal is ordinal_Hered (SNoLev z) LLz beta Hb.
We prove the intermediate claim Ly1: SNo y.
We will prove ∃alpha, ordinal alphaSNo_ alpha y.
We use beta to witness the existential quantifier.
Apply andI to the current goal.
An exact proof term for the current goal is Lb.
An exact proof term for the current goal is Hy3.
We prove the intermediate claim Ly2: SNoLev y = beta.
Apply SNoLev_prop y Ly1 to the current goal.
Assume Hy4: ordinal (SNoLev y).
Assume Hy5: SNo_ (SNoLev y) y.
Apply SNoLev_uniq y to the current goal.
An exact proof term for the current goal is Hy4.
An exact proof term for the current goal is Lb.
Apply Hy5 to the current goal.
An exact proof term for the current goal is Hy3.
We prove the intermediate claim Ly3: SNoLev ySNoLev z.
rewrite the current goal using Ly2 (from left to right).
An exact proof term for the current goal is Hb.
Apply and3I to the current goal.
We will prove SNo y.
An exact proof term for the current goal is Ly1.
We will prove SNoLev ySNoLev z.
An exact proof term for the current goal is Ly3.
We will prove z < y.
An exact proof term for the current goal is Hy2.
Apply H1 L R to the current goal.
We will prove SNoCutP L R.
We will prove (∀x ∈ L, SNo x)(∀y ∈ R, SNo y)(∀x ∈ L, ∀y ∈ R, x < y).
Apply and3I to the current goal.
Let x be given.
Assume Hx.
Apply LL x Hx 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 y be given.
Assume Hy.
Apply LR y Hy 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 x be given.
Assume Hx.
Let y be given.
Assume Hy.
Apply LL x Hx to the current goal.
Assume H2.
Apply H2 to the current goal.
Assume H2: SNo x.
Assume H3: SNoLev xSNoLev z.
Assume H4: x < z.
Apply LR y Hy to the current goal.
Assume H5.
Apply H5 to the current goal.
Assume H5: SNo y.
Assume H6: SNoLev ySNoLev z.
Assume H7: z < y.
An exact proof term for the current goal is SNoLt_tra x z y H2 Hz H5 H4 H7.
We will prove ∀x ∈ L, SNoLev xSNoLev z.
Let x be given.
Assume Hx.
Apply LL x Hx 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 ∀y ∈ R, SNoLev ySNoLev z.
Let y be given.
Assume Hy.
Apply LR y Hy 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 z = SNoCut L R.
An exact proof term for the current goal is L1.
Theorem. (SNo_ind) The following is provable:
∀P : setprop, (∀L R, SNoCutP L R(∀x ∈ L, P x)(∀y ∈ R, P y)P (SNoCut L R))∀z, SNo zP z
Proof:
Let P be given.
Assume H1.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀z, SNo zSNoLev zalphaP z.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IH: ∀beta ∈ alpha, ∀z, SNo zSNoLev zbetaP z.
Let z be given.
Assume Hz: SNo z.
Assume Hz2: SNoLev zalpha.
We will prove P z.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
Apply SNo_etaE z Hz to the current goal.
Let L and R be given.
Assume H2: SNoCutP L R.
Assume H3: ∀x ∈ L, SNoLev xSNoLev z.
Assume H4: ∀y ∈ R, SNoLev ySNoLev z.
Assume H5: z = SNoCut L R.
Apply H2 to the current goal.
Assume H6.
Apply H6 to the current goal.
Assume H6: ∀x ∈ L, SNo x.
Assume H7: ∀y ∈ R, SNo y.
Assume H8: ∀x ∈ L, ∀y ∈ R, x < y.
rewrite the current goal using H5 (from left to right).
We will prove P (SNoCut L R).
Apply H1 to the current goal.
We will prove SNoCutP L R.
An exact proof term for the current goal is H2.
We will prove ∀x, xLP x.
Let x be given.
Assume Hx: xL.
Apply IH (SNoLev z) Hz2 x to the current goal.
We will prove SNo x.
An exact proof term for the current goal is H6 x Hx.
We will prove SNoLev xSNoLev z.
An exact proof term for the current goal is H3 x Hx.
We will prove ∀y, yRP y.
Let y be given.
Assume Hy: yR.
Apply IH (SNoLev z) Hz2 y to the current goal.
We will prove SNo y.
An exact proof term for the current goal is H7 y Hy.
We will prove SNoLev ySNoLev z.
An exact proof term for the current goal is H4 y Hy.
Let z be given.
Assume Hz: SNo z.
We prove the intermediate claim L2: ordinal (ordsucc (SNoLev z)).
Apply ordinal_ordsucc to the current goal.
Apply SNoLev_ordinal to the current goal.
An exact proof term for the current goal is Hz.
Apply L1 (ordsucc (SNoLev z)) L2 z Hz to the current goal.
Apply ordsuccI2 to the current goal.
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)
Definition. We define SNo_rec_i to be λz ⇒ In_rec_ii G (SNoLev z) z 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
Theorem. (SNo_rec_i_eq) The following is provable:
∀z, SNo zSNo_rec_i z = F z SNo_rec_i
Proof:
Let z be given.
Assume Hz: SNo z.
We will prove SNo_rec_i z = F z SNo_rec_i.
We will prove In_rec_ii G (SNoLev z) z = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We prove the intermediate claim L1: ∀alpha, ∀g h : setsetset, (∀x ∈ alpha, g x = h x)G alpha g = G alpha h.
Let alpha, g and h be given.
Assume Hgh: ∀x ∈ alpha, g x = h x.
We will prove G alpha g = G alpha h.
We will prove (If_ii (ordinal alpha) (λz : setif zSNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault)) = (If_ii (ordinal alpha) (λz : setif zSNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default) (λz : setdefault)).
Apply xm (ordinal alpha) to the current goal.
Assume H1: ordinal alpha.
rewrite the current goal using If_ii_1 (ordinal alpha) (λz ⇒ if zSNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default) (λz : setdefault) H1 (from left to right).
rewrite the current goal using If_ii_1 (ordinal alpha) (λz ⇒ if zSNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault) H1 (from left to right).
We will prove (λz : setif zSNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) = (λz : setif zSNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default).
Apply func_ext set set to the current goal.
Let z be given.
We will prove (if zSNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) = (if zSNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default).
Apply xm (zSNoS_ (ordsucc alpha)) to the current goal.
Assume Hz: zSNoS_ (ordsucc alpha).
rewrite the current goal using If_i_1 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz (from left to right).
rewrite the current goal using If_i_1 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
We prove the intermediate claim Lsa: ordinal (ordsucc alpha).
An exact proof term for the current goal is ordinal_ordsucc alpha H1.
Apply SNoS_E2 (ordsucc alpha) Lsa z Hz to the current goal.
Assume Hz1: SNoLev zordsucc alpha.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
Apply Fr to the current goal.
We will prove SNo z.
An exact proof term for the current goal is Hz3.
We will prove ∀w ∈ SNoS_ (SNoLev z), g (SNoLev w) w = h (SNoLev w) w.
Let w be given.
Assume Hw: wSNoS_ (SNoLev z).
Apply SNoS_E2 (SNoLev z) Hz2 w Hw to the current goal.
Assume Hw1: SNoLev wSNoLev z.
Assume Hw2: ordinal (SNoLev w).
Assume Hw3: SNo w.
Assume Hw4: SNo_ (SNoLev w) w.
We prove the intermediate claim LLw: SNoLev walpha.
Apply ordsuccE alpha (SNoLev z) Hz1 to the current goal.
Assume H2: SNoLev zalpha.
Apply H1 to the current goal.
Assume Ha1 _.
An exact proof term for the current goal is Ha1 (SNoLev z) H2 (SNoLev w) Hw1.
Assume H2: SNoLev z = alpha.
rewrite the current goal using H2 (from right to left).
An exact proof term for the current goal is Hw1.
rewrite the current goal using Hgh (SNoLev w) LLw (from left to right).
Use reflexivity.
Assume Hz: zSNoS_ (ordsucc alpha).
rewrite the current goal using If_i_0 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
An exact proof term for the current goal is If_i_0 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz.
Assume H1: ¬ ordinal alpha.
rewrite the current goal using If_ii_0 (ordinal alpha) (λz ⇒ if zSNoS_ (ordsucc alpha) then F z (λw ⇒ h (SNoLev w) w) else default) (λz : setdefault) H1 (from left to right).
An exact proof term for the current goal is If_ii_0 (ordinal alpha) (λz ⇒ if zSNoS_ (ordsucc alpha) then F z (λw ⇒ g (SNoLev w) w) else default) (λz : setdefault) H1.
rewrite the current goal using In_rec_ii_eq G L1 (from left to right).
We will prove G (SNoLev z) (In_rec_ii G) z = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We will prove (If_ii (ordinal (SNoLev z)) (λu : setif uSNoS_ (ordsucc (SNoLev z)) then F u (λw : setIn_rec_ii G (SNoLev w) w) else default) (λ_ : setdefault)) z = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We prove the intermediate claim L2: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
rewrite the current goal using If_ii_1 (ordinal (SNoLev z)) (λu : setif uSNoS_ (ordsucc (SNoLev z)) then F u (λw : setIn_rec_ii G (SNoLev w) w) else default) (λ_ : setdefault) L2 (from left to right).
We will prove (if zSNoS_ (ordsucc (SNoLev z)) then F z (λw : setIn_rec_ii G (SNoLev w) w) else default) = F z (λz ⇒ In_rec_ii G (SNoLev z) z).
We prove the intermediate claim L3: zSNoS_ (ordsucc (SNoLev z)).
An exact proof term for the current goal is SNoS_SNoLev z Hz.
An exact proof term for the current goal is If_i_1 (zSNoS_ (ordsucc (SNoLev z))) (F z (λw : setIn_rec_ii G (SNoLev w) w)) default L3.
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)
Definition. We define SNo_rec_ii to be λz ⇒ In_rec_iii G (SNoLev z) z 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
Theorem. (SNo_rec_ii_eq) The following is provable:
∀z, SNo zSNo_rec_ii z = F z SNo_rec_ii
Proof:
Let z be given.
Assume Hz: SNo z.
We will prove SNo_rec_ii z = F z SNo_rec_ii.
We will prove In_rec_iii G (SNoLev z) z = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We prove the intermediate claim L1: ∀alpha, ∀g h : setset(setset), (∀x ∈ alpha, g x = h x)G alpha g = G alpha h.
Let alpha, g and h be given.
Assume Hgh: ∀x ∈ alpha, g x = h x.
We will prove G alpha g = G alpha h.
We will prove (If_iii (ordinal alpha) (λz : setIf_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault)) = (If_iii (ordinal alpha) (λz : setIf_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default) (λz : setdefault)).
Apply xm (ordinal alpha) to the current goal.
Assume H1: ordinal alpha.
rewrite the current goal using If_iii_1 (ordinal alpha) (λz ⇒ If_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default) (λz : setdefault) H1 (from left to right).
rewrite the current goal using If_iii_1 (ordinal alpha) (λz ⇒ If_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault) H1 (from left to right).
We will prove (λz : setIf_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) = (λz : setIf_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default).
Apply func_ext set (setset) to the current goal.
Let z be given.
We will prove (If_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) = (If_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default).
Apply xm (zSNoS_ (ordsucc alpha)) to the current goal.
Assume Hz: zSNoS_ (ordsucc alpha).
rewrite the current goal using If_ii_1 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz (from left to right).
rewrite the current goal using If_ii_1 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
We prove the intermediate claim Lsa: ordinal (ordsucc alpha).
An exact proof term for the current goal is ordinal_ordsucc alpha H1.
Apply SNoS_E2 (ordsucc alpha) Lsa z Hz to the current goal.
Assume Hz1: SNoLev zordsucc alpha.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
We will prove F z (λw ⇒ g (SNoLev w) w) = F z (λw ⇒ h (SNoLev w) w).
Apply Fr to the current goal.
We will prove SNo z.
An exact proof term for the current goal is Hz3.
We will prove ∀w ∈ SNoS_ (SNoLev z), g (SNoLev w) w = h (SNoLev w) w.
Let w be given.
Assume Hw: wSNoS_ (SNoLev z).
Apply SNoS_E2 (SNoLev z) Hz2 w Hw to the current goal.
Assume Hw1: SNoLev wSNoLev z.
Assume Hw2: ordinal (SNoLev w).
Assume Hw3: SNo w.
Assume Hw4: SNo_ (SNoLev w) w.
We prove the intermediate claim LLw: SNoLev walpha.
Apply ordsuccE alpha (SNoLev z) Hz1 to the current goal.
Assume H2: SNoLev zalpha.
Apply H1 to the current goal.
Assume Ha1 _.
An exact proof term for the current goal is Ha1 (SNoLev z) H2 (SNoLev w) Hw1.
Assume H2: SNoLev z = alpha.
rewrite the current goal using H2 (from right to left).
An exact proof term for the current goal is Hw1.
rewrite the current goal using Hgh (SNoLev w) LLw (from left to right).
Use reflexivity.
Assume Hz: zSNoS_ (ordsucc alpha).
rewrite the current goal using If_ii_0 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default Hz (from left to right).
An exact proof term for the current goal is If_ii_0 (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default Hz.
Assume H1: ¬ ordinal alpha.
rewrite the current goal using If_iii_0 (ordinal alpha) (λz ⇒ If_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ h (SNoLev w) w)) default) (λz : setdefault) H1 (from left to right).
An exact proof term for the current goal is If_iii_0 (ordinal alpha) (λz ⇒ If_ii (zSNoS_ (ordsucc alpha)) (F z (λw ⇒ g (SNoLev w) w)) default) (λz : setdefault) H1.
rewrite the current goal using In_rec_iii_eq G L1 (from left to right).
We will prove G (SNoLev z) (In_rec_iii G) z = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We will prove (If_iii (ordinal (SNoLev z)) (λu : setIf_ii (uSNoS_ (ordsucc (SNoLev z))) (F u (λw : setIn_rec_iii G (SNoLev w) w)) default) (λ_ : setdefault)) z = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We prove the intermediate claim L2: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
rewrite the current goal using If_iii_1 (ordinal (SNoLev z)) (λu : setIf_ii (uSNoS_ (ordsucc (SNoLev z))) (F u (λw : setIn_rec_iii G (SNoLev w) w)) default) (λ_ : setdefault) L2 (from left to right).
We will prove (If_ii (zSNoS_ (ordsucc (SNoLev z))) (F z (λw : setIn_rec_iii G (SNoLev w) w)) default) = F z (λz ⇒ In_rec_iii G (SNoLev z) z).
We prove the intermediate claim L3: zSNoS_ (ordsucc (SNoLev z)).
An exact proof term for the current goal is SNoS_SNoLev z Hz.
An exact proof term for the current goal is If_ii_1 (zSNoS_ (ordsucc (SNoLev z))) (F z (λw : setIn_rec_iii G (SNoLev w) w)) default L3.
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
Definition. We define SNo_rec2 to be SNo_rec_ii H 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
Theorem. (SNo_rec2_G_prop) The following is provable:
∀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
Proof:
Let w be given.
Assume Hw: SNo w.
Let f and k be given.
Assume Hfk: ∀x ∈ SNoS_ (SNoLev w), f x = k x.
Let z be given.
Assume Hz: SNo z.
Let g and h be given.
Assume Hgh: ∀u ∈ SNoS_ (SNoLev z), g u = h u.
We will prove G w f z g = G w k z h.
We will prove F w z (λx y ⇒ if x = w then g y else f x y) = F w z (λx y ⇒ if x = w then h y else k x y).
Apply Fr to the current goal.
We will prove SNo w.
An exact proof term for the current goal is Hw.
We will prove SNo z.
An exact proof term for the current goal is Hz.
Let x be given.
Assume Hx: xSNoS_ (SNoLev w).
Let y be given.
Assume Hy: SNo y.
We will prove (if x = w then g y else f x y) = (if x = w then h y else k x y).
We prove the intermediate claim Lxw: xw.
An exact proof term for the current goal is SNoS_In_neq w Hw x Hx.
rewrite the current goal using If_i_0 (x = w) (g y) (f x y) Lxw (from left to right).
rewrite the current goal using If_i_0 (x = w) (h y) (k x y) Lxw (from left to right).
We will prove f x y = k x y.
rewrite the current goal using Hfk x Hx (from left to right).
Use reflexivity.
Let y be given.
Assume Hy: ySNoS_ (SNoLev z).
We will prove (if w = w then g y else f w y) = (if w = w then h y else k w y).
rewrite the current goal using If_i_1 (w = w) (g y) (f w y) (λq H ⇒ H) (from left to right).
rewrite the current goal using If_i_1 (w = w) (h y) (k w y) (λq H ⇒ H) (from left to right).
We will prove g y = h y.
An exact proof term for the current goal is Hgh y Hy.
Theorem. (SNo_rec2_eq_1) The following is provable:
∀w, SNo w∀f : setsetset, ∀z, SNo zSNo_rec_i (G w f) z = G w f z (SNo_rec_i (G w f))
Proof:
Let w be given.
Assume Hw: SNo w.
Let f be given.
We prove the intermediate claim L1: ∀z, SNo z∀g h : setset, (∀u ∈ SNoS_ (SNoLev z), g u = h u)G w f z g = G w f z h.
Let z be given.
Assume Hz.
Let g and h be given.
Assume Hgh.
We prove the intermediate claim L1a: ∀x ∈ SNoS_ (SNoLev w), f x = f x.
Let x be given.
Assume Hx.
Use reflexivity.
An exact proof term for the current goal is SNo_rec2_G_prop w Hw f f L1a z Hz g h Hgh.
An exact proof term for the current goal is SNo_rec_i_eq (G w f) L1.
Theorem. (SNo_rec2_eq) The following is provable:
∀w, SNo w∀z, SNo zSNo_rec2 w z = F w z SNo_rec2
Proof:
Let w be given.
Assume Hw: SNo w.
Let z be given.
Assume Hz: SNo z.
We will prove SNo_rec2 w z = F w z SNo_rec2.
We will prove SNo_rec_ii H w z = F w z SNo_rec2.
We prove the intermediate claim L1: ∀w, SNo w∀g h : setsetset, (∀x ∈ SNoS_ (SNoLev w), g x = h x)H w g = H w h.
Let w be given.
Assume Hw: SNo w.
Let g and h be given.
Assume Hgh: ∀x ∈ SNoS_ (SNoLev w), g x = h x.
We will prove H w g = H w h.
We will prove (λz : setif SNo z then SNo_rec_i (G w g) z else Empty) = (λz : setif SNo z then SNo_rec_i (G w h) z else Empty).
Apply func_ext set set to the current goal.
Let z be given.
We will prove (if SNo z then SNo_rec_i (G w g) z else Empty) = (if SNo z then SNo_rec_i (G w h) z else Empty).
Apply xm (SNo z) to the current goal.
Assume Hz: SNo z.
rewrite the current goal using If_i_1 (SNo z) (SNo_rec_i (G w g) z) Empty Hz (from left to right).
rewrite the current goal using If_i_1 (SNo z) (SNo_rec_i (G w h) z) Empty Hz (from left to right).
We will prove SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
We prove the intermediate claim L1a: ∀alpha, ordinal alpha∀z ∈ SNoS_ alpha, SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IH: ∀beta ∈ alpha, ∀z ∈ SNoS_ beta, SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
Let z be given.
Assume Hz: zSNoS_ alpha.
Apply SNoS_E2 alpha Ha z Hz to the current goal.
Assume Hz1: SNoLev zalpha.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
We will prove SNo_rec_i (G w g) z = SNo_rec_i (G w h) z.
rewrite the current goal using SNo_rec2_eq_1 w Hw g z Hz3 (from left to right).
rewrite the current goal using SNo_rec2_eq_1 w Hw h z Hz3 (from left to right).
We will prove G w g z (SNo_rec_i (G w g)) = G w h z (SNo_rec_i (G w h)).
Apply SNo_rec2_G_prop w Hw g h Hgh z Hz3 (SNo_rec_i (G w g)) (SNo_rec_i (G w h)) to the current goal.
We will prove ∀y ∈ SNoS_ (SNoLev z), SNo_rec_i (G w g) y = SNo_rec_i (G w h) y.
Let y be given.
Assume Hy: ySNoS_ (SNoLev z).
An exact proof term for the current goal is IH (SNoLev z) Hz1 y Hy.
An exact proof term for the current goal is L1a (ordsucc (SNoLev z)) (ordinal_ordsucc (SNoLev z) (SNoLev_ordinal z Hz)) z (SNoS_SNoLev z Hz).
Assume Hz: ¬ SNo z.
rewrite the current goal using If_i_0 (SNo z) (SNo_rec_i (G w h) z) Empty Hz (from left to right).
An exact proof term for the current goal is If_i_0 (SNo z) (SNo_rec_i (G w g) z) Empty Hz.
We prove the intermediate claim L2: H w (SNo_rec_ii H) z = F w z SNo_rec2.
We will prove (if SNo z then SNo_rec_i (G w (SNo_rec_ii H)) z else Empty) = F w z SNo_rec2.
rewrite the current goal using If_i_1 (SNo z) (SNo_rec_i (G w (SNo_rec_ii H)) z) Empty Hz (from left to right).
We will prove SNo_rec_i (G w (SNo_rec_ii H)) z = F w z SNo_rec2.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) z = F w z (SNo_rec_ii H).
rewrite the current goal using SNo_rec2_eq_1 w Hw (SNo_rec_ii H) z Hz (from left to right).
We will prove G w (SNo_rec_ii H) z (SNo_rec_i (G w (SNo_rec_ii H))) = F w z (SNo_rec_ii H).
We will prove F w z (λx y ⇒ if x = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H x y) = F w z (SNo_rec_ii H).
We prove the intermediate claim L2a: ∀x ∈ SNoS_ (SNoLev w), ∀y, SNo y(if x = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H x y) = SNo_rec_ii H x y.
Let x be given.
Assume Hx: xSNoS_ (SNoLev w).
Let y be given.
Assume Hy: SNo y.
We prove the intermediate claim Lxw: xw.
An exact proof term for the current goal is SNoS_In_neq w Hw x Hx.
An exact proof term for the current goal is If_i_0 (x = w) (SNo_rec_i (G w (SNo_rec_ii H)) y) (SNo_rec_ii H x y) Lxw.
We prove the intermediate claim L2b: ∀y ∈ SNoS_ (SNoLev z), (if w = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H w y) = SNo_rec_ii H w y.
Let y be given.
Assume Hy: ySNoS_ (SNoLev z).
rewrite the current goal using If_i_1 (w = w) (SNo_rec_i (G w (SNo_rec_ii H)) y) (SNo_rec_ii H w y) (λq H ⇒ H) (from left to right).
We prove the intermediate claim Ly: SNo y.
Apply SNoS_E2 (SNoLev z) (SNoLev_ordinal z Hz) y Hy to the current goal.
Assume Hy1: SNoLev ySNoLev z.
Assume Hy2: ordinal (SNoLev y).
Assume Hy3: SNo y.
Assume Hy4: SNo_ (SNoLev y) y.
An exact proof term for the current goal is Hy3.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) y = SNo_rec_ii H w y.
Apply eq_i_tra (SNo_rec_i (G w (SNo_rec_ii H)) y) (H w (SNo_rec_ii H) y) (SNo_rec_ii H w y) to the current goal.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) y = H w (SNo_rec_ii H) y.
We will prove SNo_rec_i (G w (SNo_rec_ii H)) y = if SNo y then (SNo_rec_i (G w (SNo_rec_ii H)) y) else Empty.
Use symmetry.
An exact proof term for the current goal is If_i_1 (SNo y) (SNo_rec_i (G w (SNo_rec_ii H)) y) Empty Ly.
We will prove H w (SNo_rec_ii H) y = SNo_rec_ii H w y.
rewrite the current goal using SNo_rec_ii_eq H L1 w Hw (from left to right).
We will prove H w (SNo_rec_ii H) y = H w (SNo_rec_ii H) y.
An exact proof term for the current goal is (λq H ⇒ H).
An exact proof term for the current goal is Fr w Hw z Hz (λx y ⇒ if x = w then SNo_rec_i (G w (SNo_rec_ii H)) y else SNo_rec_ii H x y) (SNo_rec_ii H) L2a L2b.
We will prove SNo_rec_ii H w z = F w z SNo_rec2.
rewrite the current goal using SNo_rec_ii_eq H L1 w Hw (from left to right).
We will prove H w (SNo_rec_ii H) z = F w z SNo_rec2.
An exact proof term for the current goal is L2.
End of Section SurrealRec2
Theorem. (SNo_ordinal_ind) The following is provable:
∀P : setprop, (∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, P x)(∀x, SNo xP x)
Proof:
Let P be given.
Assume H1.
Let x be given.
Assume Hx: SNo x.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LsLx: ordinal (ordsucc (SNoLev x)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev x) LLx.
We prove the intermediate claim LxsLx: xSNoS_ (ordsucc (SNoLev x)).
An exact proof term for the current goal is SNoS_SNoLev x Hx.
An exact proof term for the current goal is H1 (ordsucc (SNoLev x)) LsLx x LxsLx.
Theorem. (SNo_ordinal_ind2) The following is provable:
∀P : setsetprop, (∀alpha, ordinal alpha∀beta, ordinal beta∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ beta, P x y)(∀x y, SNo xSNo yP x y)
Proof:
Let P be given.
Assume H1.
Let x and y be given.
Assume Hx: SNo x.
Assume Hy: SNo y.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LsLx: ordinal (ordsucc (SNoLev x)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev x) LLx.
We prove the intermediate claim LxsLx: xSNoS_ (ordsucc (SNoLev x)).
An exact proof term for the current goal is SNoS_SNoLev x Hx.
We prove the intermediate claim LLy: ordinal (SNoLev y).
An exact proof term for the current goal is SNoLev_ordinal y Hy.
We prove the intermediate claim LsLy: ordinal (ordsucc (SNoLev y)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev y) LLy.
We prove the intermediate claim LysLy: ySNoS_ (ordsucc (SNoLev y)).
An exact proof term for the current goal is SNoS_SNoLev y Hy.
An exact proof term for the current goal is H1 (ordsucc (SNoLev x)) LsLx (ordsucc (SNoLev y)) LsLy x LxsLx y LysLy.
Theorem. (SNo_ordinal_ind3) The following is provable:
∀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)
Proof:
Let P be given.
Assume H1.
Let x, y and z be given.
Assume Hx: SNo x.
Assume Hy: SNo y.
Assume Hz: SNo z.
We prove the intermediate claim LLx: ordinal (SNoLev x).
An exact proof term for the current goal is SNoLev_ordinal x Hx.
We prove the intermediate claim LsLx: ordinal (ordsucc (SNoLev x)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev x) LLx.
We prove the intermediate claim LxsLx: xSNoS_ (ordsucc (SNoLev x)).
An exact proof term for the current goal is SNoS_SNoLev x Hx.
We prove the intermediate claim LLy: ordinal (SNoLev y).
An exact proof term for the current goal is SNoLev_ordinal y Hy.
We prove the intermediate claim LsLy: ordinal (ordsucc (SNoLev y)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev y) LLy.
We prove the intermediate claim LysLy: ySNoS_ (ordsucc (SNoLev y)).
An exact proof term for the current goal is SNoS_SNoLev y Hy.
We prove the intermediate claim LLz: ordinal (SNoLev z).
An exact proof term for the current goal is SNoLev_ordinal z Hz.
We prove the intermediate claim LsLz: ordinal (ordsucc (SNoLev z)).
An exact proof term for the current goal is ordinal_ordsucc (SNoLev z) LLz.
We prove the intermediate claim LzsLz: zSNoS_ (ordsucc (SNoLev z)).
An exact proof term for the current goal is SNoS_SNoLev z Hz.
An exact proof term for the current goal is H1 (ordsucc (SNoLev x)) LsLx (ordsucc (SNoLev y)) LsLy (ordsucc (SNoLev z)) LsLz x LxsLx y LysLy z LzsLz.
Theorem. (SNoLev_ind) The following is provable:
∀P : setprop, (∀x, SNo x(∀w ∈ SNoS_ (SNoLev x), P w)P x)(∀x, SNo xP x)
Proof:
Let P be given.
Assume H1: ∀x, SNo x(∀w ∈ SNoS_ (SNoLev x), P w)P x.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀x ∈ SNoS_ alpha, P x.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IH: ∀beta ∈ alpha, ∀x ∈ SNoS_ beta, P x.
Let x be given.
Assume Hx: xSNoS_ alpha.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev xalpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
Apply H1 x Hx3 to the current goal.
We will prove ∀w ∈ SNoS_ (SNoLev x), P w.
An exact proof term for the current goal is IH (SNoLev x) Hx1.
An exact proof term for the current goal is SNo_ordinal_ind P L1.
Theorem. (SNoLev_ind2) The following is provable:
∀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
Proof:
Let P be given.
Assume H1: ∀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.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀beta, ordinal beta∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ beta, P x y.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IHa: ∀gamma ∈ alpha, ∀beta, ordinal beta∀x ∈ SNoS_ gamma, ∀y ∈ SNoS_ beta, P x y.
Apply ordinal_ind to the current goal.
Let beta be given.
Assume Hb: ordinal beta.
Assume IHb: ∀delta ∈ beta, ∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ delta, P x y.
Let x be given.
Assume Hx: xSNoS_ alpha.
Let y be given.
Assume Hy: ySNoS_ beta.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev xalpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
Apply SNoS_E2 beta Hb y Hy to the current goal.
Assume Hy1: SNoLev ybeta.
Assume Hy2: ordinal (SNoLev y).
Assume Hy3: SNo y.
Assume Hy4: SNo_ (SNoLev y) y.
Apply H1 x y Hx3 Hy3 to the current goal.
We will prove ∀w ∈ SNoS_ (SNoLev x), P w y.
Let w be given.
Assume Hw: wSNoS_ (SNoLev x).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 beta Hb w Hw y Hy.
We will prove ∀z ∈ SNoS_ (SNoLev y), P x z.
An exact proof term for the current goal is IHb (SNoLev y) Hy1 x Hx.
We will prove ∀w ∈ SNoS_ (SNoLev x), ∀z ∈ SNoS_ (SNoLev y), P w z.
Let w be given.
Assume Hw: wSNoS_ (SNoLev x).
Let z be given.
Assume Hz: zSNoS_ (SNoLev y).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 (SNoLev y) Hy2 w Hw z Hz.
An exact proof term for the current goal is SNo_ordinal_ind2 P L1.
Theorem. (SNoLev_ind3) The following is provable:
∀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
Proof:
Let P be given.
Assume H1: ∀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.
We prove the intermediate claim L1: ∀alpha, ordinal alpha∀beta, ordinal beta∀gamma, ordinal gamma∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ beta, ∀z ∈ SNoS_ gamma, P x y z.
Apply ordinal_ind to the current goal.
Let alpha be given.
Assume Ha: ordinal alpha.
Assume IHa: ∀delta ∈ alpha, ∀beta, ordinal beta∀gamma, ordinal gamma∀x ∈ SNoS_ delta, ∀y ∈ SNoS_ beta, ∀z ∈ SNoS_ gamma, P x y z.
Apply ordinal_ind to the current goal.
Let beta be given.
Assume Hb: ordinal beta.
Assume IHb: ∀delta ∈ beta, ∀gamma, ordinal gamma∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ delta, ∀z ∈ SNoS_ gamma, P x y z.
Apply ordinal_ind to the current goal.
Let gamma be given.
Assume Hc: ordinal gamma.
Assume IHc: ∀delta ∈ gamma, ∀x ∈ SNoS_ alpha, ∀y ∈ SNoS_ beta, ∀z ∈ SNoS_ delta, P x y z.
Let x be given.
Assume Hx: xSNoS_ alpha.
Let y be given.
Assume Hy: ySNoS_ beta.
Let z be given.
Assume Hz: zSNoS_ gamma.
Apply SNoS_E2 alpha Ha x Hx to the current goal.
Assume Hx1: SNoLev xalpha.
Assume Hx2: ordinal (SNoLev x).
Assume Hx3: SNo x.
Assume Hx4: SNo_ (SNoLev x) x.
Apply SNoS_E2 beta Hb y Hy to the current goal.
Assume Hy1: SNoLev ybeta.
Assume Hy2: ordinal (SNoLev y).
Assume Hy3: SNo y.
Assume Hy4: SNo_ (SNoLev y) y.
Apply SNoS_E2 gamma Hc z Hz to the current goal.
Assume Hz1: SNoLev zgamma.
Assume Hz2: ordinal (SNoLev z).
Assume Hz3: SNo z.
Assume Hz4: SNo_ (SNoLev z) z.
Apply H1 x y z Hx3 Hy3 Hz3 to the current goal.
We will prove ∀u ∈ SNoS_ (SNoLev x), P u y z.
Let u be given.
Assume Hu: uSNoS_ (SNoLev x).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 beta Hb gamma Hc u Hu y Hy z Hz.
We will prove ∀v ∈ SNoS_ (SNoLev y), P x v z.
Let v be given.
Assume Hv: vSNoS_ (SNoLev y).
An exact proof term for the current goal is IHb (SNoLev y) Hy1 gamma Hc x Hx v Hv z Hz.
We will prove ∀w ∈ SNoS_ (SNoLev z), P x y w.
An exact proof term for the current goal is IHc (SNoLev z) Hz1 x Hx y Hy.
We will prove ∀u ∈ SNoS_ (SNoLev x), ∀v ∈ SNoS_ (SNoLev y), P u v z.
Let u be given.
Assume Hu: uSNoS_ (SNoLev x).
Let v be given.
Assume Hv: vSNoS_ (SNoLev y).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 (SNoLev y) Hy2 gamma Hc u Hu v Hv z Hz.
We will prove ∀u ∈ SNoS_ (SNoLev x), ∀w ∈ SNoS_ (SNoLev z), P u y w.
Let u be given.
Assume Hu: uSNoS_ (SNoLev x).
Let w be given.
Assume Hw: wSNoS_ (SNoLev z).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 beta Hb (SNoLev z) Hz2 u Hu y Hy w Hw.
We will prove ∀v ∈ SNoS_ (SNoLev y), ∀w ∈ SNoS_ (SNoLev z), P x v w.
Let v be given.
Assume Hv: vSNoS_ (SNoLev y).
Let w be given.
Assume Hw: wSNoS_ (SNoLev z).
An exact proof term for the current goal is IHb (SNoLev y) Hy1 (SNoLev z) Hz2 x Hx v Hv w Hw.
We will prove ∀u ∈ SNoS_ (SNoLev x), ∀v ∈ SNoS_ (SNoLev y), ∀w ∈ SNoS_ (SNoLev z), P u v w.
Let u be given.
Assume Hu: uSNoS_ (SNoLev x).
Let v be given.
Assume Hv: vSNoS_ (SNoLev y).
Let w be given.
Assume Hw: wSNoS_ (SNoLev z).
An exact proof term for the current goal is IHa (SNoLev x) Hx1 (SNoLev y) Hy2 (SNoLev z) Hz2 u Hu v Hv w Hw.
An exact proof term for the current goal is SNo_ordinal_ind3 P L1.
Theorem. (SNo_omega) The following is provable:
Proof:
An exact proof term for the current goal is ordinal_SNo ω omega_ordinal.
Theorem. (SNoLt_0_1) The following is provable:
0 < 1
Proof:
Apply ordinal_In_SNoLt 1 ordinal_1 0 to the current goal.
We will prove 01.
An exact proof term for the current goal is In_0_1.
Theorem. (SNoLt_0_2) The following is provable:
0 < 2
Proof:
Apply ordinal_In_SNoLt 2 ordinal_2 0 to the current goal.
We will prove 02.
An exact proof term for the current goal is In_0_2.
Theorem. (SNoLt_1_2) The following is provable:
1 < 2
Proof:
Apply ordinal_In_SNoLt 2 ordinal_2 1 to the current goal.
We will prove 12.
An exact proof term for the current goal is In_1_2.
Theorem. (restr_SNo_) The following is provable:
∀x, SNo x∀alpha ∈ SNoLev x, SNo_ alpha (xSNoElts_ alpha)
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
We prove the intermediate claim Lx1: SNo_ (SNoLev x) x.
An exact proof term for the current goal is SNoLev_ x Hx.
Apply Lx1 to the current goal.
Assume Hx1: xSNoElts_ (SNoLev x).
Assume Hx2: ∀beta ∈ SNoLev x, exactly1of2 (SetAdjoin beta {1}x) (betax).
We will prove xSNoElts_ alphaSNoElts_ alpha∀beta ∈ alpha, exactly1of2 (SetAdjoin beta {1}xSNoElts_ alpha) (betaxSNoElts_ alpha).
Apply andI to the current goal.
An exact proof term for the current goal is binintersect_Subq_2 x (SNoElts_ alpha).
Let beta be given.
Assume Hb: betaalpha.
We prove the intermediate claim Lb: betaSNoLev x.
An exact proof term for the current goal is ordinal_TransSet (SNoLev x) (SNoLev_ordinal x Hx) alpha Ha beta Hb.
Apply exactly1of2_E (SetAdjoin beta {1}x) (betax) (Hx2 beta Lb) to the current goal.
Assume H1: SetAdjoin beta {1}x.
Assume H2: betax.
Apply exactly1of2_I1 to the current goal.
Apply binintersectI to the current goal.
An exact proof term for the current goal is H1.
We will prove SetAdjoin beta {1}SNoElts_ alpha.
We will prove SetAdjoin beta {1}alpha{SetAdjoin beta {1}|beta ∈ alpha}.
Apply binunionI2 to the current goal.
An exact proof term for the current goal is ReplI alpha (λbeta ⇒ SetAdjoin beta {1}) beta Hb.
We will prove betaxSNoElts_ alpha.
Assume H3.
An exact proof term for the current goal is H2 (binintersectE1 x (SNoElts_ alpha) beta H3).
Assume H1: SetAdjoin beta {1}x.
Assume H2: betax.
Apply exactly1of2_I2 to the current goal.
Assume H3: SetAdjoin beta {1}xSNoElts_ alpha.
An exact proof term for the current goal is H1 (binintersectE1 x (SNoElts_ alpha) (SetAdjoin beta {1}) H3).
Apply binintersectI to the current goal.
An exact proof term for the current goal is H2.
We will prove betaSNoElts_ alpha.
We will prove betaalpha{SetAdjoin beta {1}|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hb.
Theorem. (restr_SNo) The following is provable:
∀x, SNo x∀alpha ∈ SNoLev x, SNo (xSNoElts_ alpha)
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is ordinal_Hered (SNoLev x) (SNoLev_ordinal x Hx) alpha Ha.
We prove the intermediate claim L1: SNo_ alpha (xSNoElts_ alpha).
An exact proof term for the current goal is restr_SNo_ x Hx alpha Ha.
An exact proof term for the current goal is SNo_SNo alpha La (xSNoElts_ alpha) L1.
Theorem. (restr_SNoLev) The following is provable:
∀x, SNo x∀alpha ∈ SNoLev x, SNoLev (xSNoElts_ alpha) = alpha
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
We prove the intermediate claim La: ordinal alpha.
An exact proof term for the current goal is ordinal_Hered (SNoLev x) (SNoLev_ordinal x Hx) alpha Ha.
We prove the intermediate claim L1: SNo_ alpha (xSNoElts_ alpha).
An exact proof term for the current goal is restr_SNo_ x Hx alpha Ha.
An exact proof term for the current goal is SNoLev_uniq2 alpha La (xSNoElts_ alpha) L1.
Theorem. (restr_SNoEq) The following is provable:
∀x, SNo x∀alpha ∈ SNoLev x, SNoEq_ alpha (xSNoElts_ alpha) x
Proof:
Let x be given.
Assume Hx.
Let alpha be given.
Assume Ha.
Apply SNoEq_I to the current goal.
Let beta be given.
Assume Hb: betaalpha.
We will prove betaxSNoElts_ alphabetax.
Apply iffI to the current goal.
Assume H1: betaxSNoElts_ alpha.
An exact proof term for the current goal is binintersectE1 x (SNoElts_ alpha) beta H1.
Assume H1: betax.
Apply binintersectI to the current goal.
An exact proof term for the current goal is H1.
We will prove betaalpha{SetAdjoin beta {1}|beta ∈ alpha}.
Apply binunionI1 to the current goal.
An exact proof term for the current goal is Hb.
Theorem. (SNo_extend0_restr_eq) The following is provable:
∀x, SNo xx = SNo_extend0 xSNoElts_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
We prove the intermediate claim L1: SNo (SNo_extend0 x).
An exact proof term for the current goal is SNo_extend0_SNo x Hx.
We prove the intermediate claim L2: SNoLev xSNoLev (SNo_extend0 x).
rewrite the current goal using SNo_extend0_SNoLev x Hx (from left to right).
Apply ordsuccI2 to the current goal.
Apply SNo_eq to the current goal.
An exact proof term for the current goal is Hx.
Apply restr_SNo to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoLev x = SNoLev (SNo_extend0 xSNoElts_ (SNoLev x)).
Use symmetry.
Apply restr_SNoLev to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoEq_ (SNoLev x) x (SNo_extend0 xSNoElts_ (SNoLev x)).
Apply SNoEq_sym_ to the current goal.
Apply SNoEq_tra_ (SNoLev x) (SNo_extend0 xSNoElts_ (SNoLev x)) (SNo_extend0 x) x to the current goal.
We will prove SNoEq_ (SNoLev x) (SNo_extend0 xSNoElts_ (SNoLev x)) (SNo_extend0 x).
An exact proof term for the current goal is restr_SNoEq (SNo_extend0 x) L1 (SNoLev x) L2.
We will prove SNoEq_ (SNoLev x) (SNo_extend0 x) x.
An exact proof term for the current goal is SNo_extend0_SNoEq x Hx.
Theorem. (SNo_extend1_restr_eq) The following is provable:
∀x, SNo xx = SNo_extend1 xSNoElts_ (SNoLev x)
Proof:
Let x be given.
Assume Hx.
We prove the intermediate claim L1: SNo (SNo_extend1 x).
An exact proof term for the current goal is SNo_extend1_SNo x Hx.
We prove the intermediate claim L2: SNoLev xSNoLev (SNo_extend1 x).
rewrite the current goal using SNo_extend1_SNoLev x Hx (from left to right).
Apply ordsuccI2 to the current goal.
Apply SNo_eq to the current goal.
An exact proof term for the current goal is Hx.
Apply restr_SNo to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoLev x = SNoLev (SNo_extend1 xSNoElts_ (SNoLev x)).
Use symmetry.
Apply restr_SNoLev to the current goal.
An exact proof term for the current goal is L1.
An exact proof term for the current goal is L2.
We will prove SNoEq_ (SNoLev x) x (SNo_extend1 xSNoElts_ (SNoLev x)).
Apply SNoEq_sym_ to the current goal.
Apply SNoEq_tra_ (SNoLev x) (SNo_extend1 xSNoElts_ (SNoLev x)) (SNo_extend1 x) x to the current goal.
We will prove SNoEq_ (SNoLev x) (SNo_extend1 xSNoElts_ (SNoLev x)) (SNo_extend1 x).
An exact proof term for the current goal is restr_SNoEq (SNo_extend1 x) L1 (SNoLev x) L2.
We will prove SNoEq_ (SNoLev x) (SNo_extend1 x) x.
An exact proof term for the current goal is SNo_extend1_SNoEq x Hx.