Nominal/Abs.thy
changeset 1857 591cc76da570
parent 1845 b7423c6b5564
child 1911 60b5c61d3de2
equal deleted inserted replaced
1849:f075359f1fd5 1857:591cc76da570
   394   unfolding fresh_def
   394   unfolding fresh_def
   395   unfolding supp_abs
   395   unfolding supp_abs
   396   by auto
   396   by auto
   397 
   397 
   398 section {* BELOW is stuff that may or may not be needed *}
   398 section {* BELOW is stuff that may or may not be needed *}
       
   399 
       
   400 lemma 
       
   401   fixes t1 s1::"'a::fs"
       
   402   and   t2 s2::"'b::fs"
       
   403   shows "Abs as (t1, t2) = Abs as (s1, s2) \<longrightarrow> (Abs as t1 = Abs as s1 \<and>  Abs as t2 = Abs as s2)"
       
   404 apply(subst abs_eq_iff)
       
   405 apply(subst alphas_abs)
       
   406 apply(subst alphas)
       
   407 apply(rule impI)
       
   408 apply(erule exE)
       
   409 apply(simp add: supp_Pair)
       
   410 apply(simp add: Un_Diff)
       
   411 apply(simp add: fresh_star_union)
       
   412 apply(erule conjE)+
       
   413 apply(rule conjI)
       
   414 apply(rule trans)
       
   415 apply(rule sym)
       
   416 apply(rule_tac p="p" in supp_perm_eq)
       
   417 apply(simp add: supp_abs)
       
   418 apply(simp)
       
   419 apply(rule trans)
       
   420 apply(rule sym)
       
   421 apply(rule_tac p="p" in supp_perm_eq)
       
   422 apply(simp add: supp_abs)
       
   423 apply(simp)
       
   424 done
       
   425 
       
   426 
       
   427 
       
   428 (* support of concrete atom sets *)
       
   429 
       
   430 lemma 
       
   431   fixes t1 s1::"'a::fs"
       
   432   and   t2 s2::"'b::fs"
       
   433   assumes asm: "finite as"
       
   434   shows "(Abs as t1 = Abs as s1 \<and>  Abs as t2 = Abs as s2) \<longrightarrow> Abs as (t1, t2) = Abs as (s1, s2)"
       
   435 apply(subst abs_eq_iff)
       
   436 apply(subst abs_eq_iff)
       
   437 apply(subst alphas_abs)
       
   438 apply(subst alphas_abs)
       
   439 apply(subst alphas)
       
   440 apply(subst alphas)
       
   441 apply(rule impI)
       
   442 apply(erule exE | erule conjE)+
       
   443 apply(simp add: abs_eq_iff)
       
   444 apply(simp add: alphas_abs)
       
   445 apply(simp add: alphas)
       
   446 apply(rule conjI)
       
   447 apply(simp add: supp_Pair Un_Diff)
       
   448 oops
       
   449 
       
   450 
   399 
   451 
   400 (* support of concrete atom sets *)
   452 (* support of concrete atom sets *)
   401 
   453 
   402 lemma supp_atom_image:
   454 lemma supp_atom_image:
   403   fixes as::"'a::at_base set"
   455   fixes as::"'a::at_base set"