diff --git a/utp_frames.thy b/utp_frames.thy index 879fbb7..5f5afdd 100644 --- a/utp_frames.thy +++ b/utp_frames.thy @@ -213,10 +213,24 @@ lemma nameset_skip_ra: "vwb_lens x \ (\<^bold>n\<^bold>s x \ Modification laws \ lemma "idem_scene x \ (rrestr x P) nmods x" by (pred_auto) (metis scene_override_idem scene_override_overshadow_right) +subsection \ Frames as lenses \ + +text \ For now, frames are most useful when the scene is a wrapped up lens. Therefore, for the proof + automation we assume this form in the following lemmas. \ + +lemma frame_var_alpha [pred]: "vwb_lens x \ frame (var_alpha x) P = (\(s, s'). s' = s \\<^sub>L s' on x \ P (s, s'))" + by (pred_simp, metis lens_override_def lens_scene_override scene_override_commute vwb_lens.put_eq vwb_lens_mwb) + +lemma frame_neg_var_alpha [pred]: "mwb_lens x \ frame (- (var_alpha x)) P = (\(s, s'). s = s \\<^sub>L s' on x \ P (s, s'))" + by (pred_simp, metis) + +declare frame_def [pred del] + end \ No newline at end of file