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. (iffI) We take the following as an axiom:
∀A B : prop, (AB)(BA)(A B)
L170
Axiom. (iffEL) We take the following as an axiom:
∀A B : prop, (A B)AB
L171
Axiom. (iffER) We take the following as an axiom:
∀A B : prop, (A B)BA
L172
Axiom. (iff_ref) We take the following as an axiom:
∀A : prop, A A
L173
Axiom. (neq_i_sym) We take the following as an axiom:
∀x y, x yy x
L175
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.
L181
Axiom. (Eps_i_ex) We take the following as an axiom:
∀P : setprop, (∃x, P x)P (Eps_i P)
L183
Axiom. (pred_ext) We take the following as an axiom:
∀P Q : setprop, (∀x, P x Q x)P = Q
L185
Axiom. (prop_ext_2) We take the following as an axiom:
∀p q : prop, (pq)(qp)p = q
L186
Axiom. (pred_ext_2) We take the following as an axiom:
∀P Q : setprop, P QQ PP = Q
L187
Axiom. (Subq_ref) We take the following as an axiom:
∀X : set, X X
L189
Axiom. (Subq_tra) We take the following as an axiom:
∀X Y Z : set, X YY ZX Z
L190
Axiom. (Subq_contra) We take the following as an axiom:
∀X Y z : set, X Yz Yz X
L191
Axiom. (EmptyE) We take the following as an axiom:
∀x : set, x Empty
L193
Axiom. (Subq_Empty) We take the following as an axiom:
∀X : set, Empty X
L194
Axiom. (Empty_Subq_eq) We take the following as an axiom:
∀X : set, X EmptyX = Empty
L195
Axiom. (Empty_eq) We take the following as an axiom:
∀X : set, (∀x, x X)X = Empty
L196
Axiom. (UnionI) We take the following as an axiom:
∀X x Y : set, x YY Xx X
L198
Axiom. (UnionE) We take the following as an axiom:
∀X x : set, x X∃Y : set, x Y Y X
L199
Axiom. (UnionE_impred) We take the following as an axiom:
∀X x : set, x X∀p : prop, (∀Y : set, x YY Xp)p
L200
Axiom. (Union_Empty) We take the following as an axiom:
L202
Axiom. (PowerI) We take the following as an axiom:
∀X Y : set, Y XY 𝒫 X
L204
Axiom. (PowerE) We take the following as an axiom:
∀X Y : set, Y 𝒫 XY X
L205
Axiom. (Power_Subq) We take the following as an axiom:
∀X Y : set, X Y𝒫 X 𝒫 Y
L206
Axiom. (Empty_In_Power) We take the following as an axiom:
∀X : set, Empty 𝒫 X
L207
Axiom. (Self_In_Power) We take the following as an axiom:
∀X : set, X 𝒫 X
L208
Axiom. (Union_Power_Subq) We take the following as an axiom:
∀X : set, (𝒫 X) X
L210
Axiom. (xm) We take the following as an axiom:
∀P : prop, P ¬ P
L212
Axiom. (dneg) We take the following as an axiom:
∀P : prop, ¬ ¬ PP
L213
Axiom. (imp_not_or) We take the following as an axiom:
∀p q : prop, (pq)¬ p q
L214
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.
L218
Axiom. (exactly1of2_I1) We take the following as an axiom:
∀A B : prop, A¬ Bexactly1of2 A B
L220
Axiom. (exactly1of2_I2) We take the following as an axiom:
∀A B : prop, ¬ ABexactly1of2 A B
L221
Axiom. (exactly1of2_impI1) We take the following as an axiom:
∀A B : prop, (A¬ B)(¬ AB)exactly1of2 A B
L222
Axiom. (exactly1of2_impI2) We take the following as an axiom:
∀A B : prop, (B¬ A)(¬ BA)exactly1of2 A B
L223
Axiom. (exactly1of2_E) We take the following as an axiom:
∀A B : prop, exactly1of2 A B∀p : prop, (A¬ Bp)(¬ ABp)p
L229
Axiom. (exactly1of2_or) We take the following as an axiom:
∀A B : prop, exactly1of2 A BA B
L231
Axiom. (exactly1of2_impn12) We take the following as an axiom:
∀A B : prop, exactly1of2 A BA¬ B
L232
Axiom. (exactly1of2_impn21) We take the following as an axiom:
∀A B : prop, exactly1of2 A BB¬ A
L233
Axiom. (exactly1of2_nimp12) We take the following as an axiom:
∀A B : prop, exactly1of2 A B¬ AB
L234
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.
L238
Axiom. (exactly1of3_I1) We take the following as an axiom:
∀A B C : prop, A¬ B¬ Cexactly1of3 A B C
L240
Axiom. (exactly1of3_I2) We take the following as an axiom:
∀A B C : prop, ¬ AB¬ Cexactly1of3 A B C
L241
Axiom. (exactly1of3_I3) We take the following as an axiom:
∀A B C : prop, ¬ A¬ BCexactly1of3 A B C
L242
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
L243
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
L244
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
L245
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
L252
Axiom. (exactly1of3_or) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CA B C
L254
Axiom. (exactly1of3_impn12) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CA¬ B
L255
Axiom. (exactly1of3_impn13) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CA¬ C
L256
Axiom. (exactly1of3_impn21) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CB¬ A
L257
Axiom. (exactly1of3_impn23) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CB¬ C
L258
Axiom. (exactly1of3_impn31) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CC¬ A
L259
Axiom. (exactly1of3_impn32) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B CC¬ B
L260
Axiom. (exactly1of3_nimp1) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B C¬ AB C
L261
Axiom. (exactly1of3_nimp2) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B C¬ BA C
L262
Axiom. (exactly1of3_nimp3) We take the following as an axiom:
∀A B C : prop, exactly1of3 A B C¬ CA B
L263
Axiom. (ReplI) We take the following as an axiom:
∀A : set, ∀F : setset, ∀x : set, x AF x {F x|xA}
L265
Axiom. (ReplE) We take the following as an axiom:
∀A : set, ∀F : setset, ∀y : set, y {F x|xA}∃xA, y = F x
L267
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
L269
Axiom. (Repl_Empty) We take the following as an axiom:
∀F : setset, {F x|xEmpty} = Empty
L271
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}
L273
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.
L280
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
L283
Axiom. (If_i_0) We take the following as an axiom:
∀p : prop, ∀x y : set, ¬ p(if p then x else y) = y
L286
Axiom. (If_i_1) We take the following as an axiom:
∀p : prop, ∀x y : set, p(if p then x else y) = x
L289
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
L291
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.
L298
Axiom. (UPairE) We take the following as an axiom:
∀x y z : set, x {y,z}x = y x = z
L301
Axiom. (UPairI1) We take the following as an axiom:
∀y z : set, y {y,z}
L303
Axiom. (UPairI2) We take the following as an axiom:
∀y z : set, z {y,z}
L305
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.
L311
Axiom. (SingI) We take the following as an axiom:
∀x : set, x {x}
L313
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.
L320
Axiom. (binunionI1) We take the following as an axiom:
∀X Y z : set, z Xz X Y
L322
Axiom. (binunionI2) We take the following as an axiom:
∀X Y z : set, z Yz X Y
L324
Axiom. (binunionE) We take the following as an axiom:
∀X Y z : set, z X Yz X z Y
L326
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.
L330
Axiom. (Power_0_Sing_0) We take the following as an axiom:
L332
Axiom. (Repl_UPair) We take the following as an axiom:
∀F : setset, ∀x y : set, {F z|z{x,y}} = {F x,F y}
L334
Axiom. (Repl_Sing) We take the following as an axiom:
∀F : setset, ∀x : set, {F z|z{x}} = {F x}
L336
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}
L338
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.
L344
Axiom. (famunionI) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀x y : set, x Xy F xy xXF x
L346
Axiom. (famunionE) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀y : set, y (xXF x)∃xX, y F x
L348
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
L350
Axiom. (UnionEq_famunionId) We take the following as an axiom:
∀X : set, X = xXx
L352
Axiom. (ReplEq_famunion_Sing) We take the following as an axiom:
∀X : set, ∀F : (setset), {F x|xX} = xX{F x}
L354
Axiom. (Power_Sing) We take the following as an axiom:
∀x : set, 𝒫 {x} = {Empty,{x}}
L356
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).
L362
Axiom. (SepI) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x XP xx {xX|P x}
L364
Axiom. (SepE) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}x X P x
L365
Axiom. (SepE1) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}x X
L366
Axiom. (SepE2) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}P x
L367
Axiom. (Sep_Subq) We take the following as an axiom:
∀X : set, ∀P : setprop, {xX|P x} X
L369
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).
L375
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}
L377
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
L379
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.
L384
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
L386
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
L388
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
L390
Axiom. (binunion_asso) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = (X Y) Z
L392
Axiom. (binunion_com) We take the following as an axiom:
∀X Y : set, X Y = Y X
L393
Axiom. (binunion_idl) We take the following as an axiom:
∀X : set, Empty X = X
L394
Axiom. (binunion_idr) We take the following as an axiom:
∀X : set, X Empty = X
L395
Axiom. (binunion_idem) We take the following as an axiom:
∀X : set, X X = X
L396
Axiom. (binunion_Subq_1) We take the following as an axiom:
∀X Y : set, X X Y
L397
Axiom. (binunion_Subq_2) We take the following as an axiom:
∀X Y : set, Y X Y
L398
Axiom. (binunion_Subq_min) We take the following as an axiom:
∀X Y Z : set, X ZY ZX Y Z
L399
Axiom. (Subq_binunion_eq) We take the following as an axiom:
∀X Y, (X Y) = (X Y = Y)
L400
Axiom. (binunion_nIn_I) We take the following as an axiom:
∀X Y z : set, z Xz Yz X Y
L401
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.
L408
Axiom. (binintersectI) We take the following as an axiom:
∀X Y z, z Xz Yz X Y
L410
Axiom. (binintersectE) We take the following as an axiom:
∀X Y z, z X Yz X z Y
L411
Axiom. (binintersectE1) We take the following as an axiom:
∀X Y z, z X Yz X
L412
Axiom. (binintersectE2) We take the following as an axiom:
∀X Y z, z X Yz Y
L413
Axiom. (binintersect_Subq_1) We take the following as an axiom:
∀X Y : set, X Y X
L414
Axiom. (binintersect_Subq_2) We take the following as an axiom:
∀X Y : set, X Y Y
L415
Axiom. (binintersect_Subq_eq_1) We take the following as an axiom:
∀X Y, X YX Y = X
L416
Axiom. (binintersect_Subq_max) We take the following as an axiom:
∀X Y Z : set, Z XZ YZ X Y
L417
Axiom. (binintersect_asso) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = (X Y) Z
L418
Axiom. (binintersect_com) We take the following as an axiom:
∀X Y : set, X Y = Y X
L419
Axiom. (binintersect_annil) We take the following as an axiom:
∀X : set, Empty X = Empty
L420
Axiom. (binintersect_annir) We take the following as an axiom:
∀X : set, X Empty = Empty
L421
Axiom. (binintersect_idem) We take the following as an axiom:
∀X : set, X X = X
L422
Axiom. (binintersect_binunion_distr) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = X Y X Z
L423
Axiom. (binunion_binintersect_distr) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Y) (X Z)
L424
Axiom. (Subq_binintersection_eq) We take the following as an axiom:
∀X Y : set, (X Y) = (X Y = X)
L425
Axiom. (binintersect_nIn_I1) We take the following as an axiom:
∀X Y z : set, z Xz X Y
L426
Axiom. (binintersect_nIn_I2) We take the following as an axiom:
∀X Y z : set, z Yz X Y
L427
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.
L434
Axiom. (setminusI) We take the following as an axiom:
∀X Y z, (z X)(z Y)z X Y
L436
Axiom. (setminusE) We take the following as an axiom:
∀X Y z, (z X Y)z X z Y
L437
Axiom. (setminusE1) We take the following as an axiom:
∀X Y z, (z X Y)z X
L438
Axiom. (setminusE2) We take the following as an axiom:
∀X Y z, (z X Y)z Y
L439
Axiom. (setminus_Subq) We take the following as an axiom:
∀X Y : set, X Y X
L440
Axiom. (setminus_Subq_contra) We take the following as an axiom:
∀X Y Z : set, Z YX Y X Z
L441
Axiom. (setminus_nIn_I1) We take the following as an axiom:
∀X Y z, z Xz X Y
L442
Axiom. (setminus_nIn_I2) We take the following as an axiom:
∀X Y z, z Yz X Y
L443
Axiom. (setminus_nIn_E) We take the following as an axiom:
∀X Y z, z X Yz X z Y
L444
Axiom. (setminus_selfannih) We take the following as an axiom:
∀X : set, (X X) = Empty
L445
Axiom. (setminus_binintersect) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Y) (X Z)
L446
Axiom. (setminus_binunion) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Y) Z
L447
Axiom. (binintersect_setminus) We take the following as an axiom:
∀X Y Z : set, (X Y) Z = X (Y Z)
L448
Axiom. (binunion_setminus) We take the following as an axiom:
∀X Y Z : set, X Y Z = (X Z) (Y Z)
L449
Axiom. (setminus_setminus) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = (X Y) (X Z)
L450
Axiom. (setminus_annil) We take the following as an axiom:
∀X : set, Empty X = Empty
L451
Axiom. (setminus_idr) We take the following as an axiom:
∀X : set, X Empty = X
L452
Axiom. (In_irref) We take the following as an axiom:
∀x, x x
L454
Axiom. (In_no2cycle) We take the following as an axiom:
∀x y, x yy xFalse
L455
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.
L459
Axiom. (ordsuccI1) We take the following as an axiom:
∀x : set, x ordsucc x
L461
Axiom. (ordsuccI2) We take the following as an axiom:
∀x : set, x ordsucc x
L462
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.
L465
Axiom. (neq_0_ordsucc) We take the following as an axiom:
∀a : set, 0 ordsucc a
L467
Axiom. (neq_ordsucc_0) We take the following as an axiom:
∀a : set, ordsucc a 0
L468
Axiom. (ordsucc_inj) We take the following as an axiom:
∀a b : set, ordsucc a = ordsucc ba = b
L470
Axiom. (ordsucc_inj_contra) We take the following as an axiom:
∀a b : set, a bordsucc a ordsucc b
L471
Axiom. (In_0_1) We take the following as an axiom:
L473
Axiom. (In_0_2) We take the following as an axiom:
L474
Axiom. (In_1_2) We take the following as an axiom:
L475
Definition. We define nat_p to be λn : set∀p : setprop, p 0(∀x : set, p xp (ordsucc x))p n of type setprop.
L477
Axiom. (nat_0) We take the following as an axiom:
L479
Axiom. (nat_ordsucc) We take the following as an axiom:
∀n : set, nat_p nnat_p (ordsucc n)
L480
Axiom. (nat_1) We take the following as an axiom:
L481
Axiom. (nat_2) We take the following as an axiom:
L482
Axiom. (nat_3) We take the following as an axiom:
L483
Axiom. (nat_4) We take the following as an axiom:
L484
Axiom. (nat_5) We take the following as an axiom:
L485
Axiom. (nat_6) We take the following as an axiom:
L486
Axiom. (nat_0_in_ordsucc) We take the following as an axiom:
∀n, nat_p n0 ordsucc n
L487
Axiom. (nat_ordsucc_in_ordsucc) We take the following as an axiom:
∀n, nat_p n∀mn, ordsucc m ordsucc n
L488
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
L489
Axiom. (nat_inv) We take the following as an axiom:
∀n, nat_p nn = 0 ∃x, nat_p x n = ordsucc x
L490
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
L491
Axiom. (nat_p_trans) We take the following as an axiom:
∀n, nat_p n∀mn, nat_p m
L492
Axiom. (nat_trans) We take the following as an axiom:
∀n, nat_p n∀mn, m n
L493
Axiom. (nat_ordsucc_trans) We take the following as an axiom:
∀n, nat_p n∀mordsucc n, m n
L494
Axiom. (Union_ordsucc_eq) We take the following as an axiom:
∀n, nat_p n (ordsucc n) = n
L496
Axiom. (In_0_3) We take the following as an axiom:
L498
Axiom. (In_1_3) We take the following as an axiom:
L499
Axiom. (In_2_3) We take the following as an axiom:
L500
Axiom. (In_0_4) We take the following as an axiom:
L501
Axiom. (In_1_4) We take the following as an axiom:
L502
Axiom. (In_2_4) We take the following as an axiom:
L503
Axiom. (In_3_4) We take the following as an axiom:
L504
Axiom. (In_0_5) We take the following as an axiom:
L505
Axiom. (In_1_5) We take the following as an axiom:
L506
Axiom. (In_2_5) We take the following as an axiom:
L507
Axiom. (In_3_5) We take the following as an axiom:
L508
Axiom. (In_4_5) We take the following as an axiom:
L509
Axiom. (In_0_6) We take the following as an axiom:
L510
Axiom. (In_1_6) We take the following as an axiom:
L511
Axiom. (In_2_6) We take the following as an axiom:
L512
Axiom. (In_3_6) We take the following as an axiom:
L513
Axiom. (In_4_6) We take the following as an axiom:
L514
Axiom. (In_5_6) We take the following as an axiom:
L515
Axiom. (cases_1) We take the following as an axiom:
∀i1, ∀p : setprop, p 0p i
L517
Axiom. (cases_2) We take the following as an axiom:
∀i2, ∀p : setprop, p 0p 1p i
L518
Axiom. (cases_3) We take the following as an axiom:
∀i3, ∀p : setprop, p 0p 1p 2p i
L519
Axiom. (cases_4) We take the following as an axiom:
∀i4, ∀p : setprop, p 0p 1p 2p 3p i
L520
Axiom. (cases_5) We take the following as an axiom:
∀i5, ∀p : setprop, p 0p 1p 2p 3p 4p i
L521
Axiom. (cases_6) We take the following as an axiom:
∀i6, ∀p : setprop, p 0p 1p 2p 3p 4p 5p i
L522
Axiom. (neq_0_1) We take the following as an axiom:
L524
Axiom. (neq_0_2) We take the following as an axiom:
L525
Axiom. (neq_1_2) We take the following as an axiom:
L526
Axiom. (neq_1_0) We take the following as an axiom:
L527
Axiom. (neq_2_0) We take the following as an axiom:
L528
Axiom. (neq_2_1) We take the following as an axiom:
L529
Axiom. (neq_3_0) We take the following as an axiom:
L530
Axiom. (neq_3_1) We take the following as an axiom:
L531
Axiom. (neq_3_2) We take the following as an axiom:
L532
Axiom. (neq_4_0) We take the following as an axiom:
L533
Axiom. (neq_4_1) We take the following as an axiom:
L534
Axiom. (neq_4_2) We take the following as an axiom:
L535
Axiom. (neq_4_3) We take the following as an axiom:
L536
Axiom. (neq_5_0) We take the following as an axiom:
L537
Axiom. (neq_5_1) We take the following as an axiom:
L538
Axiom. (neq_5_2) We take the following as an axiom:
L539
Axiom. (neq_5_3) We take the following as an axiom:
L540
Axiom. (neq_5_4) We take the following as an axiom:
L541
Axiom. (ZF_closed_I) We take the following as an axiom:
L547
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
L554
Axiom. (ZF_Union_closed) We take the following as an axiom:
∀U, ZF_closed U∀XU, X U
L557
Axiom. (ZF_Power_closed) We take the following as an axiom:
∀U, ZF_closed U∀XU, 𝒫 X U
L560
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
L563
Axiom. (ZF_UPair_closed) We take the following as an axiom:
∀U, ZF_closed U∀x yU, {x,y} U
L566
Axiom. (ZF_Sing_closed) We take the following as an axiom:
∀U, ZF_closed U∀xU, {x} U
L569
Axiom. (ZF_binunion_closed) We take the following as an axiom:
∀U, ZF_closed U∀X YU, (X Y) U
L572
Axiom. (ZF_ordsucc_closed) We take the following as an axiom:
∀U, ZF_closed U∀xU, ordsucc x U
L575
Axiom. (nat_p_UnivOf_Empty) We take the following as an axiom:
∀n : set, nat_p nn UnivOf Empty
L577
Definition. We define omega to be {nUnivOf Empty|nat_p n} of type set.
L579
Axiom. (omega_nat_p) We take the following as an axiom:
L581
Axiom. (nat_p_omega) We take the following as an axiom:
∀n : set, nat_p nn omega
L583
Axiom. (omega_ordsucc) We take the following as an axiom:
L585
Definition. We define ordinal to be λalpha : setTransSet alpha ∀betaalpha, TransSet beta of type setprop.
L587
Axiom. (ordinal_TransSet) We take the following as an axiom:
∀alpha : set, ordinal alphaTransSet alpha
L589
Axiom. (ordinal_In_TransSet) We take the following as an axiom:
∀alpha : set, ordinal alpha∀betaalpha, TransSet beta
L591
Axiom. (ordinal_Empty) We take the following as an axiom:
L593
Axiom. (ordinal_Hered) We take the following as an axiom:
∀alpha : set, ordinal alpha∀betaalpha, ordinal beta
L595
Axiom. (TransSet_ordsucc) We take the following as an axiom:
∀X : set, TransSet XTransSet (ordsucc X)
L597
Axiom. (ordinal_ordsucc) We take the following as an axiom:
∀alpha : set, ordinal alphaordinal (ordsucc alpha)
L599
Axiom. (nat_p_ordinal) We take the following as an axiom:
∀n : set, nat_p nordinal n
L601
Axiom. (ordinal_1) We take the following as an axiom:
L603
Axiom. (ordinal_2) We take the following as an axiom:
L605
Axiom. (omega_TransSet) We take the following as an axiom:
L607
Axiom. (omega_ordinal) We take the following as an axiom:
L609
Axiom. (ordsucc_omega_ordinal) We take the following as an axiom:
L611
Axiom. (TransSet_ordsucc_In_Subq) We take the following as an axiom:
∀X : set, TransSet X∀xX, ordsucc x X
L613
Axiom. (ordinal_ordsucc_In_Subq) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ordsucc beta alpha
L615
Axiom. (ordinal_trichotomy_or) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal betaalpha beta alpha = beta beta alpha
L617
Axiom. (ordinal_In_Or_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha beta beta alpha
L619
Axiom. (ordinal_linear) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha beta beta alpha
L621
Axiom. (ordinal_ordsucc_In_eq) We take the following as an axiom:
∀alpha beta, ordinal alphabeta alphaordsucc beta alpha alpha = ordsucc beta
L623
Axiom. (ordinal_lim_or_succ) We take the following as an axiom:
∀alpha, ordinal alpha(∀betaalpha, ordsucc beta alpha) (∃betaalpha, alpha = ordsucc beta)
L625
Axiom. (ordinal_ordsucc_In) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ordsucc beta ordsucc alpha
L627
Axiom. (ordinal_Union) We take the following as an axiom:
∀X, (∀xX, ordinal x)ordinal ( X)
L629
Axiom. (ordinal_famunion) We take the following as an axiom:
∀X, ∀F : setset, (∀xX, ordinal (F x))ordinal (xXF x)
L631
Axiom. (ordinal_binintersect) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alpha beta)
L633
Axiom. (ordinal_binunion) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alpha beta)
L635
Axiom. (ordinal_Sep) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, (∀betaalpha, ∀gammabeta, p betap gamma)ordinal {betaalpha|p beta}
L637
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.
L643
Definition. We define surj to be λX Y f ⇒ (∀uX, f u Y) (∀wY, ∃uX, f u = w) of type setset(setset)prop.
L649
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.
L657
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
L663
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.
L675
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
L677
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
L679
Axiom. (bij_inv) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y fbij Y X (inv X f)
L681
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))
L683
Axiom. (bij_id) We take the following as an axiom:
∀X, bij X X (λx ⇒ x)
L685
Axiom. (bij_inj) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y finj X Y f
L687
Axiom. (bij_surj) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y fsurj X Y f
L689
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
L691
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)
L693
Definition. We define atleastp to be λX Y : set∃f : setset, inj X Y f of type setsetprop.
L696
Definition. We define equip to be λX Y : set∃f : setset, bij X Y f of type setsetprop.
L699
Axiom. (equip_ref) We take the following as an axiom:
∀X, equip X X
L701
Axiom. (equip_sym) We take the following as an axiom:
∀X Y, equip X Yequip Y X
L702
Axiom. (equip_tra) We take the following as an axiom:
∀X Y Z, equip X Yequip Y Zequip X Z
L703
Definition. We define finite to be λX ⇒ ∃nomega, equip X n of type setprop.
L705
Definition. We define infinite to be λX ⇒ ¬ finite X of type setprop.
L706
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
L711
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
L712
Axiom. (image_monotone) We take the following as an axiom:
∀f : setset, ∀U V, U V{f x|xU} {f x|xV}
L713
Axiom. (setminus_In_Power) We take the following as an axiom:
∀A U, A U 𝒫 A
L714
Axiom. (setminus_antimonotone) We take the following as an axiom:
∀A U V, U VA V A U
L715
Axiom. (SchroederBernstein) We take the following as an axiom:
∀A B, ∀f g : setset, inj A B finj B A gequip A B
L716
Axiom. (f_eq_i) We take the following as an axiom:
∀f : setset, ∀x y, x = yf x = f y
L718
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
L719
Axiom. (eq_i_tra) We take the following as an axiom:
∀x y z, x = yy = zx = z
L720
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.
L726
Axiom. (Sing_inv) We take the following as an axiom:
∀x Y, {x} = Yx Y ∀yY, y = x
L728
Axiom. (TransSet_In_ordsucc_Subq) We take the following as an axiom:
∀x y, TransSet yx ordsucc yx y
L730
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
L731
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
L732
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))
L734
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
L736
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
L738
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
L740
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
L742
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
L744
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
L748
Variable P : (setset)prop
Primitive. The name Descr_ii is a term of type setset.
L753
Hypothesis Pex : ∃f : setset, P f
L755
Hypothesis Puniq : ∀f g : setset, P fP gf = g
L756
Axiom. (Descr_ii_prop) We take the following as an axiom:
End of Section Descr_ii
Beginning of Section Descr_iii
L762
Variable P : (setsetset)prop
Primitive. The name Descr_iii is a term of type setsetset.
L767
Hypothesis Pex : ∃f : setsetset, P f
L769
Hypothesis Puniq : ∀f g : setsetset, P fP gf = g
L770
Axiom. (Descr_iii_prop) We take the following as an axiom:
End of Section Descr_iii
Beginning of Section Descr_iio
L776
Variable P : (setsetprop)prop
Primitive. The name Descr_iio is a term of type setsetprop.
L781
Hypothesis Pex : ∃f : setsetprop, P f
L783
Hypothesis Puniq : ∀f g : setsetprop, P fP gf = g
L784
Axiom. (Descr_iio_prop) We take the following as an axiom:
End of Section Descr_iio
Beginning of Section Descr_Vo1
L790
Variable P : Vo 1prop
Primitive. The name Descr_Vo1 is a term of type Vo 1.
L795
Hypothesis Pex : ∃f : Vo 1, P f
L797
Hypothesis Puniq : ∀f g : Vo 1, P fP gf = g
L798
Axiom. (Descr_Vo1_prop) We take the following as an axiom:
End of Section Descr_Vo1
Beginning of Section Descr_Vo2
L804
Variable P : Vo 2prop
Primitive. The name Descr_Vo2 is a term of type Vo 2.
L809
Hypothesis Pex : ∃f : Vo 2, P f
L811
Hypothesis Puniq : ∀f g : Vo 2, P fP gf = g
L812
Axiom. (Descr_Vo2_prop) We take the following as an axiom:
End of Section Descr_Vo2
Beginning of Section If_ii
L818
Variable p : prop
L820
Variable f g : setset
Primitive. The name If_ii is a term of type setset.
L824
Axiom. (If_ii_1) We take the following as an axiom:
pIf_ii = f
L826
Axiom. (If_ii_0) We take the following as an axiom:
¬ pIf_ii = g
End of Section If_ii
Beginning of Section If_iii
L832
Variable p : prop
L834
Variable f g : setsetset
Primitive. The name If_iii is a term of type setsetset.
L838
Axiom. (If_iii_1) We take the following as an axiom:
pIf_iii = f
L840
Axiom. (If_iii_0) We take the following as an axiom:
¬ pIf_iii = g
End of Section If_iii
Beginning of Section If_Vo1
L846
Variable p : prop
L848
Variable f g : Vo 1
Primitive. The name If_Vo1 is a term of type Vo 1.
L852
Axiom. (If_Vo1_1) We take the following as an axiom:
pIf_Vo1 = f
L854
Axiom. (If_Vo1_0) We take the following as an axiom:
¬ pIf_Vo1 = g
End of Section If_Vo1
Beginning of Section If_iio
L860
Variable p : prop
L862
Variable f g : setsetprop
Primitive. The name If_iio is a term of type setsetprop.
L866
Axiom. (If_iio_1) We take the following as an axiom:
pIf_iio = f
L868
Axiom. (If_iio_0) We take the following as an axiom:
¬ pIf_iio = g
End of Section If_iio
Beginning of Section If_Vo2
L874
Variable p : prop
L876
Variable f g : Vo 2
Primitive. The name If_Vo2 is a term of type Vo 2.
L880
Axiom. (If_Vo2_1) We take the following as an axiom:
pIf_Vo2 = f
L882
Axiom. (If_Vo2_0) We take the following as an axiom:
¬ pIf_Vo2 = g
End of Section If_Vo2
Beginning of Section EpsilonRec_i
L888
Variable F : set(setset)set
Primitive. The name In_rec_i is a term of type setset.
L893
Hypothesis Fr : ∀X : set, ∀g h : setset, (∀xX, g x = h x)F X g = F X h
L895
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
L901
Variable F : set(set(setset))(setset)
Primitive. The name In_rec_ii is a term of type set(setset).
L906
Hypothesis Fr : ∀X : set, ∀g h : set(setset), (∀xX, g x = h x)F X g = F X h
L908
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
L914
Variable F : set(set(setsetset))(setsetset)
Primitive. The name In_rec_iii is a term of type set(setsetset).
L919
Hypothesis Fr : ∀X : set, ∀g h : set(setsetset), (∀xX, g x = h x)F X g = F X h
L921
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
L927
Variable F : set(set(setsetprop))(setsetprop)
Primitive. The name In_rec_iio is a term of type set(setsetprop).
L932
Hypothesis Fr : ∀X : set, ∀g h : set(setsetprop), (∀xX, g x = h x)F X g = F X h
L934
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
L940
Variable F : set(setVo 1)Vo 1
Primitive. The name In_rec_Vo1 is a term of type setVo 1.
L945
Hypothesis Fr : ∀X : set, ∀g h : setVo 1, (∀xX, g x = h x)F X g = F X h
L947
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
L953
Variable F : set(setVo 2)Vo 2
Primitive. The name In_rec_Vo2 is a term of type setVo 2.
L958
Hypothesis Fr : ∀X : set, ∀g h : setVo 2, (∀xX, g x = h x)F X g = F X h
L960
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
L966
Variable p : prop
L968
Variable f g : Vo 3
Primitive. The name If_Vo3 is a term of type Vo 3.
L972
Axiom. (If_Vo3_1) We take the following as an axiom:
pIf_Vo3 = f
L974
Axiom. (If_Vo3_0) We take the following as an axiom:
¬ pIf_Vo3 = g
End of Section If_Vo3
Beginning of Section Descr_Vo3
L980
Variable P : Vo 3prop
Primitive. The name Descr_Vo3 is a term of type Vo 3.
L985
Hypothesis Pex : ∃f : Vo 3, P f
L987
Hypothesis Puniq : ∀f g : Vo 3, P fP gf = g
L988
Axiom. (Descr_Vo3_prop) We take the following as an axiom:
End of Section Descr_Vo3
Beginning of Section EpsilonRec_Vo3
L994
Variable F : set(setVo 3)Vo 3
Primitive. The name In_rec_Vo3 is a term of type setVo 3.
L999
Hypothesis Fr : ∀X : set, ∀g h : setVo 3, (∀xX, g x = h x)F X g = F X h
L1001
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
L1007
Variable p : prop
L1009
Variable f g : Vo 4
Primitive. The name If_Vo4 is a term of type Vo 4.
L1013
Axiom. (If_Vo4_1) We take the following as an axiom:
pIf_Vo4 = f
L1015
Axiom. (If_Vo4_0) We take the following as an axiom:
¬ pIf_Vo4 = g
End of Section If_Vo4
Beginning of Section Descr_Vo4
L1020
Variable P : Vo 4prop
Primitive. The name Descr_Vo4 is a term of type Vo 4.
L1025
Hypothesis Pex : ∃f : Vo 4, P f
L1027
Hypothesis Puniq : ∀f g : Vo 4, P fP gf = g
L1028
Axiom. (Descr_Vo4_prop) We take the following as an axiom:
End of Section Descr_Vo4
Beginning of Section EpsilonRec_Vo4
L1034
Variable F : set(setVo 4)Vo 4
Primitive. The name In_rec_Vo4 is a term of type setVo 4.
L1039
Hypothesis Fr : ∀X : set, ∀g h : setVo 4, (∀xX, g x = h x)F X g = F X h
L1041
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
L1045
Definition. We define bigintersect to be λ(D : (setprop)prop)(x : set) ⇒ ∀P : setprop, D PP x.
L1047
Definition. We define reflexive to be λR ⇒ ∀x : set, R x x of type (setsetprop)prop.
L1049
Definition. We define irreflexive to be λR ⇒ ∀x : set, ¬ R x x of type (setsetprop)prop.
L1050
Definition. We define symmetric to be λR ⇒ ∀x y : set, R x yR y x of type (setsetprop)prop.
L1051
Definition. We define antisymmetric to be λR ⇒ ∀x y : set, R x yR y xx = y of type (setsetprop)prop.
L1052
Definition. We define transitive to be λR ⇒ ∀x y z : set, R x yR y zR x z of type (setsetprop)prop.
L1053
Definition. We define eqreln to be λR ⇒ reflexive R symmetric R transitive R of type (setsetprop)prop.
L1054
Definition. We define per to be λR ⇒ symmetric R transitive R of type (setsetprop)prop.
L1055
Definition. We define linear to be λR ⇒ ∀x y : set, R x y R y x of type (setsetprop)prop.
L1056
Definition. We define trichotomous_or to be λR ⇒ ∀x y : set, R x y x = y R y x of type (setsetprop)prop.
L1057
Definition. We define partialorder to be λR ⇒ reflexive R antisymmetric R transitive R of type (setsetprop)prop.
L1058
Definition. We define totalorder to be λR ⇒ partialorder R linear R of type (setsetprop)prop.
L1059
Definition. We define strictpartialorder to be λR ⇒ irreflexive R transitive R of type (setsetprop)prop.
L1060
Definition. We define stricttotalorder to be λR ⇒ strictpartialorder R trichotomous_or R of type (setsetprop)prop.
L1061
Axiom. (per_sym) We take the following as an axiom:
∀R : setsetprop, per Rsymmetric R
L1063
Axiom. (per_tra) We take the following as an axiom:
∀R : setsetprop, per Rtransitive R
L1065
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
L1067
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
L1069
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
L1071
Axiom. (per_ref1) We take the following as an axiom:
∀R : setsetprop, per R∀x y : set, R x yR x x
L1073
Axiom. (per_ref2) We take the following as an axiom:
∀R : setsetprop, per R∀x y : set, R x yR y y
L1075
Axiom. (partialorder_strictpartialorder) We take the following as an axiom:
∀R : setsetprop, partialorder Rstrictpartialorder (λx y ⇒ R x y x y)
L1078
Definition. We define reflclos to be λR x y ⇒ R x y x = y of type (setsetprop)(setsetprop).
L1080
Axiom. (reflclos_refl) We take the following as an axiom:
∀R : setsetprop, reflexive (reflclos R)
L1082
Axiom. (reflclos_min) We take the following as an axiom:
∀R S : setsetprop, R Sreflexive Sreflclos R S
L1084
Axiom. (strictpartialorder_partialorder_reflclos) We take the following as an axiom:
∀R : setsetprop, strictpartialorder Rpartialorder (reflclos R)
L1086
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.
L1094
Axiom. (ZermeloWO_Eps) We take the following as an axiom:
∀a : set, (Eps_i (ZermeloWO a)) = a
L1096
Axiom. (ZermeloWO_ref) We take the following as an axiom:
L1097
Axiom. (ZermeloWO_lin) We take the following as an axiom:
L1098
Axiom. (ZermeloWO_tra) We take the following as an axiom:
L1099
Axiom. (ZermeloWO_antisym) We take the following as an axiom:
L1100
Axiom. (ZermeloWO_partialorder) We take the following as an axiom:
L1101
Axiom. (ZermeloWO_totalorder) We take the following as an axiom:
L1102
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
L1103
L1105
L1107
L1108
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
L1109
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)
L1113
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
L1119
Axiom. (eq_imp_or) We take the following as an axiom:
(λx y : prop(xy)) = (λx y : prop(¬ x y))
L1121
Axiom. (famunion_Empty) We take the following as an axiom:
∀F : setset, (x0F x) = 0
L1123
Axiom. (Empty_or_ex) We take the following as an axiom:
∀X : set, X = Empty ∃x : set, x X
L1125
Axiom. (nIn_0_0) We take the following as an axiom:
L1127
Axiom. (nIn_1_0) We take the following as an axiom:
L1128
Axiom. (nIn_2_0) We take the following as an axiom:
L1129
Axiom. (nIn_1_1) We take the following as an axiom:
L1130
Axiom. (nIn_2_2) We take the following as an axiom:
L1131
Axiom. (Subq_0_0) We take the following as an axiom:
L1132
Axiom. (Subq_0_1) We take the following as an axiom:
L1133
Axiom. (Subq_0_2) We take the following as an axiom:
L1134
Axiom. (nSubq_1_0) We take the following as an axiom:
L1135
Axiom. (Subq_1_1) We take the following as an axiom:
L1136
Axiom. (Subq_1_2) We take the following as an axiom:
L1137
Axiom. (nSubq_2_0) We take the following as an axiom:
L1138
Axiom. (nSubq_2_1) We take the following as an axiom:
L1139
Axiom. (Subq_2_2) We take the following as an axiom:
L1140
Axiom. (In_0_7) We take the following as an axiom:
L1141
Axiom. (In_1_7) We take the following as an axiom:
L1142
Axiom. (In_2_7) We take the following as an axiom:
L1143
Axiom. (In_3_7) We take the following as an axiom:
L1144
Axiom. (In_4_7) We take the following as an axiom:
L1145
Axiom. (In_5_7) We take the following as an axiom:
L1146
Axiom. (In_6_7) We take the following as an axiom:
L1147
Axiom. (In_0_8) We take the following as an axiom:
L1148
Axiom. (In_1_8) We take the following as an axiom:
L1149
Axiom. (In_2_8) We take the following as an axiom:
L1150
Axiom. (In_3_8) We take the following as an axiom:
L1151
Axiom. (In_4_8) We take the following as an axiom:
L1152
Axiom. (In_5_8) We take the following as an axiom:
L1153
Axiom. (In_6_8) We take the following as an axiom:
L1154
Axiom. (In_7_8) We take the following as an axiom:
L1155
Axiom. (In_0_9) We take the following as an axiom:
L1156
Axiom. (In_1_9) We take the following as an axiom:
L1157
Axiom. (In_2_9) We take the following as an axiom:
L1158
Axiom. (In_3_9) We take the following as an axiom:
L1159
Axiom. (In_4_9) We take the following as an axiom:
L1160
Axiom. (In_5_9) We take the following as an axiom:
L1161
Axiom. (In_6_9) We take the following as an axiom:
L1162
Axiom. (In_7_9) We take the following as an axiom:
L1163
Axiom. (In_8_9) We take the following as an axiom:
Beginning of Section NatRec
L1166
Variable z : set
L1168
Variable f : setsetset
L1169
Let F : set(setset)setλn g ⇒ if n n then f ( n) (g ( n)) else z
L1170
Definition. We define nat_primrec to be In_rec_i F of type setset.
L1172
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
L1174
Axiom. (nat_primrec_0) We take the following as an axiom:
L1176
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
L1182
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.
L1186
Axiom. (add_nat_0R) We take the following as an axiom:
∀n : set, n + 0 = n
L1188
Axiom. (add_nat_SR) We take the following as an axiom:
∀n m : set, nat_p mn + ordsucc m = ordsucc (n + m)
L1190
Axiom. (add_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n + m)
L1192
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)
L1194
Axiom. (add_nat_0L) We take the following as an axiom:
∀m : set, nat_p m0 + m = m
L1196
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)
L1198
Axiom. (add_nat_com) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mn + m = m + n
L1200
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.
L1204
Axiom. (mul_nat_0R) We take the following as an axiom:
∀n : set, n * 0 = 0
L1206
Axiom. (mul_nat_SR) We take the following as an axiom:
∀n m : set, nat_p mn * ordsucc m = n + n * m
L1208
Axiom. (mul_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n * m)
L1210
Axiom. (mul_nat_0L) We take the following as an axiom:
∀m : set, nat_p m0 * m = 0
L1212
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
L1214
Axiom. (mul_nat_com) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mn * m = m * n
L1216
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
L1218
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
L1220
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)
L1222
Axiom. (add_nat_1_1_2) We take the following as an axiom:
1 + 1 = 2
L1224
Definition. We define divides_nat to be λm n ⇒ m omega n omega ∃komega, m * k = n of type setsetprop.
L1227
Definition. We define prime_nat to be λn ⇒ n omega 1 n ∀komega, divides_nat k nk = 1 k = n of type setprop.
L1230
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.
L1232
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.
L1237
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.
L1241
Definition. We define even_nat to be λn ⇒ n omega ∃momega, n = 2 * m of type setprop.
L1243
Definition. We define odd_nat to be λn ⇒ n omega ∀momega, n 2 * m of type setprop.
L1244
Definition. We define nat_factorial to be λn ⇒ nat_primrec 1 (λk r ⇒ ordsucc k * r) n of type setset.
End of Section NatArith
L1248
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)
L1250
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
L1252
Axiom. (cases_7) We take the following as an axiom:
∀i7, ∀p : setprop, p 0p 1p 2p 3p 4p 5p 6p i
L1254
Axiom. (cases_8) We take the following as an axiom:
∀i8, ∀p : setprop, p 0p 1p 2p 3p 4p 5p 6p 7p i
L1255
Axiom. (cases_9) We take the following as an axiom:
∀i9, ∀p : setprop, p 0p 1p 2p 3p 4p 5p 6p 7p 8p i
L1256
Axiom. (nIn_2_1) We take the following as an axiom:
L1258
Axiom. (neq_6_0) We take the following as an axiom:
L1259
Axiom. (neq_6_1) We take the following as an axiom:
L1260
Axiom. (neq_6_2) We take the following as an axiom:
L1261
Axiom. (neq_6_3) We take the following as an axiom:
L1262
Axiom. (neq_6_4) We take the following as an axiom:
L1263
Axiom. (neq_6_5) We take the following as an axiom:
L1264
Axiom. (neq_7_0) We take the following as an axiom:
L1265
Axiom. (neq_7_1) We take the following as an axiom:
L1266
Axiom. (neq_7_2) We take the following as an axiom:
L1267
Axiom. (neq_7_3) We take the following as an axiom:
L1268
Axiom. (neq_7_4) We take the following as an axiom:
L1269
Axiom. (neq_7_5) We take the following as an axiom:
L1270
Axiom. (neq_7_6) We take the following as an axiom:
L1271
Axiom. (neq_8_0) We take the following as an axiom:
L1272
Axiom. (neq_8_1) We take the following as an axiom:
L1273
Axiom. (neq_8_2) We take the following as an axiom:
L1274
Axiom. (neq_8_3) We take the following as an axiom:
L1275
Axiom. (neq_8_4) We take the following as an axiom:
L1276
Axiom. (neq_8_5) We take the following as an axiom:
L1277
Axiom. (neq_8_6) We take the following as an axiom:
L1278
Axiom. (neq_8_7) We take the following as an axiom:
L1279
Axiom. (neq_9_0) We take the following as an axiom:
L1280
Axiom. (neq_9_1) We take the following as an axiom:
L1281
Axiom. (neq_9_2) We take the following as an axiom:
L1282
Axiom. (neq_9_3) We take the following as an axiom:
L1283
Axiom. (neq_9_4) We take the following as an axiom:
L1284
Axiom. (neq_9_5) We take the following as an axiom:
L1285
Axiom. (neq_9_6) We take the following as an axiom:
L1286
Axiom. (neq_9_7) We take the following as an axiom:
L1287
Axiom. (neq_9_8) We take the following as an axiom:
L1288
Axiom. (Subq_1_Sing0) We take the following as an axiom:
L1289
Axiom. (Subq_Sing0_1) We take the following as an axiom:
L1290
Axiom. (eq_1_Sing0) We take the following as an axiom:
L1291
Axiom. (Subq_2_UPair01) We take the following as an axiom:
L1292
Axiom. (Subq_UPair01_2) We take the following as an axiom:
L1293
Axiom. (eq_2_UPair01) We take the following as an axiom:
L1294
Axiom. (ordinal_ind) We take the following as an axiom:
∀p : setprop, (∀alpha, ordinal alpha(∀betaalpha, p beta)p alpha)∀alpha, ordinal alphap alpha
L1298
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
L1300
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
L1302
Axiom. (ordinal_trichotomy) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal betaexactly1of3 (alpha beta) (alpha = beta) (beta alpha)
L1305
Definition. We define Inj1 to be In_rec_i (λX f ⇒ {0} {f x|xX}) of type setset.
L1308
Axiom. (Inj1_eq) We take the following as an axiom:
∀X : set, Inj1 X = {0} {Inj1 x|xX}
L1310
Axiom. (Inj1I1) We take the following as an axiom:
∀X : set, 0 Inj1 X
L1311
Axiom. (Inj1I2) We take the following as an axiom:
∀X x : set, x XInj1 x Inj1 X
L1312
Axiom. (Inj1E) We take the following as an axiom:
∀X y : set, y Inj1 Xy = 0 ∃xX, y = Inj1 x
L1313
Axiom. (Inj1NE1) We take the following as an axiom:
∀x : set, Inj1 x 0
L1314
Axiom. (Inj1NE2) We take the following as an axiom:
∀x : set, Inj1 x {0}
L1315
Definition. We define Inj0 to be λX ⇒ {Inj1 x|xX} of type setset.
L1318
Axiom. (Inj0I) We take the following as an axiom:
∀X x : set, x XInj1 x Inj0 X
L1320
Axiom. (Inj0E) We take the following as an axiom:
∀X y : set, y Inj0 X∃x : set, x X y = Inj1 x
L1321
Definition. We define Unj to be In_rec_i (λX f ⇒ {f x|xX {0}}) of type setset.
L1324
Axiom. (Unj_eq) We take the following as an axiom:
∀X : set, Unj X = {Unj x|xX {0}}
L1326
Axiom. (Unj_Inj1_eq) We take the following as an axiom:
∀X : set, Unj (Inj1 X) = X
L1327
Axiom. (Inj1_inj) We take the following as an axiom:
∀X Y : set, Inj1 X = Inj1 YX = Y
L1328
Axiom. (Unj_Inj0_eq) We take the following as an axiom:
∀X : set, Unj (Inj0 X) = X
L1329
Axiom. (Inj0_inj) We take the following as an axiom:
∀X Y : set, Inj0 X = Inj0 YX = Y
L1330
Axiom. (Inj0_0) We take the following as an axiom:
L1331
Axiom. (Inj0_Inj1_neq) We take the following as an axiom:
∀X Y : set, Inj0 X Inj1 Y
L1332
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.
L1338
Axiom. (Inj0_setsum) We take the following as an axiom:
∀X Y x : set, x XInj0 x X + Y
L1340
Axiom. (Inj1_setsum) We take the following as an axiom:
∀X Y y : set, y YInj1 y X + Y
L1341
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)
L1342
Axiom. (Inj0_setsum_0L) We take the following as an axiom:
∀X : set, 0 + X = Inj0 X
L1344
Axiom. (Inj1_setsum_1L) We take the following as an axiom:
∀X : set, 1 + X = Inj1 X
L1345
Axiom. (nat_setsum1_ordsucc) We take the following as an axiom:
∀n : set, nat_p n1 + n = ordsucc n
L1346
Axiom. (setsum_0_0) We take the following as an axiom:
0 + 0 = 0
L1347
Axiom. (setsum_1_0_1) We take the following as an axiom:
1 + 0 = 1
L1348
Axiom. (setsum_1_1_2) We take the following as an axiom:
1 + 1 = 2
L1349
Axiom. (setsum_mon) We take the following as an axiom:
∀X Y W Z, X WY ZX + Y W + Z
L1350
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.
L1354
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
L1357
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
L1362
Let pair ≝ setsum
L1364
Axiom. (pair_0_0) We take the following as an axiom:
pair 0 0 = 0
L1366
Axiom. (pair_1_0_1) We take the following as an axiom:
pair 1 0 = 1
L1367
Axiom. (pair_1_1_2) We take the following as an axiom:
pair 1 1 = 2
L1368
Axiom. (nat_pair1_ordsucc) We take the following as an axiom:
∀n : set, nat_p npair 1 n = ordsucc n
L1369
Definition. We define proj0 to be λZ ⇒ {Unj z|zZ, ∃x : set, Inj0 x = z} of type setset.
L1371
Definition. We define proj1 to be λZ ⇒ {Unj z|zZ, ∃y : set, Inj1 y = z} of type setset.
L1372
Axiom. (Inj0_pair_0_eq) We take the following as an axiom:
Inj0 = pair 0
L1374
Axiom. (Inj1_pair_1_eq) We take the following as an axiom:
Inj1 = pair 1
L1375
Axiom. (pairI0) We take the following as an axiom:
∀X Y x, x Xpair 0 x pair X Y
L1376
Axiom. (pairI1) We take the following as an axiom:
∀X Y y, y Ypair 1 y pair X Y
L1377
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)
L1378
Axiom. (pairE0) We take the following as an axiom:
∀X Y x, pair 0 x pair X Yx X
L1379
Axiom. (pairE1) We take the following as an axiom:
∀X Y y, pair 1 y pair X Yy Y
L1380
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)
L1381
Axiom. (pairSubq) We take the following as an axiom:
∀X Y W Z, X WY Zpair X Y pair W Z
L1382
Axiom. (proj0I) We take the following as an axiom:
∀w u : set, pair 0 u wu proj0 w
L1383
Axiom. (proj0E) We take the following as an axiom:
∀w u : set, u proj0 wpair 0 u w
L1384
Axiom. (proj1I) We take the following as an axiom:
∀w u : set, pair 1 u wu proj1 w
L1385
Axiom. (proj1E) We take the following as an axiom:
∀w u : set, u proj1 wpair 1 u w
L1386
Axiom. (proj0_pair_eq) We take the following as an axiom:
∀X Y : set, proj0 (pair X Y) = X
L1387
Axiom. (proj1_pair_eq) We take the following as an axiom:
∀X Y : set, proj1 (pair X Y) = Y
L1388
Axiom. (pair_inj) We take the following as an axiom:
∀x y w z : set, pair x y = pair w zx = w y = z
L1389
Axiom. (pair_eta_Subq_proj) We take the following as an axiom:
∀w, pair (proj0 w) (proj1 w) w
L1390
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.
L1397
Axiom. (pair_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀xX, ∀yY x, pair x y xX, Y x
L1399
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)
L1401
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
L1403
Axiom. (proj0_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)proj0 z X
L1405
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)
L1407
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
L1409
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
L1411
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
L1413
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
L1415
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
L1418
Axiom. (Sigma_mon0) We take the following as an axiom:
∀X Y : set, X Y∀Z : setset, (xX, Z x) yY, Z y
L1420
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
L1422
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
L1424
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.
L1429
Axiom. (pair_setprod) We take the following as an axiom:
∀X Y : set, ∀(xX)(yY), pair x y X Y
L1431
Axiom. (proj0_setprod) We take the following as an axiom:
∀X Y : set, ∀zX Y, proj0 z X
L1433
Axiom. (proj1_setprod) We take the following as an axiom:
∀X Y : set, ∀zX Y, proj1 z Y
L1435
Axiom. (pair_setprod_E0) We take the following as an axiom:
∀X Y x y : set, pair x y X Yx X
L1437
Axiom. (pair_setprod_E1) We take the following as an axiom:
∀X Y x y : set, pair x y X Yy Y
L1439
Let lam : set(setset)setSigma
L1442
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.
L1448
Axiom. (lamI) We take the following as an axiom:
∀X : set, ∀F : setset, ∀xX, ∀yF x, pair x y λxXF x
L1450
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
L1452
Axiom. (lamEq) We take the following as an axiom:
∀X : set, ∀F : setset, ∀z, z (λxXF x) ∃xX, ∃yF x, z = pair x y
L1454
Axiom. (apI) We take the following as an axiom:
∀f x y, pair x y fy f x
L1456
Axiom. (apE) We take the following as an axiom:
∀f x y, y f xpair x y f
L1458
Axiom. (apEq) We take the following as an axiom:
∀f x y, y f x pair x y f
L1460
Axiom. (beta) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x : set, x X(λxXF x) x = F x
L1462
Axiom. (beta0) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x : set, x X(λxXF x) x = 0
L1464
Axiom. (proj0_ap_0) We take the following as an axiom:
∀u, proj0 u = u 0
L1466
Axiom. (proj1_ap_1) We take the following as an axiom:
∀u, proj1 u = u 1
L1468
Axiom. (pair_ap_0) We take the following as an axiom:
∀x y : set, (pair x y) 0 = x
L1470
Axiom. (pair_ap_1) We take the following as an axiom:
∀x y : set, (pair x y) 1 = y
L1472
Axiom. (pair_ap_n2) We take the following as an axiom:
∀x y i : set, i 2(pair x y) i = 0
L1474
Axiom. (ap0_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)(z 0) X
L1476
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))
L1478
Definition. We define pair_p to be λu : setpair (u 0) (u 1) = u of type setprop.
L1481
Axiom. (pair_p_I) We take the following as an axiom:
∀x y, pair_p (pair x y)
L1483
Axiom. (pair_p_I2) We take the following as an axiom:
∀w, (∀uw, pair_p u u 0 2)pair_p w
L1485
Axiom. (pair_p_In_ap) We take the following as an axiom:
∀w f, pair_p ww fw 1 ap f (w 0)
L1487
Definition. We define tuple_p to be λn u ⇒ ∀zu, ∃in, ∃x : set, z = pair i x of type setsetprop.
L1490
Axiom. (pair_p_tuple2) We take the following as an axiom:
L1492
Axiom. (tuple_p_2_tuple) We take the following as an axiom:
∀x y : set, tuple_p 2 (x,y)
L1494
Axiom. (tuple_pair) We take the following as an axiom:
∀x y : set, pair x y = (x,y)
L1496
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.
L1501
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
L1504
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)
L1507
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)
L1510
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)
L1513
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
L1515
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
L1517
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
L1519
Axiom. (Pi_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀f : set, f (xX, Y x)(λxXf x) = f
L1521
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.
L1526
Axiom. (pair_tuple_fun) We take the following as an axiom:
pair = (λx y ⇒ (x,y))
L1528
Axiom. (lamI2) We take the following as an axiom:
∀X, ∀F : setset, ∀xX, ∀yF x, (x,y) λxXF x
L1530
Axiom. (lamE2) We take the following as an axiom:
∀X, ∀F : setset, ∀z : set, z (λxXF x)∃xX, ∃yF x, z = (x,y)
L1532
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
L1536
Variable x0 x1 : set
L1538
Axiom. (tuple_2_0_eq) We take the following as an axiom:
(x0,x1) 0 = x0
L1539
Axiom. (tuple_2_1_eq) We take the following as an axiom:
(x0,x1) 1 = x1
End of Section Tuples
L1543
Definition. We define Sep2 to be λX Y R ⇒ {uxX, Y x|R (u 0) (u 1)} of type set(setset)(setsetprop)set.
L1546
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
L1549
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
L1552
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
L1555
Axiom. (Sep2E'1) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, ∀x y, (x,y) Sep2 X Y Rx X
L1558
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
L1561
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
L1564
Definition. We define set_of_pairs to be λX ⇒ ∀xX, ∃y z, x = (y,z) of type setprop.
L1566
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
L1571
Axiom. (Sep2_set_of_pairs) We take the following as an axiom:
∀X, ∀Y : setset, ∀R : setsetprop, set_of_pairs (Sep2 X Y R)
L1574
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'
L1578
Axiom. (lam_ext_sub) We take the following as an axiom:
∀X, ∀F G : setset, (∀xX, F x = G x)(λxXF x) (λxXG x)
L1580
Axiom. (lam_ext) We take the following as an axiom:
∀X, ∀F G : setset, (∀xX, F x = G x)(λxXF x) = (λxXG x)
L1582
Axiom. (lam_eta) We take the following as an axiom:
∀X, ∀F : setset, (λxX(λxXF x) x) = (λxXF x)
L1584
Axiom. (tuple_2_eta) We take the following as an axiom:
∀x y, (λi2(x,y) i) = (x,y)
L1586
Definition. We define lam2 to be λX Y F ⇒ λxXλyY xF x y of type set(setset)(setsetset)set.
L1589
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
L1591
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
L1595
Definition. We define encode_u to be lam of type set(setset)set.
L1597
Definition. We define decode_u to be ap of type setsetset.
L1598
Definition. We define encode_b to be λX F ⇒ lam2 X (λ_ ⇒ X) F of type set(setsetset)set.
L1600
Definition. We define decode_b to be λF x y ⇒ F x y of type setsetsetset.
L1601
Definition. We define encode_p to be λX P ⇒ Sep X P of type set(setprop)set.
L1603
Definition. We define decode_p to be λP x ⇒ x P of type setsetprop.
L1604
Definition. We define encode_r to be λX R ⇒ Sep2 X (λ_ ⇒ X) R of type set(setsetprop)set.
L1606
Definition. We define decode_r to be λR x y ⇒ (x,y) R of type setsetsetprop.
L1607
Definition. We define encode_c to be λX C ⇒ Sep (𝒫 X) (λU ⇒ (C (λx ⇒ x U))) of type set((setprop)prop)set.
L1609
Definition. We define decode_c to be λC U ⇒ ∃V, (∀x, U x x V) V C of type set(setprop)prop.
L1610
Axiom. (decode_encode_u) We take the following as an axiom:
∀X, ∀F : setset, ∀xX, decode_u (encode_u X F) x = F x
L1612
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'
L1614
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
L1616
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'
L1618
Axiom. (decode_encode_p) We take the following as an axiom:
∀X, ∀P : setprop, ∀xX, (decode_p (encode_p X P) x) = (P x)
L1620
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'
L1622
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)
L1624
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'
L1626
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)
L1628
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'
L1630
Axiom. (setprod_mon) We take the following as an axiom:
∀X Y : set, X Y∀Z W : set, Z WX Z Y W
L1632
Axiom. (setprod_mon0) We take the following as an axiom:
∀X Y : set, X Y∀Z : set, X Z Y Z
L1634
Axiom. (setprod_mon1) We take the following as an axiom:
∀X : set, ∀Z W : set, Z WX Z X W
L1636
Axiom. (pair_eta_Subq) We take the following as an axiom:
∀w, pair (w 0) (w 1) w
L1638
Axiom. (Sigma_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z(xX, Y x), pair (z 0) (z 1) = z
L1640
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}
L1642
Axiom. (tuple_p_3_tuple) We take the following as an axiom:
∀x y z : set, tuple_p 3 (x,y,z)
L1644
Axiom. (tuple_p_4_tuple) We take the following as an axiom:
∀x y z w : set, tuple_p 4 (x,y,z,w)
L1646
Axiom. (Pi_Power_1) We take the following as an axiom:
∀X : set, ∀Y : setset, (∀xX, Y x 𝒫 1)(xX, Y x) 𝒫 1
L1648
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
L1651
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
L1653
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
L1657
Axiom. (setexp_2_eq) We take the following as an axiom:
∀X : set, X X = X2
L1659
Axiom. (setexp_0_dom_mon) We take the following as an axiom:
∀A : set, 0 A∀X Y : set, X YAX AY
L1661
Axiom. (setexp_0_mon) We take the following as an axiom:
∀X Y A B : set, 0 BA BX YAX BY
L1663
Axiom. (nat_in_setexp_mon) We take the following as an axiom:
∀A : set, 0 A∀n, nat_p n∀mn, Am An
L1665
Axiom. (tupleI0) We take the following as an axiom:
∀X Y x, x X(0,x) (X,Y)
L1667
Axiom. (tupleI1) We take the following as an axiom:
∀X Y y, y Y(1,y) (X,Y)
L1669
Axiom. (tupleE) We take the following as an axiom:
∀X Y z, z (X,Y)(∃xX, z = (0,x)) (∃yY, z = (1,y))
L1671
Axiom. (tuple_2_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀xX, ∀yY x, (x,y) xX, Y x
L1673
Axiom. (tuple_2_setprod) We take the following as an axiom:
∀X : set, ∀Y : set, ∀xX, ∀yY, (x,y) X Y
L1675
Axiom. (tuple_Sigma_eta) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z(xX, Y x), (z 0,z 1) = z
L1677
Axiom. (apI2) We take the following as an axiom:
∀f x y, (x,y) fy f x
L1679
Axiom. (apE2) We take the following as an axiom:
∀f x y, y f x(x,y) f
L1681
Axiom. (ap_const_0) We take the following as an axiom:
∀x, 0 x = 0
L1683
Axiom. (tuple_2_in_A_2) We take the following as an axiom:
∀x y A, x Ay A(x,y) A2
L1685
Axiom. (tuple_2_bij_2) We take the following as an axiom:
∀x y, x 2y 2x ybij 2 2 (λi ⇒ (x,y) i)
L1687
Axiom. (tuple_3_eta) We take the following as an axiom:
∀x y z, (λi3(x,y,z) i) = (x,y,z)
L1689
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
L1693
Variable x0 x1 x2 : set
L1695
Axiom. (tuple_3_0_eq) We take the following as an axiom:
(x0,x1,x2) 0 = x0
L1697
Axiom. (tuple_3_1_eq) We take the following as an axiom:
(x0,x1,x2) 1 = x1
L1699
Axiom. (tuple_3_2_eq) We take the following as an axiom:
(x0,x1,x2) 2 = x2
L1701
Variable x3 : set
L1703
Axiom. (tuple_4_0_eq) We take the following as an axiom:
(x0,x1,x2,x3) 0 = x0
L1704
Axiom. (tuple_4_1_eq) We take the following as an axiom:
(x0,x1,x2,x3) 1 = x1
L1706
Axiom. (tuple_4_2_eq) We take the following as an axiom:
(x0,x1,x2,x3) 2 = x2
L1708
Axiom. (tuple_4_3_eq) We take the following as an axiom:
(x0,x1,x2,x3) 3 = x3
L1710
Variable x4 : set
L1712
Axiom. (tuple_5_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 0 = x0
L1714
Axiom. (tuple_5_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 1 = x1
L1716
Axiom. (tuple_5_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 2 = x2
L1718
Axiom. (tuple_5_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 3 = x3
L1720
Axiom. (tuple_5_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4) 4 = x4
L1722
Variable x5 : set
L1724
Axiom. (tuple_6_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 0 = x0
L1725
Axiom. (tuple_6_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 1 = x1
L1727
Axiom. (tuple_6_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 2 = x2
L1729
Axiom. (tuple_6_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 3 = x3
L1731
Axiom. (tuple_6_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 4 = x4
L1733
Axiom. (tuple_6_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5) 5 = x5
L1735
Variable x6 : set
L1737
Axiom. (tuple_7_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 0 = x0
L1738
Axiom. (tuple_7_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 1 = x1
L1740
Axiom. (tuple_7_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 2 = x2
L1742
Axiom. (tuple_7_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 3 = x3
L1744
Axiom. (tuple_7_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 4 = x4
L1746
Axiom. (tuple_7_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 5 = x5
L1748
Axiom. (tuple_7_6_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6) 6 = x6
L1750
Variable x7 : set
L1752
Axiom. (tuple_8_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 0 = x0
L1754
Axiom. (tuple_8_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 1 = x1
L1756
Axiom. (tuple_8_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 2 = x2
L1758
Axiom. (tuple_8_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 3 = x3
L1760
Axiom. (tuple_8_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 4 = x4
L1762
Axiom. (tuple_8_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 5 = x5
L1764
Axiom. (tuple_8_6_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 6 = x6
L1766
Axiom. (tuple_8_7_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7) 7 = x7
L1768
Variable x8 : set
L1770
Axiom. (tuple_9_0_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 0 = x0
L1771
Axiom. (tuple_9_1_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 1 = x1
L1773
Axiom. (tuple_9_2_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 2 = x2
L1775
Axiom. (tuple_9_3_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 3 = x3
L1777
Axiom. (tuple_9_4_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 4 = x4
L1779
Axiom. (tuple_9_5_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 5 = x5
L1781
Axiom. (tuple_9_6_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 6 = x6
L1783
Axiom. (tuple_9_7_eq) We take the following as an axiom:
(x0,x1,x2,x3,x4,x5,x6,x7,x8) 7 = x7
L1785
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.
L1803
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
L1805
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)
L1807
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
L1809
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)
L1811
Axiom. (iff_refl) We take the following as an axiom:
∀A : prop, A A
L1813
Axiom. (iff_sym) We take the following as an axiom:
∀A B : prop, (A B)(B A)
L1815
Axiom. (iff_trans) We take the following as an axiom:
∀A B C : prop, (A B)(B C)(A C)
L1817
Axiom. (not_or_and_demorgan) We take the following as an axiom:
∀A B : prop, ¬ (A B)¬ A ¬ B
L1819
Axiom. (and_not_or_demorgan) We take the following as an axiom:
∀A B : prop, ¬ A ¬ B¬ (A B)
L1821
Axiom. (not_ex_all_demorgan_i) We take the following as an axiom:
∀P : setprop, (¬ ∃x, P x)∀x, ¬ P x
L1823
Axiom. (not_all_ex_demorgan_i) We take the following as an axiom:
∀P : setprop, ¬ (∀x, P x)∃x, ¬ P x
L1825
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.
L1833
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.
L1841
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)
L1843
Definition. We define PNoEq_ to be λalpha p q ⇒ ∀betaalpha, p beta q beta of type set(setprop)(setprop)prop.
L1850
Axiom. (PNoEq_ref_) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p p
L1852
Axiom. (PNoEq_sym_) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoEq_ alpha p qPNoEq_ alpha q p
L1854
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
L1856
Axiom. (PNoEq_antimon_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alpha∀betaalpha, PNoEq_ alpha p qPNoEq_ beta p q
L1858
Definition. We define PNoLt_ to be λalpha p q ⇒ ∃betaalpha, PNoEq_ beta p q ¬ p beta q beta of type set(setprop)(setprop)prop.
L1861
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
L1864
Axiom. (PNoLt_irref_) We take the following as an axiom:
∀alpha, ∀p : setprop, ¬ PNoLt_ alpha p p
L1866
Axiom. (PNoLt_mon_) We take the following as an axiom:
∀p q : setprop, ∀alpha, ordinal alpha∀betaalpha, PNoLt_ beta p qPNoLt_ alpha p q
L1868
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
L1871
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.
L1876
Axiom. (PNoLtI1) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt_ (alpha beta) p qPNoLt alpha p beta q
L1879
Axiom. (PNoLtI2) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, alpha betaPNoEq_ alpha p qq alphaPNoLt alpha p beta q
L1882
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
L1885
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
L1893
Axiom. (PNoLtE2) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoLt alpha p alpha qPNoLt_ alpha p q
L1896
Axiom. (PNoLt_irref) We take the following as an axiom:
∀alpha, ∀p : setprop, ¬ PNoLt alpha p alpha p
L1898
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
L1902
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
L1904
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
L1906
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
L1908
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.
L1911
Axiom. (PNoLeI1) We take the following as an axiom:
∀alpha beta, ∀p q : setprop, PNoLt alpha p beta qPNoLe alpha p beta q
L1914
Axiom. (PNoLeI2) We take the following as an axiom:
∀alpha, ∀p q : setprop, PNoEq_ alpha p qPNoLe alpha p alpha q
L1917
Axiom. (PNoLe_ref) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoLe alpha p alpha p
L1919
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
L1923
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
L1925
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
L1927
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
L1929
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
L1931
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
L1933
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.
L1936
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.
L1939
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
L1943
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
L1945
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
L1947
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
L1951
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.
L1954
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)
L1957
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.
L1961
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.
L1965
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.
L1968
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
L1971
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
L1974
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
L1977
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
L1980
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
L1983
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
L1986
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.
L1989
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.
L1994
Axiom. (PNo_extend0_eq) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p (λdelta ⇒ p delta delta alpha)
L1996
Axiom. (PNo_extend1_eq) We take the following as an axiom:
∀alpha, ∀p : setprop, PNoEq_ alpha p (λdelta ⇒ p delta delta = alpha)
L1998
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)
L2004
Definition. We define PNo_lenbdd to be λalpha L ⇒ ∀beta, ∀p : setprop, L beta pbeta alpha of type set(set(setprop)prop)prop.
L2007
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)
L2012
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)
L2017
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
L2022
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
L2030
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.
L2034
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.
L2038
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.
L2041
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
L2044
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
L2047
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
L2050
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
L2054
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
L2058
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
L2062
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
L2067
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
L2075
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
L2083
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.
L2089
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
L2096
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.
L2099
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
L2106
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.
L2121
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)
L2128
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)
L2135
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)
L2142
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)
L2149
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
L2157
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
L2164
Definition. We define PNoCutL to be λalpha p beta q ⇒ beta alpha PNoLt beta q alpha p of type set(setprop)set(setprop)prop.
L2167
Definition. We define PNoCutR to be λalpha p beta q ⇒ beta alpha PNoLt alpha p beta q of type set(setprop)set(setprop)prop.
L2169
Axiom. (PNoCutL_lenbdd) We take the following as an axiom:
∀alpha, ∀p : setprop, PNo_lenbdd alpha (PNoCutL alpha p)
L2171
Axiom. (PNoCutR_lenbdd) We take the following as an axiom:
∀alpha, ∀p : setprop, PNo_lenbdd alpha (PNoCutR alpha p)
L2173
Axiom. (PNoCut_pwise) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNoLt_pwise (PNoCutL alpha p) (PNoCutR alpha p)
L2175
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
L2177
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
L2179
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
L2183
Let tag : setsetλalpha ⇒ SetAdjoin alpha {1}
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term tag.
L2186
Axiom. (not_TransSet_Sing1) We take the following as an axiom:
L2188
Axiom. (not_ordinal_Sing1) We take the following as an axiom:
L2190
Axiom. (tagged_not_ordinal) We take the following as an axiom:
∀y, ¬ ordinal (y ')
L2192
Axiom. (tagged_notin_ordinal) We take the following as an axiom:
∀alpha y, ordinal alpha(y ') alpha
L2194
Axiom. (tagged_eqE_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaalpha ' = beta 'alpha beta
L2196
Axiom. (tagged_eqE_eq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha ' = beta 'alpha = beta
L2198
Axiom. (tagged_ReplE) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betabeta ' {gamma '|gammaalpha}beta alpha
L2200
Axiom. (ordinal_notin_tagged_Repl) We take the following as an axiom:
∀alpha Y, ordinal alphaalpha {y '|yY}
L2202
Definition. We define SNoElts_ to be λalpha ⇒ alpha {beta '|betaalpha} of type setset.
L2204
Axiom. (SNoElts_mon) We take the following as an axiom:
∀alpha beta, alpha betaSNoElts_ alpha SNoElts_ beta
L2206
Definition. We define SNo_ to be λalpha x ⇒ x SNoElts_ alpha ∀betaalpha, exactly1of2 (beta ' x) (beta x) of type setsetprop.
L2210
Definition. We define PSNo to be λalpha p ⇒ {betaalpha|p beta} {beta '|betaalpha, ¬ p beta} of type set(setprop)set.
L2213
Axiom. (PNoEq_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, PNoEq_ alpha (λbeta ⇒ beta PSNo alpha p) p
L2215
Axiom. (SNo_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, SNo_ alpha (PSNo alpha p)
L2217
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.
L2222
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.
L2227
Axiom. (SNoLev_uniq_Subq) We take the following as an axiom:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha beta
L2229
Axiom. (SNoLev_uniq) We take the following as an axiom:
∀x alpha beta, ordinal alphaordinal betaSNo_ alpha xSNo_ beta xalpha = beta
L2231
Axiom. (SNoLev_prop) We take the following as an axiom:
∀x, SNo xordinal (SNoLev x) SNo_ (SNoLev x) x
L2233
Axiom. (SNoLev_ordinal) We take the following as an axiom:
∀x, SNo xordinal (SNoLev x)
L2235
Axiom. (SNoLev_) We take the following as an axiom:
∀x, SNo xSNo_ (SNoLev x) x
L2237
Axiom. (SNo_PSNo_eta) We take the following as an axiom:
∀x, SNo xx = PSNo (SNoLev x) (λbeta ⇒ beta x)
L2239
Axiom. (SNoLev_PSNo) We take the following as an axiom:
∀alpha, ordinal alpha∀p : setprop, SNoLev (PSNo alpha p) = alpha
L2241
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
L2243
Definition. We define SNoEq_ to be λalpha x y ⇒ PNoEq_ alpha (λbeta ⇒ beta x) (λbeta ⇒ beta y) of type setsetsetprop.
L2246
Axiom. (SNoEq_I) We take the following as an axiom:
∀alpha x y, (∀betaalpha, beta x beta y)SNoEq_ alpha x y
L2248
Axiom. (SNoEq_E) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x y∀betaalpha, beta x beta y
L2250
Axiom. (SNoEq_E1) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x y∀betaalpha, beta xbeta y
L2252
Axiom. (SNoEq_E2) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x y∀betaalpha, beta ybeta x
L2254
Axiom. (SNoEq_antimon_) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ∀x y, SNoEq_ alpha x ySNoEq_ beta x y
L2256
Axiom. (SNo_eq) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev x = SNoLev ySNoEq_ (SNoLev x) x yx = y
L2258
Let ctag : setsetλalpha ⇒ SetAdjoin alpha {2}
Notation. We use '' as a postfix operator with priority 100 corresponding to applying term ctag.
L2262
Axiom. (ctagged_not_ordinal) We take the following as an axiom:
∀y, ¬ ordinal (y '')
L2264
Axiom. (ctagged_notin_ordinal) We take the following as an axiom:
∀alpha y, ordinal alpha(y '') alpha
L2265
Axiom. (Sing2_notin_SingSing1) We take the following as an axiom:
L2266
Axiom. (ctagged_notin_SNo) We take the following as an axiom:
∀x y, SNo x(y '') x
L2268
Axiom. (ctagged_eqE_eq) We take the following as an axiom:
∀x y, SNo xSNo y∀ux, ∀vy, u '' = v ''u = v
L2269
Definition. We define SNo_pair to be λx y ⇒ x {u ''|uy} of type setsetset.
L2271
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
L2273
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
L2274
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
L2275
Axiom. (SNo_pair_0) We take the following as an axiom:
∀x, SNo_pair x 0 = x
End of Section TaggedSets
L2278
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.
L2283
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.
L2289
Axiom. (SNoLtLe) We take the following as an axiom:
∀x y, x < yx y
L2291
Axiom. (SNoLeE) We take the following as an axiom:
∀x y, SNo xSNo yx yx < y x = y
L2293
Axiom. (SNoEq_ref_) We take the following as an axiom:
∀alpha x, SNoEq_ alpha x x
L2295
Axiom. (SNoEq_sym_) We take the following as an axiom:
∀alpha x y, SNoEq_ alpha x ySNoEq_ alpha y x
L2297
Axiom. (SNoEq_tra_) We take the following as an axiom:
∀alpha x y z, SNoEq_ alpha x ySNoEq_ alpha y zSNoEq_ alpha x z
L2299
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
L2306
Axiom. (SNoLtI2) We take the following as an axiom:
∀x y, SNoLev x SNoLev ySNoEq_ (SNoLev x) x ySNoLev x yx < y
L2314
Axiom. (SNoLtI3) We take the following as an axiom:
∀x y, SNoLev y SNoLev xSNoEq_ (SNoLev y) x ySNoLev y xx < y
L2320
Axiom. (SNoLt_irref) We take the following as an axiom:
∀x, ¬ SNoLt x x
L2322
Axiom. (SNoLt_trichotomy_or) We take the following as an axiom:
∀x y, SNo xSNo yx < y x = y y < x
L2324
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
L2330
Axiom. (SNoLt_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < yy < zx < z
L2332
Axiom. (SNoLe_ref) We take the following as an axiom:
∀x, SNoLe x x
L2334
Axiom. (SNoLe_antisym) We take the following as an axiom:
∀x y, SNo xSNo yx yy xx = y
L2336
Axiom. (SNoLtLe_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < yy zx < z
L2338
Axiom. (SNoLeLt_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx yy < zx < z
L2340
Axiom. (SNoLe_tra) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx yy zx z
L2342
Axiom. (SNoLtLe_or) We take the following as an axiom:
∀x y, SNo xSNo yx < y y x
L2344
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
L2348
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
L2352
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.
L2355
Definition. We define SNoCutP to be λL R ⇒ (∀xL, SNo x) (∀yR, SNo y) (∀xL, ∀yR, x < y) of type setsetprop.
L2361
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)
L2368
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
L2378
Axiom. (SNoCutP_L_0) We take the following as an axiom:
∀L, (∀xL, SNo x)SNoCutP L 0
L2380
Axiom. (SNoCutP_0_R) We take the following as an axiom:
∀R, (∀xR, SNo x)SNoCutP 0 R
L2381
Axiom. (SNoCutP_0_0) We take the following as an axiom:
L2382
Axiom. (SNoCut_0_0) We take the following as an axiom:
L2383
Axiom. (ordinal_SNoLt_In) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha < betaalpha beta
L2385
Axiom. (ordinal_SNoLe_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha betaalpha beta
L2387
Definition. We define SNoS_ to be λalpha ⇒ {x𝒫 (SNoElts_ alpha)|∃betaalpha, SNo_ beta x} of type setset.
L2389
Axiom. (SNoS_E) We take the following as an axiom:
∀alpha, ordinal alpha∀xSNoS_ alpha, ∃betaalpha, SNo_ beta x
Beginning of Section TaggedSets2
L2393
Let tag : setsetλalpha ⇒ SetAdjoin alpha {1}
Notation. We use ' as a postfix operator with priority 100 corresponding to applying term tag.
L2396
Axiom. (SNoS_I) We take the following as an axiom:
∀alpha, ordinal alpha∀x, ∀betaalpha, SNo_ beta xx SNoS_ alpha
L2398
Axiom. (SNoS_I2) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev x SNoLev yx SNoS_ (SNoLev y)
L2400
Axiom. (SNoS_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha betaSNoS_ alpha SNoS_ beta
L2402
Axiom. (SNoLev_uniq2) We take the following as an axiom:
∀alpha, ordinal alpha∀x, SNo_ alpha xSNoLev x = alpha
L2404
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
L2409
Axiom. (SNoS_In_neq) We take the following as an axiom:
∀w, SNo w∀xSNoS_ (SNoLev w), x w
L2411
Axiom. (SNoS_SNoLev) We take the following as an axiom:
∀z, SNo zz SNoS_ (ordsucc (SNoLev z))
L2413
Definition. We define SNoL to be λz ⇒ {xSNoS_ (SNoLev z)|x < z} of type setset.
L2415
Definition. We define SNoR to be λz ⇒ {ySNoS_ (SNoLev z)|z < y} of type setset.
L2416
Axiom. (SNoCutP_SNoL_SNoR) We take the following as an axiom:
∀z, SNo zSNoCutP (SNoL z) (SNoR z)
L2418
Axiom. (SNoL_E) We take the following as an axiom:
∀x, SNo x∀wSNoL x, ∀p : prop, (SNo wSNoLev w SNoLev xw < xp)p
L2423
Axiom. (SNoR_E) We take the following as an axiom:
∀x, SNo x∀zSNoR x, ∀p : prop, (SNo zSNoLev z SNoLev xx < zp)p
L2428
Axiom. (SNoL_SNoS) We take the following as an axiom:
∀x, SNo x∀wSNoL x, w SNoS_ (SNoLev x)
L2430
Axiom. (SNoR_SNoS) We take the following as an axiom:
∀x, SNo x∀zSNoR x, z SNoS_ (SNoLev x)
L2431
Axiom. (SNoL_SNoS_) We take the following as an axiom:
∀z, SNoL z SNoS_ (SNoLev z)
L2432
Axiom. (SNoR_SNoS_) We take the following as an axiom:
∀z, SNoR z SNoS_ (SNoLev z)
L2433
Axiom. (SNoL_I) We take the following as an axiom:
∀z, SNo z∀x, SNo xSNoLev x SNoLev zx < zx SNoL z
L2435
Axiom. (SNoR_I) We take the following as an axiom:
∀z, SNo z∀y, SNo ySNoLev y SNoLev zz < yy SNoR z
L2437
Axiom. (SNo_eta) We take the following as an axiom:
∀z, SNo zz = SNoCut (SNoL z) (SNoR z)
L2439
Axiom. (SNoCutP_SNo_SNoCut) We take the following as an axiom:
∀L R, SNoCutP L RSNo (SNoCut L R)
L2441
Axiom. (SNoCutP_SNoCut_L) We take the following as an axiom:
∀L R, SNoCutP L R∀xL, x < SNoCut L R
L2443
Axiom. (SNoCutP_SNoCut_R) We take the following as an axiom:
∀L R, SNoCutP L R∀yR, SNoCut L R < y
L2445
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
L2452
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
L2457
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
L2464
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
L2471
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
L2482
Axiom. (ordinal_SNo_) We take the following as an axiom:
∀alpha, ordinal alphaSNo_ alpha alpha
L2484
Axiom. (ordinal_SNoL) We take the following as an axiom:
∀alpha, ordinal alphaSNoL alpha = SNoS_ alpha
L2486
Axiom. (ordinal_SNoR) We take the following as an axiom:
∀alpha, ordinal alphaSNoR alpha = Empty
L2487
Axiom. (ordinal_SNoCutP) We take the following as an axiom:
∀alpha, ordinal alphaSNoCutP (SNoS_ alpha) Empty
L2488
Axiom. (ordinal_SNoCut_eta) We take the following as an axiom:
∀alpha, ordinal alphaalpha = SNoCut (SNoS_ alpha) Empty
L2489
Axiom. (SNo_0) We take the following as an axiom:
L2491
Axiom. (SNoLev_0) We take the following as an axiom:
L2492
Axiom. (SNoL_0) We take the following as an axiom:
L2493
Axiom. (SNoR_0) We take the following as an axiom:
L2494
Axiom. (SNoL_1) We take the following as an axiom:
L2495
Axiom. (SNoR_1) We take the following as an axiom:
L2496
Axiom. (SNo_max_SNoLev) We take the following as an axiom:
∀x, SNo x(∀ySNoS_ (SNoLev x), y < x)SNoLev x = x
L2497
Axiom. (SNo_max_ordinal) We take the following as an axiom:
∀x, SNo x(∀ySNoS_ (SNoLev x), y < x)ordinal x
L2498
Definition. We define SNo_extend0 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ delta x delta SNoLev x) of type setset.
L2500
Definition. We define SNo_extend1 to be λx ⇒ PSNo (ordsucc (SNoLev x)) (λdelta ⇒ delta x delta = SNoLev x) of type setset.
L2502
Axiom. (SNo_extend0_SNo_) We take the following as an axiom:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend0 x)
L2504
Axiom. (SNo_extend1_SNo_) We take the following as an axiom:
∀x, SNo xSNo_ (ordsucc (SNoLev x)) (SNo_extend1 x)
L2506
Axiom. (SNo_extend0_SNo) We take the following as an axiom:
∀x, SNo xSNo (SNo_extend0 x)
L2508
Axiom. (SNo_extend1_SNo) We take the following as an axiom:
∀x, SNo xSNo (SNo_extend1 x)
L2510
Axiom. (SNo_extend0_SNoLev) We take the following as an axiom:
∀x, SNo xSNoLev (SNo_extend0 x) = ordsucc (SNoLev x)
L2512
Axiom. (SNo_extend1_SNoLev) We take the following as an axiom:
∀x, SNo xSNoLev (SNo_extend1 x) = ordsucc (SNoLev x)
L2514
Axiom. (SNo_extend0_nIn) We take the following as an axiom:
∀x, SNo xSNoLev x SNo_extend0 x
L2516
Axiom. (SNo_extend1_In) We take the following as an axiom:
∀x, SNo xSNoLev x SNo_extend1 x
L2518
Axiom. (SNo_extend0_SNoEq) We take the following as an axiom:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend0 x) x
L2520
Axiom. (SNo_extend1_SNoEq) We take the following as an axiom:
∀x, SNo xSNoEq_ (SNoLev x) (SNo_extend1 x) x
L2522
Axiom. (SNo_extend0_Lt) We take the following as an axiom:
∀x, SNo xSNo_extend0 x < x
L2524
Axiom. (SNo_extend1_Gt) We take the following as an axiom:
∀x, SNo xx < SNo_extend1 x
L2525
Definition. We define eps_ to be λn ⇒ {0} {(ordsucc m) '|mn} of type setset.
L2528
Axiom. (eps_ordinal_In_eq_0) We take the following as an axiom:
∀n alpha, ordinal alphaalpha eps_ nalpha = 0
L2530
Axiom. (eps_0_1) We take the following as an axiom:
L2531
Axiom. (SNo__eps_) We take the following as an axiom:
L2532
Axiom. (SNo_eps_) We take the following as an axiom:
L2533
Axiom. (SNoLev_eps_) We take the following as an axiom:
L2534
Axiom. (SNo_eps_SNoS_omega) We take the following as an axiom:
L2535
Axiom. (SNo_eps_decr) We take the following as an axiom:
∀nomega, ∀mn, eps_ n < eps_ m
L2536
Axiom. (SNo_eps_pos) We take the following as an axiom:
L2537
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
L2540
Axiom. (ordinal_SNo) We take the following as an axiom:
∀alpha, ordinal alphaSNo alpha
L2542
Axiom. (ordinal_SNoLev) We take the following as an axiom:
∀alpha, ordinal alphaSNoLev alpha = alpha
L2544
Axiom. (ordinal_SNoLev_max) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z alphaz < alpha
L2546
Axiom. (ordinal_In_SNoLt) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, beta < alpha
L2548
Axiom. (ordinal_SNoLev_max_2) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z ordsucc alphaz alpha
L2550
Axiom. (ordinal_Subq_SNoLe) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha betaalpha beta
L2552
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
L2561
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
L2572
Variable F : set(setset)set
Primitive. The name SNo_rec_i is a term of type setset.
L2577
Hypothesis Fr : ∀z, SNo z∀g h : setset, (∀wSNoS_ (SNoLev z), g w = h w)F z g = F z h
L2581
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
L2587
Variable F : set(set(setset))(setset)
Primitive. The name SNo_rec_ii is a term of type set(setset).
L2592
Hypothesis Fr : ∀z, SNo z∀g h : set(setset), (∀wSNoS_ (SNoLev z), g w = h w)F z g = F z h
L2596
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
L2602
Variable F : setset(setsetset)set
Primitive. The name SNo_rec2 is a term of type setsetset.
L2607
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
L2613
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
L2618
Axiom. (SNo_ordinal_ind) We take the following as an axiom:
∀P : setprop, (∀alpha, ordinal alpha∀xSNoS_ alpha, P x)(∀x, SNo xP x)
L2623
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)
L2630
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)
L2638
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)
L2643
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
L2651
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
L2663
Axiom. (SNo_1) We take the following as an axiom:
L2665
Axiom. (SNo_2) We take the following as an axiom:
L2666
Axiom. (SNo_omega) We take the following as an axiom:
L2667
Axiom. (SNoLt_0_1) We take the following as an axiom:
0 < 1
L2668
Axiom. (SNoLt_0_2) We take the following as an axiom:
0 < 2
L2669
Axiom. (SNoLt_1_2) We take the following as an axiom:
1 < 2
L2670
Axiom. (SNoLev_0_eq_0) We take the following as an axiom:
∀x, SNo xSNoLev x = 0x = 0
L2672
Axiom. (restr_SNo_) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNo_ alpha (x SNoElts_ alpha)
L2673
Axiom. (restr_SNo) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNo (x SNoElts_ alpha)
L2674
Axiom. (restr_SNoLev) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNoLev (x SNoElts_ alpha) = alpha
L2675
Axiom. (restr_SNoEq) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, SNoEq_ alpha (x SNoElts_ alpha) x
L2676
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.
L2684
Axiom. (pack_e_0_eq) We take the following as an axiom:
∀S X, ∀c : set, S = pack_e X cX = S 0
L2686
Axiom. (pack_e_0_eq2) We take the following as an axiom:
∀X, ∀c : set, X = pack_e X c 0
L2688
Axiom. (pack_e_1_eq) We take the following as an axiom:
∀S X, ∀c : set, S = pack_e X cc = S 1
L2690
Axiom. (pack_e_1_eq2) We take the following as an axiom:
∀X, ∀c : set, c = pack_e X c 1
L2692
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'
L2694
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.
L2696
Axiom. (pack_struct_e_I) We take the following as an axiom:
∀X, ∀c : set, c Xstruct_e (pack_e X c)
L2698
Axiom. (pack_struct_e_E1) We take the following as an axiom:
∀X, ∀c : set, struct_e (pack_e X c)c X
L2700
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.
L2705
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.
L2711
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.
L2717
Axiom. (pack_u_0_eq) We take the following as an axiom:
∀S X, ∀F : setset, S = pack_u X FX = S 0
L2719
Axiom. (pack_u_0_eq2) We take the following as an axiom:
∀X, ∀F : setset, X = pack_u X F 0
L2721
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
L2723
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
L2725
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
L2727
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'
L2731
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.
L2733
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)
L2735
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
L2737
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.
L2742
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.
L2751
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.
L2760
Axiom. (pack_b_0_eq) We take the following as an axiom:
∀S X, ∀F : setsetset, S = pack_b X FX = S 0
L2762
Axiom. (pack_b_0_eq2) We take the following as an axiom:
∀X, ∀F : setsetset, X = pack_b X F 0
L2764
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
L2766
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
L2768
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
L2770
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'
L2774
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.
L2776
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)
L2778
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
L2780
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.
L2785
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.
L2794
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.
L2803
Axiom. (pack_p_0_eq) We take the following as an axiom:
∀S X, ∀P : setprop, S = pack_p X PX = S 0
L2805
Axiom. (pack_p_0_eq2) We take the following as an axiom:
∀X, ∀P : setprop, X = pack_p X P 0
L2807
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
L2809
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
L2811
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
L2813
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'
L2817
Definition. We define struct_p to be λS ⇒ ∀q : setprop, (∀X : set, ∀P : setprop, q (pack_p X P))q S of type setprop.
L2819
Axiom. (pack_struct_p_I) We take the following as an axiom:
∀X, ∀P : setprop, struct_p (pack_p X P)
L2821
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.
L2826
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.
L2835
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.
L2844
Axiom. (pack_r_0_eq) We take the following as an axiom:
∀S X, ∀R : setsetprop, S = pack_r X RX = S 0
L2846
Axiom. (pack_r_0_eq2) We take the following as an axiom:
∀X, ∀R : setsetprop, X = pack_r X R 0
L2848
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
L2850
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
L2852
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
L2854
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'
L2858
Definition. We define struct_r to be λS ⇒ ∀q : setprop, (∀X : set, ∀R : setsetprop, q (pack_r X R))q S of type setprop.
L2860
Axiom. (pack_struct_r_I) We take the following as an axiom:
∀X, ∀R : setsetprop, struct_r (pack_r X R)
L2862
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.
L2867
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.
L2876
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.
L2885
Axiom. (pack_c_0_eq) We take the following as an axiom:
∀S X, ∀C : (setprop)prop, S = pack_c X CX = S 0
L2887
Axiom. (pack_c_0_eq2) We take the following as an axiom:
∀X, ∀C : (setprop)prop, X = pack_c X C 0
L2889
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
L2891
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
L2893
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
L2895
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'
L2899
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.
L2901
Axiom. (pack_struct_c_I) We take the following as an axiom:
∀X, ∀C : (setprop)prop, struct_c (pack_c X C)
L2903
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.
L2908
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.
L2917
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.
L2926
Axiom. (canonical_elt_rel) We take the following as an axiom:
∀R : setsetprop, ∀x : set, R x xR x (canonical_elt R x)
L2927
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
L2928
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.
L2932
Axiom. (quotient_prop1) We take the following as an axiom:
∀R : setsetprop, ∀x : set, quotient R xR x x
L2934
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.
L2939
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)
L2940
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
L2944
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.
L2951
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
L2955
Axiom. (quotient_def_prop1) We take the following as an axiom:
∀R : setsetprop, ∀d : setset, ∀x : set, quotient_def R d xR x x
L2959
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
L2970
Variable N : set
L2972
Variable base : set
L2973
Variable S : setset
Primitive. The name explicit_Nats is a term of type prop.
L2977
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
L2985
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
L2995
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.
L3004
Axiom. (explicit_Nats_primrec_base) We take the following as an axiom:
∀a, ∀f : setsetset, explicit_Natsexplicit_Nats_primrec a f base = a
L3007
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)
L3011
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
L3018
Axiom. (explicit_Nats_omega) We take the following as an axiom:
Beginning of Section explicit_Nats_zero
L3022
Variable N : set
L3024
Variable zero : set
L3025
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.
L3036
Hypothesis HN : explicit_Nats N zero S
L3038
Axiom. (explicit_Nats_zero_plus_N) We take the following as an axiom:
∀n mN, n + m N
L3040
Axiom. (explicit_Nats_zero_plus_0L) We take the following as an axiom:
∀mN, zero + m = m
L3041
Axiom. (explicit_Nats_zero_plus_SL) We take the following as an axiom:
∀n mN, S n + m = S (n + m)
L3042
Axiom. (explicit_Nats_zero_mult_N) We take the following as an axiom:
∀n mN, n * m N
L3043
Axiom. (explicit_Nats_zero_mult_0L) We take the following as an axiom:
∀mN, zero * m = zero
L3044
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
L3049
Variable N : set
L3051
Variable one : set
L3052
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.
L3068
Hypothesis HN : explicit_Nats N one S
L3070
Axiom. (explicit_Nats_one_plus_N) We take the following as an axiom:
∀n mN, n + m N
L3072
Axiom. (explicit_Nats_one_plus_1L) We take the following as an axiom:
∀mN, one + m = S m
L3073
Axiom. (explicit_Nats_one_plus_SL) We take the following as an axiom:
∀n mN, S n + m = S (n + m)
L3074
Axiom. (explicit_Nats_one_mult_N) We take the following as an axiom:
∀n mN, n * m N
L3075
Axiom. (explicit_Nats_one_mult_1L) We take the following as an axiom:
∀mN, one * m = m
L3076
Axiom. (explicit_Nats_one_mult_SL) We take the following as an axiom:
∀n mN, S n * m = m + n * m
L3077
Axiom. (explicit_Nats_one_exp_N) We take the following as an axiom:
∀n mN, n ^ m N
L3078
Axiom. (explicit_Nats_one_exp_1L) We take the following as an axiom:
∀nN, n ^ one = n
L3079
Axiom. (explicit_Nats_one_exp_SL) We take the following as an axiom:
∀n mN, n ^ (S m) = n * n ^ m
L3080
Definition. We define explicit_Nats_one_lt to be λm n ⇒ m N n N ∃kN, m + k = n of type setsetprop.
L3082
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
L3092
Variable N : set
L3094
Variable base : set
L3095
Variable S : setset
L3096
Variable N' : set
L3097
Variable base' : set
L3098
Variable S' : setset
L3099
Variable f : setset
L3101
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
L3107
Variable R : set
L3109
Variable plus : setsetset
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term plus.
L3112
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
L3129
Variable G : set
Beginning of Section Group1Explicit
L3133
Variable op : setsetset
L3136
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.
L3143
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'
L3145
Hypothesis HG : explicit_Group
L3147
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.
L3149
L3151
Definition. We define explicit_Group_inverse to be λa ⇒ Eps_i (λb ⇒ b G (a * b = e b * a = e)) of type setset.
L3155
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)
L3157
Axiom. (explicit_Group_identity_in) We take the following as an axiom:
e G
L3159
Axiom. (explicit_Group_identity_lid) We take the following as an axiom:
∀aG, e * a = a
L3161
Axiom. (explicit_Group_identity_rid) We take the following as an axiom:
∀aG, a * e = a
L3163
Axiom. (explicit_Group_identity_invex) We take the following as an axiom:
∀aG, ∃bG, a * b = e b * a = e
L3165
Axiom. (explicit_Group_inverse_prop) We take the following as an axiom:
∀aG, a - G (a * a - = e a - * a = e)
L3167
Axiom. (explicit_Group_inverse_in) We take the following as an axiom:
∀aG, a - G
L3169
Axiom. (explicit_Group_inverse_rinv) We take the following as an axiom:
∀aG, a * a - = e
L3171
Axiom. (explicit_Group_inverse_linv) We take the following as an axiom:
∀aG, a - * a = e
L3173
Axiom. (explicit_Group_lcancel) We take the following as an axiom:
∀a b cG, a * b = a * cb = c
L3175
Axiom. (explicit_Group_rcancel) We take the following as an axiom:
∀a b cG, a * c = b * ca = b
L3177
Axiom. (explicit_Group_rinv_rev) We take the following as an axiom:
∀a bG, a * b = eb = a -
L3179
Axiom. (explicit_Group_inv_com) We take the following as an axiom:
∀a bG, a * b = eb * a = e
L3181
Axiom. (explicit_Group_inv_rev2) We take the following as an axiom:
∀a bG, (a * b) * (a * b) = e(b * a) * (b * a) = e
L3183
Definition. We define explicit_abelian to be ∀a bG, a * b = b * a of type prop.
End of Section Group1Explicit
Beginning of Section Group1Explicit2
L3189
Variable op : setsetset
Beginning of Section Group1Explicit2RepIndep
L3194
Variable op' : setsetset
L3199
Axiom. (explicit_Group_repindep_imp) We take the following as an axiom:
L3201
L3203
L3204
Axiom. (explicit_Group_identity_repindep) We take the following as an axiom:
explicit_Group ope = e'
L3210
Let inv ≝ explicit_Group_inverse op
L3212
Let inv' ≝ explicit_Group_inverse op'
L3213
Axiom. (explicit_Group_inverse_repindep) We take the following as an axiom:
explicit_Group op∀aG, inv a = inv' a
L3215
Axiom. (explicit_abelian_repindep_imp) We take the following as an axiom:
End of Section Group1Explicit2RepIndep
End of Section Group1Explicit2
Beginning of Section Group1Explicit3RepIndep
L3223
Variable op : setsetset
L3226
Variable op' : setsetset
L3231
Axiom. (explicit_Group_repindep) We take the following as an axiom:
L3233
Axiom. (explicit_abelian_repindep) We take the following as an axiom:
End of Section Group1Explicit3RepIndep
End of Section Group1
L3239
Definition. We define Group to be λG ⇒ struct_b G unpack_b_o G explicit_Group of type setprop.
L3243
Definition. We define abelian_Group to be λG ⇒ Group G unpack_b_o G explicit_abelian of type setprop.
L3246
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
L3248
Axiom. (GroupI) We take the following as an axiom:
∀G, ∀op : setsetset, explicit_Group G opGroup (pack_b G op)
L3250
Axiom. (GroupE) We take the following as an axiom:
∀G, ∀op : setsetset, Group (pack_b G op)explicit_Group G op
L3252
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
L3254
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
L3259
Variable G : set
L3261
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.
L3264
Variable H : set
L3266
L3268
Definition. We define explicit_normal to be ∀xG, {x * a * x -|aH} H of type prop.
L3270
Hypothesis HG : Group (pack_b G op)
L3272
L3274
Axiom. (explicit_subgroup_test) We take the following as an axiom:
H Ge H(∀aH, a - H)(∀a bH, a * b H)explicit_subgroup
L3276
Hypothesis HSG : explicit_subgroup
L3278
Let e' ≝ explicit_Group_identity H op
L3279
Axiom. (explicit_subgroup_identity_eq) We take the following as an axiom:
e = e'
L3281
Axiom. (explicit_subgroup_inv_eq) We take the following as an axiom:
L3283
Axiom. (explicit_abelian_normal) We take the following as an axiom:
End of Section Group2
Beginning of Section Group3
L3289
Variable H G : set
L3291
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'.
L3296
Hypothesis HG : explicit_Group G op
L3298
Hypothesis HHG : H G
L3299
Hypothesis Hopop' : ∀a bG, a * b = a b
L3300
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
L3304
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.
L3314
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.
L3323
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.
L3330
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
L3335
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
L3343
Axiom. (abelian_group_normal_subgroup) We take the following as an axiom:
∀G, abelian_Group G∀H, H Gnormal_subgroup H G
L3345
Axiom. (subgroup_transitive) We take the following as an axiom:
∀K H G, K HH GK G
Beginning of Section Group4
L3349
Variable A : set
L3351
Let G ≝ {fAA|bij A A (λx ⇒ f x)}
L3353
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.
L3355
Let id ≝ λx ∈ Ax
L3357
Axiom. (explicit_Group_symgroup) We take the following as an axiom:
L3359
Axiom. (explicit_Group_symgroup_id_eq) We take the following as an axiom:
L3361
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)
L3363
Variable B : set
L3365
Let H ≝ {fAA|bij A A (λx ⇒ f x) ∀xB, f x = x}
L3367
Axiom. (explicit_subgroup_symgroup_fixing) We take the following as an axiom:
B Aexplicit_subgroup G op H
End of Section Group4
L3371
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.
L3373
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.
L3374
Axiom. (Group_symgroup) We take the following as an axiom:
∀A, Group (symgroup A)
L3376
Axiom. (Group_symgroup_fixing) We take the following as an axiom:
∀A B, B AGroup (symgroup_fixing A B)
L3378
Axiom. (subgroup_symgroup_fixing) We take the following as an axiom:
∀A B, B Asymgroup_fixing A B symgroup A
L3380
Axiom. (subgroup_symgroup_fixing2) We take the following as an axiom:
∀A B C, C BB Asymgroup_fixing A B symgroup_fixing A C
L3382
Axiom. (nonnormal_subgroup) We take the following as an axiom:
∃H G, Group G H G ¬ normal_subgroup H G
L3384
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.
L3390
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.
L3398
Definition. We define trivial_Group_p to be λG ⇒ Group G ∀x yG 0, x = y of type setprop.
L3401
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.
L3410
Definition. We define Group_carrier to be λGs ⇒ Gs 0 of type setset.
L3412
Definition. We define Group_op to be λGs ⇒ decode_b (Gs 1) of type setsetsetset.
Beginning of Section Group2
L3415
Variable Gs : set
L3417
Variable Gs' : set
L3418
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.
L3421
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'.
L3423
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.
L3428
Definition. We define Group_Iso to be λg ⇒ Group_Hom g bij G G' (λx ⇒ g x) of type setprop.
L3431
End of Section Group2
Beginning of Section explicit_Rng
L3438
Variable R : set
L3440
Variable zero : set
L3442
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.
L3449
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
L3461
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.
L3481
Axiom. (explicit_Rng_minus_prop) We take the following as an axiom:
explicit_Rng∀xR, - x R x + - x = zero
L3483
Axiom. (explicit_Rng_minus_clos) We take the following as an axiom:
explicit_Rng∀xR, - x R
L3485
Axiom. (explicit_Rng_minus_R) We take the following as an axiom:
explicit_Rng∀xR, x + - x = zero
L3487
Axiom. (explicit_Rng_minus_L) We take the following as an axiom:
explicit_Rng∀xR, - x + x = zero
L3489
Axiom. (explicit_Rng_plus_cancelL) We take the following as an axiom:
explicit_Rng∀x y zR, x + y = x + zy = z
L3491
Axiom. (explicit_Rng_plus_cancelR) We take the following as an axiom:
explicit_Rng∀x y zR, x + z = y + zx = y
L3493
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
L3499
Variable R : set
L3501
Variable zero one : set
L3503
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.
L3510
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
L3526
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
L3545
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.
L3549
Axiom. (explicit_Ring_minus_clos) We take the following as an axiom:
explicit_Ring∀xR, - x R
L3551
Axiom. (explicit_Ring_minus_R) We take the following as an axiom:
explicit_Ring∀xR, x + - x = zero
L3553
Axiom. (explicit_Ring_minus_L) We take the following as an axiom:
explicit_Ring∀xR, - x + x = zero
L3555
Axiom. (explicit_Ring_plus_cancelL) We take the following as an axiom:
explicit_Ring∀x y zR, x + y = x + zy = z
L3557
Axiom. (explicit_Ring_plus_cancelR) We take the following as an axiom:
explicit_Ring∀x y zR, x + z = y + zx = y
L3559
Axiom. (explicit_Ring_minus_invol) We take the following as an axiom:
explicit_Ring∀xR, - - x = x
L3561
Axiom. (explicit_Ring_minus_one_In) We take the following as an axiom:
explicit_Ring- one R
L3563
Axiom. (explicit_Ring_zero_multR) We take the following as an axiom:
explicit_Ring∀xR, x * zero = zero
L3565
Axiom. (explicit_Ring_zero_multL) We take the following as an axiom:
explicit_Ring∀xR, zero * x = zero
L3566
Axiom. (explicit_Ring_minus_mult) We take the following as an axiom:
explicit_Ring∀xR, - x = (- one) * x
L3568
Axiom. (explicit_Ring_mult_minus) We take the following as an axiom:
explicit_Ring∀xR, - x = x * (- one)
L3570
Axiom. (explicit_Ring_minus_one_square) We take the following as an axiom:
explicit_Ring(- one) * (- one) = one
L3572
Axiom. (explicit_Ring_minus_square) We take the following as an axiom:
explicit_Ring∀xR, (- x) * (- x) = x * x
L3574
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.
L3579
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
L3588
Variable R : set
L3590
Variable zero one : set
L3592
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.
L3596
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'.
L3600
L3602
Hypothesis Hmm' : ∀a bR, a * b = a b
L3603
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
L3609
Variable R : set
L3611
Variable zero one : set
L3613
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.
L3620
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
L3635
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
L3653
Axiom. (explicit_CRing_Ring) We take the following as an axiom:
explicit_CRingexplicit_Ring R zero one plus mult
L3655
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.
L3659
Axiom. (explicit_CRing_minus_clos) We take the following as an axiom:
explicit_CRing∀xR, - x R
L3661
Axiom. (explicit_CRing_minus_R) We take the following as an axiom:
explicit_CRing∀xR, x + - x = zero
L3663
Axiom. (explicit_CRing_minus_L) We take the following as an axiom:
explicit_CRing∀xR, - x + x = zero
L3665
Axiom. (explicit_CRing_plus_cancelL) We take the following as an axiom:
explicit_CRing∀x y zR, x + y = x + zy = z
L3667
Axiom. (explicit_CRing_plus_cancelR) We take the following as an axiom:
explicit_CRing∀x y zR, x + z = y + zx = y
L3669
Axiom. (explicit_CRing_minus_invol) We take the following as an axiom:
explicit_CRing∀xR, - - x = x
L3671
Axiom. (explicit_CRing_minus_one_In) We take the following as an axiom:
explicit_CRing- one R
L3673
Axiom. (explicit_CRing_zero_multR) We take the following as an axiom:
explicit_CRing∀xR, x * zero = zero
L3675
Axiom. (explicit_CRing_zero_multL) We take the following as an axiom:
explicit_CRing∀xR, zero * x = zero
L3676
Axiom. (explicit_CRing_minus_mult) We take the following as an axiom:
explicit_CRing∀xR, - x = (- one) * x
L3678
Axiom. (explicit_CRing_mult_minus) We take the following as an axiom:
explicit_CRing∀xR, - x = x * (- one)
L3680
Axiom. (explicit_CRing_minus_one_square) We take the following as an axiom:
explicit_CRing(- one) * (- one) = one
L3682
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
L3688
Variable R : set
L3690
Variable zero one : set
L3692
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.
L3696
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'.
L3700
L3702
Hypothesis Hmm' : ∀a bR, a * b = a b
L3703
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.
L3710
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.
L3718
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
L3724
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
L3726
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.
L3730
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.
L3736
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.
L3744
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
L3750
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
L3752
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.
L3756
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
L3758
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.
L3762
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
L3764
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.
L3767
Axiom. (CRing_is_Ring) We take the following as an axiom:
∀R, CRing RRing R
Beginning of Section explicit_Reals
L3776
Variable R : set
L3778
Variable zero one : set
L3780
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.
L3787
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
L3803
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.
L3827
Axiom. (explicit_Field_minus_prop) We take the following as an axiom:
explicit_Field∀xR, - x R x + - x = zero
L3829
Axiom. (explicit_Field_minus_clos) We take the following as an axiom:
explicit_Field∀xR, - x R
L3830
Axiom. (explicit_Field_minus_R) We take the following as an axiom:
explicit_Field∀xR, x + - x = zero
L3831
Axiom. (explicit_Field_minus_L) We take the following as an axiom:
explicit_Field∀xR, - x + x = zero
L3832
Axiom. (explicit_Field_plus_cancelL) We take the following as an axiom:
explicit_Field∀x y zR, x + y = x + zy = z
L3833
Axiom. (explicit_Field_plus_cancelR) We take the following as an axiom:
explicit_Field∀x y zR, x + z = y + zx = y
L3834
Axiom. (explicit_Field_minus_invol) We take the following as an axiom:
explicit_Field∀xR, - - x = x
L3835
Axiom. (explicit_Field_minus_one_In) We take the following as an axiom:
explicit_Field- one R
L3836
Axiom. (explicit_Field_zero_multR) We take the following as an axiom:
explicit_Field∀xR, x * zero = zero
L3837
Axiom. (explicit_Field_zero_multL) We take the following as an axiom:
explicit_Field∀xR, zero * x = zero
L3838
Axiom. (explicit_Field_minus_mult) We take the following as an axiom:
explicit_Field∀xR, - x = (- one) * x
L3839
Axiom. (explicit_Field_minus_one_square) We take the following as an axiom:
explicit_Field(- one) * (- one) = one
L3840
Axiom. (explicit_Field_minus_square) We take the following as an axiom:
explicit_Field∀xR, (- x) * (- x) = x * x
L3841
Axiom. (explicit_Field_minus_zero) We take the following as an axiom:
explicit_Field- zero = zero
L3843
Axiom. (explicit_Field_dist_R) We take the following as an axiom:
explicit_Field∀x y zR, (x + y) * z = x * z + y * z
L3844
Axiom. (explicit_Field_minus_plus_dist) We take the following as an axiom:
explicit_Field∀x yR, - (x + y) = - x + - y
L3845
Axiom. (explicit_Field_minus_mult_L) We take the following as an axiom:
explicit_Field∀x yR, (- x) * y = - (x * y)
L3846
Axiom. (explicit_Field_minus_mult_R) We take the following as an axiom:
explicit_Field∀x yR, x * (- y) = - (x * y)
L3847
Axiom. (explicit_Field_square_zero_inv) We take the following as an axiom:
explicit_Field∀xR, x * x = zerox = zero
L3848
Axiom. (explicit_Field_mult_zero_inv) We take the following as an axiom:
explicit_Field∀x yR, x * y = zerox = zero y = zero
L3849
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.
L3857
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
L3865
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
L3876
Axiom. (explicit_OrderedField_minus_leq) We take the following as an axiom:
explicit_OrderedField∀x yR, x y- y - x
L3878
Axiom. (explicit_OrderedField_square_nonneg) We take the following as an axiom:
explicit_OrderedField∀xR, zero x * x
L3879
Axiom. (explicit_OrderedField_sum_squares_nonneg) We take the following as an axiom:
explicit_OrderedField∀x yR, zero x * x + y * y
L3880
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
L3881
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
L3882
Axiom. (explicit_OrderedField_leq_refl) We take the following as an axiom:
L3884
Axiom. (explicit_OrderedField_leq_antisym) We take the following as an axiom:
explicit_OrderedField∀x yR, x yy xx = y
L3885
Axiom. (explicit_OrderedField_leq_tra) We take the following as an axiom:
explicit_OrderedField∀x y zR, x yy zx z
L3886
Axiom. (explicit_OrderedField_leq_zero_one) We take the following as an axiom:
L3887
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.
L3893
L3895
Let Npos ≝ {nN|n zero}
L3896
Axiom. (explicit_Nats_natOfOrderedField) We take the following as an axiom:
explicit_OrderedFieldexplicit_Nats N zero (λm ⇒ m + one)
L3898
Axiom. (explicit_PosNats_natOfOrderedField) We take the following as an axiom:
explicit_OrderedFieldexplicit_Nats Npos one (λm ⇒ m + one)
L3899
Let Z ≝ {nR|- n Npos n = zero n Npos}
L3901
Definition. We define explicit_OrderedField_rationalp to be λx ⇒ ∃nZ, ∃mNpos, m * x = n of type setprop.
L3904
L3906
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
L3920
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
L3935
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.
L3948
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
L3955
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
L3965
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
L3969
Definition. We define CRing_carrier to be λRs ⇒ Rs 0 of type setset.
L3971
Definition. We define CRing_plus to be λRs ⇒ decode_b (Rs 1) of type setsetsetset.
L3972
Definition. We define CRing_mult to be λRs ⇒ decode_b (Rs 2) of type setsetsetset.
L3973
Definition. We define CRing_zero to be λRs ⇒ Rs 3 of type setset.
L3974
Definition. We define CRing_one to be λRs ⇒ Rs 4 of type setset.
Beginning of Section CRing
L3977
Variable Rs : set
L3979
Hypothesis HRs : CRing Rs
L3980
Let R : setCRing_carrier Rs
L3982
Let zero : setCRing_zero Rs
L3983
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.
L3986
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
L3988
Axiom. (CRing_explicit_CRing) We take the following as an axiom:
explicit_CRing R zero one (CRing_plus Rs) (CRing_mult Rs)
L3989
Axiom. (CRing_zero_In) We take the following as an axiom:
zero R
L3990
Axiom. (CRing_one_In) We take the following as an axiom:
one R
L3991
Axiom. (CRing_plus_clos) We take the following as an axiom:
∀x yR, x + y R
L3992
Axiom. (CRing_mult_clos) We take the following as an axiom:
∀x yR, x * y R
L3993
Axiom. (CRing_plus_assoc) We take the following as an axiom:
∀x y zR, x + (y + z) = (x + y) + z
L3994
Axiom. (CRing_plus_com) We take the following as an axiom:
∀x yR, x + y = y + x
L3995
Axiom. (CRing_zero_L) We take the following as an axiom:
∀xR, zero + x = x
L3996
Axiom. (CRing_plus_inv) We take the following as an axiom:
∀xR, ∃yR, x + y = zero
L3997
Axiom. (CRing_mult_assoc) We take the following as an axiom:
∀x y zR, x * (y * z) = (x * y) * z
L3998
Axiom. (CRing_mult_com) We take the following as an axiom:
∀x yR, x * y = y * x
L3999
Axiom. (CRing_one_neq_zero) We take the following as an axiom:
one zero
L4000
Axiom. (CRing_one_L) We take the following as an axiom:
∀xR, one * x = x
L4001
Axiom. (CRing_distr_L) We take the following as an axiom:
∀x y zR, x * (y + z) = x * y + x * z
L4002
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.
L4006
Axiom. (CRing_omega_exp_0) We take the following as an axiom:
∀x, x ^ 0 = one
L4008
Axiom. (CRing_omega_exp_S) We take the following as an axiom:
∀x, ∀nomega, x ^ (ordsucc n) = x * x ^ n
L4009
Axiom. (CRing_omega_exp_1) We take the following as an axiom:
∀xR, x ^ 1 = x
L4010
Axiom. (CRing_omega_exp_clos) We take the following as an axiom:
∀xR, ∀nomega, x ^ n R
L4011
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.
L4016
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
L4022
Variable R : set
L4024
Variable zero one : set
L4026
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.
L4032
Variable leq : setsetprop
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term leq.
L4036
Let N ≝ {nR|natOfOrderedField_p R zero one plus mult leq n}
L4038
Let Npos ≝ {nN|n zero}
L4039
Let Z ≝ {nR|- n Npos n = zero n Npos}
L4040
Let Q ≝ {xR|explicit_OrderedField_rationalp R zero one plus mult leq x}
L4041
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
L4045
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
L4056
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
L4069
Variable R' : set
L4071
Let N' ≝ {nR'|natOfOrderedField_p R' zero one plus mult leq n}
L4072
Let Npos' ≝ {nN'|n zero}
L4073
Let Z' ≝ {nR'|explicit_Field_minus R' zero one plus mult n Npos' n = zero n Npos'}
L4074
Let Q' ≝ {xR'|explicit_OrderedField_rationalp R' zero one plus mult leq x}
L4075
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
L4087
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
L4097
Variable R : set
L4099
Variable zero one : set
L4101
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.
L4105
Variable R' : set
L4107
Variable zero' one' : set
L4109
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'.
L4113
Variable f : setset
L4115
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
L4127
Variable R : set
L4129
Variable zero one : set
L4131
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.
L4135
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'.
L4139
L4141
Hypothesis Hmm' : ∀a bR, a * b = a b
L4142
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
L4146
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.
L4150
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
L4152
Axiom. (Field_is_CRing) We take the following as an axiom:
∀F, Field FCRing F
Beginning of Section explicit_OrderedField_transfer
L4156
Variable R : set
L4158
Variable zero one : set
L4160
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.
L4164
Variable leq : setsetprop
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term leq.
L4169
Variable R' : set
L4171
Variable zero' one' : set
L4173
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'.
L4177
Variable leq' : setsetprop
L4179
Variable f : setset
L4181
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
L4192
Definition. We define Field_carrier to be λFs ⇒ Fs 0 of type setset.
L4194
Definition. We define Field_plus to be λFs ⇒ decode_b (Fs 1) of type setsetsetset.
L4195
Definition. We define Field_mult to be λFs ⇒ decode_b (Fs 2) of type setsetsetset.
L4196
Definition. We define Field_zero to be λFs ⇒ Fs 3 of type setset.
L4197
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
L4203
Variable Fs : set
L4205
Hypothesis HFs : Field Fs
L4206
Let F : setField_carrier Fs
L4208
Let zero : setField_zero Fs
L4209
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.
L4213
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
L4215
Axiom. (Field_explicit_Field) We take the following as an axiom:
explicit_Field F zero one (Field_plus Fs) (Field_mult Fs)
L4216
Axiom. (Field_zero_In) We take the following as an axiom:
zero F
L4217
Axiom. (Field_one_In) We take the following as an axiom:
one F
L4218
Axiom. (Field_plus_clos) We take the following as an axiom:
∀x yF, x + y F
L4219
Axiom. (Field_mult_clos) We take the following as an axiom:
∀x yF, x * y F
L4220
Axiom. (Field_plus_assoc) We take the following as an axiom:
∀x y zF, x + (y + z) = (x + y) + z
L4221
Axiom. (Field_plus_com) We take the following as an axiom:
∀x yF, x + y = y + x
L4222
Axiom. (Field_zero_L) We take the following as an axiom:
∀xF, zero + x = x
L4223
Axiom. (Field_plus_inv) We take the following as an axiom:
∀xF, ∃yF, x + y = zero
L4224
Axiom. (Field_mult_assoc) We take the following as an axiom:
∀x y zF, x * (y * z) = (x * y) * z
L4225
Axiom. (Field_mult_com) We take the following as an axiom:
∀x yF, x * y = y * x
L4226
Axiom. (Field_one_neq_zero) We take the following as an axiom:
one zero
L4227
Axiom. (Field_one_L) We take the following as an axiom:
∀xF, one * x = x
L4228
Axiom. (Field_mult_inv_L) We take the following as an axiom:
∀xF, x zero∃yF, x * y = one
L4229
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.
L4235
Axiom. (Field_div_prop) We take the following as an axiom:
∀xF, ∀yF {zero}, x :/: y F x = y * (x :/: y)
L4237
Axiom. (Field_div_clos) We take the following as an axiom:
∀xF, ∀yF {zero}, x :/: y F
L4238
Axiom. (Field_mult_div) We take the following as an axiom:
∀xF, ∀yF {zero}, x = y * (x :/: y)
L4239
Axiom. (Field_div_undef1) We take the following as an axiom:
∀x y, x Fx :/: y = 0
L4240
Axiom. (Field_div_undef2) We take the following as an axiom:
∀x y, y Fx :/: y = 0
L4241
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.
L4244
Axiom. (Field_omega_exp_0) We take the following as an axiom:
∀x, x ^ 0 = one
L4246
Axiom. (Field_omega_exp_S) We take the following as an axiom:
∀x, ∀nomega, x ^ (ordsucc n) = x * x ^ n
L4247
Axiom. (Field_omega_exp_1) We take the following as an axiom:
∀xF, x ^ 1 = x
L4248
Axiom. (Field_omega_exp_clos) We take the following as an axiom:
∀xF, ∀nomega, x ^ n F
L4249
Axiom. (Field_eval_poly_clos) We take the following as an axiom:
∀nomega, ∀csFn, ∀xF, CRing_eval_poly Fs n cs x F
L4250
Axiom. (Field_plus_cancelL) We take the following as an axiom:
∀x y zF, x + y = x + zy = z
L4252
Axiom. (Field_plus_cancelR) We take the following as an axiom:
∀x y zF, x + z = y + zx = y
L4253
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
L4254
Axiom. (Field_minus_undef) We take the following as an axiom:
∀x, x F- x = 0
L4255
Axiom. (Field_minus_clos) We take the following as an axiom:
∀xF, - x F
L4256
Axiom. (Field_minus_R) We take the following as an axiom:
∀xF, x + - x = zero
L4257
Axiom. (Field_minus_L) We take the following as an axiom:
∀xF, - x + x = zero
L4258
Axiom. (Field_minus_invol) We take the following as an axiom:
∀xF, - - x = x
L4259
Axiom. (Field_minus_one_In) We take the following as an axiom:
- one F
L4260
Axiom. (Field_zero_multR) We take the following as an axiom:
∀xF, x * zero = zero
L4261
Axiom. (Field_zero_multL) We take the following as an axiom:
∀xF, zero * x = zero
L4262
Axiom. (Field_minus_mult) We take the following as an axiom:
∀xF, - x = (- one) * x
L4263
Axiom. (Field_minus_one_square) We take the following as an axiom:
(- one) * (- one) = one
L4264
Axiom. (Field_minus_square) We take the following as an axiom:
∀xF, (- x) * (- x) = x * x
L4265
Axiom. (Field_minus_zero) We take the following as an axiom:
- zero = zero
L4266
Axiom. (Field_dist_R) We take the following as an axiom:
∀x y zF, (x + y) * z = x * z + y * z
L4267
Axiom. (Field_minus_plus_dist) We take the following as an axiom:
∀x yF, - (x + y) = - x + - y
L4268
Axiom. (Field_minus_mult_L) We take the following as an axiom:
∀x yF, (- x) * y = - (x * y)
L4269
Axiom. (Field_minus_mult_R) We take the following as an axiom:
∀x yF, x * (- y) = - (x * y)
L4270
Axiom. (Field_square_zero_inv) We take the following as an axiom:
∀xF, x * x = zerox = zero
L4271
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
L4276
Variable Fs : set
L4278
Variable Fs' : set
L4279
Let F : setField_carrier Fs
L4281
Let zero : setField_zero Fs
L4282
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.
L4285
Let F' : setField_carrier Fs'
L4286
Let zero' : setField_zero Fs'
L4287
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.
L4296
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
L4302
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.
L4312
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
L4321
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
L4334
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
L4337
Axiom. (subfield_refl) We take the following as an axiom:
∀Fs, Field Fssubfield Fs Fs
L4339
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.
L4343
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
L4349
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.
L4358
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'
L4367
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.
L4382
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
L4389
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
L4396
Definition. We define lam_comp to be λA f g ⇒ λx ∈ Af (g x) of type setsetsetset.
L4398
Definition. We define lam_id to be λA ⇒ λx ∈ Ax of type setset.
L4399
Axiom. (lam_comp_exp_In) We take the following as an axiom:
∀A B C, ∀fBA, ∀gCB, lam_comp A g f CA
L4401
Axiom. (lam_id_exp_In) We take the following as an axiom:
∀A, lam_id A AA
L4402
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
L4403
Axiom. (lam_comp_id_L) We take the following as an axiom:
∀A B, ∀fBA, lam_comp A (lam_id B) f = f
L4404
Axiom. (lam_comp_id_R) We take the following as an axiom:
∀A B, ∀fBA, lam_comp A f (lam_id A) = f
L4405
Axiom. (Field_Hom_id) We take the following as an axiom:
∀F, Field FField_Hom F F (lam_id (F 0))
L4406
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)
L4407
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.
L4410
Axiom. (Galois_Group_0) We take the following as an axiom:
L4412
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
L4415
Variable R : set
L4417
Variable zero one : set
L4419
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.
L4423
Variable leq : setsetprop
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term leq.
L4428
Variable R' : set
L4430
Variable zero' one' : set
L4432
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'.
L4436
Variable leq' : setsetprop
L4438
Variable f : setset
L4440
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
L4453
Variable C : set
L4455
Variable Re Im : setset
L4457
Variable zero one i : set
L4458
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.
L4462
Primitive. The name explicit_Complex is a term of type prop.
L4467
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
L4482
Variable R : set
L4484
Variable zero one : set
L4486
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.
L4492
Variable leq : setsetprop
L4494
Variable pa : setsetset
L4496
Let C : setReplSep2 R (λ_ ⇒ R) (λx y ⇒ True) pa
L4498
Let Re : setsetλz ⇒ Eps_i (λx ⇒ x R ∃yR, z = pa x y)
L4500
Let Im : setsetλz ⇒ Eps_i (λy ⇒ y R z = pa (Re z) y)
L4501
Let Re' : setsetλz ⇒ pa (Re z) zero
L4502
Let Im' : setsetλz ⇒ pa (Im z) zero
L4503
Let R' ≝ {zC|Re' z = z}
L4505
Let zero' : setpa zero zero
L4507
Let one' : setpa one zero
L4508
Let i' : setpa zero one
L4509
Let plus' : setsetsetλz w ⇒ pa (Re z + Re w) (Im z + Im w)
L4510
Let mult' : setsetsetλz w ⇒ pa (Re z * Re w + - (Im z * Im w)) (Re z * Im w + Im z * Re w)
L4511
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'
L4515
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.
L4538
Axiom. (minus_SNo_eq) We take the following as an axiom:
∀x, SNo x- x = SNoCut {- z|zSNoR x} {- w|wSNoL x}
L4540
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}
L4541
Axiom. (SNo_minus_SNo) We take the following as an axiom:
∀x, SNo xSNo (- x)
L4542
Axiom. (minus_SNo_Lt_contra) We take the following as an axiom:
∀x y, SNo xSNo yx < y- y < - x
L4544
Axiom. (minus_SNo_Le_contra) We take the following as an axiom:
∀x y, SNo xSNo yx y- y - x
L4545
Axiom. (minus_SNo_SNoCutP) We take the following as an axiom:
∀x, SNo xSNoCutP {- z|zSNoR x} {- w|wSNoL x}
L4546
Axiom. (minus_SNo_SNoCutP_gen) We take the following as an axiom:
∀L R, SNoCutP L RSNoCutP {- z|zR} {- w|wL}
L4547
Axiom. (minus_SNo_Lev_lem1) We take the following as an axiom:
∀alpha, ordinal alpha∀xSNoS_ alpha, SNoLev (- x) SNoLev x
L4548
Axiom. (minus_SNo_Lev_lem2) We take the following as an axiom:
∀x, SNo xSNoLev (- x) SNoLev x
L4549
Axiom. (minus_SNo_invol) We take the following as an axiom:
∀x, SNo x- - x = x
L4550
Axiom. (minus_SNo_Lev) We take the following as an axiom:
∀x, SNo xSNoLev (- x) = SNoLev x
L4551
Axiom. (minus_SNo_SNo_) We take the following as an axiom:
∀alpha, ordinal alpha∀x, SNo_ alpha xSNo_ alpha (- x)
L4552
Axiom. (minus_SNo_SNoS_) We take the following as an axiom:
∀alpha, ordinal alpha∀x, x SNoS_ alpha- x SNoS_ alpha
L4553
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}
L4554
Axiom. (minus_SNoCut_eq) We take the following as an axiom:
∀L R, SNoCutP L R- SNoCut L R = SNoCut {- z|zR} {- w|wL}
L4555
Axiom. (minus_SNo_Lt_contra1) We take the following as an axiom:
∀x y, SNo xSNo y- x < y- y < x
L4556
Axiom. (minus_SNo_Lt_contra2) We take the following as an axiom:
∀x y, SNo xSNo yx < - yy < - x
L4557
Axiom. (minus_SNo_Lt_contra3) We take the following as an axiom:
∀x y, SNo xSNo y- x < - yy < x
L4558
Axiom. (minus_SNo_0) We take the following as an axiom:
- 0 = 0
L4559
Axiom. (SNo_momega) We take the following as an axiom:
L4560
Axiom. (mordinal_SNo) We take the following as an axiom:
∀alpha, ordinal alphaSNo (- alpha)
L4561
Axiom. (mordinal_SNoLev) We take the following as an axiom:
∀alpha, ordinal alphaSNoLev (- alpha) = alpha
L4562
Axiom. (mordinal_SNoLev_min) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z alpha- alpha < z
L4563
Axiom. (mordinal_SNoLev_min_2) We take the following as an axiom:
∀alpha, ordinal alpha∀z, SNo zSNoLev z ordsucc alpha- alpha z
L4564
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.
L4571
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})
L4574
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})
L4582
Axiom. (SNo_add_SNo) We take the following as an axiom:
∀x y, SNo xSNo ySNo (x + y)
L4584
Axiom. (SNo_add_SNo_3) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zSNo (x + y + z)
L4585
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)
L4586
Axiom. (add_SNo_Lt1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < zx + y < z + y
L4588
Axiom. (add_SNo_Le1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx zx + y z + y
L4590
Axiom. (add_SNo_Lt2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zy < zx + y < x + z
L4592
Axiom. (add_SNo_Le2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zy zx + y x + z
L4594
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
L4596
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
L4598
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
L4600
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
L4602
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})
L4604
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})
L4608
Axiom. (add_SNo_com) We take the following as an axiom:
∀x y, SNo xSNo yx + y = y + x
L4610
Axiom. (add_SNo_0L) We take the following as an axiom:
∀x, SNo x0 + x = x
L4612
Axiom. (add_SNo_0R) We take the following as an axiom:
∀x, SNo xx + 0 = x
L4614
Axiom. (add_SNo_minus_SNo_linv) We take the following as an axiom:
∀x, SNo x- x + x = 0
L4616
Axiom. (SNo_add_SNo_3c) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zSNo (x + y + - z)
L4617
Axiom. (add_SNo_minus_SNo_rinv) We take the following as an axiom:
∀x, SNo xx + - x = 0
L4619
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
L4621
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
L4623
Axiom. (add_SNo_ordinal_ordinal) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaordinal (alpha + beta)
L4625
Axiom. (add_SNo_ordinal_SL) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaordsucc alpha + beta = ordsucc (alpha + beta)
L4627
Axiom. (add_SNo_ordinal_SR) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal betaalpha + ordsucc beta = ordsucc (alpha + beta)
L4629
Axiom. (add_SNo_ordinal_InL) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal beta∀gammaalpha, gamma + beta alpha + beta
L4631
Axiom. (add_SNo_ordinal_InR) We take the following as an axiom:
∀alpha, ordinal alpha∀beta, ordinal beta∀gammabeta, alpha + gamma alpha + beta
L4633
Axiom. (add_nat_add_SNo) We take the following as an axiom:
∀n momega, add_nat n m = n + m
L4635
Axiom. (add_SNo_In_omega) We take the following as an axiom:
∀n momega, n + m omega
L4637
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)
L4639
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)
L4641
Axiom. (add_SNo_assoc) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + (y + z) = (x + y) + z
L4643
Axiom. (add_SNo_cancel_L) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y = x + zy = z
L4645
Axiom. (add_SNo_cancel_R) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y = z + yx = z
L4647
Axiom. (minus_add_SNo_distr) We take the following as an axiom:
∀x y, SNo xSNo y- (x + y) = (- x) + (- y)
L4649
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
L4650
Axiom. (add_SNo_Lev_bd) We take the following as an axiom:
∀x y, SNo xSNo ySNoLev (x + y) SNoLev x + SNoLev y
L4652
Axiom. (add_SNo_SNoS_omega) We take the following as an axiom:
L4653
Axiom. (add_SNo_minus_R2) We take the following as an axiom:
∀x y, SNo xSNo y(x + y) + - y = x
L4655
Axiom. (add_SNo_Lt1_cancel) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y < z + yx < z
L4656
Axiom. (add_SNo_Lt2_cancel) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + y < x + zy < z
L4657
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
L4659
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
L4661
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
L4663
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
L4665
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)
L4667
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
L4669
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
L4671
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
L4673
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
L4675
Axiom. (add_SNo_minus_SNo_prop1) We take the following as an axiom:
∀x y, SNo xSNo y- x + x + y = y
L4676
Axiom. (add_SNo_minus_SNo_prop2) We take the following as an axiom:
∀x y, SNo xSNo yx + - x + y = y
L4677
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
L4678
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
L4679
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
L4680
Axiom. (add_SNo_minus_Lt1) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx + - y < zx < z + y
L4681
Axiom. (add_SNo_minus_Lt1b) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx < z + yx + - y < z
L4682
Axiom. (add_SNo_minus_Lt2) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz < x + - yz + y < x
L4683
Axiom. (add_SNo_minus_Lt2b) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz + y < xz < x + - y
L4684
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
L4685
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
L4686
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
L4690
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
L4694
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
L4698
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
L4703
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
L4708
Axiom. (ordinal_ordsucc_SNo_eq) We take the following as an axiom:
∀alpha, ordinal alphaordsucc alpha = 1 + alpha
L4710
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.
L4717
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})
L4726
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
L4747
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
L4757
Axiom. (SNo_mul_SNo) We take the following as an axiom:
∀x y, SNo xSNo ySNo (x * y)
L4759
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
L4780
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
L4783
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
L4785
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)
L4790
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
L4796
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)
L4801
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
L4807
Axiom. (mul_SNo_zeroR) We take the following as an axiom:
∀x, SNo xx * 0 = 0
L4809
Axiom. (mul_SNo_oneR) We take the following as an axiom:
∀x, SNo xx * 1 = x
L4810
Axiom. (mul_SNo_com) We take the following as an axiom:
∀x y, SNo xSNo yx * y = y * x
L4811
Axiom. (mul_SNo_minus_distr) We take the following as an axiom:
∀x y, SNo xSNo y(- x) * y = - x * y
L4812
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
L4813
Axiom. (mul_SNo_distrL) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * (y + z) = x * y + x * z
L4814
Axiom. (mul_SNo_assoc) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zx * (y * z) = (x * y) * z
L4815
Axiom. (mul_nat_mul_SNo) We take the following as an axiom:
∀n momega, mul_nat n m = n * m
L4817
Axiom. (mul_SNo_In_omega) We take the following as an axiom:
∀n momega, n * m omega
L4819
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.
L4826
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
L4831
Definition. We define SNoL_omega to be λx ⇒ {ySNoS_ omega|y < x} of type setset.
L4833
Definition. We define SNoR_omega to be λx ⇒ {ySNoS_ omega|x < y} of type setset.
L4834
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)
L4838
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)
L4841
L4843
Axiom. (real_I) We take the following as an axiom:
L4850
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
L4858
Axiom. (Subq_real_SNoS_ordsucc_omega) We take the following as an axiom:
L4859
Axiom. (Subq_SNoS_omega_real) We take the following as an axiom:
L4860
Axiom. (SNoCutP_SNoL_SNoR_omega) We take the following as an axiom:
∀x, SNo xSNoCutP (SNoL_omega x) (SNoR_omega x)
L4861
L4862
Axiom. (real_SNoL_SNoR_omega) We take the following as an axiom:
L4863
Axiom. (real_ex_diad_Lt) We take the following as an axiom:
∀xreal, ∃wSNoS_ omega, w < x
L4864
Axiom. (real_ex_diad_Gt) We take the following as an axiom:
∀xreal, ∃zSNoS_ omega, x < z
L4865
Axiom. (mul_SNo_pos_pos) We take the following as an axiom:
∀x y, SNo xSNo y0 < x0 < y0 < x * y
L4866
Axiom. (mul_SNo_pos_neg) We take the following as an axiom:
∀x y, SNo xSNo y0 < xy < 0x * y < 0
L4867
Axiom. (mul_SNo_neg_pos) We take the following as an axiom:
∀x y, SNo xSNo yx < 00 < yx * y < 0
L4868
Axiom. (mul_SNo_neg_neg) We take the following as an axiom:
∀x y, SNo xSNo yx < 0y < 00 < x * y
L4869
Axiom. (mul_SNo_nonzero) We take the following as an axiom:
∀x y, SNo xSNo yx 0y 0x * y 0
L4870
Axiom. (minus_SNo_restr_SNo) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, (- x) SNoElts_ alpha = - (x SNoElts_ alpha)
L4872
Axiom. (minus_SNo_exactly1of2) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, exactly1of2 (alpha x) (alpha - x)
L4873
Axiom. (minus_SNo_In) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, alpha xalpha - x
L4874
Axiom. (minus_SNo_nIn) We take the following as an axiom:
∀x, SNo x∀alphaSNoLev x, alpha xalpha - x
L4875
Axiom. (real_minus_SNo) We take the following as an axiom:
L4876
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.
L4880
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
L4886
Definition. We define CSNo to be λz ⇒ ∃x, SNo x ∃y, SNo y z = SNo_pair x y of type setprop.
L4888
Axiom. (CSNo_I) We take the following as an axiom:
∀x y, SNo xSNo yCSNo (SNo_pair x y)
L4890
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
L4894
Axiom. (SNo_CSNo) We take the following as an axiom:
∀x, SNo xCSNo x
Beginning of Section Complex
L4897
L4899
Let i ≝ Complex_i
L4901
Axiom. (SNo_Complex_i) We take the following as an axiom:
L4903
Definition. We define CSNo_Re to be λz ⇒ Eps_i (λx ⇒ SNo x ∃y, SNo y z = SNo_pair x y) of type setset.
L4905
Definition. We define CSNo_Im to be λz ⇒ Eps_i (λy ⇒ SNo y z = SNo_pair (CSNo_Re z) y) of type setset.
L4906
Let Re : setsetCSNo_Re
L4908
Let Im : setsetCSNo_Im
L4909
Let pa : setsetsetSNo_pair
L4910
Axiom. (CSNo_Re1) We take the following as an axiom:
∀z, CSNo zSNo (Re z) ∃y, SNo y z = pa (Re z) y
L4912
Axiom. (CSNo_Re2) We take the following as an axiom:
∀x y, SNo xSNo yRe (pa x y) = x
L4913
Axiom. (CSNo_Im1) We take the following as an axiom:
∀z, CSNo zSNo (Im z) z = pa (Re z) (Im z)
L4914
Axiom. (CSNo_Im2) We take the following as an axiom:
∀x y, SNo xSNo yIm (pa x y) = y
L4915
Axiom. (CSNo_ReR) We take the following as an axiom:
∀z, CSNo zSNo (Re z)
L4916
Axiom. (CSNo_ImR) We take the following as an axiom:
∀z, CSNo zSNo (Im z)
L4917
Axiom. (CSNo_ReIm) We take the following as an axiom:
∀z, CSNo zz = pa (Re z) (Im z)
L4918
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.
L4923
Definition. We define minus_CSNo to be λz ⇒ pa (- Re z) (- Im z) of type setset.
L4925
Definition. We define add_CSNo to be λz w ⇒ pa (Re z + Re w) (Im z + Im w) of type setsetset.
L4926
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.
L4927
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.
L4928
Axiom. (CSNo_minus_CSNo) We take the following as an axiom:
∀z, CSNo zCSNo (minus_CSNo z)
L4930
Axiom. (SNo_Re) We take the following as an axiom:
∀x, SNo xRe x = x
L4932
Axiom. (SNo_Im) We take the following as an axiom:
∀x, SNo xIm x = 0
L4934
Axiom. (Re_0) We take the following as an axiom:
Re 0 = 0
L4936
Axiom. (Im_0) We take the following as an axiom:
Im 0 = 0
L4938
Axiom. (Re_1) We take the following as an axiom:
Re 1 = 1
L4940
Axiom. (Im_1) We take the following as an axiom:
Im 1 = 0
L4942
Axiom. (Re_i) We take the following as an axiom:
Re i = 0
L4944
Axiom. (Im_i) We take the following as an axiom:
Im i = 1
L4946
Axiom. (add_SNo_add_CSNo) We take the following as an axiom:
∀x y, SNo xSNo yx + y = add_CSNo x y
L4948
Axiom. (CSNo_add_CSNo) We take the following as an axiom:
∀z w, CSNo zCSNo wCSNo (add_CSNo z w)
L4950
Axiom. (add_CSNo_0L) We take the following as an axiom:
∀z, CSNo zadd_CSNo 0 z = z
L4952
Axiom. (add_CSNo_0R) We take the following as an axiom:
∀z, CSNo zadd_CSNo z 0 = z
L4954
Axiom. (add_CSNo_minus_CSNo_linv) We take the following as an axiom:
∀z, CSNo zadd_CSNo (minus_CSNo z) z = 0
L4956
Axiom. (add_CSNo_minus_CSNo_rinv) We take the following as an axiom:
∀z, CSNo zadd_CSNo z (minus_CSNo z) = 0
L4958
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.
L4969
L4971
Definition. We define rational to be ReplSep2 int (λ_ ⇒ omega) (λnum den ⇒ den 0) (λnum den ⇒ num :/: den) of type set.
L4973
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.
L4977
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.
L4990
Axiom. (int_SNo_cases) We take the following as an axiom:
∀p : setprop, (∀nomega, p n)(∀nomega, p (- n))∀xint, p x
L4995
Axiom. (Subq_omega_int) We take the following as an axiom:
L4996
Axiom. (int_minus_SNo_omega) We take the following as an axiom:
L4997
Axiom. (int_minus_SNo) We take the following as an axiom:
∀xint, - x int
L4998
Axiom. (int_add_SNo_lem) We take the following as an axiom:
∀nomega, ∀m, nat_p m- n + m int
L4999
Axiom. (int_add_SNo) We take the following as an axiom:
∀x yint, x + y int
L5000
Axiom. (int_mul_SNo) We take the following as an axiom:
∀x yint, x * y int
L5001
Definition. We define divides_int to be λm n ⇒ m int n int ∃kint, m * k = n of type setsetprop.
L5004
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.
L5007
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.
L5014
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
L5016
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
L5018
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
L5020
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
L5022
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
L5024
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
L5026
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
L5028
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
L5030
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
L5032
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
L5034
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
L5036
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
L5038
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'
L5040
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
L5046
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.
L5048
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)
L5050
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
L5052
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
L5054
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
L5056
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
L5058
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.
L5063
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.
L5072
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
L5083
Variable R : set
L5085
Variable zero one : set
L5087
Variable plus mult : setsetset
L5088
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.
L5092
Variable plus' mult' : setsetset
L5094
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'.
L5097
L5099
Hypothesis Hmm' : ∀a bR, a * b = a b
L5100
Hypothesis Hll' : ∀a bR, leq a b leq' a b
L5101
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
L5105
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
L5107
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
L5113
Variable R : set
L5115
Variable zero one : set
L5117
Variable plus mult : setsetset
L5118
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.
L5122
Variable plus' mult' : setsetset
L5124
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'.
L5127
L5129
Hypothesis Hmm' : ∀a bR, a * b = a b
L5130
Hypothesis Hll' : ∀a bR, leq a b leq' a b
L5131
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
L5135
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
L5137
Definition. We define RealsStruct_carrier to be λRs ⇒ Rs 0 of type setset.
L5139
Definition. We define RealsStruct_plus to be λRs ⇒ decode_b (Rs 1) of type setsetsetset.
L5141
Definition. We define RealsStruct_mult to be λRs ⇒ decode_b (Rs 2) of type setsetsetset.
L5143
Definition. We define RealsStruct_leq to be λRs ⇒ decode_r (Rs 3) of type setsetsetprop.
L5145
Definition. We define RealsStruct_zero to be λRs ⇒ Rs 4 of type setset.
L5147
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.
L5152
Axiom. (Field_of_RealsStruct_0) We take the following as an axiom:
L5154
Axiom. (Field_of_RealsStruct_1) We take the following as an axiom:
L5156
Axiom. (Field_of_RealsStruct_2) We take the following as an axiom:
L5158
Axiom. (Field_of_RealsStruct_3) We take the following as an axiom:
L5160
Axiom. (Field_of_RealsStruct_4) We take the following as an axiom:
Beginning of Section RealsStruct
L5164
Variable Rs : set
L5166
Hypothesis HRs : RealsStruct Rs
L5167
Let R : setRealsStruct_carrier Rs
L5169
Let zero : setRealsStruct_zero Rs
L5170
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.
L5175
Axiom. (RealsStruct_eta) We take the following as an axiom:
L5177
Axiom. (RealsStruct_explicit_Reals) We take the following as an axiom:
L5178
Axiom. (Field_of_RealsStruct_is_CRing) We take the following as an axiom:
L5180
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.
L5183
Axiom. (explicit_Field_of_RealsStruct) We take the following as an axiom:
L5185
L5186
Axiom. (RealsStruct_OrderedField) We take the following as an axiom:
L5187
Axiom. (Field_of_RealsStruct_1f) We take the following as an axiom:
(λx y : setField_of_RealsStruct Rs 1 x y) = RealsStruct_plus Rs
L5189
Axiom. (Field_of_RealsStruct_2f) We take the following as an axiom:
(λx y : setField_of_RealsStruct Rs 2 x y) = RealsStruct_mult Rs
L5190
L5191
Axiom. (Field_Field_of_RealsStruct) We take the following as an axiom:
L5192
Axiom. (RealsStruct_zero_In) We take the following as an axiom:
zero R
L5194
Axiom. (RealsStruct_one_In) We take the following as an axiom:
one R
L5195
Axiom. (RealsStruct_plus_clos) We take the following as an axiom:
∀x yR, x + y R
L5196
Axiom. (RealsStruct_mult_clos) We take the following as an axiom:
∀x yR, x * y R
L5197
Axiom. (RealsStruct_plus_assoc) We take the following as an axiom:
∀x y zR, x + (y + z) = (x + y) + z
L5198
Axiom. (RealsStruct_plus_com) We take the following as an axiom:
∀x yR, x + y = y + x
L5199
Axiom. (RealsStruct_zero_L) We take the following as an axiom:
∀xR, zero + x = x
L5200
Axiom. (RealsStruct_mult_assoc) We take the following as an axiom:
∀x y zR, x * (y * z) = (x * y) * z
L5201
Axiom. (RealsStruct_mult_com) We take the following as an axiom:
∀x yR, x * y = y * x
L5202
Axiom. (RealsStruct_one_neq_zero) We take the following as an axiom:
one zero
L5203
Axiom. (RealsStruct_one_L) We take the following as an axiom:
∀xR, one * x = x
L5204
Axiom. (RealsStruct_distr_L) We take the following as an axiom:
∀x y zR, x * (y + z) = x * y + x * z
L5205
Axiom. (RealsStruct_leq_refl) We take the following as an axiom:
∀xR, x x
L5206
Axiom. (RealsStruct_leq_tra) We take the following as an axiom:
∀x y zR, x yy zx z
L5207
Axiom. (RealsStruct_leq_antisym) We take the following as an axiom:
∀x yR, x yy xx = y
L5208
Axiom. (RealsStruct_leq_linear) We take the following as an axiom:
∀x yR, x y y x
L5209
Axiom. (RealsStruct_leq_plus) We take the following as an axiom:
∀x y zR, x yx + z y + z
L5210
Axiom. (RealsStruct_lt_leq) We take the following as an axiom:
∀x yR, x < yx y
L5211
Axiom. (RealsStruct_lt_irref) We take the following as an axiom:
∀xR, ¬ (x < x)
L5212
Axiom. (RealsStruct_lt_leq_asym) We take the following as an axiom:
∀x yR, x < y¬ (y x)
L5213
Axiom. (RealsStruct_leq_lt_asym) We take the following as an axiom:
∀x yR, x y¬ (y < x)
L5214
Axiom. (RealsStruct_lt_asym) We take the following as an axiom:
∀x yR, x < y¬ (y < x)
L5215
Axiom. (RealsStruct_lt_leq_tra) We take the following as an axiom:
∀x y zR, x < yy zx < z
L5216
Axiom. (RealsStruct_leq_lt_tra) We take the following as an axiom:
∀x y zR, x yy < zx < z
L5217
Axiom. (RealsStruct_lt_tra) We take the following as an axiom:
∀x y zR, x < yy < zx < z
L5218
Axiom. (RealsStruct_lt_trich_impred) We take the following as an axiom:
∀x yR, ∀p : prop, (x < yp)(x = yp)(y < xp)p
L5219
Axiom. (RealsStruct_lt_trich) We take the following as an axiom:
∀x yR, x < y x = y y < x
L5220
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).
L5223
L5225
Axiom. (RealsStruct_minus_clos) We take the following as an axiom:
∀xR, - x R
L5226
Axiom. (RealsStruct_minus_R) We take the following as an axiom:
∀xR, x + - x = zero
L5227
Axiom. (RealsStruct_minus_L) We take the following as an axiom:
∀xR, - x + x = zero
L5228
Axiom. (RealsStruct_plus_cancelL) We take the following as an axiom:
∀x y zR, x + y = x + zy = z
L5229
Axiom. (RealsStruct_minus_eq2) We take the following as an axiom:
L5230
Axiom. (RealsStruct_plus_cancelR) We take the following as an axiom:
∀x y zR, x + z = y + zx = y
L5231
Axiom. (RealsStruct_minus_invol) We take the following as an axiom:
∀xR, - - x = x
L5232
Axiom. (RealsStruct_minus_one_In) We take the following as an axiom:
- one R
L5233
Axiom. (RealsStruct_zero_multR) We take the following as an axiom:
∀xR, x * zero = zero
L5234
Axiom. (RealsStruct_zero_multL) We take the following as an axiom:
∀xR, zero * x = zero
L5235
Axiom. (RealsStruct_minus_mult) We take the following as an axiom:
∀xR, - x = (- one) * x
L5236
Axiom. (RealsStruct_minus_one_square) We take the following as an axiom:
(- one) * (- one) = one
L5237
Axiom. (RealsStruct_minus_square) We take the following as an axiom:
∀xR, (- x) * (- x) = x * x
L5238
Axiom. (RealsStruct_minus_zero) We take the following as an axiom:
- zero = zero
L5239
Axiom. (RealsStruct_dist_R) We take the following as an axiom:
∀x y zR, (x + y) * z = x * z + y * z
L5240
Axiom. (RealsStruct_minus_plus_dist) We take the following as an axiom:
∀x yR, - (x + y) = - x + - y
L5241
Axiom. (RealsStruct_minus_mult_L) We take the following as an axiom:
∀x yR, (- x) * y = - (x * y)
L5242
Axiom. (RealsStruct_minus_mult_R) We take the following as an axiom:
∀x yR, x * (- y) = - (x * y)
L5243
Axiom. (RealsStruct_mult_zero_inv) We take the following as an axiom:
∀x yR, x * y = zerox = zero y = zero
L5244
Axiom. (RealsStruct_square_zero_inv) We take the following as an axiom:
∀xR, x * x = zerox = zero
L5245
Axiom. (RealsStruct_minus_leq) We take the following as an axiom:
∀x yR, x y- y - x
L5246
Axiom. (RealsStruct_square_nonneg) We take the following as an axiom:
∀xR, zero x * x
L5247
Axiom. (RealsStruct_sum_squares_nonneg) We take the following as an axiom:
∀x yR, zero x * x + y * y
L5248
Axiom. (RealsStruct_sum_nonneg_zero_inv) We take the following as an axiom:
∀x yR, zero xzero yx + y = zerox = zero y = zero
L5249
Axiom. (RealsStruct_sum_squares_zero_inv) We take the following as an axiom:
∀x yR, x * x + y * y = zerox = zero y = zero
L5250
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.
L5254
Let N ≝ RealsStruct_N
L5256
Axiom. (RealsStruct_Arch) We take the following as an axiom:
∀x yR, zero < xzero y∃nN, y n * x
L5258
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
L5261
Axiom. (RealsStruct_natOfOrderedField) We take the following as an axiom:
explicit_Nats N zero (λm ⇒ m + one)
L5263
L5265
Let Npos ≝ RealsStruct_Npos
L5266
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.
L5271
Let Z ≝ RealsStruct_Z
Primitive. The name RealsStruct_Q is a term of type set.
L5275
Let Q ≝ RealsStruct_Q
L5276
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
L5289
Axiom. (RealsStruct_Npos_R) We take the following as an axiom:
Npos R
L5291
Axiom. (RealsStruct_one_Npos) We take the following as an axiom:
one Npos
L5293
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
L5307
Axiom. (RealsStruct_neg_Z) We take the following as an axiom:
∀nNpos, - n Z
L5309
Axiom. (RealsStruct_zero_Z) We take the following as an axiom:
zero Z
L5310
Axiom. (RealsStruct_Npos_Z) We take the following as an axiom:
Npos Z
L5311
Axiom. (RealsStruct_Z_R) We take the following as an axiom:
Z R
L5312
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
L5321
Axiom. (RealsStruct_Q_R) We take the following as an axiom:
Q R
L5323
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).
L5326
Axiom. (RealsStruct_div_clos) We take the following as an axiom:
∀xR, ∀yR {zero}, x :/: y R
L5327
Axiom. (RealsStruct_mult_div) We take the following as an axiom:
∀xR, ∀yR {zero}, x = y * (x :/: y)
L5328
Axiom. (RealsStruct_div_undef1) We take the following as an axiom:
∀x y, x Rx :/: y = 0
L5329
Axiom. (RealsStruct_div_undef2) We take the following as an axiom:
∀x y, y Rx :/: y = 0
L5330
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).
L5333
Axiom. (RealsStruct_omega_exp_0) We take the following as an axiom:
∀x, x ^ 0 = one
L5335
Axiom. (RealsStruct_omega_exp_S) We take the following as an axiom:
∀x, ∀nomega, x ^ (ordsucc n) = x * x ^ n
L5336
Axiom. (RealsStruct_omega_exp_1) We take the following as an axiom:
∀xR, x ^ 1 = x
L5337
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.
L5341
Axiom. (RealsStruct_abs_clos) We take the following as an axiom:
L5343
Axiom. (RealsStruct_abs_nonneg_case) We take the following as an axiom:
∀xR, zero xRealsStruct_abs x = x
L5344
Axiom. (RealsStruct_abs_neg_case) We take the following as an axiom:
∀xR, x < zeroRealsStruct_abs x = - x
L5345
Axiom. (RealsStruct_abs_nonneg) We take the following as an axiom:
L5346
Axiom. (RealsStruct_abs_zero_inv) We take the following as an axiom:
∀xR, RealsStruct_abs x = zerox = zero
L5347
Axiom. (RealsStruct_dist_zero_eq) We take the following as an axiom:
∀x yR, RealsStruct_abs (x + - y) = zerox = y
L5348
Definition. We define RealsStruct_divides to be λm n ⇒ ∃kNpos, m * k = n of type setsetprop.
L5350
L5352
Definition. We define RealsStruct_coprime to be λm n ⇒ ∀kNpos, RealsStruct_divides k mRealsStruct_divides k nk = one of type setsetprop.
L5354
Let Qs ≝ pack_b_b_e_e Q (RealsStruct_plus Rs) (RealsStruct_mult Rs) zero one
L5356
Axiom. (Field_RealsStruct_Q) We take the following as an axiom:
L5357
Definition. We define RealsStruct_omega_embedding to be nat_primrec zero (λ_ r ⇒ r + one) of type setset.
L5359
Let emb : setsetRealsStruct_omega_embedding
L5361
Axiom. (RealsStruct_omega_embedding_N) We take the following as an axiom:
∀nomega, emb n N
End of Section RealsStruct
Beginning of Section MetaCat
L5367
Variable Obj : setprop
L5369
Variable Hom : setsetsetprop
L5370
Variable id : setset
L5371
Variable comp : setsetsetsetsetset
L5372
Definition. We define idT to be ∀X : set, Obj XHom X X (id X) of type prop.
L5374
Definition. We define compT to be ∀X Y Z : set, ∀f g : set, Obj XObj YObj ZHom X Y fHom Y Z gHom X Z (comp X Y Z g f) of type prop.
L5379
Definition. We define idL to be ∀X Y : set, ∀f : set, Obj XObj YHom X Y fcomp X X Y f (id X) = f of type prop.
L5383
Definition. We define idR to be ∀X Y : set, ∀f : set, Obj XObj YHom X Y fcomp X Y Y (id Y) f = f of type prop.
L5387
Definition. We define compAssoc to be ∀X Y Z W : set, ∀f g h : set, Obj XObj YObj ZObj WHom X Y fHom Y Z gHom Z W hcomp X Y W (comp Y Z W h g) f = comp X Z W h (comp X Y Z g f) of type prop.
Primitive. The name MetaCat is a term of type prop.
L5396
Axiom. (MetaCat_I) We take the following as an axiom:
idTcompT(∀X Y : set, ∀f : set, Obj XObj YHom X Y fcomp X X Y f (id X) = f)(∀X Y : set, ∀f : set, Obj XObj YHom X Y fcomp X Y Y (id Y) f = f)(∀X Y Z W : set, ∀f g h : set, Obj XObj YObj ZObj WHom X Y fHom Y Z gHom Z W hcomp X Y W (comp Y Z W h g) f = comp X Z W h (comp X Y Z g f))MetaCat
L5403
Axiom. (MetaCat_E) We take the following as an axiom:
MetaCat∀p : prop, (idTcompT(∀X Y : set, ∀f : set, Obj XObj YHom X Y fcomp X X Y f (id X) = f)(∀X Y : set, ∀f : set, Obj XObj YHom X Y fcomp X Y Y (id Y) f = f)(∀X Y Z W : set, ∀f g h : set, Obj XObj YObj ZObj WHom X Y fHom Y Z gHom Z W hcomp X Y W (comp Y Z W h g) f = comp X Z W h (comp X Y Z g f))p)p
End of Section MetaCat
Beginning of Section MetaCatOp
L5416
Variable Obj : setprop
L5418
Variable Hom : setsetsetprop
L5419
Variable id : setset
L5420
Variable comp : setsetsetsetsetset
L5421
Axiom. (MetaCatOp) We take the following as an axiom:
MetaCat Obj Hom id compMetaCat Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f)
End of Section MetaCatOp
Beginning of Section LimsCoLims
L5429
Variable Obj : setprop
L5431
Variable Hom : setsetsetprop
L5432
Variable id : setset
L5433
Variable comp : setsetsetsetsetset
L5434
Definition. We define monic to be λX Y f ⇒ Obj X Obj Y Hom X Y f ∀Z : set, Obj Z∀g h : set, Hom Z X gHom Z X hcomp Z X Y f g = comp Z X Y f hg = h of type setsetsetprop.
L5442
Definition. We define terminal_p to be λY h ⇒ Obj Y ∀X : set, Obj XHom X Y (h X) ∀h' : set, Hom X Y h'h' = h X of type set(setset)prop.
L5448
Definition. We define initial_p to be λY h ⇒ Obj Y ∀X : set, Obj XHom Y X (h X) ∀h' : set, Hom Y X h'h' = h X of type set(setset)prop.
L5454
Definition. We define product_p to be λX Y Z pi0 pi1 pair ⇒ Obj X Obj Y Obj Z Hom Z X pi0 Hom Z Y pi1 ∀W : set, Obj W∀h k : set, Hom W X hHom W Y kHom W Z (pair W h k) comp W Z X pi0 (pair W h k) = h comp W Z Y pi1 (pair W h k) = k ∀u : set, Hom W Z ucomp W Z X pi0 u = hcomp W Z Y pi1 u = ku = pair W h k of type setsetsetsetset(setsetsetset)prop.
L5470
Definition. We define product_constr_p to be λprod pi0 pi1 pair ⇒ ∀X Y : set, Obj XObj Yproduct_p X Y (prod X Y) (pi0 X Y) (pi1 X Y) (pair X Y) of type (setsetset)(setsetset)(setsetset)(setsetsetsetsetset)prop.
L5474
Definition. We define coproduct_p to be λX Y Z i0 i1 comb ⇒ Obj X Obj Y Obj Z Hom X Z i0 Hom Y Z i1 ∀W : set, Obj W∀h k : set, Hom X W hHom Y W kHom Z W (comb W h k) comp X Z W (comb W h k) i0 = h comp Y Z W (comb W h k) i1 = k ∀hk : set, Hom Z W hkcomp X Z W hk i0 = hcomp Y Z W hk i1 = khk = comb W h k of type setsetsetsetset(setsetsetset)prop.
L5490
Definition. We define coproduct_constr_p to be λcoprod i0 i1 copair ⇒ ∀X Y : set, Obj XObj Ycoproduct_p X Y (coprod X Y) (i0 X Y) (i1 X Y) (copair X Y) of type (setsetset)(setsetset)(setsetset)(setsetsetsetsetset)prop.
L5494
Definition. We define equalizer_p to be λX Y f g Q q fac ⇒ Obj X Obj Y Hom X Y f Hom X Y g Obj Q Hom Q X q comp Q X Y f q = comp Q X Y g q ∀W : set, Obj W∀h : set, Hom W X hcomp W X Y f h = comp W X Y g hHom W Q (fac W h) comp W Q X q (fac W h) = h ∀u : set, Hom W Q ucomp W Q X q u = hu = fac W h of type setsetsetsetsetset(setsetset)prop.
L5510
Definition. We define equalizer_constr_p to be λquot canonmap fac ⇒ ∀X Y : set, Obj XObj Y∀f g : set, Hom X Y fHom X Y gequalizer_p X Y f g (quot X Y f g) (canonmap X Y f g) (fac X Y f g) of type (setsetsetsetset)(setsetsetsetset)(setsetsetsetsetsetset)prop.
L5514
Definition. We define coequalizer_p to be λX Y f g Q q fac ⇒ Obj X Obj Y Hom X Y f Hom X Y g Obj Q Hom Y Q q comp X Y Q q f = comp X Y Q q g ∀W : set, Obj W∀h : set, Hom Y W hcomp X Y W h f = comp X Y W h gHom Q W (fac W h) comp Y Q W (fac W h) q = h ∀u : set, Hom Q W ucomp Y Q W u q = hu = fac W h of type setsetsetsetsetset(setsetset)prop.
L5530
Definition. We define coequalizer_constr_p to be λquot canonmap fac ⇒ ∀X Y : set, Obj XObj Y∀f g : set, Hom X Y fHom X Y gcoequalizer_p X Y f g (quot X Y f g) (canonmap X Y f g) (fac X Y f g) of type (setsetsetsetset)(setsetsetsetset)(setsetsetsetsetsetset)prop.
L5534
Definition. We define pullback_p to be λX Y Z f g P pi0 pi1 pair ⇒ Obj X Obj Y Obj Z Hom X Z f Hom Y Z g Obj P Hom P X pi0 Hom P Y pi1 comp P X Z f pi0 = comp P Y Z g pi1 ∀W : set, Obj W∀h : set, Hom W X h∀k : set, Hom W Y kcomp W X Z f h = comp W Y Z g kHom W P (pair W h k) comp W P X pi0 (pair W h k) = h comp W P Y pi1 (pair W h k) = k ∀u : set, Hom W P ucomp W P X pi0 u = hcomp W P Y pi1 u = ku = pair W h k of type setsetsetsetsetsetsetset(setsetsetset)prop.
L5557
Definition. We define pullback_constr_p to be λpb pi0 pi1 pair ⇒ ∀X Y Z : set, Obj XObj YObj Z∀f g : set, Hom X Z fHom Y Z gpullback_p X Y Z f g (pb X Y Z f g) (pi0 X Y Z f g) (pi1 X Y Z f g) (pair X Y Z f g) of type (setsetsetsetsetset)(setsetsetsetsetset)(setsetsetsetsetset)(setsetsetsetsetsetsetsetset)prop.
L5563
Definition. We define pushout_p to be λX Y Z f g P i0 i1 copair ⇒ Obj X Obj Y Obj Z Hom Z X f Hom Z Y g Obj P Hom X P i0 Hom Y P i1 comp Z X P i0 f = comp Z Y P i1 g ∀W : set, Obj W∀h : set, Hom X W h∀k : set, Hom Y W kcomp Z X W h f = comp Z Y W k gHom P W (copair W h k) comp X P W (copair W h k) i0 = h comp Y P W (copair W h k) i1 = k ∀u : set, Hom P W ucomp X P W u i0 = hcomp Y P W u i1 = ku = copair W h k of type setsetsetsetsetsetsetset(setsetsetset)prop.
L5586
Definition. We define pushout_constr_p to be λpo i0 i1 copair ⇒ ∀X Y Z : set, Obj XObj YObj Z∀f g : set, Hom Z X fHom Z Y gpushout_p X Y Z f g (po X Y Z f g) (i0 X Y Z f g) (i1 X Y Z f g) (copair X Y Z f g) of type (setsetsetsetsetset)(setsetsetsetsetset)(setsetsetsetsetset)(setsetsetsetsetsetsetsetset)prop.
L5592
Definition. We define exponent_p to be λprod pi0 pi1 pair X Y Z a lm ⇒ Obj X Obj Y Obj Z Hom (prod Z X) Y a ∀W : set, Obj W∀f : set, Hom (prod W X) Y fHom W Z (lm W f) comp (prod W X) (prod Z X) Y a (pair Z X (prod W X) (comp (prod W X) W Z (lm W f) (pi0 W X)) (pi1 W X)) = f ∀g : set, Hom W Z gcomp (prod W X) (prod Z X) Y a (pair Z X (prod W X) (comp (prod W X) W Z g (pi0 W X)) (pi1 W X)) = fg = lm W f of type (setsetset)(setsetset)(setsetset)(setsetsetsetsetset)setsetsetset(setsetset)prop.
L5604
Definition. We define product_exponent_constr_p to be λprod pi0 pi1 pair exp a lm ⇒ product_constr_p prod pi0 pi1 pair ∀X Y : set, Obj XObj Yexponent_p prod pi0 pi1 pair X Y (exp X Y) (a X Y) (lm X Y) of type (setsetset)(setsetset)(setsetset)(setsetsetsetsetset)(setsetset)(setsetset)(setsetsetsetset)prop.
L5610
Definition. We define subobject_classifier_p to be λone uniqa Omega tru ch constr_p ⇒ terminal_p one uniqa Obj Omega Hom one Omega tru ∀X Y : set, ∀m : set, monic X Y mHom Y Omega (ch X Y m) pullback_p one Y Omega tru (ch X Y m) X (uniqa X) m (constr_p X Y m) of type set(setset)setset(setsetsetset)(setsetsetsetsetsetset)prop.
L5619
Definition. We define nno_p to be λone uniqa N zer suc rec ⇒ terminal_p one uniqa Obj N Hom one N zer Hom N N suc ∀X : set, ∀x : set, ∀f : set, Obj XHom one X xHom X X fHom N X (rec X x f) comp one N X (rec X x f) zer = x comp N N X (rec X x f) suc = comp N X X f (rec X x f) ∀u : set, Hom N X ucomp one N X u zer = xcomp N N X u suc = comp N X X f uu = rec X x f of type set(setset)setsetset(setsetsetset)prop.
End of Section LimsCoLims
Beginning of Section LimsCoLims2
L5639
Variable Obj : setprop
L5641
Variable Hom : setsetsetprop
L5642
Variable id : setset
L5643
Variable comp : setsetsetsetsetset
L5644
Axiom. (product_coproduct_Op) We take the following as an axiom:
∀X Y Z : set, ∀pi0 pi1 : set, ∀pair : setsetsetset, product_p Obj Hom id comp X Y Z pi0 pi1 paircoproduct_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z pi0 pi1 pair
L5649
Axiom. (product_coproduct_constr_Op) We take the following as an axiom:
∀prod : setsetset, ∀pi0 pi1 : setsetset, ∀pair : setsetsetsetsetset, product_constr_p Obj Hom id comp prod pi0 pi1 paircoproduct_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) prod pi0 pi1 pair
L5654
Axiom. (coproduct_product_Op) We take the following as an axiom:
∀X Y Z : set, ∀i0 i1 : set, ∀copair : setsetsetset, coproduct_p Obj Hom id comp X Y Z i0 i1 copairproduct_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z i0 i1 copair
L5659
Axiom. (coproduct_product_constr_Op) We take the following as an axiom:
∀coprod : setsetset, ∀i0 i1 : setsetset, ∀copair : setsetsetsetsetset, coproduct_constr_p Obj Hom id comp coprod i0 i1 copairproduct_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) coprod i0 i1 copair
L5664
Axiom. (equalizer_coequalizer_Op) We take the following as an axiom:
∀X Y : set, ∀f g : set, ∀Q : set, ∀q : set, ∀fac : setsetset, equalizer_p Obj Hom id comp X Y f g Q q faccoequalizer_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) Y X f g Q q fac
L5669
Axiom. (equalizer_coequalizer_constr_Op) We take the following as an axiom:
∀quot : setsetsetsetset, ∀canonmap : setsetsetsetset, ∀fac : setsetsetsetsetsetset, equalizer_constr_p Obj Hom id comp quot canonmap faccoequalizer_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) (λX Y f g ⇒ quot Y X f g) (λX Y f g ⇒ canonmap Y X f g) (λX Y f g ⇒ fac Y X f g)
L5676
Axiom. (coequalizer_equalizer_Op) We take the following as an axiom:
∀X Y : set, ∀f g : set, ∀Q : set, ∀q : set, ∀fac : setsetset, coequalizer_p Obj Hom id comp X Y f g Q q facequalizer_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) Y X f g Q q fac
L5681
Axiom. (coequalizer_equalizer_constr_Op) We take the following as an axiom:
∀quot : setsetsetsetset, ∀canonmap : setsetsetsetset, ∀fac : setsetsetsetsetsetset, coequalizer_constr_p Obj Hom id comp quot canonmap facequalizer_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) (λX Y f g ⇒ quot Y X f g) (λX Y f g ⇒ canonmap Y X f g) (λX Y f g ⇒ fac Y X f g)
L5688
Axiom. (pullback_pushout_Op) We take the following as an axiom:
∀X Y Z : set, ∀f g : set, ∀P : set, ∀pi0 pi1 : set, ∀pair : setsetsetset, pullback_p Obj Hom id comp X Y Z f g P pi0 pi1 pairpushout_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z f g P pi0 pi1 pair
L5693
Axiom. (pullback_pushout_constr_Op) We take the following as an axiom:
∀pb : setsetsetsetsetset, ∀pi0 pi1 : setsetsetsetsetset, ∀pair : setsetsetsetsetsetsetsetset, pullback_constr_p Obj Hom id comp pb pi0 pi1 pairpushout_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) pb pi0 pi1 pair
L5698
Axiom. (pushout_pullback_Op) We take the following as an axiom:
∀X Y Z : set, ∀f g : set, ∀P : set, ∀i0 i1 : set, ∀copair : setsetsetset, pushout_p Obj Hom id comp X Y Z f g P i0 i1 copairpullback_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) X Y Z f g P i0 i1 copair
L5703
Axiom. (pushout_pullback_constr_Op) We take the following as an axiom:
∀po : setsetsetsetsetset, ∀i0 i1 : setsetsetsetsetset, ∀copair : setsetsetsetsetsetsetsetset, pushout_constr_p Obj Hom id comp po i0 i1 copairpullback_constr_p Obj (λX Y ⇒ Hom Y X) id (λX Y Z f g ⇒ comp Z Y X g f) po i0 i1 copair
L5708
Axiom. (product_equalizer_pullback_constr) We take the following as an axiom:
MetaCat Obj Hom id comp∀quot : setsetsetsetset, ∀canonmap : setsetsetsetset, ∀fac : setsetsetsetsetsetset, equalizer_constr_p Obj Hom id comp quot canonmap fac∀prod : setsetset, ∀pi0 : setsetset, ∀pi1 : setsetset, ∀pair : setsetsetsetsetset, product_constr_p Obj Hom id comp prod pi0 pi1 pairpullback_constr_p Obj Hom id comp (λX Y Z f g ⇒ quot (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y))) (λX Y Z f g ⇒ comp (quot (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y))) (prod X Y) X (pi0 X Y) (canonmap (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y)))) (λX Y Z f g ⇒ comp (quot (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y))) (prod X Y) Y (pi1 X Y) (canonmap (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y)))) (λX Y Z f g W h k ⇒ fac (prod X Y) Z (comp (prod X Y) X Z f (pi0 X Y)) (comp (prod X Y) Y Z g (pi1 X Y)) W (pair X Y W h k))
L5727
Axiom. (product_equalizer_pullback_constr_ex) We take the following as an axiom:
MetaCat Obj Hom id comp(∃quot : setsetsetsetset, ∃canonmap : setsetsetsetset, ∃fac : setsetsetsetsetsetset, equalizer_constr_p Obj Hom id comp quot canonmap fac)(∃prod : setsetset, ∃pi0 : setsetset, ∃pi1 : setsetset, ∃pair : setsetsetsetsetset, product_constr_p Obj Hom id comp prod pi0 pi1 pair)∃pb : setsetsetsetsetset, ∃pi0 : setsetsetsetsetset, ∃pi1 : setsetsetsetsetset, ∃pair : setsetsetsetsetsetsetsetset, pullback_constr_p Obj Hom id comp pb pi0 pi1 pair
End of Section LimsCoLims2
Beginning of Section LimsCoLims3
L5750
Variable Obj : setprop
L5752
Variable Hom : setsetsetprop
L5753
Variable id : setset
L5754
Variable comp : setsetsetsetsetset
L5755
Axiom. (coproduct_coequalizer_pushout_constr_ex) We take the following as an axiom:
MetaCat Obj Hom id comp(∃quot : setsetsetsetset, ∃canonmap : setsetsetsetset, ∃fac : setsetsetsetsetsetset, coequalizer_constr_p Obj Hom id comp quot canonmap fac)(∃coprod : setsetset, ∃i0 : setsetset, ∃i1 : setsetset, ∃copair : setsetsetsetsetset, coproduct_constr_p Obj Hom id comp coprod i0 i1 copair)∃po : setsetsetsetsetset, ∃i0 : setsetsetsetsetset, ∃i1 : setsetsetsetsetset, ∃copair : setsetsetsetsetsetsetsetset, pushout_constr_p Obj Hom id comp po i0 i1 copair
End of Section LimsCoLims3
L5776
Definition. We define SetHom to be λX Y f ⇒ f YX of type setsetsetprop.
Beginning of Section MetaFunctor
L5781
Variable Obj : setprop
L5783
Variable Hom : setsetsetprop
L5784
Variable id : setset
L5785
Variable comp : setsetsetsetsetset
L5786
Variable Obj' : setprop
L5787
Variable Hom' : setsetsetprop
L5788
Variable id' : setset
L5789
Variable comp' : setsetsetsetsetset
L5790
Variable F0 : setset
L5792
Variable F1 : setsetsetset
Primitive. The name MetaFunctor is a term of type prop.
L5796
Axiom. (MetaFunctorI) We take the following as an axiom:
(∀X, Obj XObj' (F0 X))(∀X Y f, Obj XObj YHom X Y fHom' (F0 X) (F0 Y) (F1 X Y f))(∀X, Obj XF1 X X (id X) = id' (F0 X))(∀X Y Z f g, Obj XObj YObj ZHom X Y fHom Y Z gF1 X Z (comp X Y Z g f) = comp' (F0 X) (F0 Y) (F0 Z) (F1 Y Z g) (F1 X Y f))MetaFunctor
L5803
Axiom. (MetaFunctorE) We take the following as an axiom:
MetaFunctor∀p : prop, ((∀X, Obj XObj' (F0 X))(∀X Y f, Obj XObj YHom X Y fHom' (F0 X) (F0 Y) (F1 X Y f))(∀X, Obj XF1 X X (id X) = id' (F0 X))(∀X Y Z f g, Obj XObj YObj ZHom X Y fHom Y Z gF1 X Z (comp X Y Z g f) = comp' (F0 X) (F0 Y) (F0 Z) (F1 Y Z g) (F1 X Y f))p)p
Primitive. The name MetaFunctor_strict is a term of type prop.
L5815
Axiom. (MetaFunctor_strict_I) We take the following as an axiom:
MetaCat Obj Hom id compMetaCat Obj' Hom' id' comp'MetaFunctorMetaFunctor_strict
L5821
Axiom. (MetaFunctor_strict_E) We take the following as an axiom:
MetaFunctor_strict∀p : prop, (MetaCat Obj Hom id compMetaCat Obj' Hom' id' comp'MetaFunctorp)p
End of Section MetaFunctor
Beginning of Section IdFunctor
L5833
Variable Obj : setprop
L5835
Variable Hom : setsetsetprop
L5836
Variable id : setset
L5837
Variable comp : setsetsetsetsetset
L5838
Axiom. (MetaCat_IdFunctor) We take the following as an axiom:
MetaFunctor Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f)
L5840
Axiom. (MetaCat_IdFunctor_strict) We take the following as an axiom:
MetaCat Obj Hom id compMetaFunctor_strict Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f)
End of Section IdFunctor
Beginning of Section CompFunctors
L5847
Variable Obj : setprop
L5849
Variable Hom : setsetsetprop
L5850
Variable id : setset
L5851
Variable comp : setsetsetsetsetset
L5852
Variable Obj' : setprop
L5853
Variable Hom' : setsetsetprop
L5854
Variable id' : setset
L5855
Variable comp' : setsetsetsetsetset
L5856
Variable Obj'' : setprop
L5857
Variable Hom'' : setsetsetprop
L5858
Variable id'' : setset
L5859
Variable comp'' : setsetsetsetsetset
L5860
Variable F0 : setset
L5861
Variable F1 : setsetsetset
L5862
Variable G0 : setset
L5863
Variable G1 : setsetsetset
L5864
Axiom. (MetaCat_CompFunctors) We take the following as an axiom:
MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' G0 G1MetaFunctor Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f))
L5869
Axiom. (MetaCat_CompFunctors_strict) We take the following as an axiom:
MetaFunctor_strict Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor_strict Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' G0 G1MetaFunctor_strict Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f))
End of Section CompFunctors
Beginning of Section MetaNatTrans
L5878
Variable Obj : setprop
L5880
Variable Hom : setsetsetprop
L5881
Variable id : setset
L5882
Variable comp : setsetsetsetsetset
L5883
Variable Obj' : setprop
L5884
Variable Hom' : setsetsetprop
L5885
Variable id' : setset
L5886
Variable comp' : setsetsetsetsetset
L5887
Variable F0 : setset
L5889
Variable F1 : setsetsetset
L5890
Variable G0 : setset
L5891
Variable G1 : setsetsetset
L5892
Variable eta : setset
Primitive. The name MetaNatTrans is a term of type prop.
L5897
Axiom. (MetaNatTransI) We take the following as an axiom:
(∀X, Obj XHom' (F0 X) (G0 X) (eta X))(∀X Y f, Obj XObj YHom X Y fcomp' (F0 X) (G0 X) (G0 Y) (G1 X Y f) (eta X) = comp' (F0 X) (F0 Y) (G0 Y) (eta Y) (F1 X Y f))MetaNatTrans
L5904
Axiom. (MetaNatTransE) We take the following as an axiom:
MetaNatTrans∀p : prop, ((∀X, Obj XHom' (F0 X) (G0 X) (eta X))(∀X Y f, Obj XObj YHom X Y fcomp' (F0 X) (G0 X) (G0 Y) (G1 X Y f) (eta X) = comp' (F0 X) (F0 Y) (G0 Y) (eta Y) (F1 X Y f))p)p
Primitive. The name MetaNatTrans_strict is a term of type prop.
L5916
Axiom. (MetaNatTrans_strict_I) We take the following as an axiom:
MetaCat Obj Hom id compMetaCat Obj' Hom' id' comp'MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor Obj Hom id comp Obj' Hom' id' comp' G0 G1MetaNatTransMetaNatTrans_strict
L5923
Axiom. (MetaNatTrans_strict_E) We take the following as an axiom:
MetaNatTrans_strict∀p : prop, (MetaCat Obj Hom id compMetaCat Obj' Hom' id' comp'MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor Obj Hom id comp Obj' Hom' id' comp' G0 G1MetaNatTransp)p
End of Section MetaNatTrans
Beginning of Section CompFunctorNatTrans
L5937
Variable Obj : setprop
L5939
Variable Hom : setsetsetprop
L5940
Variable id : setset
L5941
Variable comp : setsetsetsetsetset
L5942
Variable Obj' : setprop
L5943
Variable Hom' : setsetsetprop
L5944
Variable id' : setset
L5945
Variable comp' : setsetsetsetsetset
L5946
Variable Obj'' : setprop
L5947
Variable Hom'' : setsetsetprop
L5948
Variable id'' : setset
L5949
Variable comp'' : setsetsetsetsetset
L5950
Variable F0 : setset
L5951
Variable F1 : setsetsetset
L5952
Variable G0 : setset
L5953
Variable G1 : setsetsetset
L5954
Variable H0 : setset
L5955
Variable H1 : setsetsetset
L5956
Variable eta : setset
L5957
Axiom. (MetaCat_CompFunctorNatTrans) We take the following as an axiom:
MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor Obj Hom id comp Obj' Hom' id' comp' G0 G1MetaNatTrans Obj Hom id comp Obj' Hom' id' comp' F0 F1 G0 G1 etaMetaFunctor Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' H0 H1MetaNatTrans Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ H0 (F0 X)) (λX Y f ⇒ H1 (F0 X) (F0 Y) (F1 X Y f)) (λX ⇒ H0 (G0 X)) (λX Y f ⇒ H1 (G0 X) (G0 Y) (G1 X Y f)) (λX ⇒ H1 (F0 X) (G0 X) (eta X))
End of Section CompFunctorNatTrans
Beginning of Section CompNatTransFunctor
L5981
Variable Obj : setprop
L5983
Variable Hom : setsetsetprop
L5984
Variable id : setset
L5985
Variable comp : setsetsetsetsetset
L5986
Variable Obj' : setprop
L5987
Variable Hom' : setsetsetprop
L5988
Variable id' : setset
L5989
Variable comp' : setsetsetsetsetset
L5990
Variable Obj'' : setprop
L5991
Variable Hom'' : setsetsetprop
L5992
Variable id'' : setset
L5993
Variable comp'' : setsetsetsetsetset
L5994
Variable F0 : setset
L5995
Variable F1 : setsetsetset
L5996
Variable G0 : setset
L5997
Variable G1 : setsetsetset
L5998
Variable H0 : setset
L5999
Variable H1 : setsetsetset
L6000
Variable eta : setset
L6001
Axiom. (MetaCat_CompNatTransFunctor) We take the following as an axiom:
MetaNatTrans Obj' Hom' id' comp' Obj'' Hom'' id'' comp'' F0 F1 G0 G1 etaMetaFunctor Obj Hom id comp Obj' Hom' id' comp' H0 H1MetaNatTrans Obj Hom id comp Obj'' Hom'' id'' comp'' (λX ⇒ F0 (H0 X)) (λX Y f ⇒ F1 (H0 X) (H0 Y) (H1 X Y f)) (λX ⇒ G0 (H0 X)) (λX Y f ⇒ G1 (H0 X) (H0 Y) (H1 X Y f)) (λX ⇒ eta (H0 X))
End of Section CompNatTransFunctor
Beginning of Section MetaMonad
L6023
Variable Obj : setprop
L6025
Variable Hom : setsetsetprop
L6026
Variable id : setset
L6027
Variable comp : setsetsetsetsetset
L6028
Variable T0 : setset
L6030
Variable T1 : setsetsetset
L6031
Variable eta : setset
L6032
Variable mu : setset
Primitive. The name MetaMonad is a term of type prop.
Primitive. The name MetaMonad_strict is a term of type prop.
L6039
Axiom. (MetaMonadI) We take the following as an axiom:
(∀X, Obj Xcomp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (T1 (T0 (T0 X)) (T0 X) (mu X)) = comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (mu (T0 X)))(∀X, Obj Xcomp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (eta (T0 X)) = id (T0 X))(∀X, Obj Xcomp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (T1 X (T0 X) (eta X)) = id (T0 X))MetaMonad
L6045
Axiom. (MetaMonadE) We take the following as an axiom:
MetaMonad(∀p : prop, ((∀X, Obj Xcomp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (T1 (T0 (T0 X)) (T0 X) (mu X)) = comp (T0 (T0 (T0 X))) (T0 (T0 X)) (T0 X) (mu X) (mu (T0 X)))(∀X, Obj Xcomp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (eta (T0 X)) = id (T0 X))(∀X, Obj Xcomp (T0 X) (T0 (T0 X)) (T0 X) (mu X) (T1 X (T0 X) (eta X)) = id (T0 X))p)p)
L6053
Axiom. (MetaMonad_strict_I) We take the following as an axiom:
MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) T0 T1 etaMetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ T0 (T0 X)) (λX Y f ⇒ T1 (T0 X) (T0 Y) (T1 X Y f)) T0 T1 muMetaMonadMetaMonad_strict
L6059
Axiom. (MetaMonad_strict_E) We take the following as an axiom:
MetaMonad_strict∀p : prop, (MetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) T0 T1 etaMetaNatTrans_strict Obj Hom id comp Obj Hom id comp (λX ⇒ T0 (T0 X)) (λX Y f ⇒ T1 (T0 X) (T0 Y) (T1 X Y f)) T0 T1 muMetaMonadp)p
End of Section MetaMonad
Beginning of Section MetaAdjunction
L6071
Variable Obj : setprop
L6073
Variable Hom : setsetsetprop
L6074
Variable id : setset
L6075
Variable comp : setsetsetsetsetset
L6076
Variable Obj' : setprop
L6077
Variable Hom' : setsetsetprop
L6078
Variable id' : setset
L6079
Variable comp' : setsetsetsetsetset
L6080
Variable F0 : setset
L6082
Variable F1 : setsetsetset
L6083
Variable G0 : setset
L6084
Variable G1 : setsetsetset
L6085
Variable eta : setset
L6086
Variable eps : setset
Primitive. The name MetaAdjunction is a term of type prop.
Primitive. The name MetaAdjunction_strict is a term of type prop.
L6093
Axiom. (MetaAdjunctionI) We take the following as an axiom:
(∀X, Obj Xcomp' (F0 X) (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)) (F1 X (G0 (F0 X)) (eta X)) = id' (F0 X))(∀Y, Obj' Ycomp (G0 Y) (G0 (F0 (G0 Y))) (G0 Y) (G1 (F0 (G0 Y)) Y (eps Y)) (eta (G0 Y)) = id (G0 Y))MetaAdjunction
L6098
Axiom. (MetaAdjunctionE) We take the following as an axiom:
MetaAdjunction∀p : prop, ((∀X, Obj Xcomp' (F0 X) (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)) (F1 X (G0 (F0 X)) (eta X)) = id' (F0 X))(∀Y, Obj' Ycomp (G0 Y) (G0 (F0 (G0 Y))) (G0 Y) (G1 (F0 (G0 Y)) Y (eps Y)) (eta (G0 Y)) = id (G0 Y))p)p
L6105
Axiom. (MetaAdjunction_strict_I) We take the following as an axiom:
MetaFunctor_strict Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor Obj' Hom' id' comp' Obj Hom id comp G0 G1MetaNatTrans Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) etaMetaNatTrans Obj' Hom' id' comp' Obj' Hom' id' comp' (λY ⇒ F0 (G0 Y)) (λX Y g ⇒ F1 (G0 X) (G0 Y) (G1 X Y g)) (λY ⇒ Y) (λX Y g ⇒ g) epsMetaAdjunctionMetaAdjunction_strict
L6113
Axiom. (MetaAdjunction_strict_E) We take the following as an axiom:
MetaAdjunction_strict∀p : prop, (MetaFunctor_strict Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor Obj' Hom' id' comp' Obj Hom id comp G0 G1MetaNatTrans Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) etaMetaNatTrans Obj' Hom' id' comp' Obj' Hom' id' comp' (λY ⇒ F0 (G0 Y)) (λX Y g ⇒ F1 (G0 X) (G0 Y) (G1 X Y g)) (λY ⇒ Y) (λX Y g ⇒ g) epsMetaAdjunctionp)p
L6123
Axiom. (MetaAdjunctionMonad) We take the following as an axiom:
MetaFunctor Obj Hom id comp Obj' Hom' id' comp' F0 F1MetaFunctor Obj' Hom' id' comp' Obj Hom id comp G0 G1MetaNatTrans Obj Hom id comp Obj Hom id comp (λX ⇒ X) (λX Y f ⇒ f) (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) etaMetaNatTrans Obj' Hom' id' comp' Obj' Hom' id' comp' (λY ⇒ F0 (G0 Y)) (λX Y g ⇒ F1 (G0 X) (G0 Y) (G1 X Y g)) (λY ⇒ Y) (λX Y g ⇒ g) epsMetaAdjunctionMetaMonad Obj Hom id comp (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta (λX ⇒ G1 (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)))
L6131
Axiom. (MetaAdjunctionMonad_strict) We take the following as an axiom:
MetaAdjunction_strictMetaMonad_strict Obj Hom id comp (λX ⇒ G0 (F0 X)) (λX Y f ⇒ G1 (F0 X) (F0 Y) (F1 X Y f)) eta (λX ⇒ G1 (F0 (G0 (F0 X))) (F0 X) (eps (F0 X)))
End of Section MetaAdjunction
Beginning of Section MetaCatConcrete
L6139
Variable Obj : setprop
L6141
Variable U : setset
L6142
Variable Hom : setsetsetprop
L6143
Axiom. (MetaCatConcrete) We take the following as an axiom:
(∀X Y f, Obj XObj YHom X Y ff U YU X)(∀X, Obj XHom X X (lam_id (U X)))(∀X Y Z f g, Obj XObj YObj ZHom X Y fHom Y Z gHom X Z (lam_comp (U X) g f))MetaCat Obj Hom (λX ⇒ lam_id (U X)) (λX Y Z g f ⇒ lam_comp (U X) g f)
L6149
Axiom. (MetaCatConcreteForgetful) We take the following as an axiom:
(∀X Y f, Obj XObj YHom X Y ff U YU X)MetaFunctor Obj Hom (λX ⇒ lam_id (U X)) (λX Y Z f g ⇒ (lam_comp (U X) f g)) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) U (λX Y f ⇒ f)
End of Section MetaCatConcrete
L6155
Axiom. (MetaCatSet) We take the following as an axiom:
MetaCat (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z g f ⇒ lam_comp X g f)
L6157
Axiom. (MetaCatHFSet) We take the following as an axiom:
MetaCat (λX ⇒ X UnivOf Empty) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g))
L6158
Axiom. (MetaCatSmallSet) We take the following as an axiom:
MetaCat (λX ⇒ X UnivOf (UnivOf Empty)) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g))
L6159
Axiom. (MetaCatConcreteForgetful_strict) We take the following as an axiom:
∀Obj : setprop, ∀U : setset, ∀Hom : setsetsetprop, (∀X Y f, Obj XObj YHom X Y ff U YU X)(∀X, Obj XHom X X (lam_id (U X)))(∀X Y Z f g, Obj XObj YObj ZHom X Y fHom Y Z gHom X Z (lam_comp (U X) g f))MetaFunctor_strict Obj Hom (λX ⇒ lam_id (U X)) (λX Y Z f g ⇒ (lam_comp (U X) f g)) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) U (λX Y f ⇒ f)
L6164
Axiom. (MetaCatSet_initial_gen) We take the following as an axiom:
∀Obj : setprop, Obj 0∃Y : set, ∃uniqa : setset, initial_p Obj SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6169
Axiom. (MetaCatSet_initial) We take the following as an axiom:
∃Y : set, ∃uniqa : setset, initial_p (λ_ ⇒ True) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6172
Axiom. (MetaCatSet_terminal_gen) We take the following as an axiom:
∀Obj : setprop, Obj 1∃Y : set, ∃uniqa : setset, terminal_p Obj SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6177
Axiom. (MetaCatSet_terminal) We take the following as an axiom:
∃Y : set, ∃uniqa : setset, terminal_p (λ_ ⇒ True) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6180
Axiom. (MetaCatSet_coproduct_gen) We take the following as an axiom:
∀Obj : setprop, (∀X, Obj X∀Y, Obj YObj (setsum X Y))∃coprod : setsetset, ∃i0 i1 : setsetset, ∃copair : setsetsetsetsetset, coproduct_constr_p Obj SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) coprod i0 i1 copair
L6188
Axiom. (MetaCatSet_coproduct) We take the following as an axiom:
∃coprod : setsetset, ∃i0 i1 : setsetset, ∃copair : setsetsetsetsetset, coproduct_constr_p (λ_ ⇒ True) SetHom (λX ⇒ λx ∈ Xx) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) coprod i0 i1 copair
L6193
Axiom. (MetaCatSet_product_gen) We take the following as an axiom:
∀Obj : setprop, (∀X, Obj X∀Y, Obj YObj (setprod X Y))∃prod : setsetset, ∃pi0 pi1 : setsetset, ∃pair : setsetsetsetsetset, product_constr_p Obj SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) prod pi0 pi1 pair
L6201
Axiom. (MetaCatSet_product) We take the following as an axiom:
∃prod : setsetset, ∃pi0 pi1 : setsetset, ∃pair : setsetsetsetsetset, product_constr_p (λ_ ⇒ True) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) prod pi0 pi1 pair
L6206
Axiom. (UnivOf_Subq_closed) We take the following as an axiom:
∀N, ∀XUnivOf N, ∀QX, Q UnivOf N
L6208
Definition. We define famunion_closed to be λU : set∀XU, ∀F : setset, (∀xX, F x U)famunion X F U of type setprop.
L6210
Axiom. (Union_Repl_famunion_closed) We take the following as an axiom:
∀U : set, Union_closed URepl_closed Ufamunion_closed U
L6212
Axiom. (ZF_closed_0) We take the following as an axiom:
∀U X, TransSet UZF_closed UX U0 U
L6214
Axiom. (ZF_Inj1_closed) We take the following as an axiom:
∀U, TransSet UZF_closed U∀XU, Inj1 X U
L6216
Axiom. (ZF_Inj0_closed) We take the following as an axiom:
∀U, TransSet UZF_closed U∀XU, Inj0 X U
L6218
Axiom. (ZF_setsum_closed) We take the following as an axiom:
∀U, TransSet UZF_closed U∀X YU, (X + Y) U
L6221
Axiom. (ZF_Sigma_closed) We take the following as an axiom:
∀U, TransSet UZF_closed U∀XU, ∀Y : setset, (∀xX, Y x U)(xX, Y x) U
L6224
Axiom. (ZF_setprod_closed) We take the following as an axiom:
∀U, TransSet UZF_closed U∀X YU, (X Y) U
L6227
Axiom. (ZF_Pi_closed) We take the following as an axiom:
∀U, TransSet UZF_closed U∀XU, ∀Y : setset, (∀xX, Y x U)(xX, Y x) U
L6230
Axiom. (ZF_setexp_closed) We take the following as an axiom:
∀U, TransSet UZF_closed U∀X YU, (YX) U
L6233
Axiom. (MetaCatHFSet_initial) We take the following as an axiom:
∃Y : set, ∃uniqa : setset, initial_p (λX ⇒ X UnivOf Empty) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6236
Axiom. (MetaCatSmallSet_initial) We take the following as an axiom:
∃Y : set, ∃uniqa : setset, initial_p (λX ⇒ X UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6239
Axiom. (MetaCatHFSet_terminal) We take the following as an axiom:
∃Y : set, ∃uniqa : setset, terminal_p (λX ⇒ X UnivOf Empty) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6242
Axiom. (MetaCatSmallSet_terminal) We take the following as an axiom:
∃Y : set, ∃uniqa : setset, terminal_p (λX ⇒ X UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) Y uniqa
L6245
Axiom. (MetaCatHFSet_coproduct) We take the following as an axiom:
∃coprod : setsetset, ∃i0 i1 : setsetset, ∃copair : setsetsetsetsetset, coproduct_constr_p (λX ⇒ X UnivOf Empty) SetHom (λX ⇒ λx ∈ Xx) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) coprod i0 i1 copair
L6250
Axiom. (MetaCatSmallSet_coproduct) We take the following as an axiom:
∃coprod : setsetset, ∃i0 i1 : setsetset, ∃copair : setsetsetsetsetset, coproduct_constr_p (λX ⇒ X UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) coprod i0 i1 copair
L6255
Axiom. (MetaCatHFSet_product) We take the following as an axiom:
∃prod : setsetset, ∃pi0 pi1 : setsetset, ∃pair : setsetsetsetsetset, product_constr_p (λX ⇒ X UnivOf Empty) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) prod pi0 pi1 pair
L6260
Axiom. (MetaCatSmallSet_product) We take the following as an axiom:
∃prod : setsetset, ∃pi0 pi1 : setsetset, ∃pair : setsetsetsetsetset, product_constr_p (λX ⇒ X UnivOf (UnivOf Empty)) SetHom (λX ⇒ (λx ∈ Xx)) (λX Y Z f g ⇒ (λx ∈ Xf (g x))) prod pi0 pi1 pair
Primitive. The name Hom_struct_e is a term of type setsetsetprop.
Primitive. The name Hom_struct_u is a term of type setsetsetprop.
Primitive. The name Hom_struct_b is a term of type setsetsetprop.
Primitive. The name Hom_struct_p is a term of type setsetsetprop.
Primitive. The name Hom_struct_r is a term of type setsetsetprop.
Primitive. The name Hom_struct_c is a term of type setsetsetprop.
Primitive. The name Hom_struct_b_b_e is a term of type setsetsetprop.
Primitive. The name Hom_struct_b_b_e_e is a term of type setsetsetprop.
Primitive. The name Hom_struct_b_b_r_e_e is a term of type setsetsetprop.
L6284
Axiom. (Hom_struct_e_pack) We take the following as an axiom:
∀X Y eX eY f, (Hom_struct_e (pack_e X eX) (pack_e Y eY) f) = (f YX f eX = eY)
L6289
Axiom. (Hom_struct_u_pack) We take the following as an axiom:
∀X Y, ∀opX opY : setset, ∀f, (Hom_struct_u (pack_u X opX) (pack_u Y opY) f) = (f YX (∀xX, f (opX x) = opY (f x)))
L6294
Axiom. (Hom_struct_b_pack) We take the following as an axiom:
∀X Y, ∀opX opY : setsetset, ∀f, (Hom_struct_b (pack_b X opX) (pack_b Y opY) f) = (f YX (∀x yX, f (opX x y) = opY (f x) (f y)))
L6299
Axiom. (Hom_struct_p_pack) We take the following as an axiom:
∀X Y, ∀pX pY : setprop, ∀f, (Hom_struct_p (pack_p X pX) (pack_p Y pY) f) = (f YX (∀xX, pX xpY (f x)))
L6303
Axiom. (Hom_struct_r_pack) We take the following as an axiom:
∀X Y, ∀rX rY : setsetprop, ∀f, (Hom_struct_r (pack_r X rX) (pack_r Y rY) f) = (f YX (∀x yX, rX x yrY (f x) (f y)))
L6307
Axiom. (Hom_struct_c_pack) We take the following as an axiom:
∀X Y, ∀CX CY : (setprop)prop, ∀f, (Hom_struct_c (pack_c X CX) (pack_c Y CY) f) = (f YX (∀U : setprop, (∀y, U yy Y)CY UCX (λx ⇒ x X U (f x))))
L6311
Axiom. (Hom_struct_b_b_e_pack) We take the following as an axiom:
∀X Y, ∀opX op2X opY op2Y : setsetset, ∀eX eY f, (Hom_struct_b_b_e (pack_b_b_e X opX op2X eX) (pack_b_b_e Y opY op2Y eY) f) = (f YX (∀x yX, f (opX x y) = opY (f x) (f y)) (∀x yX, f (op2X x y) = op2Y (f x) (f y)) f eX = eY)
L6319
Axiom. (Hom_struct_b_b_e_e_pack) We take the following as an axiom:
∀X Y, ∀opX op2X opY op2Y : setsetset, ∀eX e2X eY e2Y f, (Hom_struct_b_b_e_e (pack_b_b_e_e X opX op2X eX e2X) (pack_b_b_e_e Y opY op2Y eY e2Y) f) = (f YX (∀x yX, f (opX x y) = opY (f x) (f y)) (∀x yX, f (op2X x y) = op2Y (f x) (f y)) f eX = eY f e2X = e2Y)
L6328
Axiom. (Hom_struct_b_b_r_e_e_pack) We take the following as an axiom:
∀X Y, ∀opX op2X opY op2Y : setsetset, ∀rX rY : setsetprop, ∀eX e2X eY e2Y f, (Hom_struct_b_b_r_e_e (pack_b_b_r_e_e X opX op2X rX eX e2X) (pack_b_b_r_e_e Y opY op2Y rY eY e2Y) f) = (f YX (∀x yX, f (opX x y) = opY (f x) (f y)) (∀x yX, f (op2X x y) = op2Y (f x) (f y)) (∀x yX, rX x yrY (f x) (f y)) f eX = eY f e2X = e2Y)
Beginning of Section MetaCatStruct
L6341
Variable Obj : setprop
L6343
Axiom. (MetaCat_struct_e_gen) We take the following as an axiom:
(∀X, Obj Xstruct_e X)MetaCat Obj Hom_struct_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6347
Axiom. (MetaCat_struct_e_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_e X)MetaFunctor Obj Hom_struct_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6352
Axiom. (MetaCat_struct_p_gen) We take the following as an axiom:
(∀X, Obj Xstruct_p X)MetaCat Obj Hom_struct_p (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6355
Axiom. (MetaCat_struct_p_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_p X)MetaFunctor Obj Hom_struct_p (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6360
Axiom. (MetaCat_struct_r_gen) We take the following as an axiom:
(∀X, Obj Xstruct_r X)MetaCat Obj Hom_struct_r (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6363
Axiom. (MetaCat_struct_r_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_r X)MetaFunctor Obj Hom_struct_r (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6368
Axiom. (MetaCat_struct_u_gen) We take the following as an axiom:
(∀X, Obj Xstruct_u X)MetaCat Obj Hom_struct_u (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6371
Axiom. (MetaCat_struct_u_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_u X)MetaFunctor Obj Hom_struct_u (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6376
Axiom. (MetaCat_struct_b_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b X)MetaCat Obj Hom_struct_b (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6379
Axiom. (MetaCat_struct_b_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b X)MetaFunctor Obj Hom_struct_b (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6384
Axiom. (MetaCat_struct_c_gen) We take the following as an axiom:
(∀X, Obj Xstruct_c X)MetaCat Obj Hom_struct_c (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6387
Axiom. (MetaCat_struct_c_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_c X)MetaFunctor Obj Hom_struct_c (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6392
Axiom. (MetaCat_struct_b_b_e_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b_b_e X)MetaCat Obj Hom_struct_b_b_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6395
Axiom. (MetaCat_struct_b_b_e_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b_b_e X)MetaFunctor Obj Hom_struct_b_b_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6400
Axiom. (MetaCat_struct_b_b_e_e_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b_b_e_e X)MetaCat Obj Hom_struct_b_b_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6403
Axiom. (MetaCat_struct_b_b_e_e_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b_b_e_e X)MetaFunctor Obj Hom_struct_b_b_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
L6408
Axiom. (MetaCat_struct_b_b_r_e_e_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b_b_r_e_e X)MetaCat Obj Hom_struct_b_b_r_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f)
L6411
Axiom. (MetaCat_struct_b_b_r_e_e_Forgetful_gen) We take the following as an axiom:
(∀X, Obj Xstruct_b_b_r_e_e X)MetaFunctor Obj Hom_struct_b_b_r_e_e (λX ⇒ lam_id (X 0)) (λX Y Z g f ⇒ lam_comp (X 0) g f) (λ_ ⇒ True) SetHom (λX ⇒ lam_id X) (λX Y Z f g ⇒ (lam_comp X f g)) (λX ⇒ X 0) (λX Y f ⇒ f)
End of Section MetaCatStruct
L6418
Definition. We define struct_id to be λX ⇒ lam_id (X 0) of type setset.
L6420
Definition. We define struct_comp to be λX Y Z f g ⇒ lam_comp (X 0) f g of type setsetsetsetsetset.