src/ZF/Constructible/DPow_absolute.thy
changeset 21404 eb85850d3eb7
parent 21233 5a5c8ea5f66a
child 32960 69916a850301
--- a/src/ZF/Constructible/DPow_absolute.thy	Fri Nov 17 02:19:55 2006 +0100
+++ b/src/ZF/Constructible/DPow_absolute.thy	Fri Nov 17 02:20:03 2006 +0100
@@ -23,7 +23,8 @@
              successor(M,dp,i) & fun_apply(M,f,p,z) & is_transrec(M,MH,i,f)"
 *)
 
-definition formula_rec_fm :: "[i, i, i]=>i"
+definition
+  formula_rec_fm :: "[i, i, i]=>i" where
  "formula_rec_fm(mh,p,z) == 
     Exists(Exists(Exists(
       And(finite_ordinal_fm(2),
@@ -80,7 +81,8 @@
 subsubsection{*The Operator @{term is_satisfies}*}
 
 (* is_satisfies(M,A,p,z) == is_formula_rec (M, satisfies_MH(M,A), p, z) *)
-definition satisfies_fm :: "[i,i,i]=>i"
+definition
+  satisfies_fm :: "[i,i,i]=>i" where
     "satisfies_fm(x) == formula_rec_fm (satisfies_MH_fm(x#+5#+6, 2, 1, 0))"
 
 lemma is_satisfies_type [TC]:
@@ -120,7 +122,7 @@
 text{*Relativize the use of @{term sats} within @{term DPow'}
 (the comprehension).*}
 definition
-  is_DPow_sats :: "[i=>o,i,i,i,i] => o"
+  is_DPow_sats :: "[i=>o,i,i,i,i] => o" where
    "is_DPow_sats(M,A,env,p,x) ==
       \<forall>n1[M]. \<forall>e[M]. \<forall>sp[M]. 
              is_satisfies(M,A,p,sp) --> is_Cons(M,x,env,e) --> 
@@ -148,8 +150,9 @@
              is_satisfies(M,A,p,sp) --> is_Cons(M,x,env,e) --> 
              fun_apply(M, sp, e, n1) --> number1(M, n1) *)
 
-definition DPow_sats_fm :: "[i,i,i,i]=>i"
- "DPow_sats_fm(A,env,p,x) ==
+definition
+  DPow_sats_fm :: "[i,i,i,i]=>i" where
+  "DPow_sats_fm(A,env,p,x) ==
    Forall(Forall(Forall(
      Implies(satisfies_fm(A#+3,p#+3,0), 
        Implies(Cons_fm(x#+3,env#+3,1), 
@@ -219,7 +222,7 @@
 
 text{*Relativization of the Operator @{term DPow'}*}
 definition 
-  is_DPow' :: "[i=>o,i,i] => o"
+  is_DPow' :: "[i=>o,i,i] => o" where
     "is_DPow'(M,A,Z) == 
        \<forall>X[M]. X \<in> Z <-> 
          subset(M,X,A) & 
@@ -310,7 +313,8 @@
 (* is_Collect :: "[i=>o,i,i=>o,i] => o"
     "is_Collect(M,A,P,z) == \<forall>x[M]. x \<in> z <-> x \<in> A & P(x)" *)
 
-definition Collect_fm :: "[i, i, i]=>i"
+definition
+  Collect_fm :: "[i, i, i]=>i" where
  "Collect_fm(A,is_P,z) == 
         Forall(Iff(Member(0,succ(z)),
                    And(Member(0,succ(A)), is_P)))"
@@ -360,8 +364,9 @@
 (*  is_Replace :: "[i=>o,i,[i,i]=>o,i] => o"
     "is_Replace(M,A,P,z) == \<forall>u[M]. u \<in> z <-> (\<exists>x[M]. x\<in>A & P(x,u))" *)
 
-definition Replace_fm :: "[i, i, i]=>i"
- "Replace_fm(A,is_P,z) == 
+definition
+  Replace_fm :: "[i, i, i]=>i" where
+  "Replace_fm(A,is_P,z) == 
         Forall(Iff(Member(0,succ(z)),
                    Exists(And(Member(0,A#+2), is_P))))"
 
@@ -413,7 +418,8 @@
            (\<exists>env[M]. \<exists>p[M]. mem_formula(M,p) & mem_list(M,A,env) &
                     is_Collect(M, A, is_DPow_sats(M,A,env,p), X))" *)
 
-definition DPow'_fm :: "[i,i]=>i"
+definition
+  DPow'_fm :: "[i,i]=>i" where
     "DPow'_fm(A,Z) == 
       Forall(
        Iff(Member(0,succ(Z)),
@@ -452,7 +458,7 @@
 subsection{*A Locale for Relativizing the Operator @{term Lset}*}
 
 definition
-  transrec_body :: "[i=>o,i,i,i,i] => o"
+  transrec_body :: "[i=>o,i,i,i,i] => o" where
     "transrec_body(M,g,x) ==
       \<lambda>y z. \<exists>gy[M]. y \<in> x & fun_apply(M,g,y,gy) & is_DPow'(M,gy,z)"
 
@@ -504,7 +510,7 @@
 text{*Relativization of the Operator @{term Lset}*}
 
 definition
-  is_Lset :: "[i=>o, i, i] => o"
+  is_Lset :: "[i=>o, i, i] => o" where
    --{*We can use the term language below because @{term is_Lset} will
        not have to be internalized: it isn't used in any instance of
        separation.*}
@@ -610,7 +616,7 @@
 
 
 definition
-  constructible :: "[i=>o,i] => o"
+  constructible :: "[i=>o,i] => o" where
     "constructible(M,x) ==
        \<exists>i[M]. \<exists>Li[M]. ordinal(M,i) & is_Lset(M,i,Li) & x \<in> Li"