Nominal-General/Nominal2_Eqvt.thy
changeset 1833 2050b5723c04
parent 1827 eef70e8fa9ee
child 1835 636de31888a6
equal deleted inserted replaced
1832:4650d428b1b5 1833:2050b5723c04
     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 
   285   unfolding unpermute_def by simp
   286   unfolding unpermute_def by simp
   286 
   287 
   287 use "nominal_permeq.ML"
   288 use "nominal_permeq.ML"
   288 setup Nominal_Permeq.setup
   289 setup Nominal_Permeq.setup
   289 
   290 
       
   291 use "nominal_eqvt.ML"
       
   292 
       
   293 
   290 method_setup perm_simp =
   294 method_setup perm_simp =
   291  {* Attrib.thms >> 
   295  {* Attrib.thms >> 
   292     (fn thms => fn ctxt => SIMPLE_METHOD (HEADGOAL (Nominal_Permeq.eqvt_tac ctxt thms ["The"]))) *}
   296     (fn thms => fn ctxt => SIMPLE_METHOD (HEADGOAL (Nominal_Permeq.eqvt_tac ctxt thms ["The"]))) *}
   293  {* pushes permutations inside *}
   297  {* pushes permutations inside *}
   294 
   298 
   369 lemma "p \<bullet> (THE x. P x) = foo"
   373 lemma "p \<bullet> (THE x. P x) = foo"
   370 apply(perm_simp)
   374 apply(perm_simp)
   371 (* apply(perm_strict_simp) *)
   375 (* apply(perm_strict_simp) *)
   372 oops
   376 oops
   373 
   377 
       
   378 
       
   379 
   374 end
   380 end