src/HOL/Predicate.thy
changeset 44033 bc45393f497b
parent 44026 d5e28a49e16e
child 44363 53f4f8287606
equal deleted inserted replaced
44032:cb768f4ceaf9 44033:bc45393f497b
   429 
   429 
   430 lemma eq_mem [simp]:
   430 lemma eq_mem [simp]:
   431   "x \<in> (op =) y \<longleftrightarrow> x = y"
   431   "x \<in> (op =) y \<longleftrightarrow> x = y"
   432   by (auto simp add: mem_def)
   432   by (auto simp add: mem_def)
   433 
   433 
   434 instantiation pred :: (type) complete_boolean_algebra
   434 instantiation pred :: (type) complete_lattice
   435 begin
   435 begin
   436 
   436 
   437 definition
   437 definition
   438   "P \<le> Q \<longleftrightarrow> eval P \<le> eval Q"
   438   "P \<le> Q \<longleftrightarrow> eval P \<le> eval Q"
   439 
   439 
   480 
   480 
   481 lemma eval_Sup [simp]:
   481 lemma eval_Sup [simp]:
   482   "eval (\<Squnion>A) = SUPR A eval"
   482   "eval (\<Squnion>A) = SUPR A eval"
   483   by (simp add: Sup_pred_def)
   483   by (simp add: Sup_pred_def)
   484 
   484 
       
   485 instance proof
       
   486 qed (auto intro!: pred_eqI simp add: less_eq_pred_def less_pred_def)
       
   487 
       
   488 end
       
   489 
       
   490 lemma eval_INFI [simp]:
       
   491   "eval (INFI A f) = INFI A (eval \<circ> f)"
       
   492   by (unfold INFI_def) simp
       
   493 
       
   494 lemma eval_SUPR [simp]:
       
   495   "eval (SUPR A f) = SUPR A (eval \<circ> f)"
       
   496   by (unfold SUPR_def) simp
       
   497 
       
   498 instantiation pred :: (type) complete_boolean_algebra
       
   499 begin
       
   500 
   485 definition
   501 definition
   486   "- P = Pred (- eval P)"
   502   "- P = Pred (- eval P)"
   487 
   503 
   488 lemma eval_compl [simp]:
   504 lemma eval_compl [simp]:
   489   "eval (- P) = - eval P"
   505   "eval (- P) = - eval P"
   495 lemma eval_minus [simp]:
   511 lemma eval_minus [simp]:
   496   "eval (P - Q) = eval P - eval Q"
   512   "eval (P - Q) = eval P - eval Q"
   497   by (simp add: minus_pred_def)
   513   by (simp add: minus_pred_def)
   498 
   514 
   499 instance proof
   515 instance proof
   500 qed (auto intro!: pred_eqI simp add: less_eq_pred_def less_pred_def uminus_apply minus_apply)
   516 qed (auto intro!: pred_eqI simp add: uminus_apply minus_apply)
   501 
   517 
   502 end
   518 end
   503 
       
   504 lemma eval_INFI [simp]:
       
   505   "eval (INFI A f) = INFI A (eval \<circ> f)"
       
   506   by (unfold INFI_def) simp
       
   507 
       
   508 lemma eval_SUPR [simp]:
       
   509   "eval (SUPR A f) = SUPR A (eval \<circ> f)"
       
   510   by (unfold SUPR_def) simp
       
   511 
   519 
   512 definition single :: "'a \<Rightarrow> 'a pred" where
   520 definition single :: "'a \<Rightarrow> 'a pred" where
   513   "single x = Pred ((op =) x)"
   521   "single x = Pred ((op =) x)"
   514 
   522 
   515 lemma eval_single [simp]:
   523 lemma eval_single [simp]: