src/HOL/UNITY/UNITY.thy
changeset 16184 80617b8d33c5
parent 14653 0848ab6fe5fc
child 16417 9bc16273c2d4
--- a/src/HOL/UNITY/UNITY.thy	Thu Jun 02 13:17:06 2005 +0200
+++ b/src/HOL/UNITY/UNITY.thy	Thu Jun 02 13:47:08 2005 +0200
@@ -21,7 +21,7 @@
   Acts :: "'a program => ('a * 'a)set set"
     "Acts F == (%(init, acts, allowed). acts) (Rep_Program F)"
 
-  constrains :: "['a set, 'a set] => 'a program set"  (infixl "co"     60)
+  "constrains" :: "['a set, 'a set] => 'a program set"  (infixl "co"     60)
     "A co B == {F. \<forall>act \<in> Acts F. act``A \<subseteq> B}"
 
   unless  :: "['a set, 'a set] => 'a program set"  (infixl "unless" 60)
@@ -58,7 +58,7 @@
 text{*Perhaps equalities.ML shouldn't add this in the first place!*}
 declare image_Collect [simp del]
 
-(*** The abstract type of programs ***)
+subsubsection{*The abstract type of programs*}
 
 lemmas program_typedef =
      Rep_Program Rep_Program_inverse Abs_Program_inverse 
@@ -83,7 +83,7 @@
 lemma insert_Id_AllowedActs [iff]: "insert Id (AllowedActs F) = AllowedActs F"
 by (simp add: insert_absorb Id_in_AllowedActs)
 
-(** Inspectors for type "program" **)
+subsubsection{*Inspectors for type "program"*}
 
 lemma Init_eq [simp]: "Init (mk_program (init,acts,allowed)) = init"
 by (simp add: program_typedef)
@@ -95,7 +95,7 @@
      "AllowedActs (mk_program (init,acts,allowed)) = insert Id allowed"
 by (simp add: program_typedef)
 
-(** Equality for UNITY programs **)
+subsubsection{*Equality for UNITY programs*}
 
 lemma surjective_mk_program [simp]:
      "mk_program (Init F, Acts F, AllowedActs F) = F"
@@ -124,7 +124,7 @@
 by (blast intro: program_equalityI program_equalityE)
 
 
-(*** co ***)
+subsubsection{*co*}
 
 lemma constrainsI: 
     "(!!act s s'. [| act: Acts F;  (s,s') \<in> act;  s \<in> A |] ==> s': A')  
@@ -161,7 +161,7 @@
    "[| F \<in> A co A'; B \<subseteq> A; A'<=B' |] ==> F \<in> B co B'"
 by (unfold constrains_def, blast)
 
-(** Union **)
+subsubsection{*Union*}
 
 lemma constrains_Un: 
     "[| F \<in> A co A'; F \<in> B co B' |] ==> F \<in> (A \<union> B) co (A' \<union> B')"
@@ -184,7 +184,7 @@
 lemma constrains_INT_distrib: "A co (\<Inter>i \<in> I. B i) = (\<Inter>i \<in> I. A co B i)"
 by (unfold constrains_def, blast)
 
-(** Intersection **)
+subsubsection{*Intersection*}
 
 lemma constrains_Int: 
     "[| F \<in> A co A'; F \<in> B co B' |] ==> F \<in> (A \<inter> B) co (A' \<inter> B')"
@@ -209,7 +209,7 @@
 by (unfold constrains_def, clarify, blast)
 
 
-(*** unless ***)
+subsubsection{*unless*}
 
 lemma unlessI: "F \<in> (A-B) co (A \<union> B) ==> F \<in> A unless B"
 by (unfold unless_def, assumption)
@@ -218,7 +218,7 @@
 by (unfold unless_def, assumption)
 
 
-(*** stable ***)
+subsubsection{*stable*}
 
 lemma stableI: "F \<in> A co A ==> F \<in> stable A"
 by (unfold stable_def, assumption)
@@ -229,7 +229,7 @@
 lemma stable_UNIV [simp]: "stable UNIV = UNIV"
 by (unfold stable_def constrains_def, auto)
 
-(** Union **)
+subsubsection{*Union*}
 
 lemma stable_Un: 
     "[| F \<in> stable A; F \<in> stable A' |] ==> F \<in> stable (A \<union> A')"
@@ -248,7 +248,7 @@
     "(!!A. A \<in> X ==> F \<in> stable A) ==> F \<in> stable (\<Union>X)"
 by (unfold stable_def constrains_def, blast)
 
-(** Intersection **)
+subsubsection{*Intersection*}
 
 lemma stable_Int: 
     "[| F \<in> stable A;  F \<in> stable A' |] ==> F \<in> stable (A \<inter> A')"
@@ -278,7 +278,7 @@
 lemmas stable_constrains_stable = stable_constrains_Int[THEN stableI, standard]
 
 
-(*** invariant ***)
+subsubsection{*invariant*}
 
 lemma invariantI: "[| Init F \<subseteq> A;  F \<in> stable A |] ==> F \<in> invariant A"
 by (simp add: invariant_def)
@@ -289,7 +289,7 @@
 by (auto simp add: invariant_def stable_Int)
 
 
-(*** increasing ***)
+subsubsection{*increasing*}
 
 lemma increasingD: 
      "F \<in> increasing f ==> F \<in> stable {s. z \<subseteq> f s}"
@@ -327,7 +327,7 @@
 
 
 
-(*** Theoretical Results from Section 6 ***)
+subsubsection{*Theoretical Results from Section 6*}
 
 lemma constrains_strongest_rhs: 
     "F \<in> A co (strongest_rhs F A )"
@@ -338,7 +338,7 @@
 by (unfold constrains_def strongest_rhs_def, blast)
 
 
-(** Ad-hoc set-theory rules **)
+subsubsection{*Ad-hoc set-theory rules*}
 
 lemma Un_Diff_Diff [simp]: "A \<union> B - (A - B) = B"
 by blast
@@ -346,7 +346,7 @@
 lemma Int_Union_Union: "Union(B) \<inter> A = Union((%C. C \<inter> A)`B)"
 by blast
 
-(** Needed for WF reasoning in WFair.ML **)
+text{*Needed for WF reasoning in WFair.ML*}
 
 lemma Image_less_than [simp]: "less_than `` {k} = greaterThan k"
 by blast
@@ -377,7 +377,7 @@
 by (blast intro: sym [THEN image_eqI])
 
 
-text{*Basic properties*}
+subsubsection{*Basic properties*}
 
 lemma totalize_act_Id [simp]: "totalize_act Id = Id"
 by (simp add: totalize_act_def) 
@@ -455,7 +455,7 @@
 lemma def_set_simp: "A == B ==> (x \<in> A) = (x \<in> B)"
 by (simp add: mk_total_program_def)
 
-(** Inspectors for type "program" **)
+subsubsection{*Inspectors for type "program"*}
 
 lemma Init_total_eq [simp]:
      "Init (mk_total_program (init,acts,allowed)) = init"