src/HOL/UNITY/SubstAx.thy
changeset 45605 a89b4bc311a5
parent 45477 11d9c2768729
child 58889 5b7a9633cfa8
equal deleted inserted replaced
45604:29cf40fe8daf 45605:a89b4bc311a5
    40      "F \<in> Always INV ==> (F \<in> A LeadsTo (INV \<inter> A')) = (F \<in> A LeadsTo A')"
    40      "F \<in> Always INV ==> (F \<in> A LeadsTo (INV \<inter> A')) = (F \<in> A LeadsTo A')"
    41 by (simp add: LeadsTo_eq_leadsTo Always_eq_includes_reachable Int_absorb2 
    41 by (simp add: LeadsTo_eq_leadsTo Always_eq_includes_reachable Int_absorb2 
    42               Int_assoc [symmetric])
    42               Int_assoc [symmetric])
    43 
    43 
    44 (* [| F \<in> Always C;  F \<in> (C \<inter> A) LeadsTo A' |] ==> F \<in> A LeadsTo A' *)
    44 (* [| F \<in> Always C;  F \<in> (C \<inter> A) LeadsTo A' |] ==> F \<in> A LeadsTo A' *)
    45 lemmas Always_LeadsToI = Always_LeadsTo_pre [THEN iffD1, standard]
    45 lemmas Always_LeadsToI = Always_LeadsTo_pre [THEN iffD1]
    46 
    46 
    47 (* [| F \<in> Always INV;  F \<in> A LeadsTo A' |] ==> F \<in> A LeadsTo (INV \<inter> A') *)
    47 (* [| F \<in> Always INV;  F \<in> A LeadsTo A' |] ==> F \<in> A LeadsTo (INV \<inter> A') *)
    48 lemmas Always_LeadsToD = Always_LeadsTo_post [THEN iffD2, standard]
    48 lemmas Always_LeadsToD = Always_LeadsTo_post [THEN iffD2]
    49 
    49 
    50 
    50 
    51 subsection{*Introduction rules: Basis, Trans, Union*}
    51 subsection{*Introduction rules: Basis, Trans, Union*}
    52 
    52 
    53 lemma leadsTo_imp_LeadsTo: "F \<in> A leadsTo B ==> F \<in> A LeadsTo B"
    53 lemma leadsTo_imp_LeadsTo: "F \<in> A leadsTo B ==> F \<in> A LeadsTo B"
   102 lemma subset_imp_LeadsTo: "A \<subseteq> B ==> F \<in> A LeadsTo B"
   102 lemma subset_imp_LeadsTo: "A \<subseteq> B ==> F \<in> A LeadsTo B"
   103 apply (simp add: LeadsTo_def)
   103 apply (simp add: LeadsTo_def)
   104 apply (blast intro: subset_imp_leadsTo)
   104 apply (blast intro: subset_imp_leadsTo)
   105 done
   105 done
   106 
   106 
   107 lemmas empty_LeadsTo = empty_subsetI [THEN subset_imp_LeadsTo, standard, simp]
   107 lemmas empty_LeadsTo = empty_subsetI [THEN subset_imp_LeadsTo, simp]
   108 
   108 
   109 lemma LeadsTo_weaken_R:
   109 lemma LeadsTo_weaken_R:
   110      "[| F \<in> A LeadsTo A';  A' \<subseteq> B' |] ==> F \<in> A LeadsTo B'"
   110      "[| F \<in> A LeadsTo A';  A' \<subseteq> B' |] ==> F \<in> A LeadsTo B'"
   111 apply (simp add: LeadsTo_def)
   111 apply (simp add: LeadsTo_def)
   112 apply (blast intro: leadsTo_weaken_R)
   112 apply (blast intro: leadsTo_weaken_R)