src/HOL/Nominal/Examples/Support.thy
changeset 46181 49c3e0ef9d70
parent 41589 bbd861837ebc
child 62390 842917225d56
equal deleted inserted replaced
46180:72ee700e1d8f 46181:49c3e0ef9d70
    96     fix x::"atom"
    96     fix x::"atom"
    97     show "x\<in>(supp S)"
    97     show "x\<in>(supp S)"
    98     proof (cases "x\<in>S")
    98     proof (cases "x\<in>S")
    99       case True
    99       case True
   100       have "x\<in>S" by fact
   100       have "x\<in>S" by fact
   101       hence "\<forall>b\<in>(UNIV-S). [(x,b)]\<bullet>S\<noteq>S" by (auto simp add: perm_set_eq calc_atm)
   101       hence "\<forall>b\<in>(UNIV-S). [(x,b)]\<bullet>S\<noteq>S" by (auto simp add: perm_set_def calc_atm)
   102       with asm2 have "infinite {b\<in>(UNIV-S). [(x,b)]\<bullet>S\<noteq>S}" by (rule infinite_Collection)
   102       with asm2 have "infinite {b\<in>(UNIV-S). [(x,b)]\<bullet>S\<noteq>S}" by (rule infinite_Collection)
   103       hence "infinite {b. [(x,b)]\<bullet>S\<noteq>S}" by (rule_tac infinite_super, auto)
   103       hence "infinite {b. [(x,b)]\<bullet>S\<noteq>S}" by (rule_tac infinite_super, auto)
   104       then show "x\<in>(supp S)" by (simp add: supp_def)
   104       then show "x\<in>(supp S)" by (simp add: supp_def)
   105     next
   105     next
   106       case False
   106       case False
   107       have "x\<notin>S" by fact
   107       have "x\<notin>S" by fact
   108       hence "\<forall>b\<in>S. [(x,b)]\<bullet>S\<noteq>S" by (auto simp add: perm_set_eq calc_atm)
   108       hence "\<forall>b\<in>S. [(x,b)]\<bullet>S\<noteq>S" by (auto simp add: perm_set_def calc_atm)
   109       with asm1 have "infinite {b\<in>S. [(x,b)]\<bullet>S\<noteq>S}" by (rule infinite_Collection)
   109       with asm1 have "infinite {b\<in>S. [(x,b)]\<bullet>S\<noteq>S}" by (rule infinite_Collection)
   110       hence "infinite {b. [(x,b)]\<bullet>S\<noteq>S}" by (rule_tac infinite_super, auto)
   110       hence "infinite {b. [(x,b)]\<bullet>S\<noteq>S}" by (rule_tac infinite_super, auto)
   111       then show "x\<in>(supp S)" by (simp add: supp_def)
   111       then show "x\<in>(supp S)" by (simp add: supp_def)
   112     qed
   112     qed
   113   qed
   113   qed
   127 
   127 
   128 lemma UNIV_supp:
   128 lemma UNIV_supp:
   129   shows "supp (UNIV::atom set) = ({}::atom set)"
   129   shows "supp (UNIV::atom set) = ({}::atom set)"
   130 proof -
   130 proof -
   131   have "\<forall>(x::atom) (y::atom). [(x,y)]\<bullet>UNIV = (UNIV::atom set)"
   131   have "\<forall>(x::atom) (y::atom). [(x,y)]\<bullet>UNIV = (UNIV::atom set)"
   132     by (auto simp add: perm_set_eq calc_atm)
   132     by (auto simp add: perm_set_def calc_atm)
   133   then show "supp (UNIV::atom set) = ({}::atom set)" by (simp add: supp_def)
   133   then show "supp (UNIV::atom set) = ({}::atom set)" by (simp add: supp_def)
   134 qed
   134 qed
   135 
   135 
   136 text {* Putting everything together. *}
   136 text {* Putting everything together. *}
   137 theorem EVEN_ODD_freshness:
   137 theorem EVEN_ODD_freshness: