src/HOL/IMP/Abs_Int0_fun.thy
changeset 45903 02dd9319dcb7
parent 45655 a49f9428aba4
child 46039 698de142f6f9
equal deleted inserted replaced
45895:36f3f0010b7d 45903:02dd9319dcb7
   356   assume 1: "lpfp\<^isub>c (step' \<top>) c = Some c'"
   356   assume 1: "lpfp\<^isub>c (step' \<top>) c = Some c'"
   357   have 2: "step' \<top> c' \<sqsubseteq> c'" by(rule lpfpc_pfp[OF 1])
   357   have 2: "step' \<top> c' \<sqsubseteq> c'" by(rule lpfpc_pfp[OF 1])
   358   have 3: "strip (\<gamma>\<^isub>c (step' \<top> c')) = c"
   358   have 3: "strip (\<gamma>\<^isub>c (step' \<top> c')) = c"
   359     by(simp add: strip_lpfpc[OF _ 1])
   359     by(simp add: strip_lpfpc[OF _ 1])
   360   have "lfp c (step UNIV) \<le> \<gamma>\<^isub>c (step' \<top> c')"
   360   have "lfp c (step UNIV) \<le> \<gamma>\<^isub>c (step' \<top> c')"
   361   proof(rule lfp_lowerbound[OF 3])
   361   proof(rule lfp_lowerbound[simplified,OF 3])
   362     show "step UNIV (\<gamma>\<^isub>c (step' \<top> c')) \<le> \<gamma>\<^isub>c (step' \<top> c')"
   362     show "step UNIV (\<gamma>\<^isub>c (step' \<top> c')) \<le> \<gamma>\<^isub>c (step' \<top> c')"
   363     proof(rule step_preserves_le[OF _ _ 3])
   363     proof(rule step_preserves_le[OF _ _ 3])
   364       show "UNIV \<subseteq> \<gamma>\<^isub>u \<top>" by simp
   364       show "UNIV \<subseteq> \<gamma>\<^isub>u \<top>" by simp
   365       show "\<gamma>\<^isub>c (step' \<top> c') \<le> \<gamma>\<^isub>c c'" by(rule mono_rep_c[OF 2])
   365       show "\<gamma>\<^isub>c (step' \<top> c') \<le> \<gamma>\<^isub>c c'" by(rule mono_rep_c[OF 2])
   366     qed
   366     qed