src/ZF/OrdQuant.thy
changeset 69587 53982d5ec0bb
parent 61396 ce1b2234cab6
child 69593 3dda49e08b9d
equal deleted inserted replaced
69586:9171d1ce5a35 69587:53982d5ec0bb
    21   (* Ordinal Union *)
    21   (* Ordinal Union *)
    22   OUnion :: "[i, i => i] => i"  where
    22   OUnion :: "[i, i => i] => i"  where
    23     "OUnion(i,B) == {z: \<Union>x\<in>i. B(x). Ord(i)}"
    23     "OUnion(i,B) == {z: \<Union>x\<in>i. B(x). Ord(i)}"
    24 
    24 
    25 syntax
    25 syntax
    26   "_oall"     :: "[idt, i, o] => o"        ("(3\<forall>_<_./ _)" 10)
    26   "_oall"     :: "[idt, i, o] => o"        (\<open>(3\<forall>_<_./ _)\<close> 10)
    27   "_oex"      :: "[idt, i, o] => o"        ("(3\<exists>_<_./ _)" 10)
    27   "_oex"      :: "[idt, i, o] => o"        (\<open>(3\<exists>_<_./ _)\<close> 10)
    28   "_OUNION"   :: "[idt, i, i] => i"        ("(3\<Union>_<_./ _)" 10)
    28   "_OUNION"   :: "[idt, i, i] => i"        (\<open>(3\<Union>_<_./ _)\<close> 10)
    29 translations
    29 translations
    30   "\<forall>x<a. P" \<rightleftharpoons> "CONST oall(a, \<lambda>x. P)"
    30   "\<forall>x<a. P" \<rightleftharpoons> "CONST oall(a, \<lambda>x. P)"
    31   "\<exists>x<a. P" \<rightleftharpoons> "CONST oex(a, \<lambda>x. P)"
    31   "\<exists>x<a. P" \<rightleftharpoons> "CONST oex(a, \<lambda>x. P)"
    32   "\<Union>x<a. B" \<rightleftharpoons> "CONST OUnion(a, \<lambda>x. B)"
    32   "\<Union>x<a. B" \<rightleftharpoons> "CONST OUnion(a, \<lambda>x. B)"
    33 
    33 
   190 definition
   190 definition
   191   "rex"      :: "[i=>o, i=>o] => o"  where
   191   "rex"      :: "[i=>o, i=>o] => o"  where
   192     "rex(M, P) == \<exists>x. M(x) & P(x)"
   192     "rex(M, P) == \<exists>x. M(x) & P(x)"
   193 
   193 
   194 syntax
   194 syntax
   195   "_rall"     :: "[pttrn, i=>o, o] => o"        ("(3\<forall>_[_]./ _)" 10)
   195   "_rall"     :: "[pttrn, i=>o, o] => o"        (\<open>(3\<forall>_[_]./ _)\<close> 10)
   196   "_rex"      :: "[pttrn, i=>o, o] => o"        ("(3\<exists>_[_]./ _)" 10)
   196   "_rex"      :: "[pttrn, i=>o, o] => o"        (\<open>(3\<exists>_[_]./ _)\<close> 10)
   197 translations
   197 translations
   198   "\<forall>x[M]. P" \<rightleftharpoons> "CONST rall(M, \<lambda>x. P)"
   198   "\<forall>x[M]. P" \<rightleftharpoons> "CONST rall(M, \<lambda>x. P)"
   199   "\<exists>x[M]. P" \<rightleftharpoons> "CONST rex(M, \<lambda>x. P)"
   199   "\<exists>x[M]. P" \<rightleftharpoons> "CONST rex(M, \<lambda>x. P)"
   200 
   200 
   201 
   201 
   321 
   321 
   322 
   322 
   323 subsubsection\<open>Sets as Classes\<close>
   323 subsubsection\<open>Sets as Classes\<close>
   324 
   324 
   325 definition
   325 definition
   326   setclass :: "[i,i] => o"       ("##_" [40] 40)  where
   326   setclass :: "[i,i] => o"       (\<open>##_\<close> [40] 40)  where
   327    "setclass(A) == %x. x \<in> A"
   327    "setclass(A) == %x. x \<in> A"
   328 
   328 
   329 lemma setclass_iff [simp]: "setclass(A,x) <-> x \<in> A"
   329 lemma setclass_iff [simp]: "setclass(A,x) <-> x \<in> A"
   330 by (simp add: setclass_def)
   330 by (simp add: setclass_def)
   331 
   331