src/HOL/UNITY/Comp/PriorityAux.thy
changeset 67613 ce654b0e6d69
parent 67443 3abf6a722518
--- a/src/HOL/UNITY/Comp/PriorityAux.thy	Tue Feb 13 14:24:50 2018 +0100
+++ b/src/HOL/UNITY/Comp/PriorityAux.thy	Thu Feb 15 12:11:00 2018 +0100
@@ -12,33 +12,33 @@
 typedecl vertex
   
 definition symcl :: "(vertex*vertex)set=>(vertex*vertex)set" where
-  "symcl r == r \<union> (r^-1)"
+  "symcl r == r \<union> (r\<inverse>)"
     \<comment> \<open>symmetric closure: removes the orientation of a relation\<close>
 
 definition neighbors :: "[vertex, (vertex*vertex)set]=>vertex set" where
-  "neighbors i r == ((r \<union> r^-1)``{i}) - {i}"
+  "neighbors i r == ((r \<union> r\<inverse>)``{i}) - {i}"
     \<comment> \<open>Neighbors of a vertex i\<close>
 
 definition R :: "[vertex, (vertex*vertex)set]=>vertex set" where
   "R i r == r``{i}"
 
 definition A :: "[vertex, (vertex*vertex)set]=>vertex set" where
-  "A i r == (r^-1)``{i}"
+  "A i r == (r\<inverse>)``{i}"
 
 definition reach :: "[vertex, (vertex*vertex)set]=> vertex set" where
-  "reach i r == (r^+)``{i}"
+  "reach i r == (r\<^sup>+)``{i}"
     \<comment> \<open>reachable and above vertices: the original notation was R* and A*\<close>
 
 definition above :: "[vertex, (vertex*vertex)set]=> vertex set" where
-  "above i r == ((r^-1)^+)``{i}"  
+  "above i r == ((r\<inverse>)\<^sup>+)``{i}"  
 
 definition reverse :: "[vertex, (vertex*vertex) set]=>(vertex*vertex)set" where
-  "reverse i r == (r - {(x,y). x=i | y=i} \<inter> r) \<union> ({(x,y). x=i|y=i} \<inter> r)^-1"
+  "reverse i r == (r - {(x,y). x=i | y=i} \<inter> r) \<union> ({(x,y). x=i|y=i} \<inter> r)\<inverse>"
 
 definition derive1 :: "[vertex, (vertex*vertex)set, (vertex*vertex)set]=>bool" where
     \<comment> \<open>The original definition\<close>
   "derive1 i r q == symcl r = symcl q &
-                    (\<forall>k k'. k\<noteq>i & k'\<noteq>i -->((k,k'):r) = ((k,k'):q)) &
+                    (\<forall>k k'. k\<noteq>i & k'\<noteq>i -->((k,k') \<in> r) = ((k,k') \<in> q)) \<and>
                     A i r = {} & R i q = {}"
 
 definition derive :: "[vertex, (vertex*vertex)set, (vertex*vertex)set]=>bool" where
@@ -68,13 +68,13 @@
 (* The equalities (above i r = {}) = (A i r = {}) 
    and (reach i r = {}) = (R i r) rely on the following theorem  *)
 
-lemma image0_trancl_iff_image0_r: "((r^+)``{i} = {}) = (r``{i} = {})"
+lemma image0_trancl_iff_image0_r: "((r\<^sup>+)``{i} = {}) = (r``{i} = {})"
 apply auto
 apply (erule trancl_induct, auto)
 done
 
 (* Another form usefull in some situation *)
-lemma image0_r_iff_image0_trancl: "(r``{i}={}) = (ALL x. ((i,x):r^+) = False)"
+lemma image0_r_iff_image0_trancl: "(r``{i}={}) = (\<forall>x. ((i,x) \<in> r\<^sup>+) = False)"
 apply auto
 apply (drule image0_trancl_iff_image0_r [THEN ssubst], auto)
 done
@@ -117,7 +117,7 @@
 
 (* Lemma 2 *)
 lemma maximal_converse_image0: 
-     "(z, i):r^+ ==> (\<forall>y. (y, z):r --> (y,i) \<notin> r^+) = ((r^-1)``{z}={})"
+     "(z, i) \<in> r\<^sup>+ \<Longrightarrow> (\<forall>y. (y, z) \<in> r \<longrightarrow> (y,i) \<notin> r\<^sup>+) = ((r\<inverse>)``{z}={})"
 apply auto
 apply (frule_tac r = r in trancl_into_trancl2, auto)
 done
@@ -125,7 +125,7 @@
 lemma above_lemma_a: 
      "acyclic r ==> A i r\<noteq>{}-->(\<exists>j \<in> above i r. A j r = {})"
 apply (simp add: acyclic_eq_wf wf_eq_minimal) 
-apply (drule_tac x = " ((r^-1) ^+) ``{i}" in spec)
+apply (drule_tac x = " ((r\<inverse>)\<^sup>+) ``{i}" in spec)
 apply auto
 apply (simp add: maximal_converse_image0 trancl_converse)
 done