Separation_Algebra/Separation_Algebra.thy
changeset 5 6c722e960f2e
parent 0 1378b654acde
child 25 a5f5b9336007
equal deleted inserted replaced
4:ceb0bdc99893 5:6c722e960f2e
    33 
    33 
    34 abbreviation (input)
    34 abbreviation (input)
    35   pred_K :: "'b \<Rightarrow> 'a \<Rightarrow> 'b" ("\<langle>_\<rangle>") where
    35   pred_K :: "'b \<Rightarrow> 'a \<Rightarrow> 'b" ("\<langle>_\<rangle>") where
    36   "\<langle>f\<rangle> \<equiv> \<lambda>s. f"
    36   "\<langle>f\<rangle> \<equiv> \<lambda>s. f"
    37 
    37 
    38 (* abbreviation *)
    38 (* was an abbreviation *)
    39   definition pred_ex :: "('b \<Rightarrow> 'a \<Rightarrow> bool) \<Rightarrow> 'a \<Rightarrow> bool" (binder "EXS " 10) where
    39   definition pred_ex :: "('b \<Rightarrow> 'a \<Rightarrow> bool) \<Rightarrow> 'a \<Rightarrow> bool" (binder "EXS " 10) where
    40   "EXS x. P x \<equiv> \<lambda>s. \<exists>x. P x s"
    40   "EXS x. P x \<equiv> \<lambda>s. \<exists>x. P x s"
    41 
    41 
    42 abbreviation (input)
    42 abbreviation (input)
    43   pred_all :: "('b \<Rightarrow> 'a \<Rightarrow> bool) \<Rightarrow> 'a \<Rightarrow> bool" (binder "ALLS " 10) where
    43   pred_all :: "('b \<Rightarrow> 'a \<Rightarrow> bool) \<Rightarrow> 'a \<Rightarrow> bool" (binder "ALLS " 10) where
   214   fix h
   214   fix h
   215   assume a: "?rhs h"
   215   assume a: "?rhs h"
   216   then obtain x y z where "P x" and "Q y" and "R z"
   216   then obtain x y z where "P x" and "Q y" and "R z"
   217                       and "x ## y" and "x ## z" and "y ## z" and "x ## y + z"
   217                       and "x ## y" and "x ## z" and "y ## z" and "x ## y + z"
   218                       and "h = x + y + z"
   218                       and "h = x + y + z"
   219     thm sep_disj_addD
       
   220     by (fastforce elim!: sep_conjE simp: sep_add_ac dest: sep_disj_addD)
   219     by (fastforce elim!: sep_conjE simp: sep_add_ac dest: sep_disj_addD)
   221   thus "?lhs h"
   220   thus "?lhs h"
   222     by (metis sep_conj_def sep_disj_addI1)
   221     by (metis sep_conj_def sep_disj_addI1)
   223 qed
   222 qed
   224 
   223