src/HOL/Library/Finite_Map.thy
changeset 68757 e7e3776385ba
parent 68463 410818a69ee3
child 68810 db97c1ed115e
equal deleted inserted replaced
68756:7066e83dfe46 68757:e7e3776385ba
   488 apply auto
   488 apply auto
   489 apply (rename_tac x y)
   489 apply (rename_tac x y)
   490 apply (erule_tac x = x in fBallE)
   490 apply (erule_tac x = x in fBallE)
   491 apply simp
   491 apply simp
   492 by (simp add: fmlookup_dom_iff)
   492 by (simp add: fmlookup_dom_iff)
       
   493 
       
   494 lemma fmpred_mono_strong:
       
   495   assumes "\<And>x y. fmlookup m x = Some y \<Longrightarrow> P x y \<Longrightarrow> Q x y"
       
   496   shows "fmpred P m \<Longrightarrow> fmpred Q m"
       
   497 using assms unfolding fmpred_iff by auto
       
   498 
       
   499 lemma fmpred_mono[mono]: "P \<le> Q \<Longrightarrow> fmpred P \<le> fmpred Q"
       
   500 apply rule
       
   501 apply (rule fmpred_mono_strong[where P = P and Q = Q])
       
   502 apply auto
       
   503 done
   493 
   504 
   494 lemma fmpred_empty[intro!, simp]: "fmpred P fmempty"
   505 lemma fmpred_empty[intro!, simp]: "fmpred P fmempty"
   495 by auto
   506 by auto
   496 
   507 
   497 lemma fmpred_upd[intro]: "fmpred P m \<Longrightarrow> P x y \<Longrightarrow> fmpred P (fmupd x y m)"
   508 lemma fmpred_upd[intro]: "fmpred P m \<Longrightarrow> P x y \<Longrightarrow> fmpred P (fmupd x y m)"