Nominal-General/Nominal2_Eqvt.thy
changeset 1840 b435ee87d9c8
parent 1835 636de31888a6
child 1866 6d4e4bf9bce6
equal deleted inserted replaced
1839:9a8decba77c5 1840:b435ee87d9c8
     7 *)
     7 *)
     8 theory Nominal2_Eqvt
     8 theory Nominal2_Eqvt
     9 imports Nominal2_Base Nominal2_Atoms
     9 imports Nominal2_Base Nominal2_Atoms
    10 uses ("nominal_thmdecls.ML")
    10 uses ("nominal_thmdecls.ML")
    11      ("nominal_permeq.ML")
    11      ("nominal_permeq.ML")
       
    12      ("nominal_eqvt.ML")
    12 begin
    13 begin
    13 
    14 
    14 
    15 
    15 section {* Logical Operators *}
    16 section {* Logical Operators *}
    16 
    17 
   282 
   283 
   283 lemma eqvt_bound:
   284 lemma eqvt_bound:
   284   shows "p \<bullet> unpermute p x \<equiv> x"
   285   shows "p \<bullet> unpermute p x \<equiv> x"
   285   unfolding unpermute_def by simp
   286   unfolding unpermute_def by simp
   286 
   287 
       
   288 (* provides perm_simp methods *)
   287 use "nominal_permeq.ML"
   289 use "nominal_permeq.ML"
   288 setup Nominal_Permeq.setup
   290 setup Nominal_Permeq.setup
   289 
   291 
   290 method_setup perm_simp =
   292 method_setup perm_simp =
   291  {* Attrib.thms >> 
   293  {* Attrib.thms >> 
   369 lemma "p \<bullet> (THE x. P x) = foo"
   371 lemma "p \<bullet> (THE x. P x) = foo"
   370 apply(perm_simp)
   372 apply(perm_simp)
   371 (* apply(perm_strict_simp) *)
   373 (* apply(perm_strict_simp) *)
   372 oops
   374 oops
   373 
   375 
       
   376 (* automatic equivariance procedure for 
       
   377    inductive definitions *)
       
   378 use "nominal_eqvt.ML"
       
   379 
   374 end
   380 end