Primitive. The name Eps_i is a term of type (setprop)set.
L2
Axiom. (Eps_i_ax) We take the following as an axiom:
∀P : setprop, ∀x : set, P xP (Eps_i P)
L4
Definition. We define True to be ∀p : prop, pp of type prop.
L6
Definition. We define False to be ∀p : prop, p of type prop.
L7
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.
L12
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.
L17
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.
L22
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
L29
Variable A : SType
L30
Definition. We define eq to be λx y : A∀Q : AAprop, Q x yQ y x of type AAprop.
L31
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
L39
Variable A B : SType
L40
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
L44
Variable A : SType
L45
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.
L50
Axiom. (prop_ext) We take the following as an axiom:
∀p q : prop, iff p qp = q
Primitive. 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.
L54
Definition. We define Subq to be λA B ⇒ ∀xA, x B 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.
L56
Axiom. (set_ext) We take the following as an axiom:
∀X Y : set, X YY XX = Y
L58
Axiom. (In_ind) We take the following as an axiom:
∀P : setprop, (∀X : set, (∀xX, 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.
Primitive. The name Empty is a term of type set.
L64
Axiom. (EmptyAx) We take the following as an axiom:
¬ ∃x : set, x Empty
Primitive. The name is a term of type setset.
L68
Axiom. (UnionEq) We take the following as an axiom:
∀X x, x X ∃Y, x Y Y X
Primitive. The name 𝒫 is a term of type setset.
L73
Axiom. (PowerEq) We take the following as an axiom:
∀X Y : set, Y 𝒫 X Y X
Primitive. The name Repl is a term of type set(setset)set.
Notation. {B| xA} is notation for Repl Ax . B).
L78
Axiom. (ReplEq) We take the following as an axiom:
∀A : set, ∀F : setset, ∀y : set, y {F x|xA} ∃xA, y = F x
L80
Definition. We define TransSet to be λU : set∀xU, x U of type setprop.
L82
Definition. We define Union_closed to be λU : set∀X : set, X U X U of type setprop.
L84
Definition. We define Power_closed to be λU : set∀X : set, X U𝒫 X U of type setprop.
L85
Definition. We define Repl_closed to be λU : set∀X : set, X U∀F : setset, (∀x : set, x XF x U){F x|xX} U of type setprop.
L87
Definition. We define ZF_closed to be λU : setUnion_closed U Power_closed U Repl_closed U of type setprop.
Primitive. The name UnivOf is a term of type setset.
L93
Axiom. (UnivOf_In) We take the following as an axiom:
∀N : set, N UnivOf N
L95
Axiom. (UnivOf_TransSet) We take the following as an axiom:
∀N : set, TransSet (UnivOf N)
L97
Axiom. (UnivOf_ZF_closed) We take the following as an axiom:
∀N : set, ZF_closed (UnivOf N)
L99
Axiom. (UnivOf_Min) We take the following as an axiom:
∀N U : set, N UTransSet UZF_closed UUnivOf N U
L104
Axiom. (FalseE) We take the following as an axiom:
False∀p : prop, p
L106
Axiom. (TrueI) We take the following as an axiom:
L108
Axiom. (notI) We take the following as an axiom:
∀A : prop, (AFalse)¬ A
L110
Axiom. (notE) We take the following as an axiom:
∀A : prop, ¬ AAFalse
L112
Axiom. (andI) We take the following as an axiom:
∀A B : prop, ABA B
L114
Axiom. (andEL) We take the following as an axiom:
∀A B : prop, A BA
L116
Axiom. (andER) We take the following as an axiom:
∀A B : prop, A BB
L118
Axiom. (orIL) We take the following as an axiom:
∀A B : prop, AA B
L120
Axiom. (orIR) We take the following as an axiom:
∀A B : prop, BA B
L122
Axiom. (orE) We take the following as an axiom:
∀A B C : prop, (AC)(BC)A BC
Beginning of Section PropN
L126
Variable P1 P2 P3 : prop
L128
Axiom. (and3I) We take the following as an axiom:
P1P2P3P1 P2 P3
L130
Axiom. (and3E) We take the following as an axiom:
P1 P2 P3(∀p : prop, (P1P2P3p)p)
L131
Axiom. (or3I1) We take the following as an axiom:
P1P1 P2 P3
L132
Axiom. (or3I2) We take the following as an axiom:
P2P1 P2 P3
L133
Axiom. (or3I3) We take the following as an axiom:
P3P1 P2 P3
L134
Axiom. (or3E) We take the following as an axiom:
P1 P2 P3(∀p : prop, (P1p)(P2p)(P3p)p)
L135
Variable P4 : prop
L137
Axiom. (and4I) We take the following as an axiom:
P1P2P3P4P1 P2 P3 P4
L139
Axiom. (and4E) We take the following as an axiom:
P1 P2 P3 P4(∀p : prop, (P1P2P3P4p)p)
L140
Axiom. (or4I1) We take the following as an axiom:
P1P1 P2 P3 P4
L141
Axiom. (or4I2) We take the following as an axiom:
P2P1 P2 P3 P4
L142
Axiom. (or4I3) We take the following as an axiom:
P3P1 P2 P3 P4
L143
Axiom. (or4I4) We take the following as an axiom:
P4P1 P2 P3 P4
L144
Axiom. (or4E) We take the following as an axiom:
P1 P2 P3 P4(∀p : prop, (P1p)(P2p)(P3p)(P4p)p)
L145
Variable P5 : prop
L147
Axiom. (and5I) We take the following as an axiom:
P1P2P3P4P5P1 P2 P3 P4 P5
L149
Axiom. (and5E) We take the following as an axiom:
P1 P2 P3 P4 P5(∀p : prop, (P1P2P3P4P5p)p)
L150
Axiom. (or5I1) We take the following as an axiom:
P1P1 P2 P3 P4 P5
L151
Axiom. (or5I2) We take the following as an axiom:
P2P1 P2 P3 P4 P5
L152
Axiom. (or5I3) We take the following as an axiom:
P3P1 P2 P3 P4 P5
L153
Axiom. (or5I4) We take the following as an axiom:
P4P1 P2 P3 P4 P5
L154
Axiom. (or5I5) We take the following as an axiom:
P5P1 P2 P3 P4 P5
L155
Axiom. (or5E) We take the following as an axiom:
P1 P2 P3 P4 P5(∀p : prop, (P1p)(P2p)(P3p)(P4p)(P5p)p)
L156
Variable P6 : prop
L158
Axiom. (and6I) We take the following as an axiom:
P1P2P3P4P5P6P1 P2 P3 P4 P5 P6
L160
Axiom. (and6E) We take the following as an axiom:
P1 P2 P3 P4 P5 P6(∀p : prop, (P1P2P3P4P5P6p)p)
L161
Variable P7 : prop
L163
Axiom. (and7I) We take the following as an axiom:
P1P2P3P4P5P6P7P1 P2 P3 P4 P5 P6 P7
L165
Axiom. (and7E) We take the following as an axiom:
P1 P2 P3 P4 P5 P6 P7(∀p : prop, (P1P2P3P4P5P6P7p)p)
End of Section PropN
L168
Axiom. (and8I) We take the following as an axiom:
∀P0 P1 P2 P3 P4 P5 P6 P7 : prop, P0P1P2P3P4P5P6P7P0 P1 P2 P3 P4 P5 P6 P7
L172
Axiom. (and9I) We take the following as an axiom:
∀P0 P1 P2 P3 P4 P5 P6 P7 P8 : prop, P0P1P2P3P4P5P6P7P8P0 P1 P2 P3 P4 P5 P6 P7 P8
L176
Axiom. (and10I) We take the following as an axiom:
∀P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 : prop, P0P1P2P3P4P5P6P7P8P9P0 P1 P2 P3 P4 P5 P6 P7 P8 P9
L180
Axiom. (iffI) We take the following as an axiom:
∀A B : prop, (AB)(BA)(A B)
L182
Axiom. (iffEL) We take the following as an axiom:
∀A B : prop, (A B)AB
L183
Axiom. (iffER) We take the following as an axiom:
∀A B : prop, (A B)BA
L184
Axiom. (iff_ref) We take the following as an axiom:
∀A : prop, A A
L185
Axiom. (neq_i_sym) We take the following as an axiom:
∀x y, x yy x
L187
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.
L193
Axiom. (Eps_i_ex) We take the following as an axiom:
∀P : setprop, (∃x, P x)P (Eps_i P)
L195
Axiom. (pred_ext) We take the following as an axiom:
∀P Q : setprop, (∀x, P x Q x)P = Q
L197
Axiom. (prop_ext_2) We take the following as an axiom:
∀p q : prop, (pq)(qp)p = q
L198
Axiom. (pred_ext_2) We take the following as an axiom:
∀P Q : setprop, P QQ PP = Q
L199
Axiom. (Subq_ref) We take the following as an axiom:
∀X : set, X X
L201
Axiom. (Subq_tra) We take the following as an axiom:
∀X Y Z : set, X YY ZX Z
L202
Axiom. (Subq_contra) We take the following as an axiom:
∀X Y z : set, X Yz Yz X
L203
Axiom. (EmptyE) We take the following as an axiom:
∀x : set, x Empty
L205
Axiom. (Subq_Empty) We take the following as an axiom:
∀X : set, Empty X
L206
Axiom. (Empty_Subq_eq) We take the following as an axiom:
∀X : set, X EmptyX = Empty
L207
Axiom. (Empty_eq) We take the following as an axiom:
∀X : set, (∀x, x X)X = Empty
L208
Axiom. (UnionI) We take the following as an axiom:
∀X x Y : set, x YY Xx X
L210
Axiom. (UnionE) We take the following as an axiom:
∀X x : set, x X∃Y : set, x Y Y X
L211
Axiom. (UnionE_impred) We take the following as an axiom:
∀X x : set, x X∀p : prop, (∀Y : set, x YY Xp)p
L212
Axiom. (Union_Empty) We take the following as an axiom:
L214
Axiom. (PowerI) We take the following as an axiom:
∀X Y : set, Y XY 𝒫 X
L216
Axiom. (PowerE) We take the following as an axiom:
∀X Y : set, Y 𝒫 XY X
L217
Axiom. (Power_Subq) We take the following as an axiom:
∀X Y : set, X Y𝒫 X 𝒫 Y
L218
Axiom. (Empty_In_Power) We take the following as an axiom:
∀X : set, Empty 𝒫 X
L219
Axiom. (Self_In_Power) We take the following as an axiom:
∀X : set, X 𝒫 X
L220
Axiom. (Union_Power_Subq) We take the following as an axiom:
∀X : set, (𝒫 X) X
L222
Axiom. (xm) We take the following as an axiom:
∀P : prop, P ¬ P
L224
Axiom. (dneg) We take the following as an axiom:
∀P : prop, ¬ ¬ PP
L225
Axiom. (imp_not_or) We take the following as an axiom:
∀p q : prop, (pq)¬ p q
L226
Axiom. (not_and_or_demorgan) We take the following as an axiom:
∀p q : prop, ¬ (p q)¬ p ¬ q
Primitive. The name exactly1of2 is a term of type proppropprop.
L230
Axiom. (exactly1of2_I1) We take the following as an axiom:
∀A B : prop, A¬ Bexactly1of2 A B
L232
Axiom. (exactly1of2_I2) We take the following as an axiom:
∀A B : prop, ¬ ABexactly1of2 A B
L233
Axiom. (exactly1of2_impI1) We take the following as an axiom:
∀A B : prop, (A¬ B)(¬ AB)exactly1of2 A B
L234
Axiom. (exactly1of2_impI2) We take the following as an axiom:
∀A B : prop, (B¬ A)(¬ BA)exactly1of2 A B
L235
Axiom. (exactly1of2_E) We take the following as an axiom:
∀A B : prop, exactly1of2 A B∀p : prop, (A¬ Bp)(¬ ABp)p
L241
Axiom. (exactly1of2_or) We take the following as an axiom:
∀A B : prop, exactly1of2 A BA B
L243
Axiom. (exactly1of2_impn12) We take the following as an axiom:
∀A B : prop, exactly1of2 A BA¬ B
L244
Axiom. (exactly1of2_impn21) We take the following as an axiom:
∀A B : prop, exactly1of2 A BB¬ A
L245
Axiom. (exactly1of2_nimp12) We take the following as an axiom:
∀A B : prop, exactly1of2 A B¬ AB
L246
Axiom. (exactly1of2_nimp21) We take the following as an axiom:
∀A B : prop, exactly1of2 A B¬ BA
Primitive. The name exactly1of3 is a term of type propproppropprop.
L250
Axiom. (exactly1of3_I1) We take the following as an axiom:
∀A B C : prop, A¬ B¬ Cexactly1of3 A B C
L252
Axiom. (exactly1of3_I2) We take the following as an axiom:
∀A B C : prop, ¬ AB¬ Cexactly1of3 A B C
L253
Axiom. (exactly1of3_I3) We take the following as an axiom:
∀A B C : prop, ¬ A¬ BCexactly1of3 A B C
L254
Axiom. (exactly1of3_impI1) We take the following as an axiom:
∀A B C : prop, (A¬ B)(A¬ C)(B¬ C)(¬ AB C)exactly1of3 A B C
L255
Axiom. (exactly1of3_impI2) We take the following as an axiom:
∀A B C : prop, (B¬ A)(B¬ C)(A¬ C)(¬ BA C)exactly1of3 A B C
L256
Axiom. (exactly1of3_impI3) We take the following as an axiom:
∀A B C : prop, (C¬ A)(C¬ B)(A¬ B)(¬ AB)exactly1of3 A B C
L257
Axiom. (exactly1of3_E) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B C∀p : prop, (A¬ B¬ Cp)(¬ AB¬ Cp)(¬ A¬ BCp)p
L264
Axiom. (exactly1of3_or) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CA B C
L266
Axiom. (exactly1of3_impn12) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CA¬ B
L267
Axiom. (exactly1of3_impn13) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CA¬ C
L268
Axiom. (exactly1of3_impn21) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CB¬ A
L269
Axiom. (exactly1of3_impn23) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CB¬ C
L270
Axiom. (exactly1of3_impn31) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CC¬ A
L271
Axiom. (exactly1of3_impn32) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CC¬ B
L272
Axiom. (exactly1of3_nimp1) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B C¬ AB C
L273
Axiom. (exactly1of3_nimp2) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B C¬ BA C
L274
Axiom. (exactly1of3_nimp3) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B C¬ CA B
L275
Axiom. (ReplI) We take the following as an axiom:
∀A : set, ∀F : setset, ∀x : set, x AF x {F x|xA}
L277
Axiom. (ReplE) We take the following as an axiom:
∀A : set, ∀F : setset, ∀y : set, y {F x|xA}∃xA, y = F x
L279
Axiom. (ReplE_impred) We take the following as an axiom:
∀A : set, ∀F : setset, ∀y : set, y {F x|xA}∀p : prop, (∀x : set, x Ay = F xp)p
L281
Axiom. (Repl_Empty) We take the following as an axiom:
∀F : setset, {F x|xEmpty} = Empty
L283
Axiom. (ReplEq_ext_sub) We take the following as an axiom:
∀X, ∀F G : setset, (∀xX, F x = G x){F x|xX} {G x|xX}
L285
Axiom. (ReplEq_ext) We take the following as an axiom:
∀X, ∀F G : setset, (∀xX, F x = G x){F x|xX} = {G x|xX}
Primitive. 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.
L292
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
L295
Axiom. (If_i_0) We take the following as an axiom:
∀p : prop, ∀x y : set, ¬ p(if p then x else y) = y
L298
Axiom. (If_i_1) We take the following as an axiom:
∀p : prop, ∀x y : set, p(if p then x else y) = x
L301
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
L303
Axiom. (If_i_eta) We take the following as an axiom:
∀p : prop, ∀x : set, (if p then x else x) = x
Primitive. The name UPair is a term of type setsetset.
Notation. {x,y} is notation for UPair x y.
L310
Axiom. (UPairE) We take the following as an axiom:
∀x y z : set, x {y,z}x = y x = z
L313
Axiom. (UPairI1) We take the following as an axiom:
∀y z : set, y {y,z}
L315
Axiom. (UPairI2) We take the following as an axiom:
∀y z : set, z {y,z}
L317
Axiom. (UPair_com) We take the following as an axiom:
∀x y : set, {x,y} = {y,x}
Primitive. The name Sing is a term of type setset.
Notation. {x} is notation for Sing x.
L323
Axiom. (SingI) We take the following as an axiom:
∀x : set, x {x}
L325
Axiom. (SingE) We take the following as an axiom:
∀x y : set, y {x}y = x
Primitive. 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.
L332
Axiom. (binunionI1) We take the following as an axiom:
∀X Y z : set, z Xz X Y
L334
Axiom. (binunionI2) We take the following as an axiom:
∀X Y z : set, z Yz X Y
L336
Axiom. (binunionE) We take the following as an axiom:
∀X Y z : set, z X Yz X z Y
L338
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.
L342
Axiom. (Power_0_Sing_0) We take the following as an axiom:
L344
Axiom. (Repl_UPair) We take the following as an axiom:
∀F : setset, ∀x y : set, {F z|z{x,y}} = {F x,F y}
L346
Axiom. (Repl_Sing) We take the following as an axiom:
∀F : setset, ∀x : set, {F z|z{x}} = {F x}
L348
Axiom. (Repl_restr) We take the following as an axiom:
∀X : set, ∀F G : setset, (∀x : set, x XF x = G x){F x|xX} = {G x|xX}
L350
Definition. We define famunion to be λX F ⇒ {F x|xX} of type set(setset)set.
Notation. We use x [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using famunion.
L356
Axiom. (famunionI) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀x y : set, x Xy F xy xXF x
L358
Axiom. (famunionE) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀y : set, y (xXF x)∃xX, y F x
L360
Axiom. (famunionE_impred) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀y : set, y (xXF x)∀p : prop, (∀x, x Xy F xp)p
L362
Axiom. (UnionEq_famunionId) We take the following as an axiom:
∀X : set, X = xXx
L364
Axiom. (ReplEq_famunion_Sing) We take the following as an axiom:
∀X : set, ∀F : (setset), {F x|xX} = xX{F x}
L366
Axiom. (Power_Sing) We take the following as an axiom:
∀x : set, 𝒫 {x} = {Empty,{x}}
L368
Axiom. (Power_Sing_0) We take the following as an axiom:
Primitive. The name Sep is a term of type set(setprop)set.
Notation. {xA | B} is notation for Sep Ax . B).
L374
Axiom. (SepI) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x XP xx {xX|P x}
L376
Axiom. (SepE) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}x X P x
L377
Axiom. (SepE1) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}x X
L378
Axiom. (SepE2) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}P x
L379
Axiom. (Sep_Subq) We take the following as an axiom:
∀X : set, ∀P : setprop, {xX|P x} X
L381
Axiom. (Sep_In_Power) We take the following as an axiom:
∀X : set, ∀P : setprop, {xX|P x} 𝒫 X
Primitive. The name ReplSep is a term of type set(setprop)(setset)set.
Notation. {B| xA, C} is notation for ReplSep Ax . C) (λ x . B).
L387
Axiom. (ReplSepI) We take the following as an axiom:
∀X : set, ∀P : setprop, ∀F : setset, ∀x : set, x XP xF x {F x|xX, P x}
L389
Axiom. (ReplSepE) We take the following as an axiom:
∀X : set, ∀P : setprop, ∀F : setset, ∀y : set, y {F x|xX, P x}∃x : set, x X P x y = F x
L391
Axiom. (ReplSepE_impred) We take the following as an axiom:
∀X : set, ∀P : setprop, ∀F : setset, ∀y : set, y {F x|xX, P x}∀p : prop, (∀xX, P xy = F xp)p
Primitive. The name ReplSep2 is a term of type set(setset)(setsetprop)(setsetset)set.
L396
Axiom. (ReplSep2I) We take the following as an axiom:
∀A, ∀B : setset, ∀P : setsetprop, ∀F : setsetset, ∀xA, ∀yB x, P x yF x y ReplSep2 A B P F
L398
Axiom. (ReplSep2E_impred) We take the following as an axiom:
∀A, ∀B : setset, ∀P : setsetprop, ∀F : setsetset, ∀rReplSep2 A B P F, ∀p : prop, (∀xA, ∀yB x, P x yr = F x yp)p
L400
Axiom. (ReplSep2E) We take the following as an axiom:
∀A, ∀B : setset, ∀P : setsetprop, ∀F : setsetset, ∀rReplSep2 A B P F, ∃xA, ∃yB x, P x y r = F x y
L402
Axiom. (binunion_asso) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = (X Y) Z
L404
Axiom. (binunion_com) We take the following as an axiom:
∀X Y : set, X Y = Y X
L405
Axiom. (binunion_idl) We take the following as an axiom:
∀X : set, Empty X = X
L406
Axiom. (binunion_idr) We take the following as an axiom:
∀X : set, X Empty = X
L407
Axiom. (binunion_idem) We take the following as an axiom:
∀X : set, X X = X
L408
Axiom. (binunion_Subq_1) We take the following as an axiom:
∀X Y : set, X X Y
L409
Axiom. (binunion_Subq_2) We take the following as an axiom:
∀X Y : set, Y X Y
L410
Axiom. (binunion_Subq_min) We take the following as an axiom:
∀X Y Z : set, X ZY ZX Y Z
L411
Axiom. (Subq_binunion_eq) We take the following as an axiom:
∀X Y, (X Y) = (X Y = Y)
L412
Axiom. (binunion_nIn_I) We take the following as an axiom:
∀X Y z : set, z Xz Yz X Y
L413
Axiom. (binunion_nIn_E) We take the following as an axiom:
∀X Y z : set, z X Yz X z Y
Primitive. 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.
L420
Axiom. (binintersectI) We take the following as an axiom:
∀X Y z, z Xz Yz X Y
L422
Axiom. (binintersectE) We take the following as an axiom:
∀X Y z, z X Yz X z Y
L423
Axiom. (binintersectE1) We take the following as an axiom:
∀X Y z, z X Yz X
L424
Axiom. (binintersectE2) We take the following as an axiom:
∀X Y z, z X Yz Y
L425
Axiom. (binintersect_Subq_1) We take the following as an axiom:
∀X Y : set, X Y X
L426
Axiom. (binintersect_Subq_2) We take the following as an axiom:
∀X Y : set, X Y Y
L427
Axiom. (binintersect_Subq_eq_1) We take the following as an axiom:
∀X Y, X YX Y = X
L428
Axiom. (binintersect_Subq_max) We take the following as an axiom:
∀X Y Z : set, Z XZ YZ X Y
L429
Axiom. (binintersect_asso) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = (X Y) Z
L430
Axiom. (binintersect_com) We take the following as an axiom:
∀X Y : set, X Y = Y X
L431
Axiom. (binintersect_annil) We take the following as an axiom:
∀X : set, Empty X = Empty
L432
Axiom. (binintersect_annir) We take the following as an axiom:
∀X : set, X Empty = Empty
L433
Axiom. (binintersect_idem) We take the following as an axiom:
∀X : set, X X = X
L434
Axiom. (binintersect_binunion_distr) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = X Y X Z
L435
Axiom. (binunion_binintersect_distr) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Y) (X Z)
L436
Axiom. (Subq_binintersection_eq) We take the following as an axiom:
∀X Y : set, (X Y) = (X Y = X)
L437
Axiom. (binintersect_nIn_I1) We take the following as an axiom:
∀X Y z : set, z Xz X Y
L438
Axiom. (binintersect_nIn_I2) We take the following as an axiom:
∀X Y z : set, z Yz X Y
L439
Axiom. (binintersect_nIn_E) We take the following as an axiom:
∀X Y z : set, z X Yz X z Y
Primitive. 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.
L446
Axiom. (setminusI) We take the following as an axiom:
∀X Y z, (z X)(z Y)z X Y
L448
Axiom. (setminusE) We take the following as an axiom:
∀X Y z, (z X Y)z X z Y
L449
Axiom. (setminusE1) We take the following as an axiom:
∀X Y z, (z X Y)z X
L450
Axiom. (setminusE2) We take the following as an axiom:
∀X Y z, (z X Y)z Y
L451
Axiom. (setminus_Subq) We take the following as an axiom:
∀X Y : set, X Y X
L452
Axiom. (setminus_Subq_contra) We take the following as an axiom:
∀X Y Z : set, Z YX Y X Z
L453
Axiom. (setminus_nIn_I1) We take the following as an axiom:
∀X Y z, z Xz X Y
L454
Axiom. (setminus_nIn_I2) We take the following as an axiom:
∀X Y z, z Yz X Y
L455
Axiom. (setminus_nIn_E) We take the following as an axiom:
∀X Y z, z X Yz X z Y
L456
Axiom. (setminus_selfannih) We take the following as an axiom:
∀X : set, (X X) = Empty
L457
Axiom. (setminus_binintersect) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Y) (X Z)
L458
Axiom. (setminus_binunion) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Y) Z
L459
Axiom. (binintersect_setminus) We take the following as an axiom:
∀X Y Z : set, (X Y) Z = X (Y Z)
L460
Axiom. (binunion_setminus) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Z) (Y Z)
L461
Axiom. (setminus_setminus) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = (X Y) (X Z)
L462
Axiom. (setminus_annil) We take the following as an axiom:
∀X : set, Empty X = Empty
L463
Axiom. (setminus_idr) We take the following as an axiom:
∀X : set, X Empty = X
L464
Axiom. (In_irref) We take the following as an axiom:
∀x, x x
L466
Axiom. (In_no2cycle) We take the following as an axiom:
∀x y, x yy xFalse
L467
Axiom. (In_no3cycle) We take the following as an axiom:
∀x y z, x yy zz xFalse
Primitive. The name ordsucc is a term of type setset.
L471
Axiom. (ordsuccI1) We take the following as an axiom:
∀x : set, x ordsucc x
L473
Axiom. (ordsuccI2) We take the following as an axiom:
∀x : set, x ordsucc x
L474
Axiom. (ordsuccE) We take the following as an axiom:
∀x y : set, y ordsucc xy x y = x
Notation. Natural numbers 0,1,2,... are notation for the terms formed using Empty as 0 and forming successors with ordsucc.
L477
Axiom. (neq_0_ordsucc) We take the following as an axiom:
∀a : set, 0 ordsucc a
L479
Axiom. (neq_ordsucc_0) We take the following as an axiom:
∀a : set, ordsucc a 0
L480
Axiom. (ordsucc_inj) We take the following as an axiom:
∀a b : set, ordsucc a = ordsucc ba = b
L482
Axiom. (ordsucc_inj_contra) We take the following as an axiom:
∀a b : set, a bordsucc a ordsucc b
L483
Axiom. (In_0_1) We take the following as an axiom:
L485
Axiom. (In_0_2) We take the following as an axiom:
L486
Axiom. (In_1_2) We take the following as an axiom:
L487
Definition. We define nat_p to be λn : set∀p : setprop, p 0(∀x : set, p xp (ordsucc x))p n of type setprop.
L489
Axiom. (nat_0) We take the following as an axiom:
L491
Axiom. (nat_ordsucc) We take the following as an axiom:
∀n : set, nat_p nnat_p (ordsucc n)
L492
Axiom. (nat_1) We take the following as an axiom:
L493
Axiom. (nat_2) We take the following as an axiom:
L494
Axiom. (nat_3) We take the following as an axiom:
L495
Axiom. (nat_4) We take the following as an axiom:
L496
Axiom. (nat_5) We take the following as an axiom:
L497
Axiom. (nat_6) We take the following as an axiom:
L498
Axiom. (nat_0_in_ordsucc) We take the following as an axiom:
∀n, nat_p n0 ordsucc n
L499
Axiom. (nat_ordsucc_in_ordsucc) We take the following as an axiom:
∀n, nat_p n∀mn, ordsucc m ordsucc n
L500
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
L501
Axiom. (nat_inv) We take the following as an axiom:
∀n, nat_p nn = 0 ∃x, nat_p x n = ordsucc x
L502
Axiom. (nat_complete_ind) We take the following as an axiom:
∀p : setprop, (∀n, nat_p n(∀mn, p m)p n)∀n, nat_p np n
L503
Axiom. (nat_p_trans) We take the following as an axiom:
∀n, nat_p n∀mn, nat_p m
L504
Axiom. (nat_trans) We take the following as an axiom:
∀n, nat_p n∀mn, m n
L505
Axiom. (nat_ordsucc_trans) We take the following as an axiom:
∀n, nat_p n∀mordsucc n, m n
L506
Axiom. (Union_ordsucc_eq) We take the following as an axiom:
∀n, nat_p n (ordsucc n) = n
L508
Axiom. (In_0_3) We take the following as an axiom:
L510
Axiom. (In_1_3) We take the following as an axiom:
L511
Axiom. (In_2_3) We take the following as an axiom:
L512
Axiom. (In_0_4) We take the following as an axiom:
L513
Axiom. (In_1_4) We take the following as an axiom:
L514
Axiom. (In_2_4) We take the following as an axiom:
L515
Axiom. (In_3_4) We take the following as an axiom:
L516
Axiom. (In_0_5) We take the following as an axiom:
L517
Axiom. (In_1_5) We take the following as an axiom:
L518
Axiom. (In_2_5) We take the following as an axiom:
L519
Axiom. (In_3_5) We take the following as an axiom:
L520
Axiom. (In_4_5) We take the following as an axiom:
L521
Axiom. (In_0_6) We take the following as an axiom:
L522
Axiom. (In_1_6) We take the following as an axiom:
L523
Axiom. (In_2_6) We take the following as an axiom:
L524
Axiom. (In_3_6) We take the following as an axiom:
L525
Axiom. (In_4_6) We take the following as an axiom:
L526
Axiom. (In_5_6) We take the following as an axiom:
L527
Axiom. (cases_1) We take the following as an axiom:
∀i1, ∀p : setprop, p 0p i
L529
Axiom. (cases_2) We take the following as an axiom:
∀i2, ∀p : setprop, p 0p 1p i
L530
Axiom. (cases_3) We take the following as an axiom:
∀i3, ∀p : setprop, p 0p 1p 2p i
L531
Axiom. (cases_4) We take the following as an axiom:
∀i4, ∀p : setprop, p 0p 1p 2p 3p i
L532
Axiom. (cases_5) We take the following as an axiom:
∀i5, ∀p : setprop, p 0p 1p 2p 3p 4p i
L533
Axiom. (cases_6) We take the following as an axiom:
∀i6, ∀p : setprop, p 0p 1p 2p 3p 4p 5p i
L534
Axiom. (neq_0_1) We take the following as an axiom:
L536
Axiom. (neq_0_2) We take the following as an axiom:
L537
Axiom. (neq_1_2) We take the following as an axiom:
L538
Axiom. (neq_1_0) We take the following as an axiom:
L539
Axiom. (neq_2_0) We take the following as an axiom:
L540
Axiom. (neq_2_1) We take the following as an axiom:
L541
Axiom. (neq_3_0) We take the following as an axiom:
L542
Axiom. (neq_3_1) We take the following as an axiom:
L543
Axiom. (neq_3_2) We take the following as an axiom:
L544
Axiom. (neq_4_0) We take the following as an axiom:
L545
Axiom. (neq_4_1) We take the following as an axiom:
L546
Axiom. (neq_4_2) We take the following as an axiom:
L547
Axiom. (neq_4_3) We take the following as an axiom:
L548
Axiom. (neq_5_0) We take the following as an axiom:
L549
Axiom. (neq_5_1) We take the following as an axiom:
L550
Axiom. (neq_5_2) We take the following as an axiom:
L551
Axiom. (neq_5_3) We take the following as an axiom:
L552
Axiom. (neq_5_4) We take the following as an axiom:
L553
Axiom. (ZF_closed_I) We take the following as an axiom:
L559
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
L566
Axiom. (ZF_Union_closed) We take the following as an axiom:
∀U, ZF_closed U∀XU, X U
L569
Axiom. (ZF_Power_closed) We take the following as an axiom:
∀U, ZF_closed U∀XU, 𝒫 X U
L572
Axiom. (ZF_Repl_closed) We take the following as an axiom:
∀U, ZF_closed U∀XU, ∀F : setset, (∀xX, F x U){F x|xX} U
L575
Axiom. (ZF_UPair_closed) We take the following as an axiom:
∀U, ZF_closed U∀x yU, {x,y} U
L578
Axiom. (ZF_Sing_closed) We take the following as an axiom:
∀U, ZF_closed U∀xU, {x} U
L581
Axiom. (ZF_binunion_closed) We take the following as an axiom:
∀U, ZF_closed U∀X YU, (X Y) U
L584
Axiom. (ZF_ordsucc_closed) We take the following as an axiom:
∀U, ZF_closed U∀xU, ordsucc x U
L587
Axiom. (nat_p_UnivOf_Empty) We take the following as an axiom:
∀n : set, nat_p nn UnivOf Empty
L589
Definition. We define omega to be {nUnivOf Empty|nat_p n} of type set.
L591
Axiom. (omega_nat_p) We take the following as an axiom:
L593
Axiom. (nat_p_omega) We take the following as an axiom:
∀n : set, nat_p nn omega
L595
Axiom. (omega_ordsucc) We take the following as an axiom:
L597
Definition. We define ordinal to be λalpha : setTransSet alpha ∀betaalpha, TransSet beta of type setprop.
L599
Axiom. (ordinal_TransSet) We take the following as an axiom:
∀alpha : set, ordinal alphaTransSet alpha
L601
Axiom. (ordinal_In_TransSet) We take the following as an axiom:
∀alpha : set, ordinal alpha∀betaalpha, TransSet beta
L603
Axiom. (ordinal_Empty) We take the following as an axiom:
L605
Axiom. (ordinal_Hered) We take the following as an axiom:
∀alpha : set, ordinal alpha∀betaalpha, ordinal beta
L607
Axiom. (TransSet_ordsucc) We take the following as an axiom:
∀X : set, TransSet XTransSet (ordsucc X)
L609
Axiom. (ordinal_ordsucc) We take the following as an axiom:
∀alpha : set, ordinal alphaordinal (ordsucc alpha)
L611
Axiom. (nat_p_ordinal) We take the following as an axiom:
∀n : set, nat_p nordinal n
L613
Axiom. (ordinal_1) We take the following as an axiom:
L615
Axiom. (ordinal_2) We take the following as an axiom:
L617
Axiom. (omega_TransSet) We take the following as an axiom:
L619
Axiom. (omega_ordinal) We take the following as an axiom:
L621
Axiom. (ordsucc_omega_ordinal) We take the following as an axiom:
L623
Axiom. (TransSet_ordsucc_In_Subq) We take the following as an axiom:
∀X : set, TransSet X∀xX, ordsucc x X
L625
Axiom. (ordinal_ordsucc_In_Subq) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ordsucc beta alpha
L627
Axiom. (ordinal_trichotomy_or) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal betaalpha beta alpha = beta beta alpha
L629
Axiom. (ordinal_In_Or_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha beta beta alpha
L631
Axiom. (ordinal_linear) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha beta beta alpha
L633
Axiom. (ordinal_ordsucc_In_eq) We take the following as an axiom:
∀alpha beta, ordinal alphabeta alphaordsucc beta alpha alpha = ordsucc beta
L635
Axiom. (ordinal_lim_or_succ) We take the following as an axiom:
∀alpha, ordinal alpha(∀betaalpha, ordsucc beta alpha) (∃betaalpha, alpha = ordsucc beta)
L637
Axiom. (ordinal_ordsucc_In) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ordsucc beta ordsucc alpha
L639
Axiom. (ordinal_Union) We take the following as an axiom:
∀X, (∀xX, ordinal x)ordinal ( X)
L641
Axiom. (ordinal_famunion) We take the following as an axiom:
∀X, ∀F : setset, (∀xX, ordinal (F x))ordinal (xXF x)
L643
Axiom. (ordinal_binintersect) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alpha beta)
L645
Axiom. (ordinal_binunion) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alpha beta)
L647
Axiom. (ordinal_Sep) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, (∀betaalpha, ∀gammabeta, p betap gamma)ordinal {betaalpha|p beta}
L649
Definition. We define inj to be λX Y f ⇒ (∀uX, f u Y) (∀u vX, f u = f vu = v) of type setset(setset)prop.
L655
Definition. We define surj to be λX Y f ⇒ (∀uX, f u Y) (∀wY, ∃uX, f u = w) of type setset(setset)prop.
L661
Definition. We define bij to be λX Y f ⇒ (∀uX, f u Y) (∀u vX, f u = f vu = v) (∀wY, ∃uX, f u = w) of type setset(setset)prop.
L669
Axiom. (bijI) We take the following as an axiom:
∀X Y, ∀f : setset, (∀uX, f u Y)(∀u vX, f u = f vu = v)(∀wY, ∃uX, f u = w)bij X Y f
L675
Axiom. (bijE) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y f∀p : prop, ((∀uX, f u Y)(∀u vX, f u = f vu = v)(∀wY, ∃uX, f u = w)p)p
Primitive. The name inv is a term of type set(setset)setset.
L687
Axiom. (surj_rinv) We take the following as an axiom:
∀X Y, ∀f : setset, (∀wY, ∃uX, f u = w)∀yY, inv X f y X f (inv X f y) = y
L689
Axiom. (inj_linv) We take the following as an axiom:
∀X, ∀f : setset, (∀u vX, f u = f vu = v)∀xX, inv X f (f x) = x
L691
Axiom. (bij_inv) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y fbij Y X (inv X f)
L693
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))
L695
Axiom. (bij_id) We take the following as an axiom:
∀X, bij X X (λx ⇒ x)
L697
Axiom. (bij_inj) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y finj X Y f
L699
Axiom. (bij_surj) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y fsurj X Y f
L701
Axiom. (inj_surj_bij) We take the following as an axiom:
∀X Y, ∀f : setset, inj X Y fsurj X Y fbij X Y f
L703
Axiom. (surj_inv_inj) We take the following as an axiom:
∀X Y, ∀f : setset, (∀yY, ∃xX, f x = y)inj Y X (inv X f)
L705
Definition. We define atleastp to be λX Y : set∃f : setset, inj X Y f of type setsetprop.
L708
Definition. We define equip to be λX Y : set∃f : setset, bij X Y f of type setsetprop.
L711
Axiom. (equip_ref) We take the following as an axiom:
∀X, equip X X
L713
Axiom. (equip_sym) We take the following as an axiom:
∀X Y, equip X Yequip Y X
L714
Axiom. (equip_tra) We take the following as an axiom:
∀X Y Z, equip X Yequip Y Zequip X Z
L715
Definition. We define finite to be λX ⇒ ∃nomega, equip X n of type setprop.
L717
Definition. We define infinite to be λX ⇒ ¬ finite X of type setprop.
L718
Axiom. (KnasterTarski_set) We take the following as an axiom:
∀A, ∀F : setset, (∀U𝒫 A, F U 𝒫 A)(∀U V𝒫 A, U VF U F V)∃Y𝒫 A, F Y = Y
L723
Axiom. (image_In_Power) We take the following as an axiom:
∀A B, ∀f : setset, (∀xA, f x B)∀U𝒫 A, {f x|xU} 𝒫 B
L724
Axiom. (image_monotone) We take the following as an axiom:
∀f : setset, ∀U V, U V{f x|xU} {f x|xV}
L725
Axiom. (setminus_In_Power) We take the following as an axiom:
∀A U, A U 𝒫 A
L726
Axiom. (setminus_antimonotone) We take the following as an axiom:
∀A U V, U VA V A U
L727
Axiom. (SchroederBernstein) We take the following as an axiom:
∀A B, ∀f g : setset, inj A B finj B A gequip A B
L728
Axiom. (f_eq_i) We take the following as an axiom:
∀f : setset, ∀x y, x = yf x = f y
L730
Axiom. (f_eq_i_i) We take the following as an axiom:
∀f : setsetset, ∀x y z w, x = yz = wf x z = f y w
L731
Axiom. (eq_i_tra) We take the following as an axiom:
∀x y z, x = yy = zx = z
L732
Definition. We define nSubq to be λX Y ⇒ ¬ Subq X Y of type setsetprop.
Notation. We use as an infix operator with priority 502 and no associativity corresponding to applying term nSubq.
L738
Axiom. (Sing_inv) We take the following as an axiom:
∀x Y, {x} = Yx Y ∀yY, y = x
L740
Axiom. (TransSet_In_ordsucc_Subq) We take the following as an axiom:
∀x y, TransSet yx ordsucc yx y
L742
Axiom. (inv_Repl_eq) We take the following as an axiom:
∀X, ∀f g : setset, (∀xX, f (g x) = x){f y|y{g x|xX}} = X
L743
Axiom. (invol_Repl_eq) We take the following as an axiom:
∀X, ∀f : setset, (∀xX, f (f x) = x){f y|y{f x|xX}} = X
L744
Axiom. (Eps_i_set_R) We take the following as an axiom:
∀X : set, ∀P : setprop, ∀xX, P xEps_i (λx ⇒ x X P x) X P (Eps_i (λx ⇒ x X P x))
L746
Axiom. (exandE_i) We take the following as an axiom:
∀P Q : setprop, (∃x, P x Q x)∀r : prop, (∀x, P xQ xr)r
L748
Axiom. (exandE_ii) We take the following as an axiom:
∀P Q : (setset)prop, (∃x : setset, P x Q x)∀p : prop, (∀x : setset, P xQ xp)p
L750
Axiom. (exandE_iii) We take the following as an axiom:
∀P Q : (setsetset)prop, (∃x : setsetset, P x Q x)∀p : prop, (∀x : setsetset, P xQ xp)p
L752
Axiom. (exandE_iiii) We take the following as an axiom:
∀P Q : (setsetsetset)prop, (∃x : setsetsetset, P x Q x)∀p : prop, (∀x : setsetsetset, P xQ xp)p
L754
Axiom. (exandE_iio) We take the following as an axiom:
∀P Q : (setsetprop)prop, (∃x : setsetprop, P x Q x)∀p : prop, (∀x : setsetprop, P xQ xp)p
L756
Axiom. (exandE_iiio) We take the following as an axiom:
∀P Q : (setsetsetprop)prop, (∃x : setsetsetprop, P x Q x)∀p : prop, (∀x : setsetsetprop, P xQ xp)p
Beginning of Section Descr_ii
L760
Variable P : (setset)prop
Primitive. The name Descr_ii is a term of type setset.
L765
Hypothesis Pex : ∃f : setset, P f
L767
Hypothesis Puniq : ∀f g : setset, P fP gf = g
L768
Axiom. (Descr_ii_prop) We take the following as an axiom:
End of Section Descr_ii
Beginning of Section Descr_iii
L774
Variable P : (setsetset)prop
Primitive. The name Descr_iii is a term of type setsetset.
L779
Hypothesis Pex : ∃f : setsetset, P f
L781
Hypothesis Puniq : ∀f g : setsetset, P fP gf = g
L782
Axiom. (Descr_iii_prop) We take the following as an axiom:
End of Section Descr_iii
Beginning of Section Descr_iio
L788
Variable P : (setsetprop)prop
Primitive. The name Descr_iio is a term of type setsetprop.
L793
Hypothesis Pex : ∃f : setsetprop, P f
L795
Hypothesis Puniq : ∀f g : setsetprop, P fP gf = g
L796
Axiom. (Descr_iio_prop) We take the following as an axiom:
End of Section Descr_iio
Beginning of Section Descr_Vo1
L802
Variable P : Vo 1prop
Primitive. The name Descr_Vo1 is a term of type Vo 1.
L807
Hypothesis Pex : ∃f : Vo 1, P f
L809
Hypothesis Puniq : ∀f g : Vo 1, P fP gf = g
L810
Axiom. (Descr_Vo1_prop) We take the following as an axiom:
End of Section Descr_Vo1
Beginning of Section Descr_Vo2
L816
Variable P : Vo 2prop
Primitive. The name Descr_Vo2 is a term of type Vo 2.
L821
Hypothesis Pex : ∃f : Vo 2, P f
L823
Hypothesis Puniq : ∀f g : Vo 2, P fP gf = g
L824
Axiom. (Descr_Vo2_prop) We take the following as an axiom:
End of Section Descr_Vo2
Beginning of Section If_ii
L830
Variable p : prop
L832
Variable f g : setset
Primitive. The name If_ii is a term of type setset.
L836
Axiom. (If_ii_1) We take the following as an axiom:
pIf_ii = f
L838
Axiom. (If_ii_0) We take the following as an axiom:
¬ pIf_ii = g
End of Section If_ii
Beginning of Section If_iii
L844
Variable p : prop
L846
Variable f g : setsetset
Primitive. The name If_iii is a term of type setsetset.
L850
Axiom. (If_iii_1) We take the following as an axiom:
pIf_iii = f
L852
Axiom. (If_iii_0) We take the following as an axiom:
¬ pIf_iii = g
End of Section If_iii
Beginning of Section If_Vo1
L858
Variable p : prop
L860
Variable f g : Vo 1
Primitive. The name If_Vo1 is a term of type Vo 1.
L864
Axiom. (If_Vo1_1) We take the following as an axiom:
pIf_Vo1 = f
L866
Axiom. (If_Vo1_0) We take the following as an axiom:
¬ pIf_Vo1 = g
End of Section If_Vo1
Beginning of Section If_iio
L872
Variable p : prop
L874
Variable f g : setsetprop
Primitive. The name If_iio is a term of type setsetprop.
L878
Axiom. (If_iio_1) We take the following as an axiom:
pIf_iio = f
L880
Axiom. (If_iio_0) We take the following as an axiom:
¬ pIf_iio = g
End of Section If_iio
Beginning of Section If_Vo2
L886
Variable p : prop
L888
Variable f g : Vo 2
Primitive. The name If_Vo2 is a term of type Vo 2.
L892
Axiom. (If_Vo2_1) We take the following as an axiom:
pIf_Vo2 = f
L894
Axiom. (If_Vo2_0) We take the following as an axiom:
¬ pIf_Vo2 = g
End of Section If_Vo2
Beginning of Section EpsilonRec_i
L900
Variable F : set(setset)set
Primitive. The name In_rec_i is a term of type setset.
L905
Hypothesis Fr : ∀X : set, ∀g h : setset, (∀xX, g x = h x)F X g = F X h
L907
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
L913
Variable F : set(set(setset))(setset)
Primitive. The name In_rec_ii is a term of type set(setset).
L918
Hypothesis Fr : ∀X : set, ∀g h : set(setset), (∀xX, g x = h x)F X g = F X h
L920
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
L926
Variable F : set(set(setsetset))(setsetset)
Primitive. The name In_rec_iii is a term of type set(setsetset).
L931
Hypothesis Fr : ∀X : set, ∀g h : set(setsetset), (∀xX, g x = h x)F X g = F X h
L933
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 EpsilonRec_iio
L939
Variable F : set(set(setsetprop))(setsetprop)
Primitive. The name In_rec_iio is a term of type set(setsetprop).
L944
Hypothesis Fr : ∀X : set, ∀g h : set(setsetprop), (∀xX, g x = h x)F X g = F X h
L946
Axiom. (In_rec_iio_eq) We take the following as an axiom:
∀X : set, In_rec_iio X = F X In_rec_iio
End of Section EpsilonRec_iio
Beginning of Section EpsilonRec_Vo1
L952
Variable F : set(setVo 1)Vo 1
Primitive. The name In_rec_Vo1 is a term of type setVo 1.
L957
Hypothesis Fr : ∀X : set, ∀g h : setVo 1, (∀xX, g x = h x)F X g = F X h
L959
Axiom. (In_rec_Vo1_eq) We take the following as an axiom:
∀X : set, In_rec_Vo1 X = F X In_rec_Vo1
End of Section EpsilonRec_Vo1
Beginning of Section EpsilonRec_Vo2
L965
Variable F : set(setVo 2)Vo 2
Primitive. The name In_rec_Vo2 is a term of type setVo 2.
L970
Hypothesis Fr : ∀X : set, ∀g h : setVo 2, (∀xX, g x = h x)F X g = F X h
L972
Axiom. (In_rec_Vo2_eq) We take the following as an axiom:
∀X : set, In_rec_Vo2 X = F X In_rec_Vo2
End of Section EpsilonRec_Vo2
Beginning of Section If_Vo3
L978
Variable p : prop
L980
Variable f g : Vo 3
Primitive. The name If_Vo3 is a term of type Vo 3.
L984
Axiom. (If_Vo3_1) We take the following as an axiom:
pIf_Vo3 = f
L986
Axiom. (If_Vo3_0) We take the following as an axiom:
¬ pIf_Vo3 = g
End of Section If_Vo3
Beginning of Section Descr_Vo3
L992
Variable P : Vo 3prop
Primitive. The name Descr_Vo3 is a term of type Vo 3.
L997
Hypothesis Pex : ∃f : Vo 3, P f
L999
Hypothesis Puniq : ∀f g : Vo 3, P fP gf = g
L1000
Axiom. (Descr_Vo3_prop) We take the following as an axiom:
End of Section Descr_Vo3
Beginning of Section EpsilonRec_Vo3
L1006
Variable F : set(setVo 3)Vo 3
Primitive. The name In_rec_Vo3 is a term of type setVo 3.
L1011
Hypothesis Fr : ∀X : set, ∀g h : setVo 3, (∀xX, g x = h x)F X g = F X h
L1013
Axiom. (In_rec_Vo3_eq) We take the following as an axiom:
∀X : set, In_rec_Vo3 X = F X In_rec_Vo3
End of Section EpsilonRec_Vo3
Beginning of Section If_Vo4
L1019
Variable p : prop
L1021
Variable f g : Vo 4
Primitive. The name If_Vo4 is a term of type Vo 4.
L1025
Axiom. (If_Vo4_1) We take the following as an axiom:
pIf_Vo4 = f
L1027
Axiom. (If_Vo4_0) We take the following as an axiom:
¬ pIf_Vo4 = g
End of Section If_Vo4
Beginning of Section Descr_Vo4
L1032
Variable P : Vo 4prop
Primitive. The name Descr_Vo4 is a term of type Vo 4.
L1037
Hypothesis Pex : ∃f : Vo 4, P f
L1039
Hypothesis Puniq : ∀f g : Vo 4, P fP gf = g
L1040
Axiom. (Descr_Vo4_prop) We take the following as an axiom:
End of Section Descr_Vo4
Beginning of Section EpsilonRec_Vo4
L1046
Variable F : set(setVo 4)Vo 4
Primitive. The name In_rec_Vo4 is a term of type setVo 4.
L1051
Hypothesis Fr : ∀X : set, ∀g h : setVo 4, (∀xX, g x = h x)F X g = F X h
L1053
Axiom. (In_rec_Vo4_eq) We take the following as an axiom:
∀X : set, In_rec_Vo4 X = F X In_rec_Vo4
End of Section EpsilonRec_Vo4
L1057
Definition. We define bigintersect to be λ(D : (setprop)prop)(x : set) ⇒ ∀P : setprop, D PP x.
L1059
Definition. We define reflexive to be λR ⇒ ∀x : set, R x x of type (setsetprop)prop.
L1061
Definition. We define irreflexive to be λR ⇒ ∀x : set, ¬ R x x of type (setsetprop)prop.
L1062
Definition. We define symmetric to be λR ⇒ ∀x y : set, R x yR y x of type (setsetprop)prop.
L1063
Definition. We define antisymmetric to be λR ⇒ ∀x y : set, R x yR y xx = y of type (setsetprop)prop.
L1064
Definition. We define transitive to be λR ⇒ ∀x y z : set, R x yR y zR x z of type (setsetprop)prop.
L1065
Definition. We define eqreln to be λR ⇒ reflexive R symmetric R transitive R of type (setsetprop)prop.
L1066
Definition. We define per to be λR ⇒ symmetric R transitive R of type (setsetprop)prop.
L1067
Definition. We define linear to be λR ⇒ ∀x y : set, R x y R y x of type (setsetprop)prop.
L1068
Definition. We define trichotomous_or to be λR ⇒ ∀x y : set, R x y x = y R y x of type (setsetprop)prop.
L1069
Definition. We define partialorder to be λR ⇒ reflexive R antisymmetric R transitive R of type (setsetprop)prop.
L1070
Definition. We define totalorder to be λR ⇒ partialorder R linear R of type (setsetprop)prop.
L1071
Definition. We define strictpartialorder to be λR ⇒ irreflexive R transitive R of type (setsetprop)prop.
L1072
Definition. We define stricttotalorder to be λR ⇒ strictpartialorder R trichotomous_or R of type (setsetprop)prop.
L1073
Axiom. (per_sym) We take the following as an axiom:
∀R : setsetprop, per Rsymmetric R
L1075
Axiom. (per_tra) We take the following as an axiom:
∀R : setsetprop, per Rtransitive R
L1077
Axiom. (per_stra1) We take the following as an axiom:
∀R : setsetprop, per R∀x y z : set, R y xR y zR x z
L1079
Axiom. (per_stra2) We take the following as an axiom:
∀R : setsetprop, per R∀x y z : set, R x yR z yR x z
L1081
Axiom. (per_stra3) We take the following as an axiom:
∀R : setsetprop, per R∀x y z : set, R y xR z yR x z
L1083
Axiom. (per_ref1) We take the following as an axiom:
∀R : setsetprop, per R∀x y : set, R x yR x x
L1085
Axiom. (per_ref2) We take the following as an axiom:
∀R : setsetprop, per R∀x y : set, R x yR y y
L1087
Axiom. (partialorder_strictpartialorder) We take the following as an axiom:
∀R : setsetprop, partialorder Rstrictpartialorder (λx y ⇒ R x y x y)
L1090
Definition. We define reflclos to be λR x y ⇒ R x y x = y of type (setsetprop)(setsetprop).
L1092
Axiom. (reflclos_refl) We take the following as an axiom:
∀R : setsetprop, reflexive (reflclos R)
L1094
Axiom. (reflclos_min) We take the following as an axiom:
∀R S : setsetprop, R Sreflexive Sreflclos R S
L1096
Axiom. (strictpartialorder_partialorder_reflclos) We take the following as an axiom:
∀R : setsetprop, strictpartialorder Rpartialorder (reflclos R)
L1098
Axiom. (stricttotalorder_totalorder_reflclos) We take the following as an axiom:
∀R : setsetprop, stricttotalorder Rtotalorder (reflclos R)
Beginning of Section Zermelo1908
Primitive. The name ZermeloWO is a term of type setsetprop.
L1106
Axiom. (ZermeloWO_Eps) We take the following as an axiom:
∀a : set, (Eps_i (ZermeloWO a)) = a
L1108
Axiom. (ZermeloWO_ref) We take the following as an axiom:
L1109
Axiom. (ZermeloWO_lin) We take the following as an axiom:
L1110
Axiom. (ZermeloWO_tra) We take the following as an axiom:
L1111
Axiom. (ZermeloWO_antisym) We take the following as an axiom:
L1112
Axiom. (ZermeloWO_partialorder) We take the following as an axiom:
L1113
Axiom. (ZermeloWO_totalorder) We take the following as an axiom:
L1114
Axiom. (ZermeloWO_wo) We take the following as an axiom:
∀p : setprop, (∃x : set, p x)∃x : set, p x ∀y : set, p yZermeloWO x y
L1115
L1117
L1119
L1120
Axiom. (ZermeloWOstrict_wo) We take the following as an axiom:
∀p : setprop, (∃x : set, p x)∃x : set, p x ∀y : set, p y y xZermeloWOstrict x y
L1121
Axiom. (Zermelo_WO) We take the following as an axiom:
∃r : setsetprop, totalorder r (∀p : setprop, (∃x : set, p x)∃x : set, p x ∀y : set, p yr x y)
L1125
Axiom. (Zermelo_WO_strict) We take the following as an axiom:
∃r : setsetprop, stricttotalorder r (∀p : setprop, (∃x : set, p x)∃x : set, p x ∀y : set, p y y xr x y)
End of Section Zermelo1908
L1131
Axiom. (eq_imp_or) We take the following as an axiom:
(λx y : prop(xy)) = (λx y : prop(¬ x y))
L1133
Axiom. (famunion_Empty) We take the following as an axiom:
∀F : setset, (x0F x) = 0
L1135
Axiom. (Empty_or_ex) We take the following as an axiom:
∀X : set, X = Empty ∃x : set, x X
L1137
Axiom. (nIn_0_0) We take the following as an axiom:
L1139
Axiom. (nIn_1_0) We take the following as an axiom:
L1140
Axiom. (nIn_2_0) We take the following as an axiom:
L1141
Axiom. (nIn_1_1) We take the following as an axiom:
L1142
Axiom. (nIn_2_2) We take the following as an axiom:
L1143
Axiom. (Subq_0_0) We take the following as an axiom:
L1144
Axiom. (Subq_0_1) We take the following as an axiom:
L1145
Axiom. (Subq_0_2) We take the following as an axiom:
L1146
Axiom. (nSubq_1_0) We take the following as an axiom:
L1147
Axiom. (Subq_1_1) We take the following as an axiom:
L1148
Axiom. (Subq_1_2) We take the following as an axiom:
L1149
Axiom. (nSubq_2_0) We take the following as an axiom:
L1150
Axiom. (nSubq_2_1) We take the following as an axiom:
L1151
Axiom. (Subq_2_2) We take the following as an axiom:
L1152
Axiom. (In_0_7) We take the following as an axiom:
L1153
Axiom. (In_1_7) We take the following as an axiom:
L1154
Axiom. (In_2_7) We take the following as an axiom:
L1155
Axiom. (In_3_7) We take the following as an axiom:
L1156
Axiom. (In_4_7) We take the following as an axiom:
L1157
Axiom. (In_5_7) We take the following as an axiom:
L1158
Axiom. (In_6_7) We take the following as an axiom:
L1159
Axiom. (In_0_8) We take the following as an axiom:
L1160
Axiom. (In_1_8) We take the following as an axiom:
L1161
Axiom. (In_2_8) We take the following as an axiom:
L1162
Axiom. (In_3_8) We take the following as an axiom:
L1163
Axiom. (In_4_8) We take the following as an axiom:
L1164
Axiom. (In_5_8) We take the following as an axiom:
L1165
Axiom. (In_6_8) We take the following as an axiom:
L1166
Axiom. (In_7_8) We take the following as an axiom:
L1167
Axiom. (In_0_9) We take the following as an axiom:
L1168
Axiom. (In_1_9) We take the following as an axiom:
L1169
Axiom. (In_2_9) We take the following as an axiom:
L1170
Axiom. (In_3_9) We take the following as an axiom:
L1171
Axiom. (In_4_9) We take the following as an axiom:
L1172
Axiom. (In_5_9) We take the following as an axiom:
L1173
Axiom. (In_6_9) We take the following as an axiom:
L1174
Axiom. (In_7_9) We take the following as an axiom:
L1175
Axiom. (In_8_9) We take the following as an axiom:
Beginning of Section NatRec
L1178
Variable z : set
L1180
Variable f : setsetset
L1181
Let F : set(setset)setλn g ⇒ if n n then f ( n) (g ( n)) else z
L1182
Definition. We define nat_primrec to be In_rec_i F of type setset.
L1184
Axiom. (nat_primrec_r) We take the following as an axiom:
∀X : set, ∀g h : setset, (∀xX, g x = h x)F X g = F X h
L1186
Axiom. (nat_primrec_0) We take the following as an axiom:
L1188
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
L1194
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.
L1198
Axiom. (add_nat_0R) We take the following as an axiom:
∀n : set, n + 0 = n
L1200
Axiom. (add_nat_SR) We take the following as an axiom:
∀n m : set, nat_p mn + ordsucc m = ordsucc (n + m)
L1202
Axiom. (add_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n + m)
L1204
Axiom. (add_nat_asso) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p m∀k : set, nat_p k(n + m) + k = n + (m + k)
L1206
Axiom. (add_nat_0L) We take the following as an axiom:
∀m : set, nat_p m0 + m = m
L1208
Axiom. (add_nat_SL) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mordsucc n + m = ordsucc (n + m)
L1210
Axiom. (add_nat_com) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mn + m = m + n
L1212
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.
L1216
Axiom. (mul_nat_0R) We take the following as an axiom:
∀n : set, n * 0 = 0
L1218
Axiom. (mul_nat_SR) We take the following as an axiom:
∀n m : set, nat_p mn * ordsucc m = n + n * m
L1220
Axiom. (mul_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n * m)
L1222
Axiom. (mul_nat_0L) We take the following as an axiom:
∀m : set, nat_p m0 * m = 0
L1224
Axiom. (mul_nat_SL) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mordsucc n * m = n * m + m
L1226
Axiom. (mul_nat_com) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mn * m = m * n
L1228
Axiom. (mul_add_nat_distrL) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p m∀k : set, nat_p kn * (m + k) = n * m + n * k
L1230
Axiom. (mul_add_nat_distrR) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p m∀k : set, nat_p k(n + m) * k = n * k + m * k
L1232
Axiom. (mul_nat_asso) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p m∀k : set, nat_p k(n * m) * k = n * (m * k)
L1234
Axiom. (add_nat_1_1_2) We take the following as an axiom:
1 + 1 = 2
L1236
Definition. We define divides_nat to be λm n ⇒ m omega n omega ∃komega, m * k = n of type setsetprop.
L1239
Definition. We define prime_nat to be λn ⇒ n omega 1 n ∀komega, divides_nat k nk = 1 k = n of type setprop.
L1242
Definition. We define coprime_nat to be λa b ⇒ a omega b omega ∀xomega 1, divides_nat x adivides_nat x bx = 1 of type setsetprop.
L1244
Definition. We define equiv_nat_mod to be λm k n ⇒ m omega k omega n omega ((∃qomega, m + q * n = k) (∃qomega, k + q * n = m)) of type setsetsetprop.
L1249
Definition. We define exp_nat to be λn m : setnat_primrec 1 (λ_ r ⇒ n * r) m of type setsetset.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term exp_nat.
L1253
Definition. We define even_nat to be λn ⇒ n omega ∃momega, n = 2 * m of type setprop.
L1255
Definition. We define odd_nat to be λn ⇒ n omega ∀momega, n 2 * m of type setprop.
L1256
Definition. We define nat_factorial to be λn ⇒ nat_primrec 1 (λk r ⇒ ordsucc k * r) n of type setset.
End of Section NatArith
L1260
Axiom. (PigeonHole_nat) We take the following as an axiom:
∀n, nat_p n∀f : setset, (∀iordsucc n, f i n)¬ (∀i jordsucc n, f i = f ji = j)
L1262
Axiom. (PigeonHole_nat_bij) We take the following as an axiom:
∀n, nat_p n∀f : setset, (∀in, f i n)(∀i jn, f i = f ji = j)bij n n f
L1264
Axiom. (cases_7) We take the following as an axiom:
∀i7, ∀p : setprop, p 0p 1p 2p 3p 4p 5p 6p i
L1266
Axiom. (cases_8) We take the following as an axiom:
∀i8, ∀p : setprop, p 0p 1p 2p 3p 4p 5p 6p 7p i
L1267
Axiom. (cases_9) We take the following as an axiom:
∀i9, ∀p : setprop, p 0p 1p 2p 3p 4p 5p 6p 7p 8p i
L1268
Axiom. (nIn_2_1) We take the following as an axiom:
L1270
Axiom. (neq_6_0) We take the following as an axiom:
L1271
Axiom. (neq_6_1) We take the following as an axiom:
L1272
Axiom. (neq_6_2) We take the following as an axiom:
L1273
Axiom. (neq_6_3) We take the following as an axiom:
L1274
Axiom. (neq_6_4) We take the following as an axiom:
L1275
Axiom. (neq_6_5) We take the following as an axiom:
L1276
Axiom. (neq_7_0) We take the following as an axiom:
L1277
Axiom. (neq_7_1) We take the following as an axiom:
L1278
Axiom. (neq_7_2) We take the following as an axiom:
L1279
Axiom. (neq_7_3) We take the following as an axiom:
L1280
Axiom. (neq_7_4) We take the following as an axiom:
L1281
Axiom. (neq_7_5) We take the following as an axiom:
L1282
Axiom. (neq_7_6) We take the following as an axiom:
L1283
Axiom. (neq_8_0) We take the following as an axiom:
L1284
Axiom. (neq_8_1) We take the following as an axiom:
L1285
Axiom. (neq_8_2) We take the following as an axiom:
L1286
Axiom. (neq_8_3) We take the following as an axiom:
L1287
Axiom. (neq_8_4) We take the following as an axiom:
L1288
Axiom. (neq_8_5) We take the following as an axiom:
L1289
Axiom. (neq_8_6) We take the following as an axiom:
L1290
Axiom. (neq_8_7) We take the following as an axiom:
L1291
Axiom. (neq_9_0) We take the following as an axiom:
L1292
Axiom. (neq_9_1) We take the following as an axiom:
L1293
Axiom. (neq_9_2) We take the following as an axiom:
L1294
Axiom. (neq_9_3) We take the following as an axiom:
L1295
Axiom. (neq_9_4) We take the following as an axiom:
L1296
Axiom. (neq_9_5) We take the following as an axiom:
L1297
Axiom. (neq_9_6) We take the following as an axiom:
L1298
Axiom. (neq_9_7) We take the following as an axiom:
L1299
Axiom. (neq_9_8) We take the following as an axiom:
L1300
Axiom. (Subq_1_Sing0) We take the following as an axiom:
L1301
Axiom. (Subq_Sing0_1) We take the following as an axiom:
L1302
Axiom. (eq_1_Sing0) We take the following as an axiom:
L1303
Axiom. (Subq_2_UPair01) We take the following as an axiom:
L1304
Axiom. (Subq_UPair01_2) We take the following as an axiom:
L1305
Axiom. (eq_2_UPair01) We take the following as an axiom:
L1306
Axiom. (ordinal_ind) We take the following as an axiom:
∀p : setprop, (∀alpha, ordinal alpha(∀betaalpha, p beta)p alpha)∀alpha, ordinal alphap alpha
L1310
Axiom. (least_ordinal_ex) We take the following as an axiom:
∀p : setprop, (∃alpha, ordinal alpha p alpha)∃alpha, ordinal alpha p alpha ∀betaalpha, ¬ p beta
L1312
Axiom. (ordinal_trichotomy_or_impred) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal beta∀p : prop, (alpha betap)(alpha = betap)(beta alphap)p
L1314
Axiom. (ordinal_trichotomy) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal betaexactly1of3 (alpha beta) (alpha = beta) (beta alpha)
L1317
Definition. We define Inj1 to be In_rec_i (λX f ⇒ {0} {f x|xX}) of type setset.
L1320
Axiom. (Inj1_eq) We take the following as an axiom:
∀X : set, Inj1 X = {0} {Inj1 x|xX}
L1322
Axiom. (Inj1I1) We take the following as an axiom:
∀X : set, 0 Inj1 X
L1323
Axiom. (Inj1I2) We take the following as an axiom:
∀X x : set, x XInj1 x Inj1 X
L1324
Axiom. (Inj1E) We take the following as an axiom:
∀X y : set, y Inj1 Xy = 0 ∃xX, y = Inj1 x
L1325
Axiom. (Inj1NE1) We take the following as an axiom:
∀x : set, Inj1 x 0
L1326
Axiom. (Inj1NE2) We take the following as an axiom:
∀x : set, Inj1 x {0}
L1327
Definition. We define Inj0 to be λX ⇒ {Inj1 x|xX} of type setset.
L1330
Axiom. (Inj0I) We take the following as an axiom:
∀X x : set, x XInj1 x Inj0 X
L1332
Axiom. (Inj0E) We take the following as an axiom:
∀X y : set, y Inj0 X∃x : set, x X y = Inj1 x
L1333
Definition. We define Unj to be In_rec_i (λX f ⇒ {f x|xX {0}}) of type setset.
L1336
Axiom. (Unj_eq) We take the following as an axiom:
∀X : set, Unj X = {Unj x|xX {0}}
L1338
Axiom. (Unj_Inj1_eq) We take the following as an axiom:
∀X : set, Unj (Inj1 X) = X
L1339
Axiom. (Inj1_inj) We take the following as an axiom:
∀X Y : set, Inj1 X = Inj1 YX = Y
L1340
Axiom. (Unj_Inj0_eq) We take the following as an axiom:
∀X : set, Unj (Inj0 X) = X
L1341
Axiom. (Inj0_inj) We take the following as an axiom:
∀X Y : set, Inj0 X = Inj0 YX = Y
L1342
Axiom. (Inj0_0) We take the following as an axiom:
L1343
Axiom. (Inj0_Inj1_neq) We take the following as an axiom:
∀X Y : set, Inj0 X Inj1 Y
L1344
Definition. We define setsum to be λX Y ⇒ {Inj0 x|xX} {Inj1 y|yY} of type setsetset.
Notation. We use + as an infix operator with priority 450 and which associates to the left corresponding to applying term setsum.
L1350
Axiom. (Inj0_setsum) We take the following as an axiom:
∀X Y x : set, x XInj0 x X + Y
L1352
Axiom. (Inj1_setsum) We take the following as an axiom:
∀X Y y : set, y YInj1 y X + Y
L1353
Axiom. (setsum_Inj_inv) We take the following as an axiom:
∀X Y z : set, z X + Y(∃xX, z = Inj0 x) (∃yY, z = Inj1 y)
L1354
Axiom. (Inj0_setsum_0L) We take the following as an axiom:
∀X : set, 0 + X = Inj0 X
L1356
Axiom. (Inj1_setsum_1L) We take the following as an axiom:
∀X : set, 1 + X = Inj1 X
L1357
Axiom. (nat_setsum1_ordsucc) We take the following as an axiom:
∀n : set, nat_p n1 + n = ordsucc n
L1358
Axiom. (setsum_0_0) We take the following as an axiom:
0 + 0 = 0
L1359
Axiom. (setsum_1_0_1) We take the following as an axiom:
1 + 0 = 1
L1360
Axiom. (setsum_1_1_2) We take the following as an axiom:
1 + 1 = 2
L1361
Axiom. (setsum_mon) We take the following as an axiom:
∀X Y W Z, X WY ZX + Y W + Z
L1362
Definition. We define combine_funcs to be λX Y f g z ⇒ if z = Inj0 (Unj z) then f (Unj z) else g (Unj z) of type setset(setset)(setset)setset.
L1366
Axiom. (combine_funcs_eq1) We take the following as an axiom:
∀X Y, ∀f g : setset, ∀x, combine_funcs X Y f g (Inj0 x) = f x
L1369
Axiom. (combine_funcs_eq2) We take the following as an axiom:
∀X Y, ∀f g : setset, ∀y, combine_funcs X Y f g (Inj1 y) = g y
Beginning of Section pair_setsum
L1374
Let pair ≝ setsum
L1376
Axiom. (pair_0_0) We take the following as an axiom:
pair 0 0 = 0
L1378
Axiom. (pair_1_0_1) We take the following as an axiom:
pair 1 0 = 1
L1379
Axiom. (pair_1_1_2) We take the following as an axiom:
pair 1 1 = 2
L1380
Axiom. (nat_pair1_ordsucc) We take the following as an axiom:
∀n : set, nat_p npair 1 n = ordsucc n
L1381
Definition. We define proj0 to be λZ ⇒ {Unj z|zZ, ∃x : set, Inj0 x = z} of type setset.
L1383
Definition. We define proj1 to be λZ ⇒ {Unj z|zZ, ∃y : set, Inj1 y = z} of type setset.
L1384
Axiom. (Inj0_pair_0_eq) We take the following as an axiom:
Inj0 = pair 0
L1386
Axiom. (Inj1_pair_1_eq) We take the following as an axiom:
Inj1 = pair 1
L1387
Axiom. (pairI0) We take the following as an axiom:
∀X Y x, x Xpair 0 x pair X Y
L1388
Axiom. (pairI1) We take the following as an axiom:
∀X Y y, y Ypair 1 y pair X Y
L1389
Axiom. (pairE) We take the following as an axiom:
∀X Y z, z pair X Y(∃xX, z = pair 0 x) (∃yY, z = pair 1 y)
L1390
Axiom. (pairE0) We take the following as an axiom:
∀X Y x, pair 0 x pair X Yx X
L1391
Axiom. (pairE1) We take the following as an axiom:
∀X Y y, pair 1 y pair X Yy Y
L1392
Axiom. (pairEq) We take the following as an axiom:
∀X Y z, z pair X Y (∃xX, z = pair 0 x) (∃yY, z = pair 1 y)
L1393
Axiom. (pairSubq) We take the following as an axiom:
∀X Y W Z, X WY Zpair X Y pair W Z
L1394
Axiom. (proj0I) We take the following as an axiom:
∀w u : set, pair 0 u wu proj0 w
L1395
Axiom. (proj0E) We take the following as an axiom:
∀w u : set, u proj0 wpair 0 u w
L1396
Axiom. (proj1I) We take the following as an axiom:
∀w u : set, pair 1 u wu proj1 w
L1397
Axiom. (proj1E) We take the following as an axiom:
∀w u : set, u proj1 wpair 1 u w
L1398
Axiom. (proj0_pair_eq) We take the following as an axiom:
∀X Y : set, proj0 (pair X Y) = X
L1399
Axiom. (proj1_pair_eq) We take the following as an axiom:
∀X Y : set, proj1 (pair X Y) = Y
L1400
Axiom. (pair_inj) We take the following as an axiom:
∀x y w z : set, pair x y = pair w zx = w y = z
L1401
Axiom. (pair_eta_Subq_proj) We take the following as an axiom:
∀w, pair (proj0 w) (proj1 w) w
L1402
Definition. We define Sigma to be λX Y ⇒ xX{pair x y|yY 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.
L1409
Axiom. (pair_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀xX, ∀yY x, pair x y xX, Y x
L1411
Axiom. (Sigma_eta_proj0_proj1) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z(xX, Y x), pair (proj0 z) (proj1 z) = z proj0 z X proj1 z Y (proj0 z)
L1413
Axiom. (proj_Sigma_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z(xX, Y x), pair (proj0 z) (proj1 z) = z
L1415
Axiom. (proj0_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)proj0 z X
L1417
Axiom. (proj1_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)proj1 z Y (proj0 z)
L1419
Axiom. (pair_Sigma_E0) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀x y : set, pair x y (xX, Y x)x X
L1421
Axiom. (pair_Sigma_E1) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀x y : set, pair x y (xX, Y x)y Y x
L1423
Axiom. (Sigma_E) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)∃xX, ∃yY x, z = pair x y
L1425
Axiom. (Sigma_Eq) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x) ∃xX, ∃yY x, z = pair x y
L1427
Axiom. (Sigma_mon) We take the following as an axiom:
∀X Y : set, X Y∀Z W : setset, (∀xX, Z x W x)(xX, Z x) yY, W y
L1430
Axiom. (Sigma_mon0) We take the following as an axiom:
∀X Y : set, X Y∀Z : setset, (xX, Z x) yY, Z y
L1432
Axiom. (Sigma_mon1) We take the following as an axiom:
∀X : set, ∀Z W : setset, (∀x, x XZ x W x)(xX, Z x) xX, W x
L1434
Axiom. (Sigma_Power_1) We take the following as an axiom:
∀X : set, X 𝒫 1∀Y : setset, (∀xX, Y x 𝒫 1)(xX, Y x) 𝒫 1
L1436
Definition. We define setprod to be λX Y : setxX, 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.
L1441
Axiom. (pair_setprod) We take the following as an axiom:
∀X Y : set, ∀(xX)(yY), pair x y X Y
L1443
Axiom. (proj0_setprod) We take the following as an axiom:
∀X Y : set, ∀zX Y, proj0 z X
L1445
Axiom. (proj1_setprod) We take the following as an axiom:
∀X Y : set, ∀zX Y, proj1 z Y
L1447
Axiom. (pair_setprod_E0) We take the following as an axiom:
∀X Y x y : set, pair x y X Yx X
L1449
Axiom. (pair_setprod_E1) We take the following as an axiom:
∀X Y x y : set, pair x y X Yy Y
L1451
Let lam : set(setset)setSigma
L1454
Definition. We define ap to be λf x ⇒ {proj1 z|zf, ∃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).
Notation. We now use n-tuple notation (a0,...,an-1) for n ≥ 2 for λ i ∈ n . if i = 0 then a0 else ... if i = n-2 then an-2 else an-1.
L1460
Axiom. (lamI) We take the following as an axiom:
∀X : set, ∀F : setset, ∀xX, ∀yF x, pair x y λxXF x
L1462
Axiom. (lamE) We take the following as an axiom:
∀X : set, ∀F : setset, ∀z : set, z (λxXF x)∃xX, ∃yF x, z = pair x y
L1464
Axiom. (lamEq) We take the following as an axiom:
∀X : set, ∀F : setset, ∀z, z (λxXF x) ∃xX, ∃yF x, z = pair x y
L1466
Axiom. (apI) We take the following as an axiom:
∀f x y, pair x y fy f x
L1468
Axiom. (apE) We take the following as an axiom:
∀f x y, y f xpair x y f
L1470
Axiom. (apEq) We take the following as an axiom:
∀f x y, y f x pair x y f
L1472
Axiom. (beta) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x : set, x X(λxXF x) x = F x
L1474
Axiom. (beta0) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x : set, x X(λxXF x) x = 0
L1476
Axiom. (proj0_ap_0) We take the following as an axiom:
∀u, proj0 u = u 0
L1478
Axiom. (proj1_ap_1) We take the following as an axiom:
∀u, proj1 u = u 1
L1480
Axiom. (pair_ap_0) We take the following as an axiom:
∀x y : set, (pair x y) 0 = x
L1482
Axiom. (pair_ap_1) We take the following as an axiom:
∀x y : set, (pair x y) 1 = y
L1484
Axiom. (pair_ap_n2) We take the following as an axiom:
∀x y i : set, i 2(pair x y) i = 0
L1486
Axiom. (ap0_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)(z 0) X
L1488
Axiom. (ap1_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)(z 1) (Y (z 0))
L1490
Definition. We define pair_p to be λu : setpair (u 0) (u 1) = u of type setprop.
L1493
Axiom. (pair_p_I) We take the following as an axiom:
∀x y, pair_p (pair x y)
L1495
Axiom. (pair_p_I2) We take the following as an axiom:
∀w, (∀uw, pair_p u u 0 2)pair_p w
L1497
Axiom. (pair_p_In_ap) We take the following as an axiom:
∀w f, pair_p ww fw 1 ap f (w 0)
L1499
Definition. We define tuple_p to be λn u ⇒ ∀zu, ∃in, ∃x : set, z = pair i x of type setsetprop.
L1502
Axiom. (pair_p_tuple2) We take the following as an axiom:
L1504
Axiom. (tuple_p_2_tuple) We take the following as an axiom:
∀x y : set, tuple_p 2 (x,y)
L1506
Axiom. (tuple_pair) We take the following as an axiom:
∀x y : set, pair x y = (x,y)
L1508
Definition. We define Pi to be λX Y ⇒ {f𝒫 (xX, (Y x))|∀xX, f x 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 Pi.
L1513
Axiom. (PiI) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f : set, (∀uf, pair_p u u 0 X)(∀xX, f x Y x)f xX, Y x
L1516
Axiom. (PiE) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f : set, f (xX, Y x)(∀uf, pair_p u u 0 X) (∀xX, f x Y x)
L1519
Axiom. (PiEq) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f : set, f Pi X Y (∀uf, pair_p u u 0 X) (∀xX, f x Y x)
L1522
Axiom. (lam_Pi) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀F : setset, (∀xX, F x Y x)(λxXF x) (xX, Y x)
L1525
Axiom. (ap_Pi) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f : set, ∀x : set, f (xX, Y x)x Xf x Y x
L1527
Axiom. (Pi_ext_Subq) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f g(xX, Y x), (∀xX, f x g x)f g
L1529
Axiom. (Pi_ext) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f g(xX, Y x), (∀xX, f x = g x)f = g
L1531
Axiom. (Pi_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f : set, f (xX, Y x)(λxXf x) = f
L1533
Definition. We define setexp to be λX Y : setyY, 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.
L1538
Axiom. (pair_tuple_fun) We take the following as an axiom:
pair = (λx y ⇒ (x,y))
L1540
Axiom. (lamI2) We take the following as an axiom:
∀X, ∀F : setset, ∀xX, ∀yF x, (x,y) λxXF x
L1542
Axiom. (lamE2) We take the following as an axiom:
∀X, ∀F : setset, ∀z : set, z (λxXF x)∃xX, ∃yF x, z = (x,y)
L1544
Axiom. (tuple_2_inj) We take the following as an axiom:
∀x y w z : set, (x,y) = (w,z)x = w y = z
Beginning of Section Tuples
L1548
Variable x0 x1 : set
L1550
Axiom. (tuple_2_0_eq) We take the following as an axiom:
(x0,x1) 0 = x0
L1551
Axiom. (tuple_2_1_eq) We take the following as an axiom:
(x0,x1) 1 = x1
End of Section Tuples
L1555
Definition. We define Sep2 to be λX Y R ⇒ {uxX, Y x|R (u 0) (u 1)} of type set(setset)(setsetprop)set.
L1558
Axiom. (Sep2I) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, ∀xX, ∀yY x, R x y(x,y) Sep2 X Y R
L1561
Axiom. (Sep2E) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, ∀uSep2 X Y R, ∃xX, ∃yY x, u = (x,y) R x y
L1564
Axiom. (Sep2E') We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, ∀x y, (x,y) Sep2 X Y Rx X y Y x R x y
L1567
Axiom. (Sep2E'1) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, ∀x y, (x,y) Sep2 X Y Rx X
L1570
Axiom. (Sep2E'2) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, ∀x y, (x,y) Sep2 X Y Ry Y x
L1573
Axiom. (Sep2E'3) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, ∀x y, (x,y) Sep2 X Y RR x y
L1576
Definition. We define set_of_pairs to be λX ⇒ ∀xX, ∃y z, x = (y,z) of type setprop.
L1578
Axiom. (set_of_pairs_ext) We take the following as an axiom:
∀X Y, set_of_pairs Xset_of_pairs Y(∀v w, (v,w) X (v,w) Y)X = Y
L1583
Axiom. (Sep2_set_of_pairs) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, set_of_pairs (Sep2 X Y R)
L1586
Axiom. (Sep2_ext) We take the following as an axiom:
∀X, ∀Y : setset, ∀R R' : setsetprop, (∀xX, ∀yY x, R x y R' x y)Sep2 X Y R = Sep2 X Y R'
L1590
Axiom. (lam_ext_sub) We take the following as an axiom:
∀X, ∀F G : setset, (∀xX, F x = G x)(λxXF x) (λxXG x)
L1592
Axiom. (lam_ext) We take the following as an axiom:
∀X, ∀F G : setset, (∀xX, F x = G x)(λxXF x) = (λxXG x)
L1594
Axiom. (lam_eta) We take the following as an axiom:
∀X, ∀F : setset, (λxX(λxXF x) x) = (λxXF x)
L1596
Axiom. (tuple_2_eta) We take the following as an axiom:
∀x y, (λi2(x,y) i) = (x,y)
L1598
Definition. We define lam2 to be λX Y F ⇒ λxXλyY xF x y of type set(setset)(setsetset)set.
L1601
Axiom. (beta2) We take the following as an axiom:
∀X, ∀Y : setset, ∀F : setsetset, ∀xX, ∀yY x, lam2 X Y F x y = F x y
L1603
Axiom. (lam2_ext) We take the following as an axiom:
∀X, ∀Y : setset, ∀F G : setsetset, (∀xX, ∀yY x, F x y = G x y)lam2 X Y F = lam2 X Y G
L1607
Definition. We define encode_u to be lam of type set(setset)set.
L1609
Definition. We define decode_u to be ap of type setsetset.
L1610
Definition. We define encode_b to be λX F ⇒ lam2 X (λ_ ⇒ X) F of type set(setsetset)set.
L1612
Definition. We define decode_b to be λF x y ⇒ F x y of type setsetsetset.
L1613
Definition. We define encode_p to be λX P ⇒ Sep X P of type set(setprop)set.
L1615
Definition. We define decode_p to be λP x ⇒ x P of type setsetprop.
L1616
Definition. We define encode_r to be λX R ⇒ Sep2 X (λ_ ⇒ X) R of type set(setsetprop)set.
L1618
Definition. We define decode_r to be λR x y ⇒ (x,y) R of type setsetsetprop.
L1619
Definition. We define encode_c to be λX C ⇒ Sep (𝒫 X) (λU ⇒ (C (λx ⇒ x U))) of type set((setprop)prop)set.
L1621
Definition. We define decode_c to be λC U ⇒ ∃V, (∀x, U x x V) V C of type set(setprop)prop.
L1622
Axiom. (decode_encode_u) We take the following as an axiom:
∀X, ∀F : setset, ∀xX, decode_u (encode_u X F) x = F x
L1624
Axiom. (encode_u_ext) We take the following as an axiom:
∀X, ∀F F' : setset, (∀xX, F x = F' x)encode_u X F = encode_u X F'
L1626
Axiom. (decode_encode_b) We take the following as an axiom:
∀X, ∀F : setsetset, ∀x yX, decode_b (encode_b X F) x y = F x y
L1628
Axiom. (encode_b_ext) We take the following as an axiom:
∀X, ∀F F' : setsetset, (∀x yX, F x y = F' x y)encode_b X F = encode_b X F'
L1630
Axiom. (decode_encode_p) We take the following as an axiom:
∀X, ∀P : setprop, ∀xX, (decode_p (encode_p X P) x) = (P x)
L1632
Axiom. (encode_p_ext) We take the following as an axiom:
∀X, ∀P P' : setprop, (∀xX, P x P' x)encode_p X P = encode_p X P'
L1634
Axiom. (decode_encode_r) We take the following as an axiom:
∀X, ∀R : setsetprop, ∀x yX, (decode_r (encode_r X R) x y) = (R x y)
L1636
Axiom. (encode_r_ext) We take the following as an axiom:
∀X, ∀R R' : setsetprop, (∀x yX, R x y R' x y)encode_r X R = encode_r X R'
L1638
Axiom. (decode_encode_c) We take the following as an axiom:
∀X, ∀C : (setprop)prop, ∀U : setprop, (∀x, U xx X)(decode_c (encode_c X C) U) = (C U)
L1640
Axiom. (encode_c_ext) We take the following as an axiom:
∀X, ∀C C' : (setprop)prop, (∀U : setprop, (∀x, U xx X)(C U C' U))encode_c X C = encode_c X C'
L1642
Axiom. (setprod_mon) We take the following as an axiom:
∀X Y : set, X Y∀Z W : set, Z WX Z Y W
L1644
Axiom. (setprod_mon0) We take the following as an axiom:
∀X Y : set, X Y∀Z : set, X Z Y Z
L1646
Axiom. (setprod_mon1) We take the following as an axiom:
∀X : set, ∀Z W : set, Z WX Z X W
L1648
Axiom. (pair_eta_Subq) We take the following as an axiom:
∀w, pair (w 0) (w 1) w
L1650
Axiom. (Sigma_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z(xX, Y x), pair (z 0) (z 1) = z
L1652
Axiom. (ReplEq_setprod_ext) We take the following as an axiom:
∀X Y, ∀F G : setsetset, (∀xX, ∀yY, F x y = G x y){F (w 0) (w 1)|wX Y} = {G (w 0) (w 1)|wX Y}
L1654
Axiom. (tuple_p_3_tuple) We take the following as an axiom:
∀x y z : set, tuple_p 3 (x,y,z)
L1656
Axiom. (tuple_p_4_tuple) We take the following as an axiom:
∀x y z w : set, tuple_p 4 (x,y,z,w)
L1658
Axiom. (Pi_Power_1) We take the following as an axiom:
∀X : set, ∀Y : setset, (∀xX, Y x 𝒫 1)(xX, Y x) 𝒫 1
L1660
Axiom. (Pi_0_dom_mon) We take the following as an axiom:
∀X Y : set, ∀A : setset, X Y(∀yY, y X0 A y)(xX, A x) yY, A y
L1663
Axiom. (Pi_cod_mon) We take the following as an axiom:
∀X : set, ∀A B : setset, (∀xX, A x B x)(xX, A x) xX, B x
L1665
Axiom. (Pi_0_mon) We take the following as an axiom:
∀X Y : set, ∀A B : setset, (∀xX, A x B x)X Y(∀yY, y X0 B y)(xX, A x) yY, B y
L1669
Axiom. (setexp_2_eq) We take the following as an axiom:
∀X : set, X X = X2
L1671
Axiom. (setexp_0_dom_mon) We take the following as an axiom:
∀A : set, 0 A∀X Y : set, X YAX AY
L1673
Axiom. (setexp_0_mon) We take the following as an axiom:
∀X Y A B : set, 0 BA BX YAX BY
L1675
Axiom. (nat_in_setexp_mon) We take the following as an axiom:
∀A : set, 0 A∀n, nat_p n∀mn, Am An
L1677
Axiom. (tupleI0) We take the following as an axiom:
∀X Y x, x X(0,x) (X,Y)
L1679
Axiom. (tupleI1) We take the following as an axiom:
∀X Y y, y Y(1,y) (X,Y)
L1681
Axiom. (tupleE) We take the following as an axiom:
∀X Y z, z (X,Y)(∃xX, z = (0,x)) (∃yY, z = (1,y))
L1683
Axiom. (tuple_2_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀xX, ∀yY x, (x,y) xX, Y x
L1685
Axiom. (tuple_2_setprod) We take the following as an axiom:
∀X : set, ∀Y : set, ∀xX, ∀yY, (x,y) X Y
L1687
Axiom. (tuple_Sigma_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z(xX, Y x), (z 0,z 1) = z
L1689
Axiom. (apI2) We take the following as an axiom:
∀f x y, (x,y) fy f x
L1691
Axiom. (apE2) We take the following as an axiom:
∀f x y, y f x(x,y) f
L1693
Axiom. (ap_const_0) We take the following as an axiom:
∀x, 0 x = 0
L1695
Axiom. (tuple_2_in_A_2) We take the following as an axiom:
∀x y A, x Ay A(x,y) A2
L1697
Axiom. (tuple_2_bij_2) We take the following as an axiom:
∀x y, x 2y 2x ybij 2 2 (λi ⇒ (x,y) i)
L1699
Axiom. (tuple_3_eta) We take the following as an axiom:
∀x y z, (λi3(x,y,z) i) = (x,y,z)
L1701
Axiom. (tuple_4_eta) We take the following as an axiom:
∀x y z w, (λi4(x,y,z,w) i) = (x,y,z,w)
Beginning of Section Tuples
L1705
Variable x0 x1 x2 : set
L1707
Axiom. (tuple_3_0_eq) We take the following as an axiom:
(x0,x1,x2) 0 = x0
L1709
Axiom. (tuple_3_1_eq) We take the following as an axiom:
(x0,x1,x2) 1 = x1
L1711
Axiom. (tuple_3_2_eq) We take the following as an axiom:
(x0,x1,x2) 2 = x2
L1713
Variable x3 : set
L1715
Axiom. (tuple_4_0_eq) We take the following as an axiom:
(x0,x1,x2,x3) 0 = x0
L1716
Axiom. (tuple_4_1_eq) We take the following as an axiom:
(x0,x1,x2,x3) 1 = x1
L1718
Axiom. (tuple_4_2_eq) We take the following as an axiom:
(x0,x1,x2,x3) 2 = x2
L1720
Axiom. (tuple_4_3_eq) We take the following as an axiom:
(x0,x1,x2,x3) 3 = x3
L1722
Variable x4 : set
L1724
Axiom. (tuple_5_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 0 = x0
L1726
Axiom. (tuple_5_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 1 = x1
L1728
Axiom. (tuple_5_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 2 = x2
L1730
Axiom. (tuple_5_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 3 = x3
L1732
Axiom. (tuple_5_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 4 = x4
L1734
Variable x5 : set
L1736
Axiom. (tuple_6_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 0 = x0
L1737
Axiom. (tuple_6_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 1 = x1
L1739
Axiom. (tuple_6_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 2 = x2
L1741
Axiom. (tuple_6_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 3 = x3
L1743
Axiom. (tuple_6_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 4 = x4
L1745
Axiom. (tuple_6_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 5 = x5
L1747
Variable x6 : set
L1749
Axiom. (tuple_7_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 0 = x0
L1750
Axiom. (tuple_7_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 1 = x1
L1752
Axiom. (tuple_7_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 2 = x2
L1754
Axiom. (tuple_7_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 3 = x3
L1756
Axiom. (tuple_7_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 4 = x4
L1758
Axiom. (tuple_7_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 5 = x5
L1760
Axiom. (tuple_7_6_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 6 = x6
L1762
Variable x7 : set
L1764
Axiom. (tuple_8_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 0 = x0
L1766
Axiom. (tuple_8_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 1 = x1
L1768
Axiom. (tuple_8_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 2 = x2
L1770
Axiom. (tuple_8_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 3 = x3
L1772
Axiom. (tuple_8_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 4 = x4
L1774
Axiom. (tuple_8_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 5 = x5
L1776
Axiom. (tuple_8_6_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 6 = x6
L1778
Axiom. (tuple_8_7_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 7 = x7
L1780
Variable x8 : set
L1782
Axiom. (tuple_9_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 0 = x0
L1783
Axiom. (tuple_9_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 1 = x1
L1785
Axiom. (tuple_9_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 2 = x2
L1787
Axiom. (tuple_9_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 3 = x3
L1789
Axiom. (tuple_9_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 4 = x4
L1791
Axiom. (tuple_9_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 5 = x5
L1793
Axiom. (tuple_9_6_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 6 = x6
L1795
Axiom. (tuple_9_7_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 7 = x7
L1797
Axiom. (tuple_9_8_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 8 = x8
End of Section Tuples
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.
L1815
Axiom. (tuple_3_in_A_3) We take the following as an axiom:
∀x y z A, x Ay Az A(x,y,z) A3
L1817
Axiom. (tuple_3_bij_3) We take the following as an axiom:
∀x y z, x 3y 3z 3x yx zy zbij 3 3 (λi ⇒ (x,y,z) i)
L1819
Axiom. (tuple_4_in_A_4) We take the following as an axiom:
∀x y z w A, x Ay Az Aw A(x,y,z,w) A4
L1821
Axiom. (tuple_4_bij_4) We take the following as an axiom:
∀x y z w, x 4y 4z 4w 4x yx zx wy zy wz wbij 4 4 (λi ⇒ (x,y,z,w) i)
L1823
Axiom. (iff_refl) We take the following as an axiom:
∀A : prop, A A
L1825
Axiom. (iff_sym) We take the following as an axiom:
∀A B : prop, (A B)(B A)
L1827
Axiom. (iff_trans) We take the following as an axiom:
∀A B C : prop, (A B)(B C)(A C)
L1829
Axiom. (not_or_and_demorgan) We take the following as an axiom:
∀A B : prop, ¬ (A B)¬ A ¬ B
L1831
Axiom. (and_not_or_demorgan) We take the following as an axiom:
∀A B : prop, ¬ A ¬ B¬ (A B)
L1833
Axiom. (not_ex_all_demorgan_i) We take the following as an axiom:
∀P : setprop, (¬ ∃x, P x)∀x, ¬ P x
L1835
Axiom. (not_all_ex_demorgan_i) We take the following as an axiom:
∀P : setprop, ¬ (∀x, P x)∃x, ¬ P x
L1837
Axiom. (eq_or_nand) We take the following as an axiom:
or = (λx y : prop¬ (¬ x ¬ y))
Primitive. The name EpsR_i_i_1 is a term of type (setsetprop)set.
Primitive. The name EpsR_i_i_2 is a term of type (setsetprop)set.
L1845
Axiom. (EpsR_i_i_12) We take the following as an axiom:
∀R : setsetprop, (∃x y, R x y)R (EpsR_i_i_1 R) (EpsR_i_i_2 R)
Primitive. The name DescrR_i_io_1 is a term of type (set(setprop)prop)set.
Primitive. The name DescrR_i_io_2 is a term of type (set(setprop)prop)setprop.
L1853
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)
L1855
Definition. We define PNoEq_ to be λalpha p q ⇒ ∀betaalpha, p beta q beta of type set(setprop)(setprop)prop.
L1862
Axiom. (PNoEq_ref_) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p p
L1864
Axiom. (PNoEq_sym_) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoEq_ alpha p qPNoEq_ alpha q p
L1866
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
L1868
Axiom. (PNoEq_antimon_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alpha∀betaalpha, PNoEq_ alpha p qPNoEq_ beta p q
L1870
Definition. We define PNoLt_ to be λalpha p q ⇒ ∃betaalpha, PNoEq_ beta p q ¬ p beta q beta of type set(setprop)(setprop)prop.
L1873
Axiom. (PNoLt_E_) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoLt_ alpha p q∀R : prop, (∀beta, beta alphaPNoEq_ beta p q¬ p betaq betaR)R
L1876
Axiom. (PNoLt_irref_) We take the following as an axiom:
∀alpha, ∀p : setprop, ¬ PNoLt_ alpha p p
L1878
Axiom. (PNoLt_mon_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alpha∀betaalpha, PNoLt_ beta p qPNoLt_ alpha p q
L1880
Axiom. (PNoLt_trichotomy_or_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alphaPNoLt_ alpha p q PNoEq_ alpha p q PNoLt_ alpha q p
L1883
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
Primitive. The name PNoLt is a term of type set(setprop)set(setprop)prop.
L1888
Axiom. (PNoLtI1) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt_ (alpha beta) p qPNoLt alpha p beta q
L1891
Axiom. (PNoLtI2) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, alpha betaPNoEq_ alpha p qq alphaPNoLt alpha p beta q
L1894
Axiom. (PNoLtI3) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, beta alphaPNoEq_ beta p q¬ p betaPNoLt alpha p beta q
L1897
Axiom. (PNoLtE) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt alpha p beta q∀R : prop, (PNoLt_ (alpha beta) p qR)(alpha betaPNoEq_ alpha p qq alphaR)(beta alphaPNoEq_ beta p q¬ p betaR)R
L1905
Axiom. (PNoLtE2) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoLt alpha p alpha qPNoLt_ alpha p q
L1908
Axiom. (PNoLt_irref) We take the following as an axiom:
∀alpha, ∀p : setprop, ¬ PNoLt alpha p alpha p
L1910
Axiom. (PNoLt_trichotomy_or) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNoLt alpha p beta q alpha = beta PNoEq_ alpha p q PNoLt beta q alpha p
L1914
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
L1916
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
L1918
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
L1920
Definition. We define PNoLe to be λalpha p beta q ⇒ PNoLt alpha p beta q alpha = beta PNoEq_ alpha p q of type set(setprop)set(setprop)prop.
L1923
Axiom. (PNoLeI1) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt alpha p beta qPNoLe alpha p beta q
L1926
Axiom. (PNoLeI2) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoEq_ alpha p qPNoLe alpha p alpha q
L1929
Axiom. (PNoLe_ref) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoLe alpha p alpha p
L1931
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 = beta PNoEq_ alpha p q
L1935
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
L1937
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
L1939
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
L1941
Axiom. (PNoLeEq_tra) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal beta∀p q r : setprop, PNoLe alpha p beta qPNoEq_ beta q rPNoLe alpha p beta r
L1943
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
L1945
Definition. We define PNo_downc to be λL alpha p ⇒ ∃beta, ordinal beta ∃q : setprop, L beta q PNoLe alpha p beta q of type (set(setprop)prop)set(setprop)prop.
L1948
Definition. We define PNo_upc to be λR alpha p ⇒ ∃beta, ordinal beta ∃q : setprop, R beta q PNoLe beta q alpha p of type (set(setprop)prop)set(setprop)prop.
L1951
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
L1955
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
L1957
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
L1959
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
L1963
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.
L1966
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)
L1969
Definition. We define PNo_rel_strict_upperbd to be λL alpha p ⇒ ∀betaalpha, ∀q : setprop, PNo_downc L beta qPNoLt beta q alpha p of type (set(setprop)prop)set(setprop)prop.
L1973
Definition. We define PNo_rel_strict_lowerbd to be λR alpha p ⇒ ∀betaalpha, ∀q : setprop, PNo_upc R beta qPNoLt alpha p beta q of type (set(setprop)prop)set(setprop)prop.
L1977
Definition. We define PNo_rel_strict_imv to be λL R alpha p ⇒ PNo_rel_strict_upperbd L alpha p PNo_rel_strict_lowerbd R alpha p of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
L1980
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
L1983
Axiom. (PNo_rel_strict_upperbd_antimon) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, ∀betaalpha, PNo_rel_strict_upperbd L alpha pPNo_rel_strict_upperbd L beta p
L1986
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
L1989
Axiom. (PNo_rel_strict_lowerbd_antimon) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, ∀betaalpha, PNo_rel_strict_lowerbd R alpha pPNo_rel_strict_lowerbd R beta p
L1992
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
L1995
Axiom. (PNo_rel_strict_imv_antimon) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, ∀betaalpha, PNo_rel_strict_imv L R alpha pPNo_rel_strict_imv L R beta p
L1998
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.
L2001
Definition. We define PNo_rel_strict_split_imv to be λL R alpha p ⇒ PNo_rel_strict_imv L R (ordsucc alpha) (λdelta ⇒ p delta delta alpha) PNo_rel_strict_imv L R (ordsucc alpha) (λdelta ⇒ p delta delta = alpha) of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
L2006
Axiom. (PNo_extend0_eq) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p (λdelta ⇒ p delta delta alpha)
L2008
Axiom. (PNo_extend1_eq) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p (λdelta ⇒ p delta delta = alpha)
L2010
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) (∃taualpha, ∃p : setprop, PNo_rel_strict_split_imv L R tau p)
L2016
Definition. We define PNo_lenbdd to be λalpha L ⇒ ∀beta, ∀p : setprop, L beta pbeta alpha of type set(set(setprop)prop)prop.
L2019
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 delta delta alpha)
L2024
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 delta delta = alpha)
L2029
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
L2034
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∃betaordsucc alpha, ∃p : setprop, PNo_rel_strict_split_imv L R beta p
L2042
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.
L2046
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.
L2050
Definition. We define PNo_strict_imv to be λL R alpha p ⇒ PNo_strict_upperbd L alpha p PNo_strict_lowerbd R alpha p of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
L2053
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
L2056
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
L2059
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
L2062
Axiom. (PNo_strict_upperbd_imp_rel_strict_upperbd) We take the following as an axiom:
∀L : set(setprop)prop, ∀alpha, ordinal alpha∀betaordsucc alpha, ∀p : setprop, PNo_strict_upperbd L alpha pPNo_rel_strict_upperbd L beta p
L2066
Axiom. (PNo_strict_lowerbd_imp_rel_strict_lowerbd) We take the following as an axiom:
∀R : set(setprop)prop, ∀alpha, ordinal alpha∀betaordsucc alpha, ∀p : setprop, PNo_strict_lowerbd R alpha pPNo_rel_strict_lowerbd R beta p
L2070
Axiom. (PNo_strict_imv_imp_rel_strict_imv) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀betaordsucc alpha, ∀p : setprop, PNo_strict_imv L R alpha pPNo_rel_strict_imv L R beta p
L2074
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
L2079
Axiom. (ordinal_PNo_strict_imv) We take the following as an axiom:
∀L R : set(setprop)prop, ∀alpha, ordinal alpha∀p : setprop, (∀betaalpha, p beta)(∀beta, ordinal beta∀q : setprop, L beta qbeta alpha)(∀betaalpha, L beta p)(∀beta, ordinal beta∀q : setprop, ¬ R beta q)PNo_strict_imv L R alpha p
L2087
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∃betaordsucc alpha, ∃p : setprop, PNo_strict_imv L R beta p
L2095
Definition. We define PNo_least_rep to be λL R beta p ⇒ ordinal beta PNo_strict_imv L R beta p ∀gammabeta, ∀q : setprop, ¬ PNo_strict_imv L R gamma q of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
L2101
Axiom. (PNo_lenbdd_least_rep_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, ∃p : setprop, PNo_least_rep L R beta p
L2108
Definition. We define PNo_least_rep2 to be λL R beta p ⇒ PNo_least_rep L R beta p ∀x, x beta¬ p x of type (set(setprop)prop)(set(setprop)prop)set(setprop)prop.
L2111
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∀betaalpha, p beta q beta
L2118
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)
Primitive. The name PNo_bd is a term of type (set(setprop)prop)(set(setprop)prop)set.
Primitive. The name PNo_pred is a term of type (set(setprop)prop)(set(setprop)prop)setprop.
L2133
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)
L2140
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)
L2147
Axiom. (PNo_bd_ord) We take the following as an axiom:
∀L R : set(setprop)prop, PNoLt_pwise L R∀alpha, ordinal alphaPNo_lenbdd alpha LPNo_lenbdd alpha Rordinal (PNo_bd L R)
L2154
Axiom. (PNo_bd_pred_strict_imv) 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_strict_imv L R (PNo_bd L R) (PNo_pred L R)
L2161
Axiom. (PNo_bd_least_imv) 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∀gammaPNo_bd L R, ∀q : setprop, ¬ PNo_strict_imv L R gamma q
L2169
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 R ordsucc alpha
L2176
Definition. We define PNoCutL to be λalpha p beta q ⇒ beta alpha PNoLt beta q alpha p of type set(setprop)set(setprop)prop.
L2179
Definition. We define PNoCutR to be λalpha p beta q ⇒ beta alpha PNoLt alpha p beta q of type set(setprop)set(setprop)prop.
L2181
Axiom. (PNoCutL_lenbdd) We take the following as an axiom:
∀alpha, ∀p : setprop, PNo_lenbdd alpha (PNoCutL alpha p)
L2183
Axiom. (PNoCutR_lenbdd) We take the following as an axiom:
∀alpha, ∀p : setprop, PNo_lenbdd alpha (PNoCutR alpha p)
L2185
Axiom. (PNoCut_pwise) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNoLt_pwise (PNoCutL alpha p) (PNoCutR alpha p)
L2187
Axiom. (PNoCut_strict_imv) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNo_strict_imv (PNoCutL alpha p) (PNoCutR alpha p) alpha p
L2189
Axiom. (PNoCut_bd_eq) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNo_bd (PNoCutL alpha p) (PNoCutR alpha p) = alpha
L2191
Axiom. (PNoCut_pred_eq) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNoEq_ alpha p (PNo_pred (PNoCutL alpha p) (PNoCutR alpha p))
Beginning of Section TaggedSets
L2195
Let tag : setsetλalpha ⇒ SetAdjoin alpha {1}
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term tag.
L2198
Axiom. (not_TransSet_Sing1) We take the following as an axiom:
L2200
Axiom. (not_ordinal_Sing1) We take the following as an axiom:
L2202
Axiom. (tagged_not_ordinal) We take the following as an axiom:
∀y, ¬ ordinal (y ')
L2204
Axiom. (tagged_notin_ordinal) We take the following as an axiom:
∀alpha y, ordinal alpha(y ') alpha
L2206
Axiom. (tagged_eqE_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaalpha ' = beta 'alpha beta
L2208
Axiom. (tagged_eqE_eq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha ' = beta 'alpha = beta
L2210
Axiom. (tagged_ReplE) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betabeta ' {gamma '|gammaalpha}beta alpha
L2212
Axiom. (ordinal_notin_tagged_Repl) We take the following as an axiom:
∀alpha Y, ordinal alphaalpha {y '|yY}
L2214
Definition. We define SNoElts_ to be λalpha ⇒ alpha {beta '|betaalpha} of type setset.
L2216
Axiom. (SNoElts_mon) We take the following as an axiom:
∀alpha beta, alpha betaSNoElts_ alpha SNoElts_ beta
L2218
Definition. We define SNo_ to be λalpha x ⇒ x SNoElts_ alpha ∀betaalpha, exactly1of2 (beta ' x) (beta x) of type setsetprop.
L2222
Definition. We define PSNo to be λalpha p ⇒ {betaalpha|p beta} {beta '|betaalpha, ¬ p beta} of type set(setprop)set.
L2225
Axiom. (PNoEq_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNoEq_ alpha (λbeta ⇒ beta PSNo alpha p) p
L2227
Axiom. (SNo_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, SNo_ alpha (PSNo alpha p)
L2229
Axiom. (SNo_PSNo_eta_) We take the following as an axiom:
∀alpha x, ordinal alphaSNo_ alpha xx = PSNo alpha (λbeta ⇒ beta x)
Primitive. The name SNo is a term of type setprop.
L2234
Axiom. (SNo_SNo) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo_ alpha zSNo z
Primitive. The name SNoLev is a term of type setset.
L2239
Axiom. (SNoLev_uniq_Subq) We take the following as an axiom:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha beta
L2241
Axiom. (SNoLev_uniq) We take the following as an axiom:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha = beta
L2243
Axiom. (SNoLev_prop) We take the following as an axiom:
∀x, SNo xordinal (SNoLev x) SNo_ (SNoLev x) x
L2245
Axiom. (SNoLev_ordinal) We take the following as an axiom:
∀x, SNo xordinal (SNoLev x)
L2247
Axiom. (SNoLev_) We take the following as an axiom:
∀x, SNo xSNo_ (SNoLev x) x
L2249
Axiom. (SNo_PSNo_eta) We take the following as an axiom:
∀x, SNo xx = PSNo (SNoLev x) (λbeta ⇒ beta x)
L2251
Axiom. (SNoLev_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, SNoLev (PSNo alpha p) = alpha
L2253
Axiom. (SNo_Subq) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev x SNoLev y(∀alphaSNoLev x, alpha x alpha y)x y
L2255
Definition. We define SNoEq_ to be λalpha x y ⇒ PNoEq_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta y) of type setsetsetprop.
L2258
Axiom. (SNoEq_I) We take the following as an axiom:
∀alpha x y, (∀betaalpha, beta x beta y)SNoEq_ alpha x y
L2260
Axiom. (SNoEq_E) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x y∀betaalpha, beta x beta y
L2262
Axiom. (SNoEq_E1) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x y∀betaalpha, beta xbeta y
L2264
Axiom. (SNoEq_E2) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x y∀betaalpha, beta ybeta x
L2266
Axiom. (SNoEq_antimon_) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ∀x y, SNoEq_ alpha x ySNoEq_ beta x y
L2268
Axiom. (SNo_eq) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev x = SNoLev ySNoEq_ (SNoLev x) x yx = y
L2270
Let ctag : setsetλalpha ⇒ SetAdjoin alpha {2}
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term ctag.
L2274
Axiom. (ctagged_not_ordinal) We take the following as an axiom:
∀y, ¬ ordinal (y '')
L2276
Axiom. (ctagged_notin_ordinal) We take the following as an axiom:
∀alpha y, ordinal alpha(y '') alpha
L2277
Axiom. (Sing2_notin_SingSing1) We take the following as an axiom:
L2278
Axiom. (ctagged_notin_SNo) We take the following as an axiom:
∀x y, SNo x(y '') x
L2280
Axiom. (ctagged_eqE_eq) We take the following as an axiom:
∀x y, SNo xSNo y∀ux, ∀vy, u '' = v ''u = v
L2281
Definition. We define SNo_pair to be λx y ⇒ x {u ''|uy} of type setsetset.
L2283
Axiom. (SNo_pair_prop_1) We take the following as an axiom:
∀x1 y1 x2 y2, SNo x1SNo x2SNo_pair x1 y1 = SNo_pair x2 y2x1 = x2
L2285
Axiom. (SNo_pair_prop_2) We take the following as an axiom:
∀x1 y1 x2 y2, SNo x1SNo y1SNo x2SNo y2SNo_pair x1 y1 = SNo_pair x2 y2y1 = y2
L2286
Axiom. (SNo_pair_prop) We take the following as an axiom:
∀x1 y1 x2 y2, SNo x1SNo y1SNo x2SNo y2SNo_pair x1 y1 = SNo_pair x2 y2x1 = x2 y1 = y2
L2287
Axiom. (SNo_pair_0) We take the following as an axiom:
∀x, SNo_pair x 0 = x
End of Section TaggedSets
L2290
Definition. We define SNoLt to be λx y ⇒ PNoLt (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y) of type setsetprop.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term SNoLt.
L2295
Definition. We define SNoLe to be λx y ⇒ PNoLe (SNoLev x) (λbeta ⇒ beta x) (SNoLev y) (λbeta ⇒ beta y) of type setsetprop.
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term SNoLe.
L2301
Axiom. (SNoLtLe) We take the following as an axiom:
∀x y, x < yx y
L2303
Axiom. (SNoLeE) We take the following as an axiom:
∀x y, SNo xSNo yx yx < y x = y
L2305
Axiom. (SNoEq_ref_) We take the following as an axiom:
∀alpha x, SNoEq_ alpha x x
L2307
Axiom. (SNoEq_sym_) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x ySNoEq_ alpha y x
L2309
Axiom. (SNoEq_tra_) We take the following as an axiom:
∀alpha x y z, SNoEq_ alpha x ySNoEq_ alpha y zSNoEq_ alpha x z
L2311
Axiom. (SNoLtE) We take the following as an axiom:
∀x y, SNo xSNo yx < y∀p : prop, (∀z, SNo zSNoLev z SNoLev x SNoLev ySNoEq_ (SNoLev z) z xSNoEq_ (SNoLev z) z yx < zz < ySNoLev z xSNoLev z yp)(SNoLev x SNoLev ySNoEq_ (SNoLev x) x ySNoLev x yp)(SNoLev y SNoLev xSNoEq_ (SNoLev y) x ySNoLev y xp)p
L2318
Axiom. (SNoLtI2) We take the following as an axiom:
∀x y, SNoLev x SNoLev ySNoEq_ (SNoLev x) x ySNoLev x yx < y
L2326
Axiom. (SNoLtI3) We take the following as an axiom:
∀x y, SNoLev y SNoLev xSNoEq_ (SNoLev y) x ySNoLev y xx < y
L2332
Axiom. (SNoLt_irref) We take the following as an axiom:
∀x, ¬ SNoLt x x
L2334
Axiom. (SNoLt_trichotomy_or) We take the following as an axiom:
∀x y, SNo xSNo yx < y x = y y < x
L2336
Axiom. (SNoLt_trichotomy_or_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (x < yp)(x = yp)(y < xp)p
L2342
Axiom. (SNoLt_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < yy < zx < z
L2344
Axiom. (SNoLe_ref) We take the following as an axiom:
∀x, SNoLe x x
L2346
Axiom. (SNoLe_antisym) We take the following as an axiom:
∀x y, SNo xSNo yx yy xx = y
L2348
Axiom. (SNoLtLe_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < yy zx < z
L2350
Axiom. (SNoLeLt_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx yy < zx < z
L2352
Axiom. (SNoLe_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx yy zx z
L2354
Axiom. (SNoLtLe_or) We take the following as an axiom:
∀x y, SNo xSNo yx < y y x
L2356
Axiom. (SNoLt_PSNo_PNoLt) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPSNo alpha p < PSNo beta qPNoLt alpha p beta q
L2360
Axiom. (PNoLt_SNoLt_PSNo) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, ordinal alphaordinal betaPNoLt alpha p beta qPSNo alpha p < PSNo beta q
L2364
Definition. We define SNoCut to be λL R ⇒ PSNo (PNo_bd (λalpha p ⇒ ordinal alpha PSNo alpha p L) (λalpha p ⇒ ordinal alpha PSNo alpha p R)) (PNo_pred (λalpha p ⇒ ordinal alpha PSNo alpha p L) (λalpha p ⇒ ordinal alpha PSNo alpha p R)) of type setsetset.
L2367
Definition. We define SNoCutP to be λL R ⇒ (∀xL, SNo x) (∀yR, SNo y) (∀xL, ∀yR, x < y) of type setsetprop.
L2373
Axiom. (SNoCutP_SNoCut) We take the following as an axiom:
∀L R, SNoCutP L RSNo (SNoCut L R) SNoLev (SNoCut L R) ordsucc ((xLordsucc (SNoLev x)) (yRordsucc (SNoLev y))) (∀xL, x < SNoCut L R) (∀yR, SNoCut L R < y) (∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev z SNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z)
L2380
Axiom. (SNoCutP_SNoCut_impred) We take the following as an axiom:
∀L R, SNoCutP L R∀p : prop, (SNo (SNoCut L R)SNoLev (SNoCut L R) ordsucc ((xLordsucc (SNoLev x)) (yRordsucc (SNoLev y)))(∀xL, x < SNoCut L R)(∀yR, SNoCut L R < y)(∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev z SNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z)p)p
L2390
Axiom. (SNoCutP_L_0) We take the following as an axiom:
∀L, (∀xL, SNo x)SNoCutP L 0
L2392
Axiom. (SNoCutP_0_R) We take the following as an axiom:
∀R, (∀xR, SNo x)SNoCutP 0 R
L2393
Axiom. (SNoCutP_0_0) We take the following as an axiom:
L2394
Axiom. (SNoCut_0_0) We take the following as an axiom:
L2395
Axiom. (ordinal_SNoLt_In) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha < betaalpha beta
L2397
Axiom. (ordinal_SNoLe_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha betaalpha beta
L2399
Definition. We define SNoS_ to be λalpha ⇒ {x𝒫 (SNoElts_ alpha)|∃betaalpha, SNo_ beta x} of type setset.
L2401
Axiom. (SNoS_E) We take the following as an axiom:
∀alpha, ordinal alpha∀xSNoS_ alpha, ∃betaalpha, SNo_ beta x
Beginning of Section TaggedSets2
L2405
Let tag : setsetλalpha ⇒ SetAdjoin alpha {1}
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term tag.
L2408
Axiom. (SNoS_I) We take the following as an axiom:
∀alpha, ordinal alpha∀x, ∀betaalpha, SNo_ beta xx SNoS_ alpha
L2410
Axiom. (SNoS_I2) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev x SNoLev yx SNoS_ (SNoLev y)
L2412
Axiom. (SNoS_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha betaSNoS_ alpha SNoS_ beta
L2414
Axiom. (SNoLev_uniq2) We take the following as an axiom:
∀alpha, ordinal alpha∀x, SNo_ alpha xSNoLev x = alpha
L2416
Axiom. (SNoS_E2) We take the following as an axiom:
∀alpha, ordinal alpha∀xSNoS_ alpha, ∀p : prop, (SNoLev x alphaordinal (SNoLev x)SNo xSNo_ (SNoLev x) xp)p
L2421
Axiom. (SNoS_In_neq) We take the following as an axiom:
∀w, SNo w∀xSNoS_ (SNoLev w), x w
L2423
Axiom. (SNoS_SNoLev) We take the following as an axiom:
∀z, SNo zz SNoS_ (ordsucc (SNoLev z))
L2425
Definition. We define SNoL to be λz ⇒ {xSNoS_ (SNoLev z)|x < z} of type setset.
L2427
Definition. We define SNoR to be λz ⇒ {ySNoS_ (SNoLev z)|z < y} of type setset.
L2428
Axiom. (SNoCutP_SNoL_SNoR) We take the following as an axiom:
∀z, SNo zSNoCutP (SNoL z) (SNoR z)
L2430
Axiom. (SNoL_E) We take the following as an axiom:
∀x, SNo x∀wSNoL x, ∀p : prop, (SNo wSNoLev w SNoLev xw < xp)p
L2435
Axiom. (SNoR_E) We take the following as an axiom:
∀x, SNo x∀zSNoR x, ∀p : prop, (SNo zSNoLev z SNoLev xx < zp)p
L2440
Axiom. (SNoL_SNoS) We take the following as an axiom:
∀x, SNo x∀wSNoL x, w SNoS_ (SNoLev x)
L2442
Axiom. (SNoR_SNoS) We take the following as an axiom:
∀x, SNo x∀zSNoR x, z SNoS_ (SNoLev x)
L2443
Axiom. (SNoL_SNoS_) We take the following as an axiom:
∀z, SNoL z SNoS_ (SNoLev z)
L2444
Axiom. (SNoR_SNoS_) We take the following as an axiom:
∀z, SNoR z SNoS_ (SNoLev z)
L2445
Axiom. (SNoL_I) We take the following as an axiom:
∀z, SNo z∀x, SNo xSNoLev x SNoLev zx < zx SNoL z
L2447
Axiom. (SNoR_I) We take the following as an axiom:
∀z, SNo z∀y, SNo ySNoLev y SNoLev zz < yy SNoR z
L2449
Axiom. (SNo_eta) We take the following as an axiom:
∀z, SNo zz = SNoCut (SNoL z) (SNoR z)
L2451
Axiom. (SNoCutP_SNo_SNoCut) We take the following as an axiom:
∀L R, SNoCutP L RSNo (SNoCut L R)
L2453
Axiom. (SNoCutP_SNoCut_L) We take the following as an axiom:
∀L R, SNoCutP L R∀xL, x < SNoCut L R
L2455
Axiom. (SNoCutP_SNoCut_R) We take the following as an axiom:
∀L R, SNoCutP L R∀yR, SNoCut L R < y
L2457
Axiom. (SNoCutP_SNoCut_fst) We take the following as an axiom:
∀L R, SNoCutP L R∀z, SNo z(∀xL, x < z)(∀yR, z < y)SNoLev (SNoCut L R) SNoLev z SNoEq_ (SNoLev (SNoCut L R)) (SNoCut L R) z
L2464
Axiom. (SNoCut_Le) We take the following as an axiom:
∀L1 R1 L2 R2, SNoCutP L1 R1SNoCutP L2 R2(∀wL1, w < SNoCut L2 R2)(∀zR2, SNoCut L1 R1 < z)SNoCut L1 R1 SNoCut L2 R2
L2469
Axiom. (SNoCut_ext) We take the following as an axiom:
∀L1 R1 L2 R2, SNoCutP L1 R1SNoCutP L2 R2(∀wL1, w < SNoCut L2 R2)(∀zR1, SNoCut L2 R2 < z)(∀wL2, w < SNoCut L1 R1)(∀zR2, SNoCut L1 R1 < z)SNoCut L1 R1 = SNoCut L2 R2
L2476
Axiom. (SNoLt_SNoL_or_SNoR_impred) We take the following as an axiom:
∀x y, SNo xSNo yx < y∀p : prop, (∀zSNoL y, z SNoR xp)(x SNoL yp)(y SNoR xp)p
L2483
Axiom. (SNoL_or_SNoR_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (x = yp)(∀zSNoL y, z SNoR xp)(x SNoL yp)(y SNoR xp)(∀zSNoR y, z SNoL xp)(x SNoR yp)(y SNoL xp)p
L2494
Axiom. (ordinal_SNo_) We take the following as an axiom:
∀alpha, ordinal alphaSNo_ alpha alpha
L2496
Axiom. (ordinal_SNoL) We take the following as an axiom:
∀alpha, ordinal alphaSNoL alpha = SNoS_ alpha
L2498
Axiom. (ordinal_SNoR) We take the following as an axiom:
∀alpha, ordinal alphaSNoR alpha = Empty
L2499
Axiom. (ordinal_SNoCutP) We take the following as an axiom:
∀alpha, ordinal alphaSNoCutP (SNoS_ alpha) Empty
L2500
Axiom. (ordinal_SNoCut_eta) We take the following as an axiom:
∀alpha, ordinal alphaalpha = SNoCut (SNoS_ alpha) Empty
L2501
Axiom. (SNo_0) We take the following as an axiom:
L2503
Axiom. (SNoLev_0) We take the following as an axiom:
L2504
Axiom. (SNoL_0) We take the following as an axiom:
L2505
Axiom. (SNoR_0) We take the following as an axiom:
L2506
Axiom. (SNoL_1) We take the following as an axiom:
L2507
Axiom. (SNoR_1) We take the following as an axiom:
L2508
Axiom. (SNo_max_SNoLev) We take the following as an axiom:
∀x, SNo x(∀ySNoS_ (SNoLev x), y < x)SNoLev x = x
L2509
Axiom. (SNo_max_ordinal) We take the following as an axiom:
∀x, SNo x(∀ySNoS_ (SNoLev x), y < x)ordinal x
L2510
Definition. We define SNo_extend0 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ delta x delta SNoLev x) of type setset.
L2512
Definition. We define SNo_extend1 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ delta x delta = SNoLev x) of type setset.
L2514
Axiom. (SNo_extend0_SNo_) We take the following as an axiom:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend0 x)
L2516
Axiom. (SNo_extend1_SNo_) We take the following as an axiom:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend1 x)
L2518
Axiom. (SNo_extend0_SNo) We take the following as an axiom:
∀x, SNo xSNo (SNo_extend0 x)
L2520
Axiom. (SNo_extend1_SNo) We take the following as an axiom:
∀x, SNo xSNo (SNo_extend1 x)
L2522
Axiom. (SNo_extend0_SNoLev) We take the following as an axiom:
∀x, SNo xSNoLev (SNo_extend0 x) = ordsucc (SNoLev x)
L2524
Axiom. (SNo_extend1_SNoLev) We take the following as an axiom:
∀x, SNo xSNoLev (SNo_extend1 x) = ordsucc (SNoLev x)
L2526
Axiom. (SNo_extend0_nIn) We take the following as an axiom:
∀x, SNo xSNoLev x SNo_extend0 x
L2528
Axiom. (SNo_extend1_In) We take the following as an axiom:
∀x, SNo xSNoLev x SNo_extend1 x
L2530
Axiom. (SNo_extend0_SNoEq) We take the following as an axiom:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend0 x) x
L2532
Axiom. (SNo_extend1_SNoEq) We take the following as an axiom:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend1 x) x
L2534
Axiom. (SNo_extend0_Lt) We take the following as an axiom:
∀x, SNo xSNo_extend0 x < x
L2536
Axiom. (SNo_extend1_Gt) We take the following as an axiom:
∀x, SNo xx < SNo_extend1 x
L2537
Definition. We define eps_ to be λn ⇒ {0} {(ordsucc m) '|mn} of type setset.
L2540
Axiom. (eps_ordinal_In_eq_0) We take the following as an axiom:
∀n alpha, ordinal alphaalpha eps_ nalpha = 0
L2542
Axiom. (eps_0_1) We take the following as an axiom:
L2543
Axiom. (SNo__eps_) We take the following as an axiom:
L2544
Axiom. (SNo_eps_) We take the following as an axiom:
L2545
Axiom. (SNoLev_eps_) We take the following as an axiom:
L2546
Axiom. (SNo_eps_SNoS_omega) We take the following as an axiom:
L2547
Axiom. (SNo_eps_decr) We take the following as an axiom:
∀nomega, ∀mn, eps_ n < eps_ m
L2548
Axiom. (SNo_eps_pos) We take the following as an axiom:
L2549
Axiom. (SNo_pos_eps_Lt) We take the following as an axiom:
∀n, nat_p n∀xSNoS_ n, 0 < xeps_ n < x
End of Section TaggedSets2
L2552
Axiom. (ordinal_SNo) We take the following as an axiom:
∀alpha, ordinal alphaSNo alpha
L2554
Axiom. (ordinal_SNoLev) We take the following as an axiom:
∀alpha, ordinal alphaSNoLev alpha = alpha
L2556
Axiom. (ordinal_SNoLev_max) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z alphaz < alpha
L2558
Axiom. (ordinal_In_SNoLt) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, beta < alpha
L2560
Axiom. (ordinal_SNoLev_max_2) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z ordsucc alphaz alpha
L2562
Axiom. (ordinal_Subq_SNoLe) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha betaalpha beta
L2564
Axiom. (SNo_etaE) We take the following as an axiom:
∀z, SNo z∀p : prop, (∀L R, SNoCutP L R(∀xL, SNoLev x SNoLev z)(∀yR, SNoLev y SNoLev z)z = SNoCut L Rp)p
L2573
Axiom. (SNo_ind) We take the following as an axiom:
∀P : setprop, (∀L R, SNoCutP L R(∀xL, P x)(∀yR, P y)P (SNoCut L R))∀z, SNo zP z
Beginning of Section SurrealRecI
L2584
Variable F : set(setset)set
Primitive. The name SNo_rec_i is a term of type setset.
L2589
Hypothesis Fr : ∀z, SNo z∀g h : setset, (∀wSNoS_ (SNoLev z), g w = h w)F z g = F z h
L2593
Axiom. (SNo_rec_i_eq) We take the following as an axiom:
∀z, SNo zSNo_rec_i z = F z SNo_rec_i
End of Section SurrealRecI
Beginning of Section SurrealRecII
L2599
Variable F : set(set(setset))(setset)
Primitive. The name SNo_rec_ii is a term of type set(setset).
L2604
Hypothesis Fr : ∀z, SNo z∀g h : set(setset), (∀wSNoS_ (SNoLev z), g w = h w)F z g = F z h
L2608
Axiom. (SNo_rec_ii_eq) We take the following as an axiom:
∀z, SNo zSNo_rec_ii z = F z SNo_rec_ii
End of Section SurrealRecII
Beginning of Section SurrealRec2
L2614
Variable F : setset(setsetset)set
Primitive. The name SNo_rec2 is a term of type setsetset.
L2619
Hypothesis Fr : ∀w, SNo w∀z, SNo z∀g h : setsetset, (∀xSNoS_ (SNoLev w), ∀y, SNo yg x y = h x y)(∀ySNoS_ (SNoLev z), g w y = h w y)F w z g = F w z h
L2625
Axiom. (SNo_rec2_eq) We take the following as an axiom:
∀w, SNo w∀z, SNo zSNo_rec2 w z = F w z SNo_rec2
End of Section SurrealRec2
L2630
Axiom. (SNo_ordinal_ind) We take the following as an axiom:
∀P : setprop, (∀alpha, ordinal alpha∀xSNoS_ alpha, P x)(∀x, SNo xP x)
L2635
Axiom. (SNo_ordinal_ind2) We take the following as an axiom:
∀P : setsetprop, (∀alpha, ordinal alpha∀beta, ordinal beta∀xSNoS_ alpha, ∀ySNoS_ beta, P x y)(∀x y, SNo xSNo yP x y)
L2642
Axiom. (SNo_ordinal_ind3) We take the following as an axiom:
∀P : setsetsetprop, (∀alpha, ordinal alpha∀beta, ordinal beta∀gamma, ordinal gamma∀xSNoS_ alpha, ∀ySNoS_ beta, ∀zSNoS_ gamma, P x y z)(∀x y z, SNo xSNo ySNo zP x y z)
L2650
Axiom. (SNoLev_ind) We take the following as an axiom:
∀P : setprop, (∀x, SNo x(∀wSNoS_ (SNoLev x), P w)P x)(∀x, SNo xP x)
L2655
Axiom. (SNoLev_ind2) We take the following as an axiom:
∀P : setsetprop, (∀x y, SNo xSNo y(∀wSNoS_ (SNoLev x), P w y)(∀zSNoS_ (SNoLev y), P x z)(∀wSNoS_ (SNoLev x), ∀zSNoS_ (SNoLev y), P w z)P x y)∀x y, SNo xSNo yP x y
L2663
Axiom. (SNoLev_ind3) We take the following as an axiom:
∀P : setsetsetprop, (∀x y z, SNo xSNo ySNo z(∀uSNoS_ (SNoLev x), P u y z)(∀vSNoS_ (SNoLev y), P x v z)(∀wSNoS_ (SNoLev z), P x y w)(∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), P u v z)(∀uSNoS_ (SNoLev x), ∀wSNoS_ (SNoLev z), P u y w)(∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P x v w)(∀uSNoS_ (SNoLev x), ∀vSNoS_ (SNoLev y), ∀wSNoS_ (SNoLev z), P u v w)P x y z)∀x y z, SNo xSNo ySNo zP x y z
L2675
Axiom. (SNo_1) We take the following as an axiom:
L2677
Axiom. (SNo_2) We take the following as an axiom:
L2678
Axiom. (SNo_omega) We take the following as an axiom:
L2679
Axiom. (SNoLt_0_1) We take the following as an axiom:
0 < 1
L2680
Axiom. (SNoLt_0_2) We take the following as an axiom:
0 < 2
L2681
Axiom. (SNoLt_1_2) We take the following as an axiom:
1 < 2
L2682
Axiom. (SNoLev_0_eq_0) We take the following as an axiom:
∀x, SNo xSNoLev x = 0x = 0
L2684
Axiom. (restr_SNo_) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNo_ alpha (x SNoElts_ alpha)
L2685
Axiom. (restr_SNo) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNo (x SNoElts_ alpha)
L2686
Axiom. (restr_SNoLev) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNoLev (x SNoElts_ alpha) = alpha
L2687
Axiom. (restr_SNoEq) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNoEq_ alpha (x SNoElts_ alpha) x
L2688
Axiom. (restr_SNo_SNoCut) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, ∀p : prop, (SNoCutP {wSNoL x|SNoLev w alpha} {zSNoR x|SNoLev z alpha}x SNoElts_ alpha = SNoCut {wSNoL x|SNoLev w alpha} {zSNoR x|SNoLev z alpha}p)p
Primitive. The name pack_e is a term of type setsetset.
L2696
Axiom. (pack_e_0_eq) We take the following as an axiom:
∀S X, ∀c : set, S = pack_e X cX = S 0
L2698
Axiom. (pack_e_0_eq2) We take the following as an axiom:
∀X, ∀c : set, X = pack_e X c 0
L2700
Axiom. (pack_e_1_eq) We take the following as an axiom:
∀S X, ∀c : set, S = pack_e X cc = S 1
L2702
Axiom. (pack_e_1_eq2) We take the following as an axiom:
∀X, ∀c : set, c = pack_e X c 1
L2704
Axiom. (pack_e_inj) We take the following as an axiom:
∀X X', ∀c c', pack_e X c = pack_e X' c'X = X' c = c'
L2706
Definition. We define struct_e to be λS ⇒ ∀q : setprop, (∀X : set, ∀c : set, c Xq (pack_e X c))q S of type setprop.
L2708
Axiom. (pack_struct_e_I) We take the following as an axiom:
∀X, ∀c : set, c Xstruct_e (pack_e X c)
L2710
Axiom. (pack_struct_e_E1) We take the following as an axiom:
∀X, ∀c : set, struct_e (pack_e X c)c X
L2712
Axiom. (struct_e_eta) We take the following as an axiom:
∀S, struct_e SS = pack_e (S 0) (S 1)
Primitive. The name unpack_e_i is a term of type set(setsetset)set.
L2717
Axiom. (unpack_e_i_eq) We take the following as an axiom:
∀Phi : setsetset, ∀X, ∀c : set, unpack_e_i (pack_e X c) Phi = Phi X c
Primitive. The name unpack_e_o is a term of type set(setsetprop)prop.
L2723
Axiom. (unpack_e_o_eq) We take the following as an axiom:
∀Phi : setsetprop, ∀X, ∀c : set, unpack_e_o (pack_e X c) Phi = Phi X c
Primitive. The name pack_u is a term of type set(setset)set.
L2729
Axiom. (pack_u_0_eq) We take the following as an axiom:
∀S X, ∀F : setset, S = pack_u X FX = S 0
L2731
Axiom. (pack_u_0_eq2) We take the following as an axiom:
∀X, ∀F : setset, X = pack_u X F 0
L2733
Axiom. (pack_u_1_eq) We take the following as an axiom:
∀S X, ∀F : setset, S = pack_u X F∀xX, F x = decode_u (S 1) x
L2735
Axiom. (pack_u_1_eq2) We take the following as an axiom:
∀X, ∀F : setset, ∀xX, F x = decode_u (pack_u X F 1) x
L2737
Axiom. (pack_u_inj) We take the following as an axiom:
∀X X', ∀F F' : setset, pack_u X F = pack_u X' F'X = X' ∀xX, F x = F' x
L2739
Axiom. (pack_u_ext) We take the following as an axiom:
∀X, ∀F F' : setset, (∀xX, F x = F' x)pack_u X F = pack_u X F'
L2743
Definition. We define struct_u to be λS ⇒ ∀q : setprop, (∀X, ∀F : setset, (∀xX, F x X)q (pack_u X F))q S of type setprop.
L2745
Axiom. (pack_struct_u_I) We take the following as an axiom:
∀X, ∀F : setset, (∀xX, F x X)struct_u (pack_u X F)
L2747
Axiom. (pack_struct_u_E1) We take the following as an axiom:
∀X, ∀F : setset, struct_u (pack_u X F)∀xX, F x X
L2749
Axiom. (struct_u_eta) We take the following as an axiom:
∀S, struct_u SS = pack_u (S 0) (decode_u (S 1))
Primitive. The name unpack_u_i is a term of type set(set(setset)set)set.
L2754
Axiom. (unpack_u_i_eq) We take the following as an axiom:
∀Phi : set(setset)set, ∀X, ∀F : setset, (∀F' : setset, (∀xX, F x = F' x)Phi X F' = Phi X F)unpack_u_i (pack_u X F) Phi = Phi X F
Primitive. The name unpack_u_o is a term of type set(set(setset)prop)prop.
L2763
Axiom. (unpack_u_o_eq) We take the following as an axiom:
∀Phi : set(setset)prop, ∀X, ∀F : setset, (∀F' : setset, (∀xX, F x = F' x)Phi X F' = Phi X F)unpack_u_o (pack_u X F) Phi = Phi X F
Primitive. The name pack_b is a term of type set(setsetset)set.
L2772
Axiom. (pack_b_0_eq) We take the following as an axiom:
∀S X, ∀F : setsetset, S = pack_b X FX = S 0
L2774
Axiom. (pack_b_0_eq2) We take the following as an axiom:
∀X, ∀F : setsetset, X = pack_b X F 0
L2776
Axiom. (pack_b_1_eq) We take the following as an axiom:
∀S X, ∀F : setsetset, S = pack_b X F∀x yX, F x y = decode_b (S 1) x y
L2778
Axiom. (pack_b_1_eq2) We take the following as an axiom:
∀X, ∀F : setsetset, ∀x yX, F x y = decode_b (pack_b X F 1) x y
L2780
Axiom. (pack_b_inj) We take the following as an axiom:
∀X X', ∀F F' : setsetset, pack_b X F = pack_b X' F'X = X' ∀x yX, F x y = F' x y
L2782
Axiom. (pack_b_ext) We take the following as an axiom:
∀X, ∀F F' : setsetset, (∀x yX, F x y = F' x y)pack_b X F = pack_b X F'
L2786
Definition. We define struct_b to be λS ⇒ ∀q : setprop, (∀X : set, ∀F : setsetset, (∀x yX, F x y X)q (pack_b X F))q S of type setprop.
L2788
Axiom. (pack_struct_b_I) We take the following as an axiom:
∀X, ∀F : setsetset, (∀x yX, F x y X)struct_b (pack_b X F)
L2790
Axiom. (pack_struct_b_E1) We take the following as an axiom:
∀X, ∀F : setsetset, struct_b (pack_b X F)∀x yX, F x y X
L2792
Axiom. (struct_b_eta) We take the following as an axiom:
∀S, struct_b SS = pack_b (S 0) (decode_b (S 1))
Primitive. The name unpack_b_i is a term of type set(set(setsetset)set)set.
L2797
Axiom. (unpack_b_i_eq) We take the following as an axiom:
∀Phi : set(setsetset)set, ∀X, ∀F : setsetset, (∀F' : setsetset, (∀x yX, F x y = F' x y)Phi X F' = Phi X F)unpack_b_i (pack_b X F) Phi = Phi X F
Primitive. The name unpack_b_o is a term of type set(set(setsetset)prop)prop.
L2806
Axiom. (unpack_b_o_eq) We take the following as an axiom:
∀Phi : set(setsetset)prop, ∀X, ∀F : setsetset, (∀F' : setsetset, (∀x yX, F x y = F' x y)Phi X F' = Phi X F)unpack_b_o (pack_b X F) Phi = Phi X F
Primitive. The name pack_p is a term of type set(setprop)set.
L2815
Axiom. (pack_p_0_eq) We take the following as an axiom:
∀S X, ∀P : setprop, S = pack_p X PX = S 0
L2817
Axiom. (pack_p_0_eq2) We take the following as an axiom:
∀X, ∀P : setprop, X = pack_p X P 0
L2819
Axiom. (pack_p_1_eq) We take the following as an axiom:
∀S X, ∀P : setprop, S = pack_p X P∀xX, P x = decode_p (S 1) x
L2821
Axiom. (pack_p_1_eq2) We take the following as an axiom:
∀X, ∀P : setprop, ∀xX, P x = decode_p (pack_p X P 1) x
L2823
Axiom. (pack_p_inj) We take the following as an axiom:
∀X X', ∀P P' : setprop, pack_p X P = pack_p X' P'X = X' ∀xX, P x = P' x
L2825
Axiom. (pack_p_ext) We take the following as an axiom:
∀X, ∀P P' : setprop, (∀xX, P x P' x)pack_p X P = pack_p X P'
L2829
Definition. We define struct_p to be λS ⇒ ∀q : setprop, (∀X : set, ∀P : setprop, q (pack_p X P))q S of type setprop.
L2831
Axiom. (pack_struct_p_I) We take the following as an axiom:
∀X, ∀P : setprop, struct_p (pack_p X P)
L2833
Axiom. (struct_p_eta) We take the following as an axiom:
∀S, struct_p SS = pack_p (S 0) (decode_p (S 1))
Primitive. The name unpack_p_i is a term of type set(set(setprop)set)set.
L2838
Axiom. (unpack_p_i_eq) We take the following as an axiom:
∀Phi : set(setprop)set, ∀X, ∀P : setprop, (∀P' : setprop, (∀xX, P x P' x)Phi X P' = Phi X P)unpack_p_i (pack_p X P) Phi = Phi X P
Primitive. The name unpack_p_o is a term of type set(set(setprop)prop)prop.
L2847
Axiom. (unpack_p_o_eq) We take the following as an axiom:
∀Phi : set(setprop)prop, ∀X, ∀P : setprop, (∀P' : setprop, (∀xX, P x P' x)Phi X P' = Phi X P)unpack_p_o (pack_p X P) Phi = Phi X P
Primitive. The name pack_r is a term of type set(setsetprop)set.
L2856
Axiom. (pack_r_0_eq) We take the following as an axiom:
∀S X, ∀R : setsetprop, S = pack_r X RX = S 0
L2858
Axiom. (pack_r_0_eq2) We take the following as an axiom:
∀X, ∀R : setsetprop, X = pack_r X R 0
L2860
Axiom. (pack_r_1_eq) We take the following as an axiom:
∀S X, ∀R : setsetprop, S = pack_r X R∀x yX, R x y = decode_r (S 1) x y
L2862
Axiom. (pack_r_1_eq2) We take the following as an axiom:
∀X, ∀R : setsetprop, ∀x yX, R x y = decode_r (pack_r X R 1) x y
L2864
Axiom. (pack_r_inj) We take the following as an axiom:
∀X X', ∀R R' : setsetprop, pack_r X R = pack_r X' R'X = X' ∀x yX, R x y = R' x y
L2866
Axiom. (pack_r_ext) We take the following as an axiom:
∀X, ∀R R' : setsetprop, (∀x yX, R x y R' x y)pack_r X R = pack_r X R'
L2870
Definition. We define struct_r to be λS ⇒ ∀q : setprop, (∀X : set, ∀R : setsetprop, q (pack_r X R))q S of type setprop.
L2872
Axiom. (pack_struct_r_I) We take the following as an axiom:
∀X, ∀R : setsetprop, struct_r (pack_r X R)
L2874
Axiom. (struct_r_eta) We take the following as an axiom:
∀S, struct_r SS = pack_r (S 0) (decode_r (S 1))
Primitive. The name unpack_r_i is a term of type set(set(setsetprop)set)set.
L2879
Axiom. (unpack_r_i_eq) We take the following as an axiom:
∀Phi : set(setsetprop)set, ∀X, ∀R : setsetprop, (∀R' : setsetprop, (∀x yX, R x y R' x y)Phi X R' = Phi X R)unpack_r_i (pack_r X R) Phi = Phi X R
Primitive. The name unpack_r_o is a term of type set(set(setsetprop)prop)prop.
L2888
Axiom. (unpack_r_o_eq) We take the following as an axiom:
∀Phi : set(setsetprop)prop, ∀X, ∀R : setsetprop, (∀R' : setsetprop, (∀x yX, R x y R' x y)Phi X R' = Phi X R)unpack_r_o (pack_r X R) Phi = Phi X R
Primitive. The name pack_c is a term of type set((setprop)prop)set.
L2897
Axiom. (pack_c_0_eq) We take the following as an axiom:
∀S X, ∀C : (setprop)prop, S = pack_c X CX = S 0
L2899
Axiom. (pack_c_0_eq2) We take the following as an axiom:
∀X, ∀C : (setprop)prop, X = pack_c X C 0
L2901
Axiom. (pack_c_1_eq) We take the following as an axiom:
∀S X, ∀C : (setprop)prop, S = pack_c X C∀U : setprop, (∀x, U xx X)C U = decode_c (S 1) U
L2903
Axiom. (pack_c_1_eq2) We take the following as an axiom:
∀X, ∀C : (setprop)prop, ∀U : setprop, (∀x, U xx X)C U = decode_c (pack_c X C 1) U
L2905
Axiom. (pack_c_inj) We take the following as an axiom:
∀X X', ∀C C' : (setprop)prop, pack_c X C = pack_c X' C'X = X' ∀U : setprop, (∀x, U xx X)C U = C' U
L2907
Axiom. (pack_c_ext) We take the following as an axiom:
∀X, ∀C C' : (setprop)prop, (∀U : setprop, (∀x, U xx X)(C U C' U))pack_c X C = pack_c X C'
L2911
Definition. We define struct_c to be λS ⇒ ∀q : setprop, (∀X : set, ∀C : (setprop)prop, q (pack_c X C))q S of type setprop.
L2913
Axiom. (pack_struct_c_I) We take the following as an axiom:
∀X, ∀C : (setprop)prop, struct_c (pack_c X C)
L2915
Axiom. (struct_c_eta) We take the following as an axiom:
∀S, struct_c SS = pack_c (S 0) (decode_c (S 1))
Primitive. The name unpack_c_i is a term of type set(set((setprop)prop)set)set.
L2920
Axiom. (unpack_c_i_eq) We take the following as an axiom:
∀Phi : set((setprop)prop)set, ∀X, ∀C : (setprop)prop, (∀C' : (setprop)prop, (∀U : setprop, (∀x, U xx X)(C U C' U))Phi X C' = Phi X C)unpack_c_i (pack_c X C) Phi = Phi X C
Primitive. The name unpack_c_o is a term of type set(set((setprop)prop)prop)prop.
L2929
Axiom. (unpack_c_o_eq) We take the following as an axiom:
∀Phi : set((setprop)prop)prop, ∀X, ∀C : (setprop)prop, (∀C' : (setprop)prop, (∀U : setprop, (∀x, U xx X)(C U C' U))Phi X C' = Phi X C)unpack_c_o (pack_c X C) Phi = Phi X C
Primitive. The name canonical_elt is a term of type (setsetprop)setset.
L2938
Axiom. (canonical_elt_rel) We take the following as an axiom:
∀R : setsetprop, ∀x : set, R x xR x (canonical_elt R x)
L2939
Axiom. (canonical_elt_eq) We take the following as an axiom:
∀R : setsetprop, per R∀x y : set, R x ycanonical_elt R x = canonical_elt R y
L2940
Axiom. (canonical_elt_idem) We take the following as an axiom:
∀R : setsetprop, per R∀x : set, R x xcanonical_elt R x = canonical_elt R (canonical_elt R x)
Primitive. The name quotient is a term of type (setsetprop)setprop.
L2944
Axiom. (quotient_prop1) We take the following as an axiom:
∀R : setsetprop, ∀x : set, quotient R xR x x
L2946
Axiom. (quotient_prop2) We take the following as an axiom:
∀R : setsetprop, per R∀x y : set, quotient R xquotient R yR x yx = y
Primitive. The name canonical_elt_def is a term of type (setsetprop)(setset)setset.
L2951
Axiom. (canonical_elt_def_rel) We take the following as an axiom:
∀R : setsetprop, ∀d : setset, ∀x : set, R x xR x (canonical_elt_def R d x)
L2952
Axiom. (canonical_elt_def_eq) We take the following as an axiom:
∀R : setsetprop, per R∀d : setset, (∀x y : set, R x yd x = d y)∀x y : set, R x ycanonical_elt_def R d x = canonical_elt_def R d y
L2956
Axiom. (canonical_elt_def_idem) We take the following as an axiom:
∀R : setsetprop, per R∀d : setset, (∀x y : set, R x yd x = d y)∀x : set, R x xcanonical_elt_def R d x = canonical_elt_def R d (canonical_elt_def R d x)
Primitive. The name quotient_def is a term of type (setsetprop)(setset)setprop.
L2963
Axiom. (quotient_def_prop0) We take the following as an axiom:
∀R : setsetprop, per R∀d : setset, ∀x : set, R x (d x)x = d xquotient_def R d x
L2967
Axiom. (quotient_def_prop1) We take the following as an axiom:
∀R : setsetprop, ∀d : setset, ∀x : set, quotient_def R d xR x x
L2971
Axiom. (quotient_def_prop2) We take the following as an axiom:
∀R : setsetprop, per R∀d : setset, (∀x y : set, R x yd x = d y)∀x y : set, quotient_def R d xquotient_def R d yR x yx = y
Beginning of Section explicit_Nats
L2982
Variable N : set
L2984
Variable base : set
L2985
Variable S : setset
Primitive. The name explicit_Nats is a term of type prop.
L2989
Axiom. (explicit_Nats_I) We take the following as an axiom:
(base N)(∀mN, S m N)(∀mN, S m base)(∀m nN, S m = S nm = n)(∀p : setprop, p base(∀m, p mp (S m))(∀mN, p m))explicit_Nats
L2997
Axiom. (explicit_Nats_E) We take the following as an axiom:
∀q : prop, (explicit_Nats(base N)(∀mN, S m N)(∀mN, S m base)(∀m nN, S m = S nm = n)(∀p : setprop, p base(∀m, p mp (S m))(∀mN, p m))q)explicit_Natsq
L3007
Axiom. (explicit_Nats_ind) We take the following as an axiom:
explicit_Nats∀p : setprop, p base(∀mN, p mp (S m))∀mN, p m
Primitive. The name explicit_Nats_primrec is a term of type set(setsetset)setset.
L3016
Axiom. (explicit_Nats_primrec_base) We take the following as an axiom:
∀a, ∀f : setsetset, explicit_Natsexplicit_Nats_primrec a f base = a
L3019
Axiom. (explicit_Nats_primrec_S) We take the following as an axiom:
∀a, ∀f : setsetset, explicit_Nats∀nN, explicit_Nats_primrec a f (S n) = f n (explicit_Nats_primrec a f n)
L3023
Axiom. (explicit_Nats_primrec_P) We take the following as an axiom:
explicit_Nats∀P : setprop, ∀a, P a∀f : setsetset, (∀nN, ∀b, P bP (f n b))∀nN, P (explicit_Nats_primrec a f n)
End of Section explicit_Nats
L3030
Axiom. (explicit_Nats_omega) We take the following as an axiom:
Beginning of Section explicit_Nats_zero
L3034
Variable N : set
L3036
Variable zero : set
L3037
Variable S : setset
Primitive. The name explicit_Nats_zero_plus is a term of type setsetset.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term explicit_Nats_zero_plus.
Primitive. The name explicit_Nats_zero_mult is a term of type setsetset.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term explicit_Nats_zero_mult.
L3048
Hypothesis HN : explicit_Nats N zero S
L3050
Axiom. (explicit_Nats_zero_plus_N) We take the following as an axiom:
∀n mN, n + m N
L3052
Axiom. (explicit_Nats_zero_plus_0L) We take the following as an axiom:
∀mN, zero + m = m
L3053
Axiom. (explicit_Nats_zero_plus_SL) We take the following as an axiom:
∀n mN, S n + m = S (n + m)
L3054
Axiom. (explicit_Nats_zero_mult_N) We take the following as an axiom:
∀n mN, n * m N
L3055
Axiom. (explicit_Nats_zero_mult_0L) We take the following as an axiom:
∀mN, zero * m = zero
L3056
Axiom. (explicit_Nats_zero_mult_SL) We take the following as an axiom:
∀n mN, S n * m = m + n * m
End of Section explicit_Nats_zero
Beginning of Section explicit_Nats_one
L3061
Variable N : set
L3063
Variable one : set
L3064
Variable S : setset
Primitive. The name explicit_Nats_one_plus is a term of type setsetset.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term explicit_Nats_one_plus.
Primitive. The name explicit_Nats_one_mult is a term of type setsetset.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term explicit_Nats_one_mult.
Primitive. The name explicit_Nats_one_exp is a term of type setsetset.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term explicit_Nats_one_exp.
L3080
Hypothesis HN : explicit_Nats N one S
L3082
Axiom. (explicit_Nats_one_plus_N) We take the following as an axiom:
∀n mN, n + m N
L3084
Axiom. (explicit_Nats_one_plus_1L) We take the following as an axiom:
∀mN, one + m = S m
L3085
Axiom. (explicit_Nats_one_plus_SL) We take the following as an axiom:
∀n mN, S n + m = S (n + m)
L3086
Axiom. (explicit_Nats_one_mult_N) We take the following as an axiom:
∀n mN, n * m N
L3087
Axiom. (explicit_Nats_one_mult_1L) We take the following as an axiom:
∀mN, one * m = m
L3088
Axiom. (explicit_Nats_one_mult_SL) We take the following as an axiom:
∀n mN, S n * m = m + n * m
L3089
Axiom. (explicit_Nats_one_exp_N) We take the following as an axiom:
∀n mN, n ^ m N
L3090
Axiom. (explicit_Nats_one_exp_1L) We take the following as an axiom:
∀nN, n ^ one = n
L3091
Axiom. (explicit_Nats_one_exp_SL) We take the following as an axiom:
∀n mN, n ^ (S m) = n * n ^ m
L3092
Definition. We define explicit_Nats_one_lt to be λm n ⇒ m N n N ∃kN, m + k = n of type setsetprop.
L3094
Definition. We define explicit_Nats_one_le to be λm n ⇒ m N n N (m = n ∃kN, m + k = n) of type setsetprop.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term explicit_Nats_one_lt.
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term explicit_Nats_one_le.
End of Section explicit_Nats_one
Beginning of Section explicit_Nats_transfer
L3104
Variable N : set
L3106
Variable base : set
L3107
Variable S : setset
L3108
Variable N' : set
L3109
Variable base' : set
L3110
Variable S' : setset
L3111
Variable f : setset
L3113
Axiom. (explicit_Nats_transfer) We take the following as an axiom:
explicit_Nats N base Sbij N N' ff base = base'(∀nN, f (S n) = S' (f n))explicit_Nats N' base' S'
End of Section explicit_Nats_transfer
Beginning of Section AssocComm
L3119
Variable R : set
L3121
Variable plus : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
L3124
Axiom. (AssocComm_identities) We take the following as an axiom:
(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)∀p : prop, ((∀x y zR, x + y + z = y + x + z)(∀x y zR, x + y + z = z + x + y)(∀x y z wR, (x + y) + (z + w) = (x + z) + (y + w))(∀x y z wR, x + y + z + w = w + x + y + z)(∀x y z wR, x + y + z + w = z + w + x + y)p)p
End of Section AssocComm
Beginning of Section Group1
L3141
Variable G : set
Beginning of Section Group1Explicit
L3145
Variable op : setsetset
L3148
Definition. We define explicit_Group to be (∀a bG, a * b G) (∀a b cG, a * (b * c) = (a * b) * c) ∃eG, (∀aG, e * a = a a * e = a) (∀aG, ∃bG, a * b = e b * a = e) of type prop.
L3155
Axiom. (explicit_Group_identity_unique) We take the following as an axiom:
∀e e'G, (∀aG, e * a = a)(∀aG, a * e' = a)e = e'
L3157
Hypothesis HG : explicit_Group
L3159
Definition. We define explicit_Group_identity to be Eps_i (λe ⇒ e G ((∀aG, e * a = a a * e = a) ∀aG, ∃bG, a * b = e b * a = e)) of type set.
L3161
L3163
Definition. We define explicit_Group_inverse to be λa ⇒ Eps_i (λb ⇒ b G (a * b = e b * a = e)) of type setset.
L3167
Axiom. (explicit_Group_identity_prop) We take the following as an axiom:
e G ((∀aG, e * a = a a * e = a) ∀aG, ∃bG, a * b = e b * a = e)
L3169
Axiom. (explicit_Group_identity_in) We take the following as an axiom:
e G
L3171
Axiom. (explicit_Group_identity_lid) We take the following as an axiom:
∀aG, e * a = a
L3173
Axiom. (explicit_Group_identity_rid) We take the following as an axiom:
∀aG, a * e = a
L3175
Axiom. (explicit_Group_identity_invex) We take the following as an axiom:
∀aG, ∃bG, a * b = e b * a = e
L3177
Axiom. (explicit_Group_inverse_prop) We take the following as an axiom:
∀aG, a - G (a * a - = e a - * a = e)
L3179
Axiom. (explicit_Group_inverse_in) We take the following as an axiom:
∀aG, a - G
L3181
Axiom. (explicit_Group_inverse_rinv) We take the following as an axiom:
∀aG, a * a - = e
L3183
Axiom. (explicit_Group_inverse_linv) We take the following as an axiom:
∀aG, a - * a = e
L3185
Axiom. (explicit_Group_lcancel) We take the following as an axiom:
∀a b cG, a * b = a * cb = c
L3187
Axiom. (explicit_Group_rcancel) We take the following as an axiom:
∀a b cG, a * c = b * ca = b
L3189
Axiom. (explicit_Group_rinv_rev) We take the following as an axiom:
∀a bG, a * b = eb = a -
L3191
Axiom. (explicit_Group_inv_com) We take the following as an axiom:
∀a bG, a * b = eb * a = e
L3193
Axiom. (explicit_Group_inv_rev2) We take the following as an axiom:
∀a bG, (a * b) * (a * b) = e(b * a) * (b * a) = e
L3195
Definition. We define explicit_abelian to be ∀a bG, a * b = b * a of type prop.
End of Section Group1Explicit
Beginning of Section Group1Explicit2
L3201
Variable op : setsetset
Beginning of Section Group1Explicit2RepIndep
L3206
Variable op' : setsetset
L3211
Axiom. (explicit_Group_repindep_imp) We take the following as an axiom:
L3213
L3215
L3216
Axiom. (explicit_Group_identity_repindep) We take the following as an axiom:
explicit_Group ope = e'
L3222
Let inv ≝ explicit_Group_inverse op
L3224
Let inv' ≝ explicit_Group_inverse op'
L3225
Axiom. (explicit_Group_inverse_repindep) We take the following as an axiom:
explicit_Group op∀aG, inv a = inv' a
L3227
Axiom. (explicit_abelian_repindep_imp) We take the following as an axiom:
End of Section Group1Explicit2RepIndep
End of Section Group1Explicit2
Beginning of Section Group1Explicit3RepIndep
L3235
Variable op : setsetset
L3238
Variable op' : setsetset
L3243
Axiom. (explicit_Group_repindep) We take the following as an axiom:
L3245
Axiom. (explicit_abelian_repindep) We take the following as an axiom:
End of Section Group1Explicit3RepIndep
End of Section Group1
L3251
Definition. We define Group to be λG ⇒ struct_b G unpack_b_o G explicit_Group of type setprop.
L3255
Definition. We define abelian_Group to be λG ⇒ Group G unpack_b_o G explicit_abelian of type setprop.
L3258
Axiom. (Group_unpack_eq) We take the following as an axiom:
∀G, ∀op : setsetset, unpack_b_o (pack_b G op) explicit_Group = explicit_Group G op
L3260
Axiom. (GroupI) We take the following as an axiom:
∀G, ∀op : setsetset, explicit_Group G opGroup (pack_b G op)
L3262
Axiom. (GroupE) We take the following as an axiom:
∀G, ∀op : setsetset, Group (pack_b G op)explicit_Group G op
L3264
Axiom. (abelian_Group_unpack_eq) We take the following as an axiom:
∀G, ∀op : setsetset, unpack_b_o (pack_b G op) explicit_abelian = explicit_abelian G op
L3266
Axiom. (abelian_Group_E) We take the following as an axiom:
∀G, ∀op : setsetset, abelian_Group (pack_b G op)Group (pack_b G op) explicit_abelian G op
Beginning of Section Group2
L3271
Variable G : set
L3273
Variable op : setsetset
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term op.
Notation. We use - as a postfix operator with priority 340 corresponding to applying term explicit_Group_inverse G op.
L3276
Variable H : set
L3278
L3280
Definition. We define explicit_normal to be ∀xG, {x * a * x -|aH} H of type prop.
L3282
Hypothesis HG : Group (pack_b G op)
L3284
L3286
Axiom. (explicit_subgroup_test) We take the following as an axiom:
H Ge H(∀aH, a - H)(∀a bH, a * b H)explicit_subgroup
L3288
Hypothesis HSG : explicit_subgroup
L3290
Let e' ≝ explicit_Group_identity H op
L3291
Axiom. (explicit_subgroup_identity_eq) We take the following as an axiom:
e = e'
L3293
Axiom. (explicit_subgroup_inv_eq) We take the following as an axiom:
L3295
Axiom. (explicit_abelian_normal) We take the following as an axiom:
End of Section Group2
Beginning of Section Group3
L3301
Variable H G : set
L3303
Variable op op' : setsetset
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term op.
Notation. We use - as a postfix operator with priority 340 corresponding to applying term explicit_Group_inverse G op.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term op'.
Notation. We use :-: as a postfix operator with priority 340 corresponding to applying term explicit_Group_inverse G op'.
L3308
Hypothesis HG : explicit_Group G op
L3310
Hypothesis HHG : H G
L3311
Hypothesis Hopop' : ∀a bG, a * b = a b
L3312
Axiom. (explicit_normal_repindep_imp) We take the following as an axiom:
explicit_normal G op Hexplicit_normal G op' H
End of Section Group3
L3316
Definition. We define subgroup to be λH G ⇒ struct_b G struct_b H unpack_b_o G (λG' op ⇒ unpack_b_o H (λH' _ ⇒ H = pack_b H' op Group (pack_b H' op) H' G')) of type setsetprop.
Notation. We use as an infix operator with priority 400 and no associativity corresponding to applying term subgroup.
L3326
Definition. We define subgroup_index to be λH G ⇒ unpack_b_i G (λG' op ⇒ {nomega|∃fG'ordsucc n, ∀i jordsucc n, i j∀a bH 0, op (f i) a op (f j) b}) of type setsetset.
L3335
Definition. We define normal_subgroup to be λH G ⇒ H G unpack_b_o G (λG' op ⇒ unpack_b_o H (λH' _ ⇒ explicit_normal G' op H')) of type setsetprop.
L3342
Axiom. (pack_b_subgroup_E) We take the following as an axiom:
∀H G : set, ∀opH op : setsetset, pack_b H opH pack_b G oppack_b H opH = pack_b H op explicit_subgroup G op H
L3347
Axiom. (subgroup_E) We take the following as an axiom:
∀H G, H G∀q : setsetprop, (∀H G, ∀op : setsetset, (∀a bG, op a b G)Group (pack_b H op)H Gq (pack_b H op) (pack_b G op))q H G
L3355
Axiom. (abelian_group_normal_subgroup) We take the following as an axiom:
∀G, abelian_Group G∀H, H Gnormal_subgroup H G
L3357
Axiom. (subgroup_transitive) We take the following as an axiom:
∀K H G, K HH GK G
Beginning of Section Group4
L3361
Variable A : set
L3363
Let G ≝ {fAA|bij A A (λx ⇒ f x)}
L3365
Let op ≝ λf g : setλx ∈ Ag (f x)
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term op.
L3367
Let id ≝ λx ∈ Ax
L3369
Axiom. (explicit_Group_symgroup) We take the following as an axiom:
L3371
Axiom. (explicit_Group_symgroup_id_eq) We take the following as an axiom:
L3373
Axiom. (explicit_Group_symgroup_inv_eq) We take the following as an axiom:
∀fG, explicit_Group_inverse G op f = (λx ∈ Ainv A (λx ⇒ f x) x)
L3375
Variable B : set
L3377
Let H ≝ {fAA|bij A A (λx ⇒ f x) ∀xB, f x = x}
L3379
Axiom. (explicit_subgroup_symgroup_fixing) We take the following as an axiom:
B Aexplicit_subgroup G op H
End of Section Group4
L3383
Definition. We define symgroup to be λA ⇒ pack_b {fAA|bij A A (λx ⇒ f x)} (λf g ⇒ λx ∈ Ag (f x)) of type setset.
L3385
Definition. We define symgroup_fixing to be λA B ⇒ pack_b {fAA|bij A A (λx ⇒ f x) ∀xB, f x = x} (λf g ⇒ λx ∈ Ag (f x)) of type setsetset.
L3386
Axiom. (Group_symgroup) We take the following as an axiom:
∀A, Group (symgroup A)
L3388
Axiom. (Group_symgroup_fixing) We take the following as an axiom:
∀A B, B AGroup (symgroup_fixing A B)
L3390
Axiom. (subgroup_symgroup_fixing) We take the following as an axiom:
∀A B, B Asymgroup_fixing A B symgroup A
L3392
Axiom. (subgroup_symgroup_fixing2) We take the following as an axiom:
∀A B C, C BB Asymgroup_fixing A B symgroup_fixing A C
L3394
Axiom. (nonnormal_subgroup) We take the following as an axiom:
∃H G, Group G H G ¬ normal_subgroup H G
L3396
Definition. We define normal_subgroup_equiv to be λG N a b ⇒ unpack_b_o G (λG op ⇒ a G b G op a (explicit_Group_inverse G op b) N 0) of type setsetsetsetprop.
L3402
Definition. We define quotient_Group to be λG N ⇒ unpack_b_i G (λG' op ⇒ pack_b {aG'|quotient (normal_subgroup_equiv G N) a} (λa b ⇒ canonical_elt (normal_subgroup_equiv G N) (op a b))) of type setsetset.
L3410
Definition. We define trivial_Group_p to be λG ⇒ Group G ∀x yG 0, x = y of type setprop.
L3413
Definition. We define solvable_Group_p to be λG ⇒ ∃nomega, ∃Gseq, (∀iordsucc n, Group (Gseq i)) (∀in, normal_subgroup (Gseq (ordsucc i)) (Gseq i)) (∀in, abelian_Group (quotient_Group (Gseq i) (Gseq (ordsucc i)))) G = Gseq 0 trivial_Group_p (Gseq n) of type setprop.
L3422
Definition. We define Group_carrier to be λGs ⇒ Gs 0 of type setset.
L3424
Definition. We define Group_op to be λGs ⇒ decode_b (Gs 1) of type setsetsetset.
Beginning of Section Group2
L3427
Variable Gs : set
L3429
Variable Gs' : set
L3430
Let G : setGroup_carrier Gs
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term Group_op Gs.
L3433
Let G' : setGroup_carrier Gs'
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term Group_op Gs'.
L3435
Definition. We define Group_Hom to be λg ⇒ Group Gs Group Gs' g G'G ∀a bG, g (a * b) = g a g b of type setprop.
L3440
Definition. We define Group_Iso to be λg ⇒ Group_Hom g bij G G' (λx ⇒ g x) of type setprop.
L3443
End of Section Group2
Beginning of Section explicit_Rng
L3450
Variable R : set
L3452
Variable zero : set
L3454
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
Primitive. The name explicit_Rng is a term of type prop.
L3461
Axiom. (explicit_Rng_I) We take the following as an axiom:
(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)zero R(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(∀x y zR, x * (y + z) = x * y + x * z)(∀x y zR, (x + y) * z = x * z + y * z)explicit_Rng
L3473
Axiom. (explicit_Rng_E) We take the following as an axiom:
∀q : prop, (explicit_Rng(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)(zero R)(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(∀x y zR, x * (y + z) = x * y + x * z)(∀x y zR, (x + y) * z = x * z + y * z)q)explicit_Rngq
Primitive. The name explicit_Rng_minus is a term of type setset.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term explicit_Rng_minus.
L3493
Axiom. (explicit_Rng_minus_prop) We take the following as an axiom:
explicit_Rng∀xR, - x R x + - x = zero
L3495
Axiom. (explicit_Rng_minus_clos) We take the following as an axiom:
explicit_Rng∀xR, - x R
L3497
Axiom. (explicit_Rng_minus_R) We take the following as an axiom:
explicit_Rng∀xR, x + - x = zero
L3499
Axiom. (explicit_Rng_minus_L) We take the following as an axiom:
explicit_Rng∀xR, - x + x = zero
L3501
Axiom. (explicit_Rng_plus_cancelL) We take the following as an axiom:
explicit_Rng∀x y zR, x + y = x + zy = z
L3503
Axiom. (explicit_Rng_plus_cancelR) We take the following as an axiom:
explicit_Rng∀x y zR, x + z = y + zx = y
L3505
Axiom. (explicit_Rng_minus_invol) We take the following as an axiom:
explicit_Rng∀xR, - - x = x
End of Section explicit_Rng
Beginning of Section explicit_Ring
L3511
Variable R : set
L3513
Variable zero one : set
L3515
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
Primitive. The name explicit_Ring is a term of type prop.
L3522
Axiom. (explicit_Ring_I) We take the following as an axiom:
(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)zero R(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(one R)(one zero)(∀xR, one * x = x)(∀xR, x * one = x)(∀x y zR, x * (y + z) = x * y + x * z)(∀x y zR, (x + y) * z = x * z + y * z)explicit_Ring
L3538
Axiom. (explicit_Ring_E) We take the following as an axiom:
∀q : prop, (explicit_Ring(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)(zero R)(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(one R)(one zero)(∀xR, one * x = x)(∀xR, x * one = x)(∀x y zR, x * (y + z) = x * y + x * z)(∀x y zR, (x + y) * z = x * z + y * z)q)explicit_Ringq
L3557
Axiom. (explicit_Ring_Rng) We take the following as an axiom:
explicit_Ringexplicit_Rng R zero plus mult
Notation. We use - as a prefix operator with priority 358 corresponding to applying term explicit_Rng_minus R zero plus mult.
L3561
Axiom. (explicit_Ring_minus_clos) We take the following as an axiom:
explicit_Ring∀xR, - x R
L3563
Axiom. (explicit_Ring_minus_R) We take the following as an axiom:
explicit_Ring∀xR, x + - x = zero
L3565
Axiom. (explicit_Ring_minus_L) We take the following as an axiom:
explicit_Ring∀xR, - x + x = zero
L3567
Axiom. (explicit_Ring_plus_cancelL) We take the following as an axiom:
explicit_Ring∀x y zR, x + y = x + zy = z
L3569
Axiom. (explicit_Ring_plus_cancelR) We take the following as an axiom:
explicit_Ring∀x y zR, x + z = y + zx = y
L3571
Axiom. (explicit_Ring_minus_invol) We take the following as an axiom:
explicit_Ring∀xR, - - x = x
L3573
Axiom. (explicit_Ring_minus_one_In) We take the following as an axiom:
explicit_Ring- one R
L3575
Axiom. (explicit_Ring_zero_multR) We take the following as an axiom:
explicit_Ring∀xR, x * zero = zero
L3577
Axiom. (explicit_Ring_zero_multL) We take the following as an axiom:
explicit_Ring∀xR, zero * x = zero
L3578
Axiom. (explicit_Ring_minus_mult) We take the following as an axiom:
explicit_Ring∀xR, - x = (- one) * x
L3580
Axiom. (explicit_Ring_mult_minus) We take the following as an axiom:
explicit_Ring∀xR, - x = x * (- one)
L3582
Axiom. (explicit_Ring_minus_one_square) We take the following as an axiom:
explicit_Ring(- one) * (- one) = one
L3584
Axiom. (explicit_Ring_minus_square) We take the following as an axiom:
explicit_Ring∀xR, (- x) * (- x) = x * x
L3586
Definition. We define explicit_Ring_exp_nat to be λx n ⇒ nat_primrec one (λ_ r ⇒ x * r) n of type setsetset.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term explicit_Ring_exp_nat.
L3591
Definition. We define explicit_Ring_eval_poly to be λn cs x ⇒ nat_primrec zero (λm r ⇒ cs m * x ^ m + r) n of type setsetsetset.
End of Section explicit_Ring
Beginning of Section explicit_Ring_RepIndep2
L3600
Variable R : set
L3602
Variable zero one : set
L3604
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L3608
Variable plus' mult' : setsetset
Notation. We use + as an infix operator with priority 355 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L3612
L3614
Hypothesis Hmm' : ∀a bR, a * b = a b
L3615
Axiom. (explicit_Ring_repindep) We take the following as an axiom:
explicit_Ring R zero one plus mult explicit_Ring R zero one plus' mult'
End of Section explicit_Ring_RepIndep2
Beginning of Section explicit_CRing
L3621
Variable R : set
L3623
Variable zero one : set
L3625
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
Primitive. The name explicit_CRing is a term of type prop.
L3632
Axiom. (explicit_CRing_I) We take the following as an axiom:
(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)zero R(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(∀x yR, x * y = y * x)(one R)(one zero)(∀xR, one * x = x)(∀x y zR, x * (y + z) = x * y + x * z)explicit_CRing
L3647
Axiom. (explicit_CRing_E) We take the following as an axiom:
∀q : prop, (explicit_CRing(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)(zero R)(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(∀x yR, x * y = y * x)(one R)(one zero)(∀xR, one * x = x)(∀x y zR, x * (y + z) = x * y + x * z)q)explicit_CRingq
L3665
Axiom. (explicit_CRing_Ring) We take the following as an axiom:
explicit_CRingexplicit_Ring R zero one plus mult
L3667
Axiom. (explicit_CRing_Rng) We take the following as an axiom:
explicit_CRingexplicit_Rng R zero plus mult
Notation. We use - as a prefix operator with priority 358 corresponding to applying term explicit_Rng_minus R zero plus mult.
L3671
Axiom. (explicit_CRing_minus_clos) We take the following as an axiom:
explicit_CRing∀xR, - x R
L3673
Axiom. (explicit_CRing_minus_R) We take the following as an axiom:
explicit_CRing∀xR, x + - x = zero
L3675
Axiom. (explicit_CRing_minus_L) We take the following as an axiom:
explicit_CRing∀xR, - x + x = zero
L3677
Axiom. (explicit_CRing_plus_cancelL) We take the following as an axiom:
explicit_CRing∀x y zR, x + y = x + zy = z
L3679
Axiom. (explicit_CRing_plus_cancelR) We take the following as an axiom:
explicit_CRing∀x y zR, x + z = y + zx = y
L3681
Axiom. (explicit_CRing_minus_invol) We take the following as an axiom:
explicit_CRing∀xR, - - x = x
L3683
Axiom. (explicit_CRing_minus_one_In) We take the following as an axiom:
explicit_CRing- one R
L3685
Axiom. (explicit_CRing_zero_multR) We take the following as an axiom:
explicit_CRing∀xR, x * zero = zero
L3687
Axiom. (explicit_CRing_zero_multL) We take the following as an axiom:
explicit_CRing∀xR, zero * x = zero
L3688
Axiom. (explicit_CRing_minus_mult) We take the following as an axiom:
explicit_CRing∀xR, - x = (- one) * x
L3690
Axiom. (explicit_CRing_mult_minus) We take the following as an axiom:
explicit_CRing∀xR, - x = x * (- one)
L3692
Axiom. (explicit_CRing_minus_one_square) We take the following as an axiom:
explicit_CRing(- one) * (- one) = one
L3694
Axiom. (explicit_CRing_minus_square) We take the following as an axiom:
explicit_CRing∀xR, (- x) * (- x) = x * x
End of Section explicit_CRing
Beginning of Section explicit_CRing_RepIndep2
L3700
Variable R : set
L3702
Variable zero one : set
L3704
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L3708
Variable plus' mult' : setsetset
Notation. We use + as an infix operator with priority 355 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L3712
L3714
Hypothesis Hmm' : ∀a bR, a * b = a b
L3715
Axiom. (explicit_CRing_repindep) We take the following as an axiom:
explicit_CRing R zero one plus mult explicit_CRing R zero one plus' mult'
End of Section explicit_CRing_RepIndep2
Primitive. The name pack_b_b_e is a term of type set(setsetset)(setsetset)setset.
L3722
Definition. We define struct_b_b_e to be λS ⇒ ∀q : setprop, (∀X : set, ∀f : setsetset, (∀x yX, f x y X)∀g : setsetset, (∀x yX, g x y X)∀c : set, c Xq (pack_b_b_e X f g c))q S of type setprop.
Primitive. The name unpack_b_b_e_i is a term of type set(set(setsetset)(setsetset)setset)set.
Primitive. The name unpack_b_b_e_o is a term of type set(set(setsetset)(setsetset)setprop)prop.
L3730
Axiom. (unpack_b_b_e_o_eq) We take the following as an axiom:
∀Phi : set(setsetset)(setsetset)setprop, ∀X, ∀f : setsetset, ∀g : setsetset, ∀c : set, (∀f' : setsetset, (∀x yX, f x y = f' x y)∀g' : setsetset, (∀x yX, g x y = g' x y)Phi X f' g' c = Phi X f g c)unpack_b_b_e_o (pack_b_b_e X f g c) Phi = Phi X f g c
L3736
Axiom. (pack_b_b_e_0_eq2) We take the following as an axiom:
∀X, ∀F G : setsetset, ∀c, X = pack_b_b_e X F G c 0
L3738
Definition. We define Rng to be λR ⇒ struct_b_b_e R unpack_b_b_e_o R (λR plus mult zero ⇒ explicit_Rng R zero plus mult) of type setprop.
L3742
Definition. We define Rng_minus to be λR x ⇒ unpack_b_b_e_i R (λR plus mult zero ⇒ explicit_Rng_minus R zero plus mult x) of type setsetset.
Primitive. The name pack_b_b_e_e is a term of type set(setsetset)(setsetset)setsetset.
L3748
Definition. We define struct_b_b_e_e to be λS ⇒ ∀q : setprop, (∀X : set, ∀f : setsetset, (∀x yX, f x y X)∀g : setsetset, (∀x yX, g x y X)∀c : set, c X∀d : set, d Xq (pack_b_b_e_e X f g c d))q S of type setprop.
Primitive. The name unpack_b_b_e_e_i is a term of type set(set(setsetset)(setsetset)setsetset)set.
Primitive. The name unpack_b_b_e_e_o is a term of type set(set(setsetset)(setsetset)setsetprop)prop.
L3756
Axiom. (unpack_b_b_e_e_o_eq) We take the following as an axiom:
∀Phi : set(setsetset)(setsetset)setsetprop, ∀X, ∀f : setsetset, ∀g : setsetset, ∀c : set, ∀d : set, (∀f' : setsetset, (∀x yX, f x y = f' x y)∀g' : setsetset, (∀x yX, g x y = g' x y)Phi X f' g' c d = Phi X f g c d)unpack_b_b_e_e_o (pack_b_b_e_e X f g c d) Phi = Phi X f g c d
L3762
Axiom. (pack_b_b_e_e_0_eq2) We take the following as an axiom:
∀X, ∀F G : setsetset, ∀c d, X = pack_b_b_e_e X F G c d 0
L3764
Definition. We define Ring to be λR ⇒ struct_b_b_e_e R unpack_b_b_e_e_o R (λR plus mult zero one ⇒ explicit_Ring R zero one plus mult) of type setprop.
L3768
Axiom. (Ring_unpack_eq) We take the following as an axiom:
∀R, ∀plus mult : setsetset, ∀zero one, unpack_b_b_e_e_o (pack_b_b_e_e R plus mult zero one) (λR plus mult zero one ⇒ explicit_Ring R zero one plus mult) = explicit_Ring R zero one plus mult
L3770
Definition. We define CRing to be λR ⇒ struct_b_b_e_e R unpack_b_b_e_e_o R (λR plus mult zero one ⇒ explicit_CRing R zero one plus mult) of type setprop.
L3774
Axiom. (CRing_unpack_eq) We take the following as an axiom:
∀R, ∀plus mult : setsetset, ∀zero one, unpack_b_b_e_e_o (pack_b_b_e_e R plus mult zero one) (λR plus mult zero one ⇒ explicit_CRing R zero one plus mult) = explicit_CRing R zero one plus mult
L3776
Definition. We define Rng_of_Ring to be λR ⇒ unpack_b_b_e_e_i R (λR plus mult zero one ⇒ pack_b_b_e R plus mult zero) of type setset.
L3779
Axiom. (CRing_is_Ring) We take the following as an axiom:
∀R, CRing RRing R
Beginning of Section explicit_Reals
L3788
Variable R : set
L3790
Variable zero one : set
L3792
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
Primitive. The name explicit_Field is a term of type prop.
L3799
Axiom. (explicit_Field_I) We take the following as an axiom:
(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)zero R(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(∀x yR, x * y = y * x)(one R)(one zero)(∀xR, one * x = x)(∀xR, x zero∃yR, x * y = one)(∀x y zR, x * (y + z) = x * y + x * z)explicit_Field
L3815
Axiom. (explicit_Field_E) We take the following as an axiom:
∀q : prop, (explicit_Field(∀x yR, x + y R)(∀x y zR, x + (y + z) = (x + y) + z)(∀x yR, x + y = y + x)(zero R)(∀xR, zero + x = x)(∀xR, ∃yR, x + y = zero)(∀x yR, x * y R)(∀x y zR, x * (y * z) = (x * y) * z)(∀x yR, x * y = y * x)(one R)(one zero)(∀xR, one * x = x)(∀xR, x zero∃yR, x * y = one)(∀x y zR, x * (y + z) = x * y + x * z)q)explicit_Fieldq
Primitive. The name explicit_Field_minus is a term of type setset.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term explicit_Field_minus.
L3839
Axiom. (explicit_Field_minus_prop) We take the following as an axiom:
explicit_Field∀xR, - x R x + - x = zero
L3841
Axiom. (explicit_Field_minus_clos) We take the following as an axiom:
explicit_Field∀xR, - x R
L3842
Axiom. (explicit_Field_minus_R) We take the following as an axiom:
explicit_Field∀xR, x + - x = zero
L3843
Axiom. (explicit_Field_minus_L) We take the following as an axiom:
explicit_Field∀xR, - x + x = zero
L3844
Axiom. (explicit_Field_plus_cancelL) We take the following as an axiom:
explicit_Field∀x y zR, x + y = x + zy = z
L3845
Axiom. (explicit_Field_plus_cancelR) We take the following as an axiom:
explicit_Field∀x y zR, x + z = y + zx = y
L3846
Axiom. (explicit_Field_minus_invol) We take the following as an axiom:
explicit_Field∀xR, - - x = x
L3847
Axiom. (explicit_Field_minus_one_In) We take the following as an axiom:
explicit_Field- one R
L3848
Axiom. (explicit_Field_zero_multR) We take the following as an axiom:
explicit_Field∀xR, x * zero = zero
L3849
Axiom. (explicit_Field_zero_multL) We take the following as an axiom:
explicit_Field∀xR, zero * x = zero
L3850
Axiom. (explicit_Field_minus_mult) We take the following as an axiom:
explicit_Field∀xR, - x = (- one) * x
L3851
Axiom. (explicit_Field_minus_one_square) We take the following as an axiom:
explicit_Field(- one) * (- one) = one
L3852
Axiom. (explicit_Field_minus_square) We take the following as an axiom:
explicit_Field∀xR, (- x) * (- x) = x * x
L3853
Axiom. (explicit_Field_minus_zero) We take the following as an axiom:
explicit_Field- zero = zero
L3855
Axiom. (explicit_Field_dist_R) We take the following as an axiom:
explicit_Field∀x y zR, (x + y) * z = x * z + y * z
L3856
Axiom. (explicit_Field_minus_plus_dist) We take the following as an axiom:
explicit_Field∀x yR, - (x + y) = - x + - y
L3857
Axiom. (explicit_Field_minus_mult_L) We take the following as an axiom:
explicit_Field∀x yR, (- x) * y = - (x * y)
L3858
Axiom. (explicit_Field_minus_mult_R) We take the following as an axiom:
explicit_Field∀x yR, x * (- y) = - (x * y)
L3859
Axiom. (explicit_Field_square_zero_inv) We take the following as an axiom:
explicit_Field∀xR, x * x = zerox = zero
L3860
Axiom. (explicit_Field_mult_zero_inv) We take the following as an axiom:
explicit_Field∀x yR, x * y = zerox = zero y = zero
L3861
Variable leq : setsetprop
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term leq.
Primitive. The name explicit_OrderedField is a term of type prop.
L3869
Axiom. (explicit_OrderedField_I) We take the following as an axiom:
explicit_Field(∀x y zR, x yy zx z)(∀x yR, x y y x x = y)(∀x yR, x y y x)(∀x y zR, x yx + z y + z)(∀x yR, zero xzero yzero x * y)explicit_OrderedField
L3877
Axiom. (explicit_OrderedField_E) We take the following as an axiom:
∀q : prop, (explicit_OrderedFieldexplicit_Field(∀x y zR, x yy zx z)(∀x yR, x y y x x = y)(∀x yR, x y y x)(∀x y zR, x yx + z y + z)(∀x yR, zero xzero yzero x * y)q)explicit_OrderedFieldq
L3888
Axiom. (explicit_OrderedField_minus_leq) We take the following as an axiom:
explicit_OrderedField∀x yR, x y- y - x
L3890
Axiom. (explicit_OrderedField_square_nonneg) We take the following as an axiom:
explicit_OrderedField∀xR, zero x * x
L3891
Axiom. (explicit_OrderedField_sum_squares_nonneg) We take the following as an axiom:
explicit_OrderedField∀x yR, zero x * x + y * y
L3892
Axiom. (explicit_OrderedField_sum_nonneg_zero_inv) We take the following as an axiom:
explicit_OrderedField∀x yR, zero xzero yx + y = zerox = zero y = zero
L3893
Axiom. (explicit_OrderedField_sum_squares_zero_inv) We take the following as an axiom:
explicit_OrderedField∀x yR, x * x + y * y = zerox = zero y = zero
L3894
Axiom. (explicit_OrderedField_leq_refl) We take the following as an axiom:
L3896
Axiom. (explicit_OrderedField_leq_antisym) We take the following as an axiom:
explicit_OrderedField∀x yR, x yy xx = y
L3897
Axiom. (explicit_OrderedField_leq_tra) We take the following as an axiom:
explicit_OrderedField∀x y zR, x yy zx z
L3898
Axiom. (explicit_OrderedField_leq_zero_one) We take the following as an axiom:
L3899
Definition. We define lt to be λx y ⇒ x y x y of type setsetprop.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term lt.
Primitive. The name natOfOrderedField_p is a term of type setprop.
L3905
L3907
Let Npos ≝ {nN|n zero}
L3908
Axiom. (explicit_Nats_natOfOrderedField) We take the following as an axiom:
explicit_OrderedFieldexplicit_Nats N zero (λm ⇒ m + one)
L3910
Axiom. (explicit_PosNats_natOfOrderedField) We take the following as an axiom:
explicit_OrderedFieldexplicit_Nats Npos one (λm ⇒ m + one)
L3911
Let Z ≝ {nR|- n Npos n = zero n Npos}
L3913
Definition. We define explicit_OrderedField_rationalp to be λx ⇒ ∃nZ, ∃mNpos, m * x = n of type setprop.
L3916
L3918
Axiom. (explicit_OrderedField_Npos_props) We take the following as an axiom:
explicit_OrderedField∀p : prop, (Npos Rexplicit_Nats Npos one (λm ⇒ m + one)one Npos(∀mNpos, m + one one)(∀mNpos, ∀q : setprop, q one(∀nNpos, q (n + one))q m)(∀n mNpos, explicit_Nats_one_plus Npos one (λm ⇒ m + one) n m = n + m)(∀n mNpos, explicit_Nats_one_mult Npos one (λm ⇒ m + one) n m = n * m)(∀n mNpos, n + m Npos)(∀n mNpos, n * m Npos)p)p
L3932
Axiom. (explicit_OrderedField_Z_props) We take the following as an axiom:
explicit_OrderedField∀p : prop, ((∀nNpos, - n Z)zero ZNpos ZZ R(∀nZ, ∀q : prop, (- n Nposq)(n = zeroq)(n Nposq)q)one Z- one Z(∀mZ, - m Z)(∀n mZ, n + m Z)(∀n mZ, n * m Z)p)p
L3947
Axiom. (explicit_OrderedField_Q_props) We take the following as an axiom:
explicit_OrderedField∀p : prop, (Q R(∀xQ, ∀q : prop, (x R∀nZ, ∀mNpos, m * x = nq)q)(∀xR, ∀nZ, ∀mNpos, m * x = nx Q)p)p
Primitive. The name explicit_Reals is a term of type prop.
L3960
Axiom. (explicit_Reals_I) We take the following as an axiom:
explicit_OrderedField(∀x yR, zero < xzero y∃nN, y n * x)(∀a bRN, (∀nN, a n b n a n a (n + one) b (n + one) b n)∃xR, ∀nN, a n x x b n)explicit_Reals
L3967
Axiom. (explicit_Reals_E) We take the following as an axiom:
∀q : prop, (explicit_Realsexplicit_OrderedField(∀x yR, zero < xzero y∃nN, y n * x)(∀a bRN, (∀nN, a n b n a n a (n + one) b (n + one) b n)∃xR, ∀nN, a n x x b n)q)explicit_Realsq
L3977
Axiom. (explicit_Reals_characteristic_0) We take the following as an axiom:
explicit_Reals∀nomega, nat_primrec one (λ_ r ⇒ plus one r) n zero
End of Section explicit_Reals
L3981
Definition. We define CRing_carrier to be λRs ⇒ Rs 0 of type setset.
L3983
Definition. We define CRing_plus to be λRs ⇒ decode_b (Rs 1) of type setsetsetset.
L3984
Definition. We define CRing_mult to be λRs ⇒ decode_b (Rs 2) of type setsetsetset.
L3985
Definition. We define CRing_zero to be λRs ⇒ Rs 3 of type setset.
L3986
Definition. We define CRing_one to be λRs ⇒ Rs 4 of type setset.
Beginning of Section CRing
L3989
Variable Rs : set
L3991
Hypothesis HRs : CRing Rs
L3992
Let R : setCRing_carrier Rs
L3994
Let zero : setCRing_zero Rs
L3995
Let one : setCRing_one Rs
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term CRing_plus Rs.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term CRing_mult Rs.
L3998
Axiom. (CRing_eta) We take the following as an axiom:
Rs = pack_b_b_e_e R (CRing_plus Rs) (CRing_mult Rs) zero one
L4000
Axiom. (CRing_explicit_CRing) We take the following as an axiom:
explicit_CRing R zero one (CRing_plus Rs) (CRing_mult Rs)
L4001
Axiom. (CRing_zero_In) We take the following as an axiom:
zero R
L4002
Axiom. (CRing_one_In) We take the following as an axiom:
one R
L4003
Axiom. (CRing_plus_clos) We take the following as an axiom:
∀x yR, x + y R
L4004
Axiom. (CRing_mult_clos) We take the following as an axiom:
∀x yR, x * y R
L4005
Axiom. (CRing_plus_assoc) We take the following as an axiom:
∀x y zR, x + (y + z) = (x + y) + z
L4006
Axiom. (CRing_plus_com) We take the following as an axiom:
∀x yR, x + y = y + x
L4007
Axiom. (CRing_zero_L) We take the following as an axiom:
∀xR, zero + x = x
L4008
Axiom. (CRing_plus_inv) We take the following as an axiom:
∀xR, ∃yR, x + y = zero
L4009
Axiom. (CRing_mult_assoc) We take the following as an axiom:
∀x y zR, x * (y * z) = (x * y) * z
L4010
Axiom. (CRing_mult_com) We take the following as an axiom:
∀x yR, x * y = y * x
L4011
Axiom. (CRing_one_neq_zero) We take the following as an axiom:
one zero
L4012
Axiom. (CRing_one_L) We take the following as an axiom:
∀xR, one * x = x
L4013
Axiom. (CRing_distr_L) We take the following as an axiom:
∀x y zR, x * (y + z) = x * y + x * z
L4014
Definition. We define CRing_omega_exp to be λx ⇒ nat_primrec one (λk r ⇒ x * r) of type setsetset.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term CRing_omega_exp.
L4018
Axiom. (CRing_omega_exp_0) We take the following as an axiom:
∀x, x ^ 0 = one
L4020
Axiom. (CRing_omega_exp_S) We take the following as an axiom:
∀x, ∀nomega, x ^ (ordsucc n) = x * x ^ n
L4021
Axiom. (CRing_omega_exp_1) We take the following as an axiom:
∀xR, x ^ 1 = x
L4022
Axiom. (CRing_omega_exp_clos) We take the following as an axiom:
∀xR, ∀nomega, x ^ n R
L4023
Definition. We define CRing_eval_poly to be λn cs x ⇒ nat_primrec zero (λm r ⇒ cs m * x ^ m + r) n of type setsetsetset.
L4028
Axiom. (CRing_eval_poly_clos) We take the following as an axiom:
∀nomega, ∀csRn, ∀xR, CRing_eval_poly n cs x R
End of Section CRing
Beginning of Section explicit_Reals
L4034
Variable R : set
L4036
Variable zero one : set
L4038
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term explicit_Field_minus R zero one plus mult.
L4044
Variable leq : setsetprop
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term leq.
L4048
Let N ≝ {nR|natOfOrderedField_p R zero one plus mult leq n}
L4050
Let Npos ≝ {nN|n zero}
L4051
Let Z ≝ {nR|- n Npos n = zero n Npos}
L4052
Let Q ≝ {xR|explicit_OrderedField_rationalp R zero one plus mult leq x}
L4053
Axiom. (explicit_OrderedField_explicit_Field_Q) We take the following as an axiom:
explicit_OrderedField R zero one plus mult leqexplicit_Field Q zero one plus mult
L4057
Axiom. (explicit_OrderedField_sub) We take the following as an axiom:
explicit_OrderedField R zero one plus mult leq∀R'R, zero R'one R'(∀x yR', x + y R')(∀xR', - x R')(∀x yR', x * y R')(∀xR', x zero∃yR', x * y = one)explicit_OrderedField R' zero one plus mult leq
L4068
Axiom. (explicit_Reals_sub) We take the following as an axiom:
explicit_OrderedField R zero one plus mult leq∀R'R, zero R'one R'(∀x yR', x + y R')(∀xR', - x R')(∀x yR', x * y R')(∀xR', x zero∃yR', x * y = one)explicit_OrderedField R' zero one plus mult leq
Beginning of Section explicit_Reals_Q_min_props
L4081
Variable R' : set
L4083
Let N' ≝ {nR'|natOfOrderedField_p R' zero one plus mult leq n}
L4084
Let Npos' ≝ {nN'|n zero}
L4085
Let Z' ≝ {nR'|explicit_Field_minus R' zero one plus mult n Npos' n = zero n Npos'}
L4086
Let Q' ≝ {xR'|explicit_OrderedField_rationalp R' zero one plus mult leq x}
L4087
Axiom. (explicit_Reals_Q_min_props) We take the following as an axiom:
explicit_OrderedField R zero one plus mult leqR' Rexplicit_Field R' zero one plus mult∀p : prop, ((∀xR', explicit_Field_minus R' zero one plus mult x = - x)(∀xR', - x R')N = N'Npos = Npos'Z = Z'Q = Q'p)p
End of Section explicit_Reals_Q_min_props
L4099
Axiom. (explicit_Reals_Q_min) We take the following as an axiom:
explicit_OrderedField R zero one plus mult leq∀R'R, explicit_Field R' zero one plus multQ R'
End of Section explicit_Reals
Beginning of Section explicit_Field_transfer
L4109
Variable R : set
L4111
Variable zero one : set
L4113
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L4117
Variable R' : set
L4119
Variable zero' one' : set
L4121
Variable plus' mult' : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L4125
Variable f : setset
L4127
Axiom. (explicit_Field_transfer) We take the following as an axiom:
explicit_Field R zero one plus multbij R R' ff zero = zero'f one = one'(∀x yR, f (x + y) = f x + f y)(∀x yR, f (x * y) = f x f y)explicit_Field R' zero' one' plus' mult'
End of Section explicit_Field_transfer
Beginning of Section explicit_Field_RepIndep2
L4139
Variable R : set
L4141
Variable zero one : set
L4143
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L4147
Variable plus' mult' : setsetset
Notation. We use + as an infix operator with priority 355 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L4151
L4153
Hypothesis Hmm' : ∀a bR, a * b = a b
L4154
Axiom. (explicit_Field_repindep) We take the following as an axiom:
explicit_Field R zero one plus mult explicit_Field R zero one plus' mult'
End of Section explicit_Field_RepIndep2
L4158
Definition. We define Field to be λF ⇒ struct_b_b_e_e F unpack_b_b_e_e_o F (λQ plus mult zero one ⇒ explicit_Field Q zero one plus mult) of type setprop.
L4162
Axiom. (Field_unpack_eq) We take the following as an axiom:
∀R, ∀plus mult : setsetset, ∀zero one, unpack_b_b_e_e_o (pack_b_b_e_e R plus mult zero one) (λR plus mult zero one ⇒ explicit_Field R zero one plus mult) = explicit_Field R zero one plus mult
L4164
Axiom. (Field_is_CRing) We take the following as an axiom:
∀F, Field FCRing F
Beginning of Section explicit_OrderedField_transfer
L4168
Variable R : set
L4170
Variable zero one : set
L4172
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L4176
Variable leq : setsetprop
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term leq.
L4181
Variable R' : set
L4183
Variable zero' one' : set
L4185
Variable plus' mult' : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L4189
Variable leq' : setsetprop
L4191
Variable f : setset
L4193
Axiom. (explicit_OrderedField_transfer) We take the following as an axiom:
explicit_OrderedField R zero one plus mult leqbij R R' ff zero = zero'f one = one'(∀x yR, f (x + y) = f x + f y)(∀x yR, f (x * y) = f x f y)(∀x yR, x y leq' (f x) (f y))explicit_OrderedField R' zero' one' plus' mult' leq'
End of Section explicit_OrderedField_transfer
L4204
Definition. We define Field_carrier to be λFs ⇒ Fs 0 of type setset.
L4206
Definition. We define Field_plus to be λFs ⇒ decode_b (Fs 1) of type setsetsetset.
L4207
Definition. We define Field_mult to be λFs ⇒ decode_b (Fs 2) of type setsetsetset.
L4208
Definition. We define Field_zero to be λFs ⇒ Fs 3 of type setset.
L4209
Definition. We define Field_one to be λFs ⇒ Fs 4 of type setset.
Primitive. The name Field_minus is a term of type setsetset.
Beginning of Section Field
L4215
Variable Fs : set
L4217
Hypothesis HFs : Field Fs
L4218
Let F : setField_carrier Fs
L4220
Let zero : setField_zero Fs
L4221
Let one : setField_one Fs
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term Field_plus Fs.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term Field_mult Fs.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term Field_minus Fs.
L4225
Axiom. (Field_eta) We take the following as an axiom:
Fs = pack_b_b_e_e F (Field_plus Fs) (Field_mult Fs) zero one
L4227
Axiom. (Field_explicit_Field) We take the following as an axiom:
explicit_Field F zero one (Field_plus Fs) (Field_mult Fs)
L4228
Axiom. (Field_zero_In) We take the following as an axiom:
zero F
L4229
Axiom. (Field_one_In) We take the following as an axiom:
one F
L4230
Axiom. (Field_plus_clos) We take the following as an axiom:
∀x yF, x + y F
L4231
Axiom. (Field_mult_clos) We take the following as an axiom:
∀x yF, x * y F
L4232
Axiom. (Field_plus_assoc) We take the following as an axiom:
∀x y zF, x + (y + z) = (x + y) + z
L4233
Axiom. (Field_plus_com) We take the following as an axiom:
∀x yF, x + y = y + x
L4234
Axiom. (Field_zero_L) We take the following as an axiom:
∀xF, zero + x = x
L4235
Axiom. (Field_plus_inv) We take the following as an axiom:
∀xF, ∃yF, x + y = zero
L4236
Axiom. (Field_mult_assoc) We take the following as an axiom:
∀x y zF, x * (y * z) = (x * y) * z
L4237
Axiom. (Field_mult_com) We take the following as an axiom:
∀x yF, x * y = y * x
L4238
Axiom. (Field_one_neq_zero) We take the following as an axiom:
one zero
L4239
Axiom. (Field_one_L) We take the following as an axiom:
∀xF, one * x = x
L4240
Axiom. (Field_mult_inv_L) We take the following as an axiom:
∀xF, x zero∃yF, x * y = one
L4241
Axiom. (Field_distr_L) We take the following as an axiom:
∀x y zF, x * (y + z) = x * y + x * z
Primitive. The name Field_div is a term of type setsetset.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term Field_div.
L4247
Axiom. (Field_div_prop) We take the following as an axiom:
∀xF, ∀yF {zero}, x :/: y F x = y * (x :/: y)
L4249
Axiom. (Field_div_clos) We take the following as an axiom:
∀xF, ∀yF {zero}, x :/: y F
L4250
Axiom. (Field_mult_div) We take the following as an axiom:
∀xF, ∀yF {zero}, x = y * (x :/: y)
L4251
Axiom. (Field_div_undef1) We take the following as an axiom:
∀x y, x Fx :/: y = 0
L4252
Axiom. (Field_div_undef2) We take the following as an axiom:
∀x y, y Fx :/: y = 0
L4253
Axiom. (Field_div_undef3) We take the following as an axiom:
∀x, x :/: zero = 0
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term CRing_omega_exp Fs.
L4256
Axiom. (Field_omega_exp_0) We take the following as an axiom:
∀x, x ^ 0 = one
L4258
Axiom. (Field_omega_exp_S) We take the following as an axiom:
∀x, ∀nomega, x ^ (ordsucc n) = x * x ^ n
L4259
Axiom. (Field_omega_exp_1) We take the following as an axiom:
∀xF, x ^ 1 = x
L4260
Axiom. (Field_omega_exp_clos) We take the following as an axiom:
∀xF, ∀nomega, x ^ n F
L4261
Axiom. (Field_eval_poly_clos) We take the following as an axiom:
∀nomega, ∀csFn, ∀xF, CRing_eval_poly Fs n cs x F
L4262
Axiom. (Field_plus_cancelL) We take the following as an axiom:
∀x y zF, x + y = x + zy = z
L4264
Axiom. (Field_plus_cancelR) We take the following as an axiom:
∀x y zF, x + z = y + zx = y
L4265
Axiom. (Field_minus_eq) We take the following as an axiom:
∀xF, - x = explicit_Field_minus F zero one (Field_plus Fs) (Field_mult Fs) x
L4266
Axiom. (Field_minus_undef) We take the following as an axiom:
∀x, x F- x = 0
L4267
Axiom. (Field_minus_clos) We take the following as an axiom:
∀xF, - x F
L4268
Axiom. (Field_minus_R) We take the following as an axiom:
∀xF, x + - x = zero
L4269
Axiom. (Field_minus_L) We take the following as an axiom:
∀xF, - x + x = zero
L4270
Axiom. (Field_minus_invol) We take the following as an axiom:
∀xF, - - x = x
L4271
Axiom. (Field_minus_one_In) We take the following as an axiom:
- one F
L4272
Axiom. (Field_zero_multR) We take the following as an axiom:
∀xF, x * zero = zero
L4273
Axiom. (Field_zero_multL) We take the following as an axiom:
∀xF, zero * x = zero
L4274
Axiom. (Field_minus_mult) We take the following as an axiom:
∀xF, - x = (- one) * x
L4275
Axiom. (Field_minus_one_square) We take the following as an axiom:
(- one) * (- one) = one
L4276
Axiom. (Field_minus_square) We take the following as an axiom:
∀xF, (- x) * (- x) = x * x
L4277
Axiom. (Field_minus_zero) We take the following as an axiom:
- zero = zero
L4278
Axiom. (Field_dist_R) We take the following as an axiom:
∀x y zF, (x + y) * z = x * z + y * z
L4279
Axiom. (Field_minus_plus_dist) We take the following as an axiom:
∀x yF, - (x + y) = - x + - y
L4280
Axiom. (Field_minus_mult_L) We take the following as an axiom:
∀x yF, (- x) * y = - (x * y)
L4281
Axiom. (Field_minus_mult_R) We take the following as an axiom:
∀x yF, x * (- y) = - (x * y)
L4282
Axiom. (Field_square_zero_inv) We take the following as an axiom:
∀xF, x * x = zerox = zero
L4283
Axiom. (Field_mult_zero_inv) We take the following as an axiom:
∀x yF, x * y = zerox = zero y = zero
End of Section Field
Beginning of Section Field2
L4288
Variable Fs : set
L4290
Variable Fs' : set
L4291
Let F : setField_carrier Fs
L4293
Let zero : setField_zero Fs
L4294
Let one : setField_one Fs
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term Field_plus Fs.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term Field_mult Fs.
L4297
Let F' : setField_carrier Fs'
L4298
Let zero' : setField_zero Fs'
L4299
Let one' : setField_one Fs'
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term Field_plus Fs'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term Field_mult Fs'.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term Field_minus Fs.
Notation. We use :-: as a prefix operator with priority 358 corresponding to applying term Field_minus Fs'.
Primitive. The name subfield is a term of type prop.
L4308
Axiom. (subfield_I) We take the following as an axiom:
Field FsField Fs'F F'zero = zero'one = one'(∀a bF, a + b = a + b)(∀a bF, a * b = a b)subfield
L4314
Axiom. (subfield_E) We take the following as an axiom:
subfield∀p : prop, (Field FsField Fs'F F'zero = zero'one = one'(∀a bF, a + b = a + b)(∀a bF, a * b = a b)p)p
Primitive. The name Field_Hom is a term of type setprop.
L4324
Axiom. (Field_Hom_I) We take the following as an axiom:
∀g, Field FsField Fs'g F'Fg zero = zero'g one = one'(∀a bF, g (a + b) = g a + g b)(∀a bF, g (a * b) = g a g b)Field_Hom g
L4333
Axiom. (Field_Hom_E) We take the following as an axiom:
∀g, Field_Hom g∀p : prop, (Field FsField Fs'g F'Fg zero = zero'g one = one'(∀a bF, g (a + b) = g a + g b)(∀a bF, g (a * b) = g a g b)(∀aF, g (- a) = :-: g a)(∀aF, g a = zero'a = zero)(∀a bF, g a = g ba = b)(∀aF, ∀nomega, g (CRing_omega_exp Fs a n) = CRing_omega_exp Fs' (g a) n)p)p
L4346
Axiom. (Field_Hom_inj) We take the following as an axiom:
∀g, Field_Hom g∀a bF, g a = g ba = b
End of Section Field2
L4349
Axiom. (subfield_refl) We take the following as an axiom:
∀Fs, Field Fssubfield Fs Fs
L4351
Axiom. (subfield_tra) We take the following as an axiom:
∀Fs Fs' Fs'', subfield Fs Fs'subfield Fs' Fs''subfield Fs Fs''
Primitive. The name Field_extension_by_1 is a term of type setsetsetprop.
L4355
Axiom. (Field_extension_by_1_I) We take the following as an axiom:
∀Fs Fs' a, subfield Fs Fs'a Field_carrier Fs' Field_carrier Fs(∀Fs'', subfield Fs Fs''a Field_carrier Fs''subfield Fs' Fs'')Field_extension_by_1 Fs Fs' a
L4361
Axiom. (Field_extension_by_1_E) We take the following as an axiom:
∀Fs Fs' a, Field_extension_by_1 Fs Fs' a∀p : prop, (subfield Fs Fs'a Field_carrier Fs' Field_carrier Fs(∀Fs'', subfield Fs Fs''a Field_carrier Fs''subfield Fs' Fs'')p)p
Primitive. The name radical_field_extension is a term of type setsetprop.
L4370
Axiom. (radical_field_extension_I) We take the following as an axiom:
∀Fs Fs', ∀romega, ∀Fseq, Fseq 0 = FsFseq r = Fs'(∀iordsucc r, Field (Fseq i))(∀ir, ∃aField_carrier (Fseq (ordsucc i)), ∃nomega, CRing_omega_exp (Fseq (ordsucc i)) a n Field_carrier (Fseq i) Field_extension_by_1 (Fseq i) (Fseq (ordsucc i)) a)radical_field_extension Fs Fs'
L4379
Axiom. (radical_field_extension_E) We take the following as an axiom:
∀Fs Fs', radical_field_extension Fs Fs'∀p : prop, (Field FsField Fs'subfield Fs Fs'∀romega, ∀Fseq, Fseq 0 = FsFseq r = Fs'(∀iordsucc r, Field (Fseq i))(∀iordsucc r, ∀jordsucc i, subfield (Fseq j) (Fseq i))(∀ir, ∃aField_carrier (Fseq (ordsucc i)), ∃nomega, CRing_omega_exp (Fseq (ordsucc i)) a n Field_carrier (Fseq i) Field_extension_by_1 (Fseq i) (Fseq (ordsucc i)) a)p)p
Primitive. The name Field_automorphism_fixing is a term of type setsetsetprop.
L4394
Axiom. (Field_automorphism_fixing_I) We take the following as an axiom:
∀K F f, subfield F KField_Hom K K f(∀yK 0, ∃xK 0, f x = y)(∀xF 0, f x = x)Field_automorphism_fixing K F f
L4401
Axiom. (Field_automorphism_fixing_E) We take the following as an axiom:
∀K F f, Field_automorphism_fixing K F f∀p : prop, (subfield F KField_Hom K K f(∀yK 0, ∃xK 0, f x = y)(∀xF 0, f x = x)p)p
L4408
Definition. We define lam_comp to be λA f g ⇒ λx ∈ Af (g x) of type setsetsetset.
L4410
Definition. We define lam_id to be λA ⇒ λx ∈ Ax of type setset.
L4411
Axiom. (lam_comp_exp_In) We take the following as an axiom:
∀A B C, ∀fBA, ∀gCB, lam_comp A g f CA
L4413
Axiom. (lam_id_exp_In) We take the following as an axiom:
∀A, lam_id A AA
L4414
Axiom. (lam_comp_assoc) We take the following as an axiom:
∀A B, ∀fBA, ∀g h, lam_comp A h (lam_comp A g f) = lam_comp A (lam_comp B h g) f
L4415
Axiom. (lam_comp_id_L) We take the following as an axiom:
∀A B, ∀fBA, lam_comp A (lam_id B) f = f
L4416
Axiom. (lam_comp_id_R) We take the following as an axiom:
∀A B, ∀fBA, lam_comp A f (lam_id A) = f
L4417
Axiom. (Field_Hom_id) We take the following as an axiom:
∀F, Field FField_Hom F F (lam_id (F 0))
L4418
Axiom. (Field_Hom_comp) We take the following as an axiom:
∀F F' F'' g h, Field_Hom F F' gField_Hom F' F'' hField_Hom F F'' (lam_comp (F 0) h g)
L4419
Definition. We define Galois_Group to be λK F ⇒ pack_b {fK 0K 0|Field_automorphism_fixing K F f} (lam_comp (K 0)) of type setsetset.
L4422
Axiom. (Galois_Group_0) We take the following as an axiom:
L4424
Axiom. (Galois_Group_Group) We take the following as an axiom:
∀F K, subfield F KGroup (Galois_Group K F)
Beginning of Section explicit_Reals_transfer
L4427
Variable R : set
L4429
Variable zero one : set
L4431
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L4435
Variable leq : setsetprop
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term leq.
L4440
Variable R' : set
L4442
Variable zero' one' : set
L4444
Variable plus' mult' : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L4448
Variable leq' : setsetprop
L4450
Variable f : setset
L4452
Axiom. (explicit_Reals_transfer) We take the following as an axiom:
explicit_Reals R zero one plus mult leqbij R R' ff zero = zero'f one = one'(∀x yR, f (x + y) = f x + f y)(∀x yR, f (x * y) = f x f y)(∀x yR, x y leq' (f x) (f y))explicit_Reals R' zero' one' plus' mult' leq'
End of Section explicit_Reals_transfer
Beginning of Section explicit_Complex
L4465
Variable C : set
L4467
Variable Re Im : setset
L4469
Variable zero one i : set
L4470
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L4474
Primitive. The name explicit_Complex is a term of type prop.
L4479
Axiom. (explicit_Complex_I) We take the following as an axiom:
explicit_Field C zero one plus mult(∃leq : setsetprop, explicit_Reals R zero one plus mult leq)(∀zC, Im z R)(i C)(∀zC, Re z C)(∀zC, Im z C)(∀zC, z = Re z + i * Im z)(∀z wC, Re z = Re wIm z = Im wz = w)(i * i + one = zero)explicit_Complex
End of Section explicit_Complex
Beginning of Section RealsToComplex
L4494
Variable R : set
L4496
Variable zero one : set
L4498
Variable plus mult : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term explicit_Field_minus R zero one plus mult.
L4504
Variable leq : setsetprop
L4506
Variable pa : setsetset
L4508
Let C : setReplSep2 R (λ_ ⇒ R) (λx y ⇒ True) pa
L4510
Let Re : setsetλz ⇒ Eps_i (λx ⇒ x R ∃yR, z = pa x y)
L4512
Let Im : setsetλz ⇒ Eps_i (λy ⇒ y R z = pa (Re z) y)
L4513
Let Re' : setsetλz ⇒ pa (Re z) zero
L4514
Let Im' : setsetλz ⇒ pa (Im z) zero
L4515
Let R' ≝ {zC|Re' z = z}
L4517
Let zero' : setpa zero zero
L4519
Let one' : setpa one zero
L4520
Let i' : setpa zero one
L4521
Let plus' : setsetsetλz w ⇒ pa (Re z + Re w) (Im z + Im w)
L4522
Let mult' : setsetsetλz w ⇒ pa (Re z * Re w + - (Im z * Im w)) (Re z * Im w + Im z * Re w)
L4523
Axiom. (explicit_RealsToComplex) We take the following as an axiom:
explicit_Reals R zero one plus mult leq(∀x1 y1 x2 y2R, pa x1 y1 = pa x2 y2x1 = x2 y1 = y2)explicit_Complex C Re' Im' zero' one' i' plus' mult'
L4527
Axiom. (explicit_RealsToComplex_exact_Subq) We take the following as an axiom:
explicit_Reals R zero one plus mult leq(∀x1 y1 x2 y2R, pa x1 y1 = pa x2 y2x1 = x2 y1 = y2)(∀xR, pa x zero = x)explicit_Complex C Re' Im' zero' one' i' plus' mult' R C (∀xR, Re x = x) zero' = zero one' = one (∀x yR, plus' x y = x + y) (∀x yR, mult' x y = x * y)
End of Section RealsToComplex
Beginning of Section SurrealArithmetic
Primitive. The name minus_SNo is a term of type setset.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_SNo.
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term SNoLe.
L4550
Axiom. (minus_SNo_eq) We take the following as an axiom:
∀x, SNo x- x = SNoCut {- z|zSNoR x} {- w|wSNoL x}
L4552
Axiom. (minus_SNo_prop1) We take the following as an axiom:
∀x, SNo xSNo (- x) (∀uSNoL x, - x < - u) (∀uSNoR x, - u < - x) SNoCutP {- z|zSNoR x} {- w|wSNoL x}
L4553
Axiom. (SNo_minus_SNo) We take the following as an axiom:
∀x, SNo xSNo (- x)
L4554
Axiom. (minus_SNo_Lt_contra) We take the following as an axiom:
∀x y, SNo xSNo yx < y- y < - x
L4556
Axiom. (minus_SNo_Le_contra) We take the following as an axiom:
∀x y, SNo xSNo yx y- y - x
L4557
Axiom. (minus_SNo_SNoCutP) We take the following as an axiom:
∀x, SNo xSNoCutP {- z|zSNoR x} {- w|wSNoL x}
L4558
Axiom. (minus_SNo_SNoCutP_gen) We take the following as an axiom:
∀L R, SNoCutP L RSNoCutP {- z|zR} {- w|wL}
L4559
Axiom. (minus_SNo_Lev_lem1) We take the following as an axiom:
∀alpha, ordinal alpha∀xSNoS_ alpha, SNoLev (- x) SNoLev x
L4560
Axiom. (minus_SNo_Lev_lem2) We take the following as an axiom:
∀x, SNo xSNoLev (- x) SNoLev x
L4561
Axiom. (minus_SNo_invol) We take the following as an axiom:
∀x, SNo x- - x = x
L4562
Axiom. (minus_SNo_Lev) We take the following as an axiom:
∀x, SNo xSNoLev (- x) = SNoLev x
L4563
Axiom. (minus_SNo_SNo_) We take the following as an axiom:
∀alpha, ordinal alpha∀x, SNo_ alpha xSNo_ alpha (- x)
L4564
Axiom. (minus_SNo_SNoS_) We take the following as an axiom:
∀alpha, ordinal alpha∀x, x SNoS_ alpha- x SNoS_ alpha
L4565
Axiom. (minus_SNoCut_eq_lem) We take the following as an axiom:
∀v, SNo v∀L R, SNoCutP L Rv = SNoCut L R- v = SNoCut {- z|zR} {- w|wL}
L4566
Axiom. (minus_SNoCut_eq) We take the following as an axiom:
∀L R, SNoCutP L R- SNoCut L R = SNoCut {- z|zR} {- w|wL}
L4567
Axiom. (minus_SNo_Lt_contra1) We take the following as an axiom:
∀x y, SNo xSNo y- x < y- y < x
L4568
Axiom. (minus_SNo_Lt_contra2) We take the following as an axiom:
∀x y, SNo xSNo yx < - yy < - x
L4569
Axiom. (minus_SNo_Lt_contra3) We take the following as an axiom:
∀x y, SNo xSNo y- x < - yy < x
L4570
Axiom. (minus_SNo_0) We take the following as an axiom:
- 0 = 0
L4571
Axiom. (SNo_momega) We take the following as an axiom:
L4572
Axiom. (mordinal_SNo) We take the following as an axiom:
∀alpha, ordinal alphaSNo (- alpha)
L4573
Axiom. (mordinal_SNoLev) We take the following as an axiom:
∀alpha, ordinal alphaSNoLev (- alpha) = alpha
L4574
Axiom. (mordinal_SNoLev_min) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z alpha- alpha < z
L4575
Axiom. (mordinal_SNoLev_min_2) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z ordsucc alpha- alpha z
L4576
Axiom. (minus_SNo_SNoS_omega) We take the following as an axiom:
Primitive. The name add_SNo is a term of type setsetset.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_SNo.
L4583
Axiom. (add_SNo_eq) We take the following as an axiom:
∀x, SNo x∀y, SNo yx + y = SNoCut ({w + y|wSNoL x} {x + w|wSNoL y}) ({z + y|zSNoR x} {x + z|zSNoR y})
L4586
Axiom. (add_SNo_prop1) We take the following as an axiom:
∀x y, SNo xSNo ySNo (x + y) (∀uSNoL x, u + y < x + y) (∀uSNoR x, x + y < u + y) (∀uSNoL y, x + u < x + y) (∀uSNoR y, x + y < x + u) SNoCutP ({w + y|wSNoL x} {x + w|wSNoL y}) ({z + y|zSNoR x} {x + z|zSNoR y})
L4594
Axiom. (SNo_add_SNo) We take the following as an axiom:
∀x y, SNo xSNo ySNo (x + y)
L4596
Axiom. (SNo_add_SNo_3) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zSNo (x + y + z)
L4597
Axiom. (SNo_add_SNo_4) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wSNo (x + y + z + w)
L4598
Axiom. (add_SNo_Lt1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < zx + y < z + y
L4600
Axiom. (add_SNo_Le1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx zx + y z + y
L4602
Axiom. (add_SNo_Lt2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zy < zx + y < x + z
L4604
Axiom. (add_SNo_Le2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zy zx + y x + z
L4606
Axiom. (add_SNo_Lt3a) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx < zy wx + y < z + w
L4608
Axiom. (add_SNo_Lt3b) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx zy < wx + y < z + w
L4610
Axiom. (add_SNo_Lt3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx < zy < wx + y < z + w
L4612
Axiom. (add_SNo_Le3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx zy wx + y z + w
L4614
Axiom. (add_SNo_SNoCutP) We take the following as an axiom:
∀x y, SNo xSNo ySNoCutP ({w + y|wSNoL x} {x + w|wSNoL y}) ({z + y|zSNoR x} {x + z|zSNoR y})
L4616
Axiom. (add_SNo_SNoCutP_gen) We take the following as an axiom:
∀Lx Rx Ly Ry, SNoCutP Lx RxSNoCutP Ly RySNoCutP ({w + SNoCut Ly Ry|wLx} {SNoCut Lx Rx + w|wLy}) ({z + SNoCut Ly Ry|zRx} {SNoCut Lx Rx + z|zRy})
L4620
Axiom. (add_SNo_com) We take the following as an axiom:
∀x y, SNo xSNo yx + y = y + x
L4622
Axiom. (add_SNo_0L) We take the following as an axiom:
∀x, SNo x0 + x = x
L4624
Axiom. (add_SNo_0R) We take the following as an axiom:
∀x, SNo xx + 0 = x
L4626
Axiom. (add_SNo_minus_SNo_linv) We take the following as an axiom:
∀x, SNo x- x + x = 0
L4628
Axiom. (SNo_add_SNo_3c) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zSNo (x + y + - z)
L4629
Axiom. (add_SNo_minus_SNo_rinv) We take the following as an axiom:
∀x, SNo xx + - x = 0
L4631
Axiom. (add_SNo_ordinal_SNoCutP) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaSNoCutP ({x + beta|xSNoS_ alpha} {alpha + x|xSNoS_ beta}) Empty
L4633
Axiom. (add_SNo_ordinal_eq) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaalpha + beta = SNoCut ({x + beta|xSNoS_ alpha} {alpha + x|xSNoS_ beta}) Empty
L4635
Axiom. (add_SNo_ordinal_ordinal) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaordinal (alpha + beta)
L4637
Axiom. (add_SNo_ordinal_SL) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaordsucc alpha + beta = ordsucc (alpha + beta)
L4639
Axiom. (add_SNo_ordinal_SR) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaalpha + ordsucc beta = ordsucc (alpha + beta)
L4641
Axiom. (add_SNo_ordinal_InL) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal beta∀gammaalpha, gamma + beta alpha + beta
L4643
Axiom. (add_SNo_ordinal_InR) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal beta∀gammabeta, alpha + gamma alpha + beta
L4645
Axiom. (add_nat_add_SNo) We take the following as an axiom:
∀n momega, add_nat n m = n + m
L4647
Axiom. (add_SNo_In_omega) We take the following as an axiom:
∀n momega, n + m omega
L4649
Axiom. (add_SNo_SNoL_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀uSNoL (x + y), (∃vSNoL x, u v + y) (∃vSNoL y, u x + v)
L4651
Axiom. (add_SNo_SNoR_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀uSNoR (x + y), (∃vSNoR x, v + y u) (∃vSNoR y, x + v u)
L4653
Axiom. (add_SNo_assoc) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + (y + z) = (x + y) + z
L4655
Axiom. (add_SNo_cancel_L) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y = x + zy = z
L4657
Axiom. (add_SNo_cancel_R) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y = z + yx = z
L4659
Axiom. (minus_add_SNo_distr) We take the following as an axiom:
∀x y, SNo xSNo y- (x + y) = (- x) + (- y)
L4661
Axiom. (minus_add_SNo_distr_3) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z- (x + y + z) = - x + - y + - z
L4662
Axiom. (add_SNo_Lev_bd) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev (x + y) SNoLev x + SNoLev y
L4664
Axiom. (add_SNo_SNoS_omega) We take the following as an axiom:
L4665
Axiom. (add_SNo_minus_R2) We take the following as an axiom:
∀x y, SNo xSNo y(x + y) + - y = x
L4667
Axiom. (add_SNo_Lt1_cancel) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y < z + yx < z
L4668
Axiom. (add_SNo_Lt2_cancel) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y < x + zy < z
L4669
Axiom. (add_SNo_assoc_4) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx + y + z + w = (x + y + z) + w
L4671
Axiom. (add_SNo_com_3_0_1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y + z = y + x + z
L4673
Axiom. (add_SNo_com_4_inner_flat) We take the following as an axiom:
∀x y z w, SNo ySNo zSNo wx + y + z + w = x + z + y + w
L4675
Axiom. (add_SNo_com_3b_1_2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z(x + y) + z = (x + z) + y
L4677
Axiom. (add_SNo_com_4_inner_mid) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y) + (z + w) = (x + z) + (y + w)
L4679
Axiom. (add_SNo_rotate_3_1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y + z = z + x + y
L4681
Axiom. (add_SNo_rotate_4_1) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx + y + z + w = w + x + y + z
L4683
Axiom. (add_SNo_rotate_5_1) We take the following as an axiom:
∀x y z w v, SNo xSNo ySNo zSNo wSNo vx + y + z + w + v = v + x + y + z + w
L4685
Axiom. (add_SNo_rotate_5_2) We take the following as an axiom:
∀x y z w v, SNo xSNo ySNo zSNo wSNo vx + y + z + w + v = w + v + x + y + z
L4687
Axiom. (add_SNo_minus_SNo_prop1) We take the following as an axiom:
∀x y, SNo xSNo y- x + x + y = y
L4688
Axiom. (add_SNo_minus_SNo_prop2) We take the following as an axiom:
∀x y, SNo xSNo yx + - x + y = y
L4689
Axiom. (add_SNo_minus_SNo_prop3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y + z) + (- z + w) = x + y + w
L4690
Axiom. (add_SNo_minus_SNo_prop4) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y + z) + (w + - z) = x + y + w
L4691
Axiom. (add_SNo_minus_SNo_prop5) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x + y + - z) + (z + w) = x + y + w
L4692
Axiom. (add_SNo_minus_Lt1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + - y < zx < z + y
L4693
Axiom. (add_SNo_minus_Lt1b) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < z + yx + - y < z
L4694
Axiom. (add_SNo_minus_Lt2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz < x + - yz + y < x
L4695
Axiom. (add_SNo_minus_Lt2b) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz + y < xz < x + - y
L4696
Axiom. (add_SNo_minus_Lt1b3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo wx + y < w + zx + y + - z < w
L4697
Axiom. (add_SNo_minus_Lt2b3) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo ww + z < x + yw < x + y + - z
L4698
Axiom. (add_SNo_Lt_subprop2) We take the following as an axiom:
∀x y z w u v, SNo xSNo ySNo zSNo wSNo uSNo vx + u < z + vy + v < w + ux + y < z + w
L4702
Axiom. (add_SNo_Lt_subprop3a) We take the following as an axiom:
∀x y z w u a, SNo xSNo ySNo zSNo wSNo uSNo ax + z < w + ay + a < ux + y + z < w + u
L4706
Axiom. (add_SNo_Lt_subprop3b) We take the following as an axiom:
∀x y w u v a, SNo xSNo ySNo wSNo uSNo vSNo ax + a < w + vy < a + ux + y < w + u + v
L4710
Axiom. (add_SNo_Lt_subprop3c) We take the following as an axiom:
∀x y z w u a b c, SNo xSNo ySNo zSNo wSNo uSNo aSNo bSNo cx + a < b + cy + c < ub + z < w + ax + y + z < w + u
L4715
Axiom. (add_SNo_Lt_subprop3d) We take the following as an axiom:
∀x y w u v a b c, SNo xSNo ySNo wSNo uSNo vSNo aSNo bSNo cx + a < b + vy < c + ub + c < w + ax + y < w + u + v
L4720
Axiom. (ordinal_ordsucc_SNo_eq) We take the following as an axiom:
∀alpha, ordinal alphaordsucc alpha = 1 + alpha
L4722
Axiom. (add_SNo_omega_eps_Lt) We take the following as an axiom:
∀x ySNoS_ omega, x < y∃nomega, x + eps_ n < y
Primitive. The name mul_SNo is a term of type setsetset.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_SNo.
L4729
Axiom. (mul_SNo_eq) We take the following as an axiom:
∀x, SNo x∀y, SNo yx * y = SNoCut ({(w 0) * y + x * (w 1) + - (w 0) * (w 1)|wSNoL x SNoL y} {(z 0) * y + x * (z 1) + - (z 0) * (z 1)|zSNoR x SNoR y}) ({(w 0) * y + x * (w 1) + - (w 0) * (w 1)|wSNoL x SNoR y} {(z 0) * y + x * (z 1) + - (z 0) * (z 1)|zSNoR x SNoL y})
L4738
Axiom. (mul_SNo_eq_2) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (∀L R, (∀u, u L(∀q : prop, (∀w0SNoL x, ∀w1SNoL y, u = w0 * y + x * w1 + - w0 * w1q)(∀z0SNoR x, ∀z1SNoR y, u = z0 * y + x * z1 + - z0 * z1q)q))(∀w0SNoL x, ∀w1SNoL y, w0 * y + x * w1 + - w0 * w1 L)(∀z0SNoR x, ∀z1SNoR y, z0 * y + x * z1 + - z0 * z1 L)(∀u, u R(∀q : prop, (∀w0SNoL x, ∀z1SNoR y, u = w0 * y + x * z1 + - w0 * z1q)(∀z0SNoR x, ∀w1SNoL y, u = z0 * y + x * w1 + - z0 * w1q)q))(∀w0SNoL x, ∀z1SNoR y, w0 * y + x * z1 + - w0 * z1 R)(∀z0SNoR x, ∀w1SNoL y, z0 * y + x * w1 + - z0 * w1 R)x * y = SNoCut L Rp)p
L4759
Axiom. (mul_SNo_prop_1) We take the following as an axiom:
∀x, SNo x∀y, SNo y∀p : prop, (SNo (x * y)(∀uSNoL x, ∀vSNoL y, u * y + x * v < x * y + u * v)(∀uSNoR x, ∀vSNoR y, u * y + x * v < x * y + u * v)(∀uSNoL x, ∀vSNoR y, x * y + u * v < u * y + x * v)(∀uSNoR x, ∀vSNoL y, x * y + u * v < u * y + x * v)p)p
L4769
Axiom. (SNo_mul_SNo) We take the following as an axiom:
∀x y, SNo xSNo ySNo (x * y)
L4771
Axiom. (mul_SNo_eq_3) We take the following as an axiom:
∀x y, SNo xSNo y∀p : prop, (∀L R, SNoCutP L R(∀u, u L(∀q : prop, (∀w0SNoL x, ∀w1SNoL y, u = w0 * y + x * w1 + - w0 * w1q)(∀z0SNoR x, ∀z1SNoR y, u = z0 * y + x * z1 + - z0 * z1q)q))(∀w0SNoL x, ∀w1SNoL y, w0 * y + x * w1 + - w0 * w1 L)(∀z0SNoR x, ∀z1SNoR y, z0 * y + x * z1 + - z0 * z1 L)(∀u, u R(∀q : prop, (∀w0SNoL x, ∀z1SNoR y, u = w0 * y + x * z1 + - w0 * z1q)(∀z0SNoR x, ∀w1SNoL y, u = z0 * y + x * w1 + - z0 * w1q)q))(∀w0SNoL x, ∀z1SNoR y, w0 * y + x * z1 + - w0 * z1 R)(∀z0SNoR x, ∀w1SNoL y, z0 * y + x * w1 + - z0 * w1 R)x * y = SNoCut L Rp)p
L4792
Axiom. (mul_SNo_Lt) We take the following as an axiom:
∀x y u v, SNo xSNo ySNo uSNo vu < xv < yu * y + x * v < x * y + u * v
L4795
Axiom. (mul_SNo_Le) We take the following as an axiom:
∀x y u v, SNo xSNo ySNo uSNo vu xv yu * y + x * v x * y + u * v
L4797
Axiom. (mul_SNo_SNoL_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀uSNoL (x * y), (∃vSNoL x, ∃wSNoL y, u + v * w v * y + x * w) (∃vSNoR x, ∃wSNoR y, u + v * w v * y + x * w)
L4802
Axiom. (mul_SNo_SNoL_interpolate_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀uSNoL (x * y), ∀p : prop, (∀vSNoL x, ∀wSNoL y, u + v * w v * y + x * wp)(∀vSNoR x, ∀wSNoR y, u + v * w v * y + x * wp)p
L4808
Axiom. (mul_SNo_SNoR_interpolate) We take the following as an axiom:
∀x y, SNo xSNo y∀uSNoR (x * y), (∃vSNoL x, ∃wSNoR y, v * y + x * w u + v * w) (∃vSNoR x, ∃wSNoL y, v * y + x * w u + v * w)
L4813
Axiom. (mul_SNo_SNoR_interpolate_impred) We take the following as an axiom:
∀x y, SNo xSNo y∀uSNoR (x * y), ∀p : prop, (∀vSNoL x, ∀wSNoR y, v * y + x * w u + v * wp)(∀vSNoR x, ∀wSNoL y, v * y + x * w u + v * wp)p
L4819
Axiom. (mul_SNo_zeroR) We take the following as an axiom:
∀x, SNo xx * 0 = 0
L4821
Axiom. (mul_SNo_oneR) We take the following as an axiom:
∀x, SNo xx * 1 = x
L4822
Axiom. (mul_SNo_com) We take the following as an axiom:
∀x y, SNo xSNo yx * y = y * x
L4823
Axiom. (mul_SNo_minus_distr) We take the following as an axiom:
∀x y, SNo xSNo y(- x) * y = - x * y
L4824
Axiom. (mul_SNo_distrR) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z(x + y) * z = x * z + y * z
L4825
Axiom. (mul_SNo_distrL) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * (y + z) = x * y + x * z
L4826
Axiom. (mul_SNo_assoc) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * (y * z) = (x * y) * z
L4827
Axiom. (mul_nat_mul_SNo) We take the following as an axiom:
∀n momega, mul_nat n m = n * m
L4829
Axiom. (mul_SNo_In_omega) We take the following as an axiom:
∀n momega, n * m omega
L4831
Definition. We define diadic_open to be λX ⇒ X SNoS_ omega ∀xX, ∃nomega, ∀ySNoS_ omega, x + - eps_ n < yy < x + eps_ ny X of type setprop.
L4838
Axiom. (diadic_open_I) We take the following as an axiom:
∀XSNoS_ omega, (∀xX, ∃nomega, ∀ySNoS_ omega, x + - eps_ n < yy < x + eps_ ny X)diadic_open X
L4843
Definition. We define SNoL_omega to be λx ⇒ {ySNoS_ omega|y < x} of type setset.
L4845
Definition. We define SNoR_omega to be λx ⇒ {ySNoS_ omega|x < y} of type setset.
L4846
Axiom. (diadic_open_SNoL_omega_I) We take the following as an axiom:
∀z, SNo z(∀xSNoL_omega z, ∃nomega, x + eps_ n < z)diadic_open (SNoL_omega z)
L4850
Axiom. (diadic_open_SNoR_omega_I) We take the following as an axiom:
∀z, SNo z(∀xSNoR_omega z, ∃nomega, z < x + - eps_ n)diadic_open (SNoR_omega z)
L4853
L4855
Axiom. (real_I) We take the following as an axiom:
L4862
Axiom. (real_E) We take the following as an axiom:
∀xreal, ∀p : prop, (x SNoS_ (ordsucc omega)SNoL_omega x 0SNoR_omega x 0diadic_open (SNoL_omega x)diadic_open (SNoR_omega x)p)p
L4870
Axiom. (Subq_real_SNoS_ordsucc_omega) We take the following as an axiom:
L4871
Axiom. (Subq_SNoS_omega_real) We take the following as an axiom:
L4872
Axiom. (SNoCutP_SNoL_SNoR_omega) We take the following as an axiom:
∀x, SNo xSNoCutP (SNoL_omega x) (SNoR_omega x)
L4873
L4874
Axiom. (real_SNoL_SNoR_omega) We take the following as an axiom:
L4875
Axiom. (real_ex_diad_Lt) We take the following as an axiom:
∀xreal, ∃wSNoS_ omega, w < x
L4876
Axiom. (real_ex_diad_Gt) We take the following as an axiom:
∀xreal, ∃zSNoS_ omega, x < z
L4877
Axiom. (mul_SNo_pos_pos) We take the following as an axiom:
∀x y, SNo xSNo y0 < x0 < y0 < x * y
L4878
Axiom. (mul_SNo_pos_neg) We take the following as an axiom:
∀x y, SNo xSNo y0 < xy < 0x * y < 0
L4879
Axiom. (mul_SNo_neg_pos) We take the following as an axiom:
∀x y, SNo xSNo yx < 00 < yx * y < 0
L4880
Axiom. (mul_SNo_neg_neg) We take the following as an axiom:
∀x y, SNo xSNo yx < 0y < 00 < x * y
L4881
Axiom. (mul_SNo_nonzero) We take the following as an axiom:
∀x y, SNo xSNo yx 0y 0x * y 0
L4882
Axiom. (minus_SNo_restr_SNo) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, (- x) SNoElts_ alpha = - (x SNoElts_ alpha)
L4884
Axiom. (minus_SNo_exactly1of2) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, exactly1of2 (alpha x) (alpha - x)
L4885
Axiom. (minus_SNo_In) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, alpha xalpha - x
L4886
Axiom. (minus_SNo_nIn) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, alpha xalpha - x
L4887
Axiom. (real_minus_SNo) We take the following as an axiom:
L4888
Definition. We define div_SNo to be λx y ⇒ if y = 0 then 0 else Eps_i (λz ⇒ SNo z z * y = x) of type setsetset.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term div_SNo.
L4892
Definition. We define exp_SNo_nat to be λn m : setnat_primrec 1 (λ_ r ⇒ n * r) m of type setsetset.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term exp_SNo_nat.
End of Section SurrealArithmetic
L4898
Definition. We define CSNo to be λz ⇒ ∃x, SNo x ∃y, SNo y z = SNo_pair x y of type setprop.
L4900
Axiom. (CSNo_I) We take the following as an axiom:
∀x y, SNo xSNo yCSNo (SNo_pair x y)
L4902
Axiom. (CSNo_E) We take the following as an axiom:
∀z, CSNo z∀p : setprop, (∀x y, SNo xSNo yz = SNo_pair x yp (SNo_pair x y))p z
L4906
Axiom. (SNo_CSNo) We take the following as an axiom:
∀x, SNo xCSNo x
Beginning of Section Complex
L4909
L4911
Let i ≝ Complex_i
L4913
Axiom. (SNo_Complex_i) We take the following as an axiom:
L4915
Definition. We define CSNo_Re to be λz ⇒ Eps_i (λx ⇒ SNo x ∃y, SNo y z = SNo_pair x y) of type setset.
L4917
Definition. We define CSNo_Im to be λz ⇒ Eps_i (λy ⇒ SNo y z = SNo_pair (CSNo_Re z) y) of type setset.
L4918
Let Re : setsetCSNo_Re
L4920
Let Im : setsetCSNo_Im
L4921
Let pa : setsetsetSNo_pair
L4922
Axiom. (CSNo_Re1) We take the following as an axiom:
∀z, CSNo zSNo (Re z) ∃y, SNo y z = pa (Re z) y
L4924
Axiom. (CSNo_Re2) We take the following as an axiom:
∀x y, SNo xSNo yRe (pa x y) = x
L4925
Axiom. (CSNo_Im1) We take the following as an axiom:
∀z, CSNo zSNo (Im z) z = pa (Re z) (Im z)
L4926
Axiom. (CSNo_Im2) We take the following as an axiom:
∀x y, SNo xSNo yIm (pa x y) = y
L4927
Axiom. (CSNo_ReR) We take the following as an axiom:
∀z, CSNo zSNo (Re z)
L4928
Axiom. (CSNo_ImR) We take the following as an axiom:
∀z, CSNo zSNo (Im z)
L4929
Axiom. (CSNo_ReIm) We take the following as an axiom:
∀z, CSNo zz = pa (Re z) (Im z)
L4930
Axiom. (CSNo_ReIm_split) We take the following as an axiom:
∀z w, CSNo zCSNo wRe z = Re wIm z = Im wz = w
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_SNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_SNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_SNo.
L4935
Definition. We define minus_CSNo to be λz ⇒ pa (- Re z) (- Im z) of type setset.
L4937
Definition. We define add_CSNo to be λz w ⇒ pa (Re z + Re w) (Im z + Im w) of type setsetset.
L4938
Definition. We define mul_CSNo to be λz w ⇒ pa (Re z * Re w + - (Im z * Im w)) (Re z * Im w + Im z * Re w) of type setsetset.
L4939
Definition. We define div_CSNo to be λx y ⇒ if y = 0 then 0 else Eps_i (λz ⇒ CSNo z mul_CSNo z y = x) of type setsetset.
L4940
Axiom. (CSNo_minus_CSNo) We take the following as an axiom:
∀z, CSNo zCSNo (minus_CSNo z)
L4942
Axiom. (SNo_Re) We take the following as an axiom:
∀x, SNo xRe x = x
L4944
Axiom. (SNo_Im) We take the following as an axiom:
∀x, SNo xIm x = 0
L4946
Axiom. (Re_0) We take the following as an axiom:
Re 0 = 0
L4948
Axiom. (Im_0) We take the following as an axiom:
Im 0 = 0
L4950
Axiom. (Re_1) We take the following as an axiom:
Re 1 = 1
L4952
Axiom. (Im_1) We take the following as an axiom:
Im 1 = 0
L4954
Axiom. (Re_i) We take the following as an axiom:
Re i = 0
L4956
Axiom. (Im_i) We take the following as an axiom:
Im i = 1
L4958
Axiom. (add_SNo_add_CSNo) We take the following as an axiom:
∀x y, SNo xSNo yx + y = add_CSNo x y
L4960
Axiom. (CSNo_add_CSNo) We take the following as an axiom:
∀z w, CSNo zCSNo wCSNo (add_CSNo z w)
L4962
Axiom. (add_CSNo_0L) We take the following as an axiom:
∀z, CSNo zadd_CSNo 0 z = z
L4964
Axiom. (add_CSNo_0R) We take the following as an axiom:
∀z, CSNo zadd_CSNo z 0 = z
L4966
Axiom. (add_CSNo_minus_CSNo_linv) We take the following as an axiom:
∀z, CSNo zadd_CSNo (minus_CSNo z) z = 0
L4968
Axiom. (add_CSNo_minus_CSNo_rinv) We take the following as an axiom:
∀z, CSNo zadd_CSNo z (minus_CSNo z) = 0
L4970
Axiom. (minus_SNo_minus_CSNo) We take the following as an axiom:
∀x, SNo x- x = minus_CSNo x
End of Section Complex
Beginning of Section Complex
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_CSNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_CSNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_CSNo.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term div_CSNo.
L4981
L4983
Definition. We define rational to be ReplSep2 int (λ_ ⇒ omega) (λnum den ⇒ den 0) (λnum den ⇒ num :/: den) of type set.
L4985
Definition. We define Sum to be λm n f ⇒ nat_primrec 0 (λk r ⇒ if k m then 0 else f k + r) (ordsucc n) of type setset(setset)set.
L4989
Definition. We define Prod to be λm n f ⇒ nat_primrec 1 (λk r ⇒ if k m then 1 else f k * r) (ordsucc n) of type setset(setset)set.
End of Section Complex
Beginning of Section Int
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_SNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_SNo.
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_SNo.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term div_SNo.
L5002
Axiom. (int_SNo_cases) We take the following as an axiom:
∀p : setprop, (∀nomega, p n)(∀nomega, p (- n))∀xint, p x
L5007
Axiom. (Subq_omega_int) We take the following as an axiom:
L5008
Axiom. (int_minus_SNo_omega) We take the following as an axiom:
L5009
Axiom. (int_minus_SNo) We take the following as an axiom:
∀xint, - x int
L5010
Axiom. (int_add_SNo_lem) We take the following as an axiom:
∀nomega, ∀m, nat_p m- n + m int
L5011
Axiom. (int_add_SNo) We take the following as an axiom:
∀x yint, x + y int
L5012
Axiom. (int_mul_SNo) We take the following as an axiom:
∀x yint, x * y int
L5013
Definition. We define divides_int to be λm n ⇒ m int n int ∃kint, m * k = n of type setsetprop.
L5016
Definition. We define equiv_int_mod to be λm k n ⇒ m int k int n omega 1 divides_int (m + - k) n of type setsetsetprop.
L5019
Definition. We define coprime_int to be λa b ⇒ a int b int ∀xomega 1, divides_int x adivides_int x bx = 1 of type setsetprop.
End of Section Int
Primitive. The name pack_b_b_r_e_e is a term of type set(setsetset)(setsetset)(setsetprop)setsetset.
L5026
Axiom. (pack_b_b_r_e_e_0_eq) We take the following as an axiom:
∀S X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, S = pack_b_b_r_e_e X f g R c dX = S 0
L5028
Axiom. (pack_b_b_r_e_e_0_eq2) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, X = pack_b_b_r_e_e X f g R c d 0
L5030
Axiom. (pack_b_b_r_e_e_1_eq) We take the following as an axiom:
∀S X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, S = pack_b_b_r_e_e X f g R c d∀x yX, f x y = decode_b (S 1) x y
L5032
Axiom. (pack_b_b_r_e_e_1_eq2) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, ∀x yX, f x y = decode_b (pack_b_b_r_e_e X f g R c d 1) x y
L5034
Axiom. (pack_b_b_r_e_e_2_eq) We take the following as an axiom:
∀S X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, S = pack_b_b_r_e_e X f g R c d∀x yX, g x y = decode_b (S 2) x y
L5036
Axiom. (pack_b_b_r_e_e_2_eq2) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, ∀x yX, g x y = decode_b (pack_b_b_r_e_e X f g R c d 2) x y
L5038
Axiom. (pack_b_b_r_e_e_3_eq) We take the following as an axiom:
∀S X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, S = pack_b_b_r_e_e X f g R c d∀x yX, R x y = decode_r (S 3) x y
L5040
Axiom. (pack_b_b_r_e_e_3_eq2) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, ∀x yX, R x y = decode_r (pack_b_b_r_e_e X f g R c d 3) x y
L5042
Axiom. (pack_b_b_r_e_e_4_eq) We take the following as an axiom:
∀S X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, S = pack_b_b_r_e_e X f g R c dc = S 4
L5044
Axiom. (pack_b_b_r_e_e_4_eq2) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, c = pack_b_b_r_e_e X f g R c d 4
L5046
Axiom. (pack_b_b_r_e_e_5_eq) We take the following as an axiom:
∀S X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, S = pack_b_b_r_e_e X f g R c dd = S 5
L5048
Axiom. (pack_b_b_r_e_e_5_eq2) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, d = pack_b_b_r_e_e X f g R c d 5
L5050
Axiom. (pack_b_b_r_e_e_inj) We take the following as an axiom:
∀X X', ∀f f' : setsetset, ∀g g' : setsetset, ∀R R' : setsetprop, ∀c c' : set, ∀d d' : set, pack_b_b_r_e_e X f g R c d = pack_b_b_r_e_e X' f' g' R' c' d'X = X' (∀x yX, f x y = f' x y) (∀x yX, g x y = g' x y) (∀x yX, R x y = R' x y) c = c' d = d'
L5052
Axiom. (pack_b_b_r_e_e_ext) We take the following as an axiom:
∀X, ∀f f' : setsetset, ∀g g' : setsetset, ∀R R' : setsetprop, ∀c, ∀d, (∀x yX, f x y = f' x y)(∀x yX, g x y = g' x y)(∀x yX, R x y R' x y)pack_b_b_r_e_e X f g R c d = pack_b_b_r_e_e X f' g' R' c d
L5058
Definition. We define struct_b_b_r_e_e to be λS ⇒ ∀q : setprop, (∀X : set, ∀f : setsetset, (∀x yX, f x y X)∀g : setsetset, (∀x yX, g x y X)∀R : setsetprop, ∀c : set, c X∀d : set, d Xq (pack_b_b_r_e_e X f g R c d))q S of type setprop.
L5060
Axiom. (pack_struct_b_b_r_e_e_I) We take the following as an axiom:
∀X, ∀f : setsetset, (∀x yX, f x y X)∀g : setsetset, (∀x yX, g x y X)∀R : setsetprop, ∀c : set, c X∀d : set, d Xstruct_b_b_r_e_e (pack_b_b_r_e_e X f g R c d)
L5062
Axiom. (pack_struct_b_b_r_e_e_E1) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, struct_b_b_r_e_e (pack_b_b_r_e_e X f g R c d)∀x yX, f x y X
L5064
Axiom. (pack_struct_b_b_r_e_e_E2) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, struct_b_b_r_e_e (pack_b_b_r_e_e X f g R c d)∀x yX, g x y X
L5066
Axiom. (pack_struct_b_b_r_e_e_E4) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, struct_b_b_r_e_e (pack_b_b_r_e_e X f g R c d)c X
L5068
Axiom. (pack_struct_b_b_r_e_e_E5) We take the following as an axiom:
∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, struct_b_b_r_e_e (pack_b_b_r_e_e X f g R c d)d X
L5070
Axiom. (struct_b_b_r_e_e_eta) We take the following as an axiom:
∀S, struct_b_b_r_e_e SS = pack_b_b_r_e_e (S 0) (decode_b (S 1)) (decode_b (S 2)) (decode_r (S 3)) (S 4) (S 5)
Primitive. The name unpack_b_b_r_e_e_i is a term of type set(set(setsetset)(setsetset)(setsetprop)setsetset)set.
L5075
Axiom. (unpack_b_b_r_e_e_i_eq) We take the following as an axiom:
∀Phi : set(setsetset)(setsetset)(setsetprop)setsetset, ∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, (∀f' : setsetset, (∀x yX, f x y = f' x y)∀g' : setsetset, (∀x yX, g x y = g' x y)∀R' : setsetprop, (∀x yX, R x y R' x y)Phi X f' g' R' c d = Phi X f g R c d)unpack_b_b_r_e_e_i (pack_b_b_r_e_e X f g R c d) Phi = Phi X f g R c d
Primitive. The name unpack_b_b_r_e_e_o is a term of type set(set(setsetset)(setsetset)(setsetprop)setsetprop)prop.
L5084
Axiom. (unpack_b_b_r_e_e_o_eq) We take the following as an axiom:
∀Phi : set(setsetset)(setsetset)(setsetprop)setsetprop, ∀X, ∀f : setsetset, ∀g : setsetset, ∀R : setsetprop, ∀c : set, ∀d : set, (∀f' : setsetset, (∀x yX, f x y = f' x y)∀g' : setsetset, (∀x yX, g x y = g' x y)∀R' : setsetprop, (∀x yX, R x y R' x y)Phi X f' g' R' c d = Phi X f g R c d)unpack_b_b_r_e_e_o (pack_b_b_r_e_e X f g R c d) Phi = Phi X f g R c d
Primitive. The name OrderedFieldStruct is a term of type setprop.
Beginning of Section explicit_OrderedField_RepIndep2
L5095
Variable R : set
L5097
Variable zero one : set
L5099
Variable plus mult : setsetset
L5100
Variable leq : setsetprop
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L5104
Variable plus' mult' : setsetset
L5106
Variable leq' : setsetprop
Notation. We use + as an infix operator with priority 355 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L5109
L5111
Hypothesis Hmm' : ∀a bR, a * b = a b
L5112
Hypothesis Hll' : ∀a bR, leq a b leq' a b
L5113
Axiom. (explicit_OrderedField_repindep) We take the following as an axiom:
explicit_OrderedField R zero one plus mult leq explicit_OrderedField R zero one plus' mult' leq'
End of Section explicit_OrderedField_RepIndep2
L5117
Axiom. (OrderedFieldStruct_unpack_eq) We take the following as an axiom:
∀R, ∀plus mult : setsetset, ∀leq : setsetprop, ∀zero one, unpack_b_b_r_e_e_o (pack_b_b_r_e_e R plus mult leq zero one) (λR plus mult leq zero one ⇒ explicit_OrderedField R zero one plus mult leq) = explicit_OrderedField R zero one plus mult leq
L5119
Definition. We define RealsStruct to be λR ⇒ struct_b_b_r_e_e R unpack_b_b_r_e_e_o R (λR plus mult leq zero one ⇒ explicit_Reals R zero one plus mult leq) of type setprop.
Beginning of Section explicit_Reals_RepIndep2
L5125
Variable R : set
L5127
Variable zero one : set
L5129
Variable plus mult : setsetset
L5130
Variable leq : setsetprop
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mult.
L5134
Variable plus' mult' : setsetset
L5136
Variable leq' : setsetprop
Notation. We use + as an infix operator with priority 355 and which associates to the right corresponding to applying term plus'.
Notation. We use as an infix operator with priority 355 and which associates to the right corresponding to applying term mult'.
L5139
L5141
Hypothesis Hmm' : ∀a bR, a * b = a b
L5142
Hypothesis Hll' : ∀a bR, leq a b leq' a b
L5143
Axiom. (explicit_Reals_repindep) We take the following as an axiom:
explicit_Reals R zero one plus mult leq explicit_Reals R zero one plus' mult' leq'
End of Section explicit_Reals_RepIndep2
L5147
Axiom. (RealsStruct_unpack_eq) We take the following as an axiom:
∀R, ∀plus mult : setsetset, ∀leq : setsetprop, ∀zero one, unpack_b_b_r_e_e_o (pack_b_b_r_e_e R plus mult leq zero one) (λR plus mult leq zero one ⇒ explicit_Reals R zero one plus mult leq) = explicit_Reals R zero one plus mult leq
L5149
Definition. We define RealsStruct_carrier to be λRs ⇒ Rs 0 of type setset.
L5151
Definition. We define RealsStruct_plus to be λRs ⇒ decode_b (Rs 1) of type setsetsetset.
L5153
Definition. We define RealsStruct_mult to be λRs ⇒ decode_b (Rs 2) of type setsetsetset.
L5155
Definition. We define RealsStruct_leq to be λRs ⇒ decode_r (Rs 3) of type setsetsetprop.
L5157
Definition. We define RealsStruct_zero to be λRs ⇒ Rs 4 of type setset.
L5159
Definition. We define RealsStruct_one to be λRs ⇒ Rs 5 of type setset.
Primitive. The name Field_of_RealsStruct is a term of type setset.
L5164
Axiom. (Field_of_RealsStruct_0) We take the following as an axiom:
L5166
Axiom. (Field_of_RealsStruct_1) We take the following as an axiom:
L5168
Axiom. (Field_of_RealsStruct_2) We take the following as an axiom:
L5170
Axiom. (Field_of_RealsStruct_3) We take the following as an axiom:
L5172
Axiom. (Field_of_RealsStruct_4) We take the following as an axiom:
Beginning of Section RealsStruct
L5176
Variable Rs : set
L5178
Hypothesis HRs : RealsStruct Rs
L5179
Let R : setRealsStruct_carrier Rs
L5181
Let zero : setRealsStruct_zero Rs
L5182
Let one : setRealsStruct_one Rs
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term RealsStruct_plus Rs.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term RealsStruct_mult Rs.
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term RealsStruct_leq Rs.
L5187
Axiom. (RealsStruct_eta) We take the following as an axiom:
L5189
Axiom. (RealsStruct_explicit_Reals) We take the following as an axiom:
L5190
Axiom. (Field_of_RealsStruct_is_CRing) We take the following as an axiom:
L5192
Definition. We define RealsStruct_lt to be λx y ⇒ x y x y of type setsetprop.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term RealsStruct_lt.
L5195
Axiom. (explicit_Field_of_RealsStruct) We take the following as an axiom:
L5197
L5198
Axiom. (RealsStruct_OrderedField) We take the following as an axiom:
L5199
Axiom. (Field_of_RealsStruct_1f) We take the following as an axiom:
(λx y : setField_of_RealsStruct Rs 1 x y) = RealsStruct_plus Rs
L5201
Axiom. (Field_of_RealsStruct_2f) We take the following as an axiom:
(λx y : setField_of_RealsStruct Rs 2 x y) = RealsStruct_mult Rs
L5202
L5203
Axiom. (Field_Field_of_RealsStruct) We take the following as an axiom:
L5204
Axiom. (RealsStruct_zero_In) We take the following as an axiom:
zero R
L5206
Axiom. (RealsStruct_one_In) We take the following as an axiom:
one R
L5207
Axiom. (RealsStruct_plus_clos) We take the following as an axiom:
∀x yR, x + y R
L5208
Axiom. (RealsStruct_mult_clos) We take the following as an axiom:
∀x yR, x * y R
L5209
Axiom. (RealsStruct_plus_assoc) We take the following as an axiom:
∀x y zR, x + (y + z) = (x + y) + z
L5210
Axiom. (RealsStruct_plus_com) We take the following as an axiom:
∀x yR, x + y = y + x
L5211
Axiom. (RealsStruct_zero_L) We take the following as an axiom:
∀xR, zero + x = x
L5212
Axiom. (RealsStruct_mult_assoc) We take the following as an axiom:
∀x y zR, x * (y * z) = (x * y) * z
L5213
Axiom. (RealsStruct_mult_com) We take the following as an axiom:
∀x yR, x * y = y * x
L5214
Axiom. (RealsStruct_one_neq_zero) We take the following as an axiom:
one zero
L5215
Axiom. (RealsStruct_one_L) We take the following as an axiom:
∀xR, one * x = x
L5216
Axiom. (RealsStruct_distr_L) We take the following as an axiom:
∀x y zR, x * (y + z) = x * y + x * z
L5217
Axiom. (RealsStruct_leq_refl) We take the following as an axiom:
∀xR, x x
L5218
Axiom. (RealsStruct_leq_tra) We take the following as an axiom:
∀x y zR, x yy zx z
L5219
Axiom. (RealsStruct_leq_antisym) We take the following as an axiom:
∀x yR, x yy xx = y
L5220
Axiom. (RealsStruct_leq_linear) We take the following as an axiom:
∀x yR, x y y x
L5221
Axiom. (RealsStruct_leq_plus) We take the following as an axiom:
∀x y zR, x yx + z y + z
L5222
Axiom. (RealsStruct_lt_leq) We take the following as an axiom:
∀x yR, x < yx y
L5223
Axiom. (RealsStruct_lt_irref) We take the following as an axiom:
∀xR, ¬ (x < x)
L5224
Axiom. (RealsStruct_lt_leq_asym) We take the following as an axiom:
∀x yR, x < y¬ (y x)
L5225
Axiom. (RealsStruct_leq_lt_asym) We take the following as an axiom:
∀x yR, x y¬ (y < x)
L5226
Axiom. (RealsStruct_lt_asym) We take the following as an axiom:
∀x yR, x < y¬ (y < x)
L5227
Axiom. (RealsStruct_lt_leq_tra) We take the following as an axiom:
∀x y zR, x < yy zx < z
L5228
Axiom. (RealsStruct_leq_lt_tra) We take the following as an axiom:
∀x y zR, x yy < zx < z
L5229
Axiom. (RealsStruct_lt_tra) We take the following as an axiom:
∀x y zR, x < yy < zx < z
L5230
Axiom. (RealsStruct_lt_trich_impred) We take the following as an axiom:
∀x yR, ∀p : prop, (x < yp)(x = yp)(y < xp)p
L5231
Axiom. (RealsStruct_lt_trich) We take the following as an axiom:
∀x yR, x < y x = y y < x
L5232
Axiom. (RealsStruct_leq_lt_linear) We take the following as an axiom:
∀x yR, x y y < x
Notation. We use - as a prefix operator with priority 358 corresponding to applying term Field_minus (Field_of_RealsStruct Rs).
L5235
L5237
Axiom. (RealsStruct_minus_clos) We take the following as an axiom:
∀xR, - x R
L5238
Axiom. (RealsStruct_minus_R) We take the following as an axiom:
∀xR, x + - x = zero
L5239
Axiom. (RealsStruct_minus_L) We take the following as an axiom:
∀xR, - x + x = zero
L5240
Axiom. (RealsStruct_plus_cancelL) We take the following as an axiom:
∀x y zR, x + y = x + zy = z
L5241
Axiom. (RealsStruct_minus_eq2) We take the following as an axiom:
L5242
Axiom. (RealsStruct_plus_cancelR) We take the following as an axiom:
∀x y zR, x + z = y + zx = y
L5243
Axiom. (RealsStruct_minus_invol) We take the following as an axiom:
∀xR, - - x = x
L5244
Axiom. (RealsStruct_minus_one_In) We take the following as an axiom:
- one R
L5245
Axiom. (RealsStruct_zero_multR) We take the following as an axiom:
∀xR, x * zero = zero
L5246
Axiom. (RealsStruct_zero_multL) We take the following as an axiom:
∀xR, zero * x = zero
L5247
Axiom. (RealsStruct_minus_mult) We take the following as an axiom:
∀xR, - x = (- one) * x
L5248
Axiom. (RealsStruct_minus_one_square) We take the following as an axiom:
(- one) * (- one) = one
L5249
Axiom. (RealsStruct_minus_square) We take the following as an axiom:
∀xR, (- x) * (- x) = x * x
L5250
Axiom. (RealsStruct_minus_zero) We take the following as an axiom:
- zero = zero
L5251
Axiom. (RealsStruct_dist_R) We take the following as an axiom:
∀x y zR, (x + y) * z = x * z + y * z
L5252
Axiom. (RealsStruct_minus_plus_dist) We take the following as an axiom:
∀x yR, - (x + y) = - x + - y
L5253
Axiom. (RealsStruct_minus_mult_L) We take the following as an axiom:
∀x yR, (- x) * y = - (x * y)
L5254
Axiom. (RealsStruct_minus_mult_R) We take the following as an axiom:
∀x yR, x * (- y) = - (x * y)
L5255
Axiom. (RealsStruct_mult_zero_inv) We take the following as an axiom:
∀x yR, x * y = zerox = zero y = zero
L5256
Axiom. (RealsStruct_square_zero_inv) We take the following as an axiom:
∀xR, x * x = zerox = zero
L5257
Axiom. (RealsStruct_minus_leq) We take the following as an axiom:
∀x yR, x y- y - x
L5258
Axiom. (RealsStruct_square_nonneg) We take the following as an axiom:
∀xR, zero x * x
L5259
Axiom. (RealsStruct_sum_squares_nonneg) We take the following as an axiom:
∀x yR, zero x * x + y * y
L5260
Axiom. (RealsStruct_sum_nonneg_zero_inv) We take the following as an axiom:
∀x yR, zero xzero yx + y = zerox = zero y = zero
L5261
Axiom. (RealsStruct_sum_squares_zero_inv) We take the following as an axiom:
∀x yR, x * x + y * y = zerox = zero y = zero
L5262
Axiom. (RealsStruct_leq_zero_one) We take the following as an axiom:
zero one
Primitive. The name RealsStruct_N is a term of type set.
L5266
Let N ≝ RealsStruct_N
L5268
Axiom. (RealsStruct_Arch) We take the following as an axiom:
∀x yR, zero < xzero y∃nN, y n * x
L5270
Axiom. (RealsStruct_Compl) We take the following as an axiom:
∀a bRN, (∀nN, a n b n a n a (n + one) b (n + one) b n)∃xR, ∀nN, a n x x b n
L5273
Axiom. (RealsStruct_natOfOrderedField) We take the following as an axiom:
explicit_Nats N zero (λm ⇒ m + one)
L5275
L5277
Let Npos ≝ RealsStruct_Npos
L5278
Axiom. (RealsStruct_PosNats_natOfOrderedField) We take the following as an axiom:
explicit_Nats Npos one (λm ⇒ m + one)
Primitive. The name RealsStruct_Z is a term of type set.
L5283
Let Z ≝ RealsStruct_Z
Primitive. The name RealsStruct_Q is a term of type set.
L5287
Let Q ≝ RealsStruct_Q
L5288
Axiom. (RealsStruct_Npos_props) We take the following as an axiom:
∀p : prop, (Npos Rexplicit_Nats Npos one (λm ⇒ m + one)one Npos(∀mNpos, m + one one)(∀mNpos, ∀q : setprop, q one(∀nNpos, q (n + one))q m)(∀n mNpos, explicit_Nats_one_plus Npos one (λm ⇒ m + one) n m = n + m)(∀n mNpos, explicit_Nats_one_mult Npos one (λm ⇒ m + one) n m = n * m)(∀n mNpos, n + m Npos)(∀n mNpos, n * m Npos)p)p
L5301
Axiom. (RealsStruct_Npos_R) We take the following as an axiom:
Npos R
L5303
Axiom. (RealsStruct_one_Npos) We take the following as an axiom:
one Npos
L5305
Axiom. (RealsStruct_Z_props) We take the following as an axiom:
∀p : prop, ((∀nNpos, - n Z)zero ZNpos ZZ R(∀nZ, ∀q : prop, (- n Nposq)(n = zeroq)(n Nposq)q)one Z- one Z(∀mZ, - m Z)(∀n mZ, n + m Z)(∀n mZ, n * m Z)p)p
L5319
Axiom. (RealsStruct_neg_Z) We take the following as an axiom:
∀nNpos, - n Z
L5321
Axiom. (RealsStruct_zero_Z) We take the following as an axiom:
zero Z
L5322
Axiom. (RealsStruct_Npos_Z) We take the following as an axiom:
Npos Z
L5323
Axiom. (RealsStruct_Z_R) We take the following as an axiom:
Z R
L5324
Axiom. (RealsStruct_Q_props) We take the following as an axiom:
∀p : prop, (Q R(∀xQ, ∀q : prop, (x R∀nZ, ∀mNpos, m * x = nq)q)(∀xR, ∀nZ, ∀mNpos, m * x = nx Q)p)p
L5333
Axiom. (RealsStruct_Q_R) We take the following as an axiom:
Q R
L5335
Axiom. (RealsStruct_Z_Q) We take the following as an axiom:
Z Q
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term Field_div (Field_of_RealsStruct Rs).
L5338
Axiom. (RealsStruct_div_clos) We take the following as an axiom:
∀xR, ∀yR {zero}, x :/: y R
L5339
Axiom. (RealsStruct_mult_div) We take the following as an axiom:
∀xR, ∀yR {zero}, x = y * (x :/: y)
L5340
Axiom. (RealsStruct_div_undef1) We take the following as an axiom:
∀x y, x Rx :/: y = 0
L5341
Axiom. (RealsStruct_div_undef2) We take the following as an axiom:
∀x y, y Rx :/: y = 0
L5342
Axiom. (RealsStruct_div_undef3) We take the following as an axiom:
∀x, x :/: zero = 0
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term CRing_omega_exp (Field_of_RealsStruct Rs).
L5345
Axiom. (RealsStruct_omega_exp_0) We take the following as an axiom:
∀x, x ^ 0 = one
L5347
Axiom. (RealsStruct_omega_exp_S) We take the following as an axiom:
∀x, ∀nomega, x ^ (ordsucc n) = x * x ^ n
L5348
Axiom. (RealsStruct_omega_exp_1) We take the following as an axiom:
∀xR, x ^ 1 = x
L5349
Axiom. (RealsStruct_omega_exp_clos) We take the following as an axiom:
∀xR, ∀nomega, x ^ n R
Primitive. The name RealsStruct_abs is a term of type setset.
L5353
Axiom. (RealsStruct_abs_clos) We take the following as an axiom:
L5355
Axiom. (RealsStruct_abs_nonneg_case) We take the following as an axiom:
∀xR, zero xRealsStruct_abs x = x
L5356
Axiom. (RealsStruct_abs_neg_case) We take the following as an axiom:
∀xR, x < zeroRealsStruct_abs x = - x
L5357
Axiom. (RealsStruct_abs_nonneg) We take the following as an axiom:
L5358
Axiom. (RealsStruct_abs_zero_inv) We take the following as an axiom:
∀xR, RealsStruct_abs x = zerox = zero
L5359
Axiom. (RealsStruct_dist_zero_eq) We take the following as an axiom:
∀x yR, RealsStruct_abs (x + - y) = zerox = y
L5360
Definition. We define RealsStruct_divides to be λm n ⇒ ∃kNpos, m * k = n of type setsetprop.
L5362
L5364
Definition. We define RealsStruct_coprime to be λm n ⇒ ∀kNpos, RealsStruct_divides k mRealsStruct_divides k nk = one of type setsetprop.
L5366
Let Qs ≝ pack_b_b_e_e Q (RealsStruct_plus Rs) (RealsStruct_mult Rs) zero one
L5368
Axiom. (Field_RealsStruct_Q) We take the following as an axiom:
L5369
Definition. We define RealsStruct_omega_embedding to be nat_primrec zero (λ_ r ⇒ r + one) of type setset.
L5371
Let emb : setsetRealsStruct_omega_embedding
L5373
Axiom. (RealsStruct_omega_embedding_N) We take the following as an axiom:
∀nomega, emb n N
End of Section RealsStruct