src/HOL/ex/Tarski.thy
changeset 22547 c3290f4382e4
parent 21404 eb85850d3eb7
child 27681 8cedebf55539
equal deleted inserted replaced
22546:c40d7ab8cbc5 22547:c3290f4382e4
   429 by (simp add: A_def)
   429 by (simp add: A_def)
   430 
   430 
   431 lemma (in CLF) monotone_f: "monotone f A r"
   431 lemma (in CLF) monotone_f: "monotone f A r"
   432 by (simp add: A_def r_def)
   432 by (simp add: A_def r_def)
   433 
   433 
   434 lemma (in CLF) CLF_dual: "(cl,f) \<in> CLF ==> (dual cl, f) \<in> CLF"
   434 lemma (in CLF) CLF_dual: "(dual cl, f) \<in> CLF"
   435 apply (simp add: CLF_def  CL_dualCL monotone_dual)
   435 apply (simp add: CLF_def  CL_dualCL monotone_dual)
   436 apply (simp add: dualA_iff)
   436 apply (simp add: dualA_iff)
   437 done
   437 done
   438 
   438 
   439 
   439 
   534 apply (simp add: glb_dual_lub P_def A_def r_def)
   534 apply (simp add: glb_dual_lub P_def A_def r_def)
   535 apply (rule dualA_iff [THEN subst])
   535 apply (rule dualA_iff [THEN subst])
   536 apply (rule CLF.lubH_is_fixp)
   536 apply (rule CLF.lubH_is_fixp)
   537 apply (rule dualPO)
   537 apply (rule dualPO)
   538 apply (rule CL_dualCL)
   538 apply (rule CL_dualCL)
   539 apply (rule f_cl [THEN CLF_dual])
   539 apply (rule CLF_dual)
   540 apply (simp add: dualr_iff dualA_iff)
   540 apply (simp add: dualr_iff dualA_iff)
   541 done
   541 done
   542 
   542 
   543 lemma (in CLF) T_thm_1_glb: "glb P cl = glb {x. (f x, x) \<in> r & x \<in> A} cl"
   543 lemma (in CLF) T_thm_1_glb: "glb P cl = glb {x. (f x, x) \<in> r & x \<in> A} cl"
   544 apply (simp add: glb_dual_lub P_def A_def r_def)
   544 apply (simp add: glb_dual_lub P_def A_def r_def)
   698 done
   698 done
   699 
   699 
   700 lemma (in CLF) Top_in_lattice: "Top cl \<in> A"
   700 lemma (in CLF) Top_in_lattice: "Top cl \<in> A"
   701 apply (simp add: Top_dual_Bot A_def)
   701 apply (simp add: Top_dual_Bot A_def)
   702 apply (rule dualA_iff [THEN subst])
   702 apply (rule dualA_iff [THEN subst])
   703 apply (blast intro!: CLF.Bot_in_lattice dualPO CL_dualCL CLF_dual f_cl)
   703 apply (blast intro!: CLF.Bot_in_lattice dualPO CL_dualCL CLF_dual)
   704 done
   704 done
   705 
   705 
   706 lemma (in CLF) Top_prop: "x \<in> A ==> (x, Top cl) \<in> r"
   706 lemma (in CLF) Top_prop: "x \<in> A ==> (x, Top cl) \<in> r"
   707 apply (simp add: Top_def greatest_def)
   707 apply (simp add: Top_def greatest_def)
   708 apply (rule_tac a="lub A cl" in someI2)
   708 apply (rule_tac a="lub A cl" in someI2)
   729 apply (simp add: Bot_dual_Top)
   729 apply (simp add: Bot_dual_Top)
   730 apply (subst interval_dual)
   730 apply (subst interval_dual)
   731 prefer 2 apply assumption
   731 prefer 2 apply assumption
   732 apply (simp add: A_def)
   732 apply (simp add: A_def)
   733 apply (rule dualA_iff [THEN subst])
   733 apply (rule dualA_iff [THEN subst])
   734 apply (blast intro!: CLF.Top_in_lattice
   734 apply (blast intro!: CLF.Top_in_lattice dualPO CL_dualCL CLF_dual)
   735                  f_cl dualPO CL_dualCL CLF_dual)
       
   736 apply (simp add: CLF.Top_intv_not_empty [of _ f]
   735 apply (simp add: CLF.Top_intv_not_empty [of _ f]
   737                  dualA_iff A_def dualPO CL_dualCL CLF_dual)
   736                  dualA_iff A_def dualPO CL_dualCL CLF_dual)
   738 done
   737 done
   739 
   738 
   740 subsection {* fixed points form a partial order *}
   739 subsection {* fixed points form a partial order *}