src/HOL/Nominal/nominal_package.ML
changeset 27228 4f7976a6ffc3
parent 27153 56b6cdce22f1
child 27275 f54aa7c4ff32
equal deleted inserted replaced
27227:184d7601c062 27228:4f7976a6ffc3
   152       end
   152       end
   153   | perm_simproc' thy ss _ = NONE;
   153   | perm_simproc' thy ss _ = NONE;
   154 
   154 
   155 val perm_simproc =
   155 val perm_simproc =
   156   Simplifier.simproc (the_context ()) "perm_simp" ["pi1 \<bullet> (pi2 \<bullet> x)"] perm_simproc';
   156   Simplifier.simproc (the_context ()) "perm_simp" ["pi1 \<bullet> (pi2 \<bullet> x)"] perm_simproc';
   157 
       
   158 val allE_Nil = Drule.read_instantiate_sg (the_context()) [("x", "[]")] allE;
       
   159 
   157 
   160 val meta_spec = thm "meta_spec";
   158 val meta_spec = thm "meta_spec";
   161 
   159 
   162 fun projections rule =
   160 fun projections rule =
   163   ProjectRule.projections (ProofContext.init (Thm.theory_of_thm rule)) rule
   161   ProjectRule.projections (ProofContext.init (Thm.theory_of_thm rule)) rule
  1347                        resolve_tac final 1
  1345                        resolve_tac final 1
  1348                      end) context1 1) (constrs ~~ constrs')) (descr'' ~~ ndescr)))
  1346                      end) context1 1) (constrs ~~ constrs')) (descr'' ~~ ndescr)))
  1349       in
  1347       in
  1350         EVERY
  1348         EVERY
  1351           [cut_facts_tac [th] 1,
  1349           [cut_facts_tac [th] 1,
  1352            REPEAT (eresolve_tac [conjE, allE_Nil] 1),
  1350            REPEAT (eresolve_tac [conjE, @{thm allE_Nil}] 1),
  1353            REPEAT (etac allE 1),
  1351            REPEAT (etac allE 1),
  1354            REPEAT (TRY (rtac conjI 1) THEN asm_full_simp_tac ind_ss5 1)]
  1352            REPEAT (TRY (rtac conjI 1) THEN asm_full_simp_tac ind_ss5 1)]
  1355       end);
  1353       end);
  1356 
  1354 
  1357     val induct_aux' = Thm.instantiate ([],
  1355     val induct_aux' = Thm.instantiate ([],