src/HOL/UNITY/PPROD.thy
changeset 60773 d09c66a0ea10
parent 46577 e5438c5797ae
child 61943 7fba644ed827
equal deleted inserted replaced
60772:a0cfa9050fa8 60773:d09c66a0ea10
    29 by (simp add: PLam_def)
    29 by (simp add: PLam_def)
    30 
    30 
    31 lemma PLam_SKIP [simp]: "(plam i : I. SKIP) = SKIP"
    31 lemma PLam_SKIP [simp]: "(plam i : I. SKIP) = SKIP"
    32 by (simp add: PLam_def JN_constant)
    32 by (simp add: PLam_def JN_constant)
    33 
    33 
    34 lemma PLam_insert: "PLam (insert i I) F = (lift i (F i)) Join (PLam I F)"
    34 lemma PLam_insert: "PLam (insert i I) F = (lift i (F i)) \<squnion> (PLam I F)"
    35 by (unfold PLam_def, auto)
    35 by (unfold PLam_def, auto)
    36 
    36 
    37 lemma PLam_component_iff: "((PLam I F) \<le> H) = (\<forall>i \<in> I. lift i (F i) \<le> H)"
    37 lemma PLam_component_iff: "((PLam I F) \<le> H) = (\<forall>i \<in> I. lift i (F i) \<le> H)"
    38 by (simp add: PLam_def JN_component_iff)
    38 by (simp add: PLam_def JN_component_iff)
    39 
    39 
   182 
   182 
   183     (*simplify using reachable_lift??*)
   183     (*simplify using reachable_lift??*)
   184     lemma reachable_lift_Join_PLam [rule_format]:
   184     lemma reachable_lift_Join_PLam [rule_format]:
   185       "[| i \<notin> I;  A \<in> reachable (F i) |]
   185       "[| i \<notin> I;  A \<in> reachable (F i) |]
   186        ==> \<forall>f. f \<in> reachable (PLam I F)
   186        ==> \<forall>f. f \<in> reachable (PLam I F)
   187                   --> f(i:=A) \<in> reachable (lift i (F i) Join PLam I F)"
   187                   --> f(i:=A) \<in> reachable (lift i (F i) \<squnion> PLam I F)"
   188     apply (erule reachable.induct)
   188     apply (erule reachable.induct)
   189     apply (ALLGOALS Clarify_tac)
   189     apply (ALLGOALS Clarify_tac)
   190     apply (erule reachable.induct)
   190     apply (erule reachable.induct)
   191     (*Init, Init case*)
   191     (*Init, Init case*)
   192     apply (force intro: reachable.intrs)
   192     apply (force intro: reachable.intrs)