src/ZF/Constructible/AC_in_L.thy
changeset 32960 69916a850301
parent 21404 eb85850d3eb7
child 46823 57bf0cecb366
equal deleted inserted replaced
32959:23a8c5ac35f8 32960:69916a850301
     1 (*  Title:      ZF/Constructible/AC_in_L.thy
     1 (*  Title:      ZF/Constructible/AC_in_L.thy
     2     ID: $Id$
       
     3     Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
     2     Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
     4 *)
     3 *)
     5 
     4 
     6 header {* The Axiom of Choice Holds in L! *}
     5 header {* The Axiom of Choice Holds in L! *}
     7 
     6 
   225 definition
   224 definition
   226   env_form_r :: "[i,i,i]=>i" where
   225   env_form_r :: "[i,i,i]=>i" where
   227     --{*wellordering on (environment, formula) pairs*}
   226     --{*wellordering on (environment, formula) pairs*}
   228    "env_form_r(f,r,A) ==
   227    "env_form_r(f,r,A) ==
   229       rmult(list(A), rlist(A, r),
   228       rmult(list(A), rlist(A, r),
   230 	    formula, measure(formula, enum(f)))"
   229             formula, measure(formula, enum(f)))"
   231 
   230 
   232 definition
   231 definition
   233   env_form_map :: "[i,i,i,i]=>i" where
   232   env_form_map :: "[i,i,i,i]=>i" where
   234     --{*map from (environment, formula) pairs to ordinals*}
   233     --{*map from (environment, formula) pairs to ordinals*}
   235    "env_form_map(f,r,A,z)
   234    "env_form_map(f,r,A,z)
   325   rlimit :: "[i,i=>i]=>i" where
   324   rlimit :: "[i,i=>i]=>i" where
   326   --{*Expresses the wellordering at limit ordinals.  The conditional
   325   --{*Expresses the wellordering at limit ordinals.  The conditional
   327       lets us remove the premise @{term "Limit(i)"} from some theorems.*}
   326       lets us remove the premise @{term "Limit(i)"} from some theorems.*}
   328     "rlimit(i,r) ==
   327     "rlimit(i,r) ==
   329        if Limit(i) then 
   328        if Limit(i) then 
   330 	 {z: Lset(i) * Lset(i).
   329          {z: Lset(i) * Lset(i).
   331 	  \<exists>x' x. z = <x',x> &
   330           \<exists>x' x. z = <x',x> &
   332 		 (lrank(x') < lrank(x) |
   331                  (lrank(x') < lrank(x) |
   333 		  (lrank(x') = lrank(x) & <x',x> \<in> r(succ(lrank(x)))))}
   332                   (lrank(x') = lrank(x) & <x',x> \<in> r(succ(lrank(x)))))}
   334        else 0"
   333        else 0"
   335 
   334 
   336 definition
   335 definition
   337   Lset_new :: "i=>i" where
   336   Lset_new :: "i=>i" where
   338   --{*This constant denotes the set of elements introduced at level
   337   --{*This constant denotes the set of elements introduced at level