Quot/Examples/SigmaEx.thy
changeset 914 b8e43414c5aa
parent 912 aa960d16570f
child 918 7be9b054f672
--- a/Quot/Examples/SigmaEx.thy	Thu Jan 21 19:52:46 2010 +0100
+++ b/Quot/Examples/SigmaEx.thy	Fri Jan 22 17:44:46 2010 +0100
@@ -12,13 +12,16 @@
 and rmethod =
   rSig "name" "robj"
 
-(* Need to fix it, just 2 random rules *)
 inductive
     alpha_obj :: "robj \<Rightarrow> robj \<Rightarrow> bool" ("_ \<approx>o _" [100, 100] 100)
 and alpha_method :: "rmethod \<Rightarrow> rmethod \<Rightarrow> bool" ("_ \<approx>m _" [100, 100] 100)
 where
   a1: "a = b \<Longrightarrow> (rVar a) \<approx>o (rVar b)"
-| a2: "a = b \<and> c = d \<Longrightarrow> rSig a c \<approx>m rSig b d"
+| a2: "rObj [] \<approx>o rObj []"
+| a3: "rObj t1 \<approx>o rObj t2 \<Longrightarrow> m1 \<approx>m r2 \<Longrightarrow> rObj ((l1, m1) # t1) \<approx>o rObj ((l2, m2) # t2)"
+| a4: "x \<approx>o y \<Longrightarrow> rInv x l1 \<approx>o rInv y l2"
+| a5: "\<exists>pi::name prm. (rfv t - {a} = rfv s - {b} \<and> (rfv t - {a})\<sharp>* pi \<and> (pi \<bullet> t) \<approx>o s \<and> (pi \<bullet> a) = b)
+       \<Longrightarrow> rSig a t \<approx>m rSig b s"
 
 lemma alpha_equivps:
   shows "equivp alpha_obj"