src/ZF/ZF.thy
changeset 41779 a68f503805ed
parent 41310 65631ca437c9
child 44147 f3058e539e3a
equal deleted inserted replaced
41778:5f79a9e42507 41779:a68f503805ed
   205   Bex_def:       "Bex(A, P) == \<exists>x. x\<in>A & P(x)"
   205   Bex_def:       "Bex(A, P) == \<exists>x. x\<in>A & P(x)"
   206 
   206 
   207   subset_def:    "A <= B == \<forall>x\<in>A. x\<in>B"
   207   subset_def:    "A <= B == \<forall>x\<in>A. x\<in>B"
   208 
   208 
   209 
   209 
   210 axioms
   210 axiomatization where
   211 
   211 
   212   (* ZF axioms -- see Suppes p.238
   212   (* ZF axioms -- see Suppes p.238
   213      Axioms for Union, Pow and Replace state existence only,
   213      Axioms for Union, Pow and Replace state existence only,
   214      uniqueness is derivable using extensionality. *)
   214      uniqueness is derivable using extensionality. *)
   215 
   215 
   216   extension:     "A = B <-> A <= B & B <= A"
   216   extension:     "A = B <-> A <= B & B <= A" and
   217   Union_iff:     "A \<in> Union(C) <-> (\<exists>B\<in>C. A\<in>B)"
   217   Union_iff:     "A \<in> Union(C) <-> (\<exists>B\<in>C. A\<in>B)" and
   218   Pow_iff:       "A \<in> Pow(B) <-> A <= B"
   218   Pow_iff:       "A \<in> Pow(B) <-> A <= B" and
   219 
   219 
   220   (*We may name this set, though it is not uniquely defined.*)
   220   (*We may name this set, though it is not uniquely defined.*)
   221   infinity:      "0\<in>Inf & (\<forall>y\<in>Inf. succ(y): Inf)"
   221   infinity:      "0\<in>Inf & (\<forall>y\<in>Inf. succ(y): Inf)" and
   222 
   222 
   223   (*This formulation facilitates case analysis on A.*)
   223   (*This formulation facilitates case analysis on A.*)
   224   foundation:    "A=0 | (\<exists>x\<in>A. \<forall>y\<in>x. y~:A)"
   224   foundation:    "A=0 | (\<exists>x\<in>A. \<forall>y\<in>x. y~:A)" and
   225 
   225 
   226   (*Schema axiom since predicate P is a higher-order variable*)
   226   (*Schema axiom since predicate P is a higher-order variable*)
   227   replacement:   "(\<forall>x\<in>A. \<forall>y z. P(x,y) & P(x,z) --> y=z) ==>
   227   replacement:   "(\<forall>x\<in>A. \<forall>y z. P(x,y) & P(x,z) --> y=z) ==>
   228                          b \<in> PrimReplace(A,P) <-> (\<exists>x\<in>A. P(x,b))"
   228                          b \<in> PrimReplace(A,P) <-> (\<exists>x\<in>A. P(x,b))"
   229 
   229