equal
deleted
inserted
replaced
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 |