46 apply (induct x and l) |
46 apply (induct x and l) |
47 apply (simp_all add: eqvts atom_eqvt) |
47 apply (simp_all add: eqvts atom_eqvt) |
48 done |
48 done |
49 |
49 |
50 lemma alpha5_eqvt: |
50 lemma alpha5_eqvt: |
51 "xa \<approx>5 y \<Longrightarrow> (x \<bullet> xa) \<approx>5 (x \<bullet> y)" |
51 "(xa \<approx>5 y \<longrightarrow> (p \<bullet> xa) \<approx>5 (p \<bullet> y)) \<and> |
52 "xb \<approx>l ya \<Longrightarrow> (x \<bullet> xb) \<approx>l (x \<bullet> ya)" |
52 (xb \<approx>l ya \<longrightarrow> (p \<bullet> xb) \<approx>l (p \<bullet> ya)) \<and> |
53 "alpha_rbv5 a b c \<Longrightarrow> alpha_rbv5 (x \<bullet> a) (x \<bullet> b) (x \<bullet> c)" |
53 (alpha_rbv5 a b c \<longrightarrow> alpha_rbv5 (p \<bullet> a) (p \<bullet> b) (p \<bullet> c))" |
54 apply (induct rule: alpha_rtrm5_alpha_rlts_alpha_rbv5.inducts) |
54 apply (tactic {* alpha_eqvt_tac @{thm alpha_rtrm5_alpha_rlts_alpha_rbv5.induct} @{thms alpha5_inj permute_rtrm5_permute_rlts.simps} @{context} 1 *}) |
55 apply (simp_all add: alpha5_inj permute_eqvt[symmetric]) |
55 done |
56 apply (erule exE) |
56 |
57 apply (rule_tac x="x \<bullet> pi" in exI) |
57 lemma alpha5_reflp: |
58 apply (erule conjE)+ |
58 "y \<approx>5 y \<and> (x \<approx>l x \<and> alpha_rbv5 0 x x)" |
59 apply (rule conjI) |
59 apply (rule rtrm5_rlts.induct) |
60 apply (erule alpha_gen_compose_eqvt) |
60 apply (simp_all add: alpha5_inj) |
61 apply (simp_all add: eqvts) |
61 apply (rule_tac x="0::perm" in exI) |
62 apply (simp add: permute_eqvt[symmetric]) |
62 apply (simp add: eqvts alpha_gen fresh_star_def fresh_zero_perm) |
63 apply (subst eqvts[symmetric]) |
63 done |
64 apply (simp add: eqvts) |
64 |
65 done |
65 lemma alpha5_symp: |
|
66 "(a \<approx>5 b \<longrightarrow> a \<approx>5 b) \<and> |
|
67 (x \<approx>l y \<longrightarrow> y \<approx>l x) \<and> |
|
68 (alpha_rbv5 p x y \<longrightarrow> alpha_rbv5 (-p) y x)" |
|
69 apply (rule alpha_rtrm5_alpha_rlts_alpha_rbv5.induct) |
|
70 apply (simp_all add: alpha5_inj) |
|
71 sorry |
66 |
72 |
67 lemma alpha5_equivp: |
73 lemma alpha5_equivp: |
68 "equivp alpha_rtrm5" |
74 "equivp alpha_rtrm5" |
69 "equivp alpha_rlts" |
75 "equivp alpha_rlts" |
|
76 "equivp (alpha_rbv5 p)" |
70 sorry |
77 sorry |
71 |
78 |
72 quotient_type |
79 quotient_type |
73 trm5 = rtrm5 / alpha_rtrm5 |
80 trm5 = rtrm5 / alpha_rtrm5 |
74 and |
81 and |