diff -r 0be098c61d00 -r 4bc9278a808d Nominal/Test.thy --- a/Nominal/Test.thy Wed Mar 03 10:39:43 2010 +0100 +++ b/Nominal/Test.thy Wed Mar 03 11:42:15 2010 +0100 @@ -17,6 +17,41 @@ the first two terms are created? Should be ommitted. Also something wrong with the permutations. *) +lemma "alpha_weird_raw a b \ alpha_weird_raw (p \ a) (p \ b)" +apply (erule alpha_weird_raw.induct) +defer +apply (simp add: alpha_weird_raw.intros) +apply (simp add: alpha_weird_raw.intros) +apply (simp only: permute_weird_raw.simps) +apply (rule alpha_weird_raw.intros) +apply (erule exi[of _ _ "p"]) +apply (erule exi[of _ _ "p"]) +apply (erule exi[of _ _ "p"]) +apply (erule exi[of _ _ "p"]) +apply (erule conjE)+ +apply (rule conjI) +apply (erule alpha_gen_compose_eqvt[of _ _ _ _ "p"]) +apply (simp add: eqvts) +apply (simp add: eqvts) +apply (rule conjI) +defer +apply (erule alpha_gen_compose_eqvt[of _ _ _ _ "p"]) +apply (simp add: eqvts) +apply (simp add: eqvts) +apply (rule conjI) +defer +apply (simp add: supp_eqvt[symmetric] inter_eqvt[symmetric] empty_eqvt) +apply(simp add: alpha_gen.simps) +apply(erule conjE)+ + apply(rule conjI) + apply(rule_tac ?p1="- p" in permute_eq_iff[THEN iffD1]) +apply (simp add: eqvts) + apply(rule conjI) + apply(rule_tac ?p1="- p" in fresh_star_permute_iff[THEN iffD1]) +apply (simp add: eqvts add_perm_eqvt) +apply (simp add: permute_eqvt[symmetric]) +done + primrec fv_weird where @@ -209,14 +244,15 @@ (* example 4 from Terms.thy *) -(* fv_eqvt does not work, we need to repaire defined permute functions... -nominal_datatype trm4 = +(* fv_eqvt does not work, we need to repaire defined permute functions + defined fv and defined alpha... *) +(*nominal_datatype trm4 = Vr4 "name" | Ap4 "trm4" "trm4 list" | Lm4 x::"name" t::"trm4" bind x in t thm alpha_trm4_raw_alpha_trm4_raw_list.intros[no_vars] -thm fv_trm4_raw_fv_trm4_raw_list.simps[no_vars] +thm fv_trm4_raw_fv_trm4_raw_list.simps[no_vars]*) (* example 5 from Terms.thy *)