375 fix a x :: 'a |
375 fix a x :: 'a |
376 |
376 |
377 have [simp]: "1 \<le> star a" |
377 have [simp]: "1 \<le> star a" |
378 unfolding star_cont[of 1 a 1, simplified] |
378 unfolding star_cont[of 1 a 1, simplified] |
379 by (subst power_0[symmetric]) (rule le_SUPI [OF UNIV_I]) |
379 by (subst power_0[symmetric]) (rule le_SUPI [OF UNIV_I]) |
380 |
380 |
381 show "1 + a * star a \<le> star a" |
381 have "a * star a \<le> star a" |
382 apply (rule plus_leI, simp) |
382 using star_cont[of a a 1] star_cont[of 1 a 1] |
383 apply (simp add:star_cont[of a a 1, simplified]) |
383 by (auto simp add: power_Suc[symmetric] simp del: power_Suc |
384 apply (simp add:star_cont[of 1 a 1, simplified]) |
384 intro: SUP_leI le_SUPI) |
385 apply (subst power_Suc[symmetric]) |
385 |
386 by (intro SUP_leI le_SUPI UNIV_I) |
386 then show "1 + a * star a \<le> star a" |
387 |
387 by simp |
388 show "1 + star a * a \<le> star a" |
388 |
389 apply (rule plus_leI, simp) |
389 then show "1 + star a * a \<le> star a" |
390 apply (simp add:star_cont[of 1 a a, simplified]) |
390 using star_cont[of a a 1] star_cont[of 1 a a] |
391 apply (simp add:star_cont[of 1 a 1, simplified]) |
391 by (simp add: power_commutes) |
392 by (auto intro: SUP_leI le_SUPI simp add: power_Suc[symmetric] power_commutes simp del: power_Suc) |
|
393 |
392 |
394 show "a * x \<le> x \<Longrightarrow> star a * x \<le> x" |
393 show "a * x \<le> x \<Longrightarrow> star a * x \<le> x" |
395 proof - |
394 proof - |
396 assume a: "a * x \<le> x" |
395 assume a: "a * x \<le> x" |
397 |
396 |