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)
L3
Definition. We define True to be ∀p : prop, pp of type prop.
L4
Definition. We define False to be ∀p : prop, p of type prop.
L5
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.
L8
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.
L11
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.
L14
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
L18
Variable A : SType
L19
Definition. We define eq to be λx y : A∀Q : AAprop, Q x yQ y x of type AAprop.
L20
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
L26
Variable A B : SType
L27
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
L30
Variable A : SType
L31
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.
L35
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.
L37
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.
L38
Axiom. (set_ext) We take the following as an axiom:
∀X Y : set, X YY XX = Y
L39
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.
L42
Axiom. (EmptyAx) We take the following as an axiom:
¬ ∃x : set, x Empty
Primitive. The name is a term of type setset.
L45
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.
L48
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).
L51
Axiom. (ReplEq) We take the following as an axiom:
∀A : set, ∀F : setset, ∀y : set, y {F x|xA} ∃xA, y = F x
L52
Definition. We define TransSet to be λU : set∀xU, x U of type setprop.
L53
Definition. We define Union_closed to be λU : set∀X : set, X U X U of type setprop.
L54
Definition. We define Power_closed to be λU : set∀X : set, X U𝒫 X U of type setprop.
L55
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.
L56
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.
L58
Axiom. (UnivOf_In) We take the following as an axiom:
∀N : set, N UnivOf N
L59
Axiom. (UnivOf_TransSet) We take the following as an axiom:
∀N : set, TransSet (UnivOf N)
L60
Axiom. (UnivOf_ZF_closed) We take the following as an axiom:
∀N : set, ZF_closed (UnivOf N)
L61
Axiom. (UnivOf_Min) We take the following as an axiom:
∀N U : set, N UTransSet UZF_closed UUnivOf N U
L62
Axiom. (FalseE) We take the following as an axiom:
False∀p : prop, p
L63
Axiom. (TrueI) We take the following as an axiom:
L64
Axiom. (andI) We take the following as an axiom:
∀A B : prop, ABA B
L65
Axiom. (andEL) We take the following as an axiom:
∀A B : prop, A BA
L66
Axiom. (andER) We take the following as an axiom:
∀A B : prop, A BB
L67
Axiom. (orIL) We take the following as an axiom:
∀A B : prop, AA B
L68
Axiom. (orIR) We take the following as an axiom:
∀A B : prop, BA B
Beginning of Section PropN
L70
Variable P1 P2 P3 : prop
L71
Axiom. (and3I) We take the following as an axiom:
P1P2P3P1 P2 P3
L72
Axiom. (and3E) We take the following as an axiom:
P1 P2 P3(∀p : prop, (P1P2P3p)p)
L73
Axiom. (or3I1) We take the following as an axiom:
P1P1 P2 P3
L74
Axiom. (or3I2) We take the following as an axiom:
P2P1 P2 P3
L75
Axiom. (or3I3) We take the following as an axiom:
P3P1 P2 P3
L76
Axiom. (or3E) We take the following as an axiom:
P1 P2 P3(∀p : prop, (P1p)(P2p)(P3p)p)
L77
Variable P4 : prop
L78
Axiom. (and4I) We take the following as an axiom:
P1P2P3P4P1 P2 P3 P4
L79
Variable P5 : prop
L80
Axiom. (and5I) We take the following as an axiom:
P1P2P3P4P5P1 P2 P3 P4 P5
End of Section PropN
L82
Axiom. (not_or_and_demorgan) We take the following as an axiom:
∀A B : prop, ¬ (A B)¬ A ¬ B
L83
Axiom. (not_ex_all_demorgan_i) We take the following as an axiom:
∀P : setprop, (¬ ∃x, P x)∀x, ¬ P x
L84
Axiom. (iffI) We take the following as an axiom:
∀A B : prop, (AB)(BA)(A B)
L85
Axiom. (iffEL) We take the following as an axiom:
∀A B : prop, (A B)AB
L86
Axiom. (iffER) We take the following as an axiom:
∀A B : prop, (A B)BA
L87
Axiom. (iff_refl) We take the following as an axiom:
∀A : prop, A A
L88
Axiom. (iff_sym) We take the following as an axiom:
∀A B : prop, (A B)(B A)
L89
Axiom. (iff_trans) We take the following as an axiom:
∀A B C : prop, (A B)(B C)(A C)
L90
Axiom. (eq_i_tra) We take the following as an axiom:
∀x y z, x = yy = zx = z
L91
Axiom. (f_eq_i) We take the following as an axiom:
∀f : setset, ∀x y, x = yf x = f y
L92
Axiom. (neq_i_sym) We take the following as an axiom:
∀x y, x yy x
L93
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.
L96
Axiom. (Eps_i_ex) We take the following as an axiom:
∀P : setprop, (∃x, P x)P (Eps_i P)
L97
Axiom. (pred_ext) We take the following as an axiom:
∀P Q : setprop, (∀x, P x Q x)P = Q
L98
Axiom. (prop_ext_2) We take the following as an axiom:
∀p q : prop, (pq)(qp)p = q
L99
Axiom. (Subq_ref) We take the following as an axiom:
∀X : set, X X
L100
Axiom. (Subq_tra) We take the following as an axiom:
∀X Y Z : set, X YY ZX Z
L101
Axiom. (Subq_contra) We take the following as an axiom:
∀X Y z : set, X Yz Yz X
L102
Axiom. (EmptyE) We take the following as an axiom:
∀x : set, x Empty
L103
Axiom. (Subq_Empty) We take the following as an axiom:
∀X : set, Empty X
L104
Axiom. (Empty_Subq_eq) We take the following as an axiom:
∀X : set, X EmptyX = Empty
L105
Axiom. (Empty_eq) We take the following as an axiom:
∀X : set, (∀x, x X)X = Empty
L106
Axiom. (UnionI) We take the following as an axiom:
∀X x Y : set, x YY Xx X
L107
Axiom. (UnionE) We take the following as an axiom:
∀X x : set, x X∃Y : set, x Y Y X
L108
Axiom. (UnionE_impred) We take the following as an axiom:
∀X x : set, x X∀p : prop, (∀Y : set, x YY Xp)p
L109
Axiom. (PowerI) We take the following as an axiom:
∀X Y : set, Y XY 𝒫 X
L110
Axiom. (PowerE) We take the following as an axiom:
∀X Y : set, Y 𝒫 XY X
L111
Axiom. (Empty_In_Power) We take the following as an axiom:
∀X : set, Empty 𝒫 X
L112
Axiom. (Self_In_Power) We take the following as an axiom:
∀X : set, X 𝒫 X
L113
Axiom. (xm) We take the following as an axiom:
∀P : prop, P ¬ P
L114
Axiom. (dneg) We take the following as an axiom:
∀P : prop, ¬ ¬ PP
L115
Axiom. (not_all_ex_demorgan_i) We take the following as an axiom:
∀P : setprop, ¬ (∀x, P x)∃x, ¬ P x
L116
Axiom. (eq_or_nand) We take the following as an axiom:
or = (λx y : prop¬ (¬ x ¬ y))
Primitive. The name exactly1of2 is a term of type proppropprop.
L119
Axiom. (exactly1of2_I1) We take the following as an axiom:
∀A B : prop, A¬ Bexactly1of2 A B
L120
Axiom. (exactly1of2_I2) We take the following as an axiom:
∀A B : prop, ¬ ABexactly1of2 A B
L121
Axiom. (exactly1of2_E) We take the following as an axiom:
∀A B : prop, exactly1of2 A B∀p : prop, (A¬ Bp)(¬ ABp)p
L122
Axiom. (exactly1of2_or) We take the following as an axiom:
∀A B : prop, exactly1of2 A BA B
L123
Axiom. (ReplI) We take the following as an axiom:
∀A : set, ∀F : setset, ∀x : set, x AF x {F x|xA}
L124
Axiom. (ReplE) We take the following as an axiom:
∀A : set, ∀F : setset, ∀y : set, y {F x|xA}∃xA, y = F x
L125
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
L126
Axiom. (ReplE') We take the following as an axiom:
∀X, ∀f : setset, ∀p : setprop, (∀xX, p (f x))∀y{f x|xX}, p y
L127
Axiom. (Repl_Empty) We take the following as an axiom:
∀F : setset, {F x|xEmpty} = Empty
L128
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}
L129
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}
L130
Axiom. (Repl_inv_eq) We take the following as an axiom:
∀P : setprop, ∀f g : setset, (∀x, P xg (f x) = x)∀X, (∀xX, P x){g y|y{f x|xX}} = X
L131
Axiom. (Repl_invol_eq) We take the following as an axiom:
∀P : setprop, ∀f : setset, (∀x, P xf (f x) = x)∀X, (∀xX, P x){f y|y{f x|xX}} = X
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.
L135
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
L136
Axiom. (If_i_0) We take the following as an axiom:
∀p : prop, ∀x y : set, ¬ p(if p then x else y) = y
L137
Axiom. (If_i_1) We take the following as an axiom:
∀p : prop, ∀x y : set, p(if p then x else y) = x
L138
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
Primitive. The name UPair is a term of type setsetset.
Notation. {x,y} is notation for UPair x y.
L142
Axiom. (UPairE) We take the following as an axiom:
∀x y z : set, x {y,z}x = y x = z
L143
Axiom. (UPairI1) We take the following as an axiom:
∀y z : set, y {y,z}
L144
Axiom. (UPairI2) We take the following as an axiom:
∀y z : set, z {y,z}
Primitive. The name Sing is a term of type setset.
Notation. {x} is notation for Sing x.
L148
Axiom. (SingI) We take the following as an axiom:
∀x : set, x {x}
L149
Axiom. (SingE) We take the following as an axiom:
∀x y : set, y {x}y = x
L150
Axiom. (Sing_inj) We take the following as an axiom:
∀x y, {x} = {y}x = y
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.
L155
Axiom. (binunionI1) We take the following as an axiom:
∀X Y z : set, z Xz X Y
L156
Axiom. (binunionI2) We take the following as an axiom:
∀X Y z : set, z Yz X Y
L157
Axiom. (binunionE) We take the following as an axiom:
∀X Y z : set, z X Yz X z Y
L158
Axiom. (binunionE') We take the following as an axiom:
∀X Y z, ∀p : prop, (z Xp)(z Yp)(z X Yp)
L159
Axiom. (binunion_asso) We take the following as an axiom:
∀X Y Z : set, X (Y Z) = (X Y) Z
L160
Axiom. (binunion_com_Subq) We take the following as an axiom:
∀X Y : set, X Y Y X
L161
Axiom. (binunion_com) We take the following as an axiom:
∀X Y : set, X Y = Y X
L162
Axiom. (binunion_idl) We take the following as an axiom:
∀X : set, Empty X = X
L163
Axiom. (binunion_idr) We take the following as an axiom:
∀X : set, X Empty = X
L164
Axiom. (binunion_Subq_1) We take the following as an axiom:
∀X Y : set, X X Y
L165
Axiom. (binunion_Subq_2) We take the following as an axiom:
∀X Y : set, Y X Y
L166
Axiom. (binunion_Subq_min) We take the following as an axiom:
∀X Y Z : set, X ZY ZX Y Z
L167
Axiom. (Subq_binunion_eq) We take the following as an axiom:
∀X Y, (X Y) = (X Y = Y)
L168
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.
Primitive. The name famunion is a term of type set(setset)set.
Notation. We use x [possibly with ascriptions] , B as a binder notation corresponding to a term constructed using famunion.
L175
Axiom. (famunionI) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀x y : set, x Xy F xy xXF x
L176
Axiom. (famunionE) We take the following as an axiom:
∀X : set, ∀F : (setset), ∀y : set, y (xXF x)∃xX, y F x
L177
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
L178
Axiom. (famunion_Empty) We take the following as an axiom:
∀F : setset, (xEmptyF x) = Empty
L179
Axiom. (famunion_Subq) We take the following as an axiom:
∀X, ∀f g : setset, (∀xX, f x g x)famunion X f famunion X g
L180
Axiom. (famunion_ext) We take the following as an axiom:
∀X, ∀f g : setset, (∀xX, f x = g x)famunion X f = famunion X g
Beginning of Section SepSec
L182
Variable X : set
L183
Variable P : setprop
L184
Let z : setEps_i (λz ⇒ z X P z)
L185
Let F : setsetλx ⇒ if P x then x else z
Primitive. The name Sep is a term of type set.
End of Section SepSec
Notation. {xA | B} is notation for Sep Ax . B).
L190
Axiom. (SepI) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x XP xx {xX|P x}
L191
Axiom. (SepE) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}x X P x
L192
Axiom. (SepE1) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}x X
L193
Axiom. (SepE2) We take the following as an axiom:
∀X : set, ∀P : (setprop), ∀x : set, x {xX|P x}P x
L194
Axiom. (Sep_Empty) We take the following as an axiom:
∀P : setprop, {xEmpty|P x} = Empty
L195
Axiom. (Sep_Subq) We take the following as an axiom:
∀X : set, ∀P : setprop, {xX|P x} X
L196
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).
L200
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}
L201
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
L202
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 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.
L207
Axiom. (binintersectI) We take the following as an axiom:
∀X Y z, z Xz Yz X Y
L208
Axiom. (binintersectE) We take the following as an axiom:
∀X Y z, z X Yz X z Y
L209
Axiom. (binintersectE1) We take the following as an axiom:
∀X Y z, z X Yz X
L210
Axiom. (binintersectE2) We take the following as an axiom:
∀X Y z, z X Yz Y
L211
Axiom. (binintersect_Subq_1) We take the following as an axiom:
∀X Y : set, X Y X
L212
Axiom. (binintersect_Subq_2) We take the following as an axiom:
∀X Y : set, X Y Y
L213
Axiom. (binintersect_Subq_eq_1) We take the following as an axiom:
∀X Y, X YX Y = X
L214
Axiom. (binintersect_Subq_max) We take the following as an axiom:
∀X Y Z : set, Z XZ YZ X Y
L215
Axiom. (binintersect_com_Subq) We take the following as an axiom:
∀X Y : set, X Y Y X
L216
Axiom. (binintersect_com) We take the following as an axiom:
∀X Y : set, X Y = Y X
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.
L221
Axiom. (setminusI) We take the following as an axiom:
∀X Y z, (z X)(z Y)z X Y
L222
Axiom. (setminusE) We take the following as an axiom:
∀X Y z, (z X Y)z X z Y
L223
Axiom. (setminusE1) We take the following as an axiom:
∀X Y z, (z X Y)z X
L224
Axiom. (setminusE2) We take the following as an axiom:
∀X Y z, (z X Y)z Y
L225
Axiom. (setminus_Subq) We take the following as an axiom:
∀X Y : set, X Y X
L226
Axiom. (setminus_Subq_contra) We take the following as an axiom:
∀X Y Z : set, Z YX Y X Z
L227
Axiom. (setminus_In_Power) We take the following as an axiom:
∀A U, A U 𝒫 A
L228
Axiom. (setminus_idr) We take the following as an axiom:
∀X, X Empty = X
L229
Axiom. (In_irref) We take the following as an axiom:
∀x, x x
L230
Axiom. (In_no2cycle) We take the following as an axiom:
∀x y, x yy xFalse
Primitive. The name ordsucc is a term of type setset.
L233
Axiom. (ordsuccI1) We take the following as an axiom:
∀x : set, x ordsucc x
L234
Axiom. (ordsuccI2) We take the following as an axiom:
∀x : set, x ordsucc x
L235
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.
L237
Axiom. (neq_0_ordsucc) We take the following as an axiom:
∀a : set, 0 ordsucc a
L238
Axiom. (neq_ordsucc_0) We take the following as an axiom:
∀a : set, ordsucc a 0
L239
Axiom. (ordsucc_inj) We take the following as an axiom:
∀a b : set, ordsucc a = ordsucc ba = b
L240
Axiom. (ordsucc_inj_contra) We take the following as an axiom:
∀a b : set, a bordsucc a ordsucc b
L241
Axiom. (In_0_1) We take the following as an axiom:
L242
Axiom. (In_0_2) We take the following as an axiom:
L243
Axiom. (In_1_2) We take the following as an axiom:
L244
Axiom. (In_1_3) We take the following as an axiom:
L245
Axiom. (In_2_3) We take the following as an axiom:
L246
Axiom. (In_1_4) We take the following as an axiom:
L247
Axiom. (In_2_4) We take the following as an axiom:
L248
Axiom. (In_3_4) We take the following as an axiom:
L249
Axiom. (In_1_5) We take the following as an axiom:
L250
Axiom. (In_2_5) We take the following as an axiom:
L251
Axiom. (In_3_5) We take the following as an axiom:
L252
Axiom. (In_4_5) We take the following as an axiom:
L253
Axiom. (In_1_6) We take the following as an axiom:
L254
Axiom. (In_1_7) We take the following as an axiom:
L255
Axiom. (In_1_8) We take the following as an axiom:
L256
Definition. We define nat_p to be λn : set∀p : setprop, p 0(∀x : set, p xp (ordsucc x))p n of type setprop.
L257
Axiom. (nat_0) We take the following as an axiom:
L258
Axiom. (nat_ordsucc) We take the following as an axiom:
∀n : set, nat_p nnat_p (ordsucc n)
L259
Axiom. (nat_1) We take the following as an axiom:
L260
Axiom. (nat_2) We take the following as an axiom:
L261
Axiom. (nat_3) We take the following as an axiom:
L262
Axiom. (nat_4) We take the following as an axiom:
L263
Axiom. (nat_5) We take the following as an axiom:
L264
Axiom. (nat_6) We take the following as an axiom:
L265
Axiom. (nat_7) We take the following as an axiom:
L266
Axiom. (nat_8) We take the following as an axiom:
L267
Axiom. (nat_0_in_ordsucc) We take the following as an axiom:
∀n, nat_p n0 ordsucc n
L268
Axiom. (nat_ordsucc_in_ordsucc) We take the following as an axiom:
∀n, nat_p n∀mn, ordsucc m ordsucc n
L269
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
L270
Axiom. (nat_inv_impred) We take the following as an axiom:
∀p : setprop, p 0(∀n, nat_p np (ordsucc n))∀n, nat_p np n
L271
Axiom. (nat_inv) We take the following as an axiom:
∀n, nat_p nn = 0 ∃x, nat_p x n = ordsucc x
L272
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
L273
Axiom. (nat_p_trans) We take the following as an axiom:
∀n, nat_p n∀mn, nat_p m
L274
Axiom. (nat_trans) We take the following as an axiom:
∀n, nat_p n∀mn, m n
L275
Axiom. (nat_ordsucc_trans) We take the following as an axiom:
∀n, nat_p n∀mordsucc n, m n
L276
Axiom. (Union_ordsucc_eq) We take the following as an axiom:
∀n, nat_p n (ordsucc n) = n
L277
Axiom. (cases_1) We take the following as an axiom:
∀i1, ∀p : setprop, p 0p i
L278
Axiom. (cases_2) We take the following as an axiom:
∀i2, ∀p : setprop, p 0p 1p i
L279
Axiom. (cases_3) We take the following as an axiom:
∀i3, ∀p : setprop, p 0p 1p 2p i
L280
Axiom. (neq_0_1) We take the following as an axiom:
L281
Axiom. (neq_1_0) We take the following as an axiom:
L282
Axiom. (neq_0_2) We take the following as an axiom:
L283
Axiom. (neq_2_0) We take the following as an axiom:
L284
Axiom. (neq_1_2) We take the following as an axiom:
L285
Axiom. (neq_1_3) We take the following as an axiom:
L286
Axiom. (neq_2_3) We take the following as an axiom:
L287
Axiom. (neq_2_4) We take the following as an axiom:
L288
Axiom. (neq_3_4) We take the following as an axiom:
L289
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
L290
Axiom. (ZF_Union_closed) We take the following as an axiom:
∀U, ZF_closed U∀XU, X U
L291
Axiom. (ZF_Power_closed) We take the following as an axiom:
∀U, ZF_closed U∀XU, 𝒫 X U
L292
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
L293
Axiom. (ZF_UPair_closed) We take the following as an axiom:
∀U, ZF_closed U∀x yU, {x,y} U
L294
Axiom. (ZF_Sing_closed) We take the following as an axiom:
∀U, ZF_closed U∀xU, {x} U
L295
Axiom. (ZF_binunion_closed) We take the following as an axiom:
∀U, ZF_closed U∀X YU, (X Y) U
L296
Axiom. (ZF_ordsucc_closed) We take the following as an axiom:
∀U, ZF_closed U∀xU, ordsucc x U
L297
Axiom. (nat_p_UnivOf_Empty) We take the following as an axiom:
∀n : set, nat_p nn UnivOf Empty
Primitive. The name ω is a term of type set.
L301
Axiom. (omega_nat_p) We take the following as an axiom:
∀nω, nat_p n
L302
Axiom. (nat_p_omega) We take the following as an axiom:
∀n : set, nat_p nn ω
L303
Axiom. (omega_ordsucc) We take the following as an axiom:
L304
Definition. We define ordinal to be λalpha : setTransSet alpha ∀betaalpha, TransSet beta of type setprop.
L305
Axiom. (ordinal_TransSet) We take the following as an axiom:
∀alpha : set, ordinal alphaTransSet alpha
L306
Axiom. (ordinal_Empty) We take the following as an axiom:
L307
Axiom. (ordinal_Hered) We take the following as an axiom:
∀alpha : set, ordinal alpha∀betaalpha, ordinal beta
L308
Axiom. (TransSet_ordsucc) We take the following as an axiom:
∀X : set, TransSet XTransSet (ordsucc X)
L309
Axiom. (ordinal_ordsucc) We take the following as an axiom:
∀alpha : set, ordinal alphaordinal (ordsucc alpha)
L310
Axiom. (nat_p_ordinal) We take the following as an axiom:
∀n : set, nat_p nordinal n
L311
Axiom. (ordinal_1) We take the following as an axiom:
L312
Axiom. (ordinal_2) We take the following as an axiom:
L313
Axiom. (omega_TransSet) We take the following as an axiom:
L314
Axiom. (omega_ordinal) We take the following as an axiom:
L315
Axiom. (ordsucc_omega_ordinal) We take the following as an axiom:
L316
Axiom. (TransSet_ordsucc_In_Subq) We take the following as an axiom:
∀X : set, TransSet X∀xX, ordsucc x X
L317
Axiom. (ordinal_ordsucc_In_Subq) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ordsucc beta alpha
L318
Axiom. (ordinal_trichotomy_or) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal betaalpha beta alpha = beta beta alpha
L319
Axiom. (ordinal_trichotomy_or_impred) We take the following as an axiom:
∀alpha beta : set, ordinal alphaordinal beta∀p : prop, (alpha betap)(alpha = betap)(beta alphap)p
L320
Axiom. (ordinal_In_Or_Subq) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha beta beta alpha
L321
Axiom. (ordinal_linear) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaalpha beta beta alpha
L322
Axiom. (ordinal_ordsucc_In_eq) We take the following as an axiom:
∀alpha beta, ordinal alphabeta alphaordsucc beta alpha alpha = ordsucc beta
L323
Axiom. (ordinal_lim_or_succ) We take the following as an axiom:
∀alpha, ordinal alpha(∀betaalpha, ordsucc beta alpha) (∃betaalpha, alpha = ordsucc beta)
L324
Axiom. (ordinal_ordsucc_In) We take the following as an axiom:
∀alpha, ordinal alpha∀betaalpha, ordsucc beta ordsucc alpha
L325
Axiom. (ordinal_famunion) We take the following as an axiom:
∀X, ∀F : setset, (∀xX, ordinal (F x))ordinal (xXF x)
L326
Axiom. (ordinal_binintersect) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alpha beta)
L327
Axiom. (ordinal_binunion) We take the following as an axiom:
∀alpha beta, ordinal alphaordinal betaordinal (alpha beta)
L328
Axiom. (ordinal_ind) We take the following as an axiom:
∀p : setprop, (∀alpha, ordinal alpha(∀betaalpha, p beta)p alpha)∀alpha, ordinal alphap alpha
L329
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
L330
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.
L331
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.
L332
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
L333
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.
L336
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
L337
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
L338
Axiom. (bij_inv) We take the following as an axiom:
∀X Y, ∀f : setset, bij X Y fbij Y X (inv X f)
L339
Axiom. (bij_id) We take the following as an axiom:
∀X, bij X X (λx ⇒ x)
L340
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))
L341
Definition. We define equip to be λX Y : set∃f : setset, bij X Y f of type setsetprop.
L342
Axiom. (equip_ref) We take the following as an axiom:
∀X, equip X X
L343
Axiom. (equip_sym) We take the following as an axiom:
∀X Y, equip X Yequip Y X
L344
Axiom. (equip_tra) We take the following as an axiom:
∀X Y Z, equip X Yequip Y Zequip X Z
L345
Axiom. (equip_0_Empty) We take the following as an axiom:
∀X, equip X 0X = 0
Beginning of Section SchroederBernstein
L347
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
L348
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
L349
Axiom. (image_monotone) We take the following as an axiom:
∀f : setset, ∀U V, U V{f x|xU} {f x|xV}
L350
Axiom. (setminus_antimonotone) We take the following as an axiom:
∀A U V, U VA V A U
L351
Axiom. (SchroederBernstein) We take the following as an axiom:
∀A B, ∀f g : setset, inj A B finj B A gequip A B
End of Section SchroederBernstein
Beginning of Section PigeonHole
L354
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)
L355
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
End of Section PigeonHole
L357
Definition. We define finite to be λX ⇒ ∃nω, equip X n of type setprop.
L358
Axiom. (finite_ind) We take the following as an axiom:
∀p : setprop, p Empty(∀X y, finite Xy Xp Xp (X {y}))∀X, finite Xp X
L359
Axiom. (finite_Empty) We take the following as an axiom:
L360
Axiom. (adjoin_finite) We take the following as an axiom:
∀X y, finite Xfinite (X {y})
L361
Axiom. (binunion_finite) We take the following as an axiom:
∀X, finite X∀Y, finite Yfinite (X Y)
L362
Axiom. (famunion_nat_finite) We take the following as an axiom:
∀X : setset, ∀n, nat_p n(∀in, finite (X i))finite (inX i)
L363
Axiom. (Subq_finite) We take the following as an axiom:
∀X, finite X∀Y, Y Xfinite Y
L364
Axiom. (TransSet_In_ordsucc_Subq) We take the following as an axiom:
∀x y, TransSet yx ordsucc yx y
L365
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
L366
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
L367
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
L368
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
Beginning of Section Descr_ii
L370
Variable P : (setset)prop
Primitive. The name Descr_ii is a term of type setset.
L373
Hypothesis Pex : ∃f : setset, P f
L374
Hypothesis Puniq : ∀f g : setset, P fP gf = g
L375
Axiom. (Descr_ii_prop) We take the following as an axiom:
End of Section Descr_ii
Beginning of Section Descr_iii
L378
Variable P : (setsetset)prop
Primitive. The name Descr_iii is a term of type setsetset.
L381
Hypothesis Pex : ∃f : setsetset, P f
L382
Hypothesis Puniq : ∀f g : setsetset, P fP gf = g
L383
Axiom. (Descr_iii_prop) We take the following as an axiom:
End of Section Descr_iii
Beginning of Section Descr_Vo1
L386
Variable P : Vo 1prop
Primitive. The name Descr_Vo1 is a term of type Vo 1.
L389
Hypothesis Pex : ∃f : Vo 1, P f
L390
Hypothesis Puniq : ∀f g : Vo 1, P fP gf = g
L391
Axiom. (Descr_Vo1_prop) We take the following as an axiom:
End of Section Descr_Vo1
Beginning of Section If_ii
L394
Variable p : prop
L395
Variable f g : setset
Primitive. The name If_ii is a term of type setset.
L398
Axiom. (If_ii_1) We take the following as an axiom:
pIf_ii = f
L399
Axiom. (If_ii_0) We take the following as an axiom:
¬ pIf_ii = g
End of Section If_ii
Beginning of Section If_iii
L402
Variable p : prop
L403
Variable f g : setsetset
Primitive. The name If_iii is a term of type setsetset.
L406
Axiom. (If_iii_1) We take the following as an axiom:
pIf_iii = f
L407
Axiom. (If_iii_0) We take the following as an axiom:
¬ pIf_iii = g
End of Section If_iii
Beginning of Section EpsilonRec_i
L410
Variable F : set(setset)set
L411
Definition. We define In_rec_i_G to be λX Y ⇒ ∀R : setsetprop, (∀X : set, ∀f : setset, (∀xX, R x (f x))R X (F X f))R X Y of type setsetprop.
Primitive. The name In_rec_i is a term of type setset.
L414
Axiom. (In_rec_i_G_c) We take the following as an axiom:
∀X : set, ∀f : setset, (∀xX, In_rec_i_G x (f x))In_rec_i_G X (F X f)
L415
Axiom. (In_rec_i_G_inv) We take the following as an axiom:
∀X : set, ∀Y : set, In_rec_i_G X Y∃f : setset, (∀xX, In_rec_i_G x (f x)) Y = F X f
L416
Hypothesis Fr : ∀X : set, ∀g h : setset, (∀xX, g x = h x)F X g = F X h
L417
Axiom. (In_rec_i_G_f) We take the following as an axiom:
∀X : set, ∀Y Z : set, In_rec_i_G X YIn_rec_i_G X ZY = Z
L418
Axiom. (In_rec_i_G_In_rec_i) We take the following as an axiom:
∀X : set, In_rec_i_G X (In_rec_i X)
L419
Axiom. (In_rec_i_G_In_rec_i_d) We take the following as an axiom:
∀X : set, In_rec_i_G X (F X In_rec_i)
L420
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
L423
Variable F : set(set(setset))(setset)
L424
Definition. We define In_rec_G_ii to be λX Y ⇒ ∀R : set(setset)prop, (∀X : set, ∀f : set(setset), (∀xX, R x (f x))R X (F X f))R X Y of type set(setset)prop.
Primitive. The name In_rec_ii is a term of type set(setset).
L427
Axiom. (In_rec_G_ii_c) We take the following as an axiom:
∀X : set, ∀f : set(setset), (∀xX, In_rec_G_ii x (f x))In_rec_G_ii X (F X f)
L428
Axiom. (In_rec_G_ii_inv) We take the following as an axiom:
∀X : set, ∀Y : (setset), In_rec_G_ii X Y∃f : set(setset), (∀xX, In_rec_G_ii x (f x)) Y = F X f
L429
Hypothesis Fr : ∀X : set, ∀g h : set(setset), (∀xX, g x = h x)F X g = F X h
L430
Axiom. (In_rec_G_ii_f) We take the following as an axiom:
∀X : set, ∀Y Z : (setset), In_rec_G_ii X YIn_rec_G_ii X ZY = Z
L431
Axiom. (In_rec_G_ii_In_rec_ii) We take the following as an axiom:
∀X : set, In_rec_G_ii X (In_rec_ii X)
L432
Axiom. (In_rec_G_ii_In_rec_ii_d) We take the following as an axiom:
∀X : set, In_rec_G_ii X (F X In_rec_ii)
L433
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
L436
Variable F : set(set(setsetset))(setsetset)
L437
Definition. We define In_rec_G_iii to be λX Y ⇒ ∀R : set(setsetset)prop, (∀X : set, ∀f : set(setsetset), (∀xX, R x (f x))R X (F X f))R X Y of type set(setsetset)prop.
Primitive. The name In_rec_iii is a term of type set(setsetset).
L440
Axiom. (In_rec_G_iii_c) We take the following as an axiom:
∀X : set, ∀f : set(setsetset), (∀xX, In_rec_G_iii x (f x))In_rec_G_iii X (F X f)
L441
Axiom. (In_rec_G_iii_inv) We take the following as an axiom:
∀X : set, ∀Y : (setsetset), In_rec_G_iii X Y∃f : set(setsetset), (∀xX, In_rec_G_iii x (f x)) Y = F X f
L442
Hypothesis Fr : ∀X : set, ∀g h : set(setsetset), (∀xX, g x = h x)F X g = F X h
L443
Axiom. (In_rec_G_iii_f) We take the following as an axiom:
∀X : set, ∀Y Z : (setsetset), In_rec_G_iii X YIn_rec_G_iii X ZY = Z
L444
Axiom. (In_rec_G_iii_In_rec_iii) We take the following as an axiom:
∀X : set, In_rec_G_iii X (In_rec_iii X)
L445
Axiom. (In_rec_G_iii_In_rec_iii_d) We take the following as an axiom:
∀X : set, In_rec_G_iii X (F X In_rec_iii)
L446
Axiom. (In_rec_iii_eq) We take the following as an axiom:
∀X : set, In_rec_iii X = F X In_rec_iii
End of Section EpsilonRec_iii
Beginning of Section NatRec
L449
Variable z : set
L450
Variable f : setsetset
L451
Let F : set(setset)setλn g ⇒ if n n then f ( n) (g ( n)) else z
L452
Definition. We define nat_primrec to be In_rec_i F of type setset.
L453
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
L454
Axiom. (nat_primrec_0) We take the following as an axiom:
L455
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
L458
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.
L460
Axiom. (add_nat_0R) We take the following as an axiom:
∀n : set, n + 0 = n
L461
Axiom. (add_nat_SR) We take the following as an axiom:
∀n m : set, nat_p mn + ordsucc m = ordsucc (n + m)
L462
Axiom. (add_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n + m)
L463
Axiom. (add_nat_1_1_2) We take the following as an axiom:
1 + 1 = 2
L464
Axiom. (add_nat_0L) We take the following as an axiom:
∀m : set, nat_p m0 + m = m
L465
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)
L466
Axiom. (add_nat_com) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mn + m = m + n
L467
Axiom. (nat_Subq_add_ex) We take the following as an axiom:
∀n, nat_p n∀m, nat_p mn m∃k, nat_p k m = k + n
L468
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.
L470
Axiom. (mul_nat_0R) We take the following as an axiom:
∀n : set, n * 0 = 0
L471
Axiom. (mul_nat_SR) We take the following as an axiom:
∀n m : set, nat_p mn * ordsucc m = n + n * m
L472
Axiom. (mul_nat_p) We take the following as an axiom:
∀n : set, nat_p n∀m : set, nat_p mnat_p (n * m)
End of Section NatArith
L474
Definition. We define Inj1 to be In_rec_i (λX f ⇒ {0} {f x|xX}) of type setset.
L475
Axiom. (Inj1_eq) We take the following as an axiom:
∀X : set, Inj1 X = {0} {Inj1 x|xX}
L476
Axiom. (Inj1I1) We take the following as an axiom:
∀X : set, 0 Inj1 X
L477
Axiom. (Inj1I2) We take the following as an axiom:
∀X x : set, x XInj1 x Inj1 X
L478
Axiom. (Inj1E) We take the following as an axiom:
∀X y : set, y Inj1 Xy = 0 ∃xX, y = Inj1 x
L479
Axiom. (Inj1NE1) We take the following as an axiom:
∀x : set, Inj1 x 0
L480
Axiom. (Inj1NE2) We take the following as an axiom:
∀x : set, Inj1 x {0}
L481
Definition. We define Inj0 to be λX ⇒ {Inj1 x|xX} of type setset.
L482
Axiom. (Inj0I) We take the following as an axiom:
∀X x : set, x XInj1 x Inj0 X
L483
Axiom. (Inj0E) We take the following as an axiom:
∀X y : set, y Inj0 X∃x : set, x X y = Inj1 x
L484
Definition. We define Unj to be In_rec_i (λX f ⇒ {f x|xX {0}}) of type setset.
L485
Axiom. (Unj_eq) We take the following as an axiom:
∀X : set, Unj X = {Unj x|xX {0}}
L486
Axiom. (Unj_Inj1_eq) We take the following as an axiom:
∀X : set, Unj (Inj1 X) = X
L487
Axiom. (Inj1_inj) We take the following as an axiom:
∀X Y : set, Inj1 X = Inj1 YX = Y
L488
Axiom. (Unj_Inj0_eq) We take the following as an axiom:
∀X : set, Unj (Inj0 X) = X
L489
Axiom. (Inj0_inj) We take the following as an axiom:
∀X Y : set, Inj0 X = Inj0 YX = Y
L490
Axiom. (Inj0_0) We take the following as an axiom:
L491
Axiom. (Inj0_Inj1_neq) We take the following as an axiom:
∀X Y : set, Inj0 X Inj1 Y
L492
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.
L495
Axiom. (Inj0_setsum) We take the following as an axiom:
∀X Y x : set, x XInj0 x X + Y
L496
Axiom. (Inj1_setsum) We take the following as an axiom:
∀X Y y : set, y YInj1 y X + Y
L497
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)
L498
Axiom. (Inj0_setsum_0L) We take the following as an axiom:
∀X : set, 0 + X = Inj0 X
L499
Axiom. (Subq_1_Sing0) We take the following as an axiom:
L500
Axiom. (Subq_Sing0_1) We take the following as an axiom:
L501
Axiom. (eq_1_Sing0) We take the following as an axiom:
L502
Axiom. (Inj1_setsum_1L) We take the following as an axiom:
∀X : set, 1 + X = Inj1 X
L503
Axiom. (nat_setsum1_ordsucc) We take the following as an axiom:
∀n : set, nat_p n1 + n = ordsucc n
L504
Axiom. (setsum_0_0) We take the following as an axiom:
0 + 0 = 0
L505
Axiom. (setsum_1_0_1) We take the following as an axiom:
1 + 0 = 1
L506
Axiom. (setsum_1_1_2) We take the following as an axiom:
1 + 1 = 2
Beginning of Section pair_setsum
L508
Let pair ≝ setsum
L509
Definition. We define proj0 to be λZ ⇒ {Unj z|zZ, ∃x : set, Inj0 x = z} of type setset.
L510
Definition. We define proj1 to be λZ ⇒ {Unj z|zZ, ∃y : set, Inj1 y = z} of type setset.
L511
Axiom. (Inj0_pair_0_eq) We take the following as an axiom:
Inj0 = pair 0
L512
Axiom. (Inj1_pair_1_eq) We take the following as an axiom:
Inj1 = pair 1
L513
Axiom. (pairI0) We take the following as an axiom:
∀X Y x, x Xpair 0 x pair X Y
L514
Axiom. (pairI1) We take the following as an axiom:
∀X Y y, y Ypair 1 y pair X Y
L515
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)
L516
Axiom. (pairE0) We take the following as an axiom:
∀X Y x, pair 0 x pair X Yx X
L517
Axiom. (pairE1) We take the following as an axiom:
∀X Y y, pair 1 y pair X Yy Y
L518
Axiom. (proj0I) We take the following as an axiom:
∀w u : set, pair 0 u wu proj0 w
L519
Axiom. (proj0E) We take the following as an axiom:
∀w u : set, u proj0 wpair 0 u w
L520
Axiom. (proj1I) We take the following as an axiom:
∀w u : set, pair 1 u wu proj1 w
L521
Axiom. (proj1E) We take the following as an axiom:
∀w u : set, u proj1 wpair 1 u w
L522
Axiom. (proj0_pair_eq) We take the following as an axiom:
∀X Y : set, proj0 (pair X Y) = X
L523
Axiom. (proj1_pair_eq) We take the following as an axiom:
∀X Y : set, proj1 (pair X Y) = Y
L524
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.
L527
Axiom. (pair_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀xX, ∀yY x, pair x y xX, Y x
L528
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)
L529
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
L530
Axiom. (proj0_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)proj0 z X
L531
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)
L532
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
L533
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
L534
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.
L537
Let lam : set(setset)setSigma
L538
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.
L541
Axiom. (lamI) We take the following as an axiom:
∀X : set, ∀F : setset, ∀xX, ∀yF x, pair x y λxXF x
L542
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
L543
Axiom. (apI) We take the following as an axiom:
∀f x y, pair x y fy f x
L544
Axiom. (apE) We take the following as an axiom:
∀f x y, y f xpair x y f
L545
Axiom. (beta) We take the following as an axiom:
∀X : set, ∀F : setset, ∀x : set, x X(λxXF x) x = F x
L546
Axiom. (proj0_ap_0) We take the following as an axiom:
∀u, proj0 u = u 0
L547
Axiom. (proj1_ap_1) We take the following as an axiom:
∀u, proj1 u = u 1
L548
Axiom. (pair_ap_0) We take the following as an axiom:
∀x y : set, (pair x y) 0 = x
L549
Axiom. (pair_ap_1) We take the following as an axiom:
∀x y : set, (pair x y) 1 = y
L550
Axiom. (ap0_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀z : set, z (xX, Y x)(z 0) X
L551
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))
L552
Definition. We define pair_p to be λu : setpair (u 0) (u 1) = u of type setprop.
L553
Axiom. (pair_p_I) We take the following as an axiom:
∀x y, pair_p (pair x y)
L554
Axiom. (Subq_2_UPair01) We take the following as an axiom:
L555
Axiom. (tuple_pair) We take the following as an axiom:
∀x y : set, pair x y = (x,y)
L556
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.
L559
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
L560
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)
L561
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
L562
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.
L565
Axiom. (pair_tuple_fun) We take the following as an axiom:
pair = (λx y ⇒ (x,y))
L566
Axiom. (lamI2) We take the following as an axiom:
∀X, ∀F : setset, ∀xX, ∀yF x, (x,y) λxXF x
Beginning of Section Tuples
L568
Variable x0 x1 : set
L569
Axiom. (tuple_2_0_eq) We take the following as an axiom:
(x0,x1) 0 = x0
L570
Axiom. (tuple_2_1_eq) We take the following as an axiom:
(x0,x1) 1 = x1
End of Section Tuples
L572
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}
L573
Axiom. (tuple_2_Sigma) We take the following as an axiom:
∀X : set, ∀Y : setset, ∀xX, ∀yY x, (x,y) xX, Y x
L574
Axiom. (tuple_2_setprod) We take the following as an axiom:
∀X : set, ∀Y : set, ∀xX, ∀yY, (x,y) X Y
End of Section pair_setsum