src/HOL/Nominal/Nominal.thy
changeset 18294 bbfd64cc91ab
parent 18268 734f23ad5d8f
child 18295 dd50de393330
equal deleted inserted replaced
18293:4eaa654c92f2 18294:bbfd64cc91ab
   237   fixes a :: "'x"
   237   fixes a :: "'x"
   238   and   x :: "'a"
   238   and   x :: "'a"
   239   shows "a\<sharp>(Some x) = a\<sharp>x"
   239   shows "a\<sharp>(Some x) = a\<sharp>x"
   240   apply(simp add: fresh_def supp_some)
   240   apply(simp add: fresh_def supp_some)
   241   done
   241   done
       
   242 
       
   243 
       
   244 text {* Normalization of freshness results; cf.\ @{text nominal_induct} *}
       
   245 
       
   246 lemma fresh_unit_elim: "(a\<sharp>() \<Longrightarrow> PROP C) == PROP C"
       
   247   by (simp add: fresh_def supp_unit)
       
   248 
       
   249 lemma fresh_prod_elim: "(a\<sharp>(x,y) \<Longrightarrow> PROP C) == (a\<sharp>x \<Longrightarrow> a\<sharp>y \<Longrightarrow> PROP C)"
       
   250   by rule (simp_all add: fresh_prod)
   242 
   251 
   243 
   252 
   244 section {* Abstract Properties for Permutations and  Atoms *}
   253 section {* Abstract Properties for Permutations and  Atoms *}
   245 (*=========================================================*)
   254 (*=========================================================*)
   246 
   255 
  2579 use "nominal_package.ML"
  2588 use "nominal_package.ML"
  2580 setup "NominalAtoms.setup"
  2589 setup "NominalAtoms.setup"
  2581 
  2590 
  2582 (*****************************************)
  2591 (*****************************************)
  2583 (* setup for induction principles method *)
  2592 (* setup for induction principles method *)
       
  2593 
  2584 use "nominal_induct.ML";
  2594 use "nominal_induct.ML";
  2585 method_setup nominal_induct =
  2595 method_setup nominal_induct =
  2586   {* nominal_induct_method *}
  2596   {* NominalInduct.nominal_induct_method *}
  2587   {* nominal induction *}
  2597   {* nominal induction *}
  2588 
  2598 
  2589 (*******************************)
  2599 (*******************************)
  2590 (* permutation equality tactic *)
  2600 (* permutation equality tactic *)
  2591 use "nominal_permeq.ML";
  2601 use "nominal_permeq.ML";
  2605 method_setup supports_simp_debug =
  2615 method_setup supports_simp_debug =
  2606   {* supports_meth_debug *}
  2616   {* supports_meth_debug *}
  2607   {* tactic for deciding equalities involving permutations including debuging facilities *}
  2617   {* tactic for deciding equalities involving permutations including debuging facilities *}
  2608 
  2618 
  2609 end
  2619 end
  2610 
       
  2611