src/HOL/Nominal/nominal_inductive.ML
changeset 27847 0dffedf9aff5
parent 27722 d657036e26c5
child 29265 5b4247055bd7
equal deleted inserted replaced
27846:2828a276dc93 27847:0dffedf9aff5
   386                      map (fold (NominalPackage.mk_perm []) pis') (tl ts))))
   386                      map (fold (NominalPackage.mk_perm []) pis') (tl ts))))
   387                    (fn _ => EVERY ([simp_tac eqvt_ss 1, rtac ihyp' 1,
   387                    (fn _ => EVERY ([simp_tac eqvt_ss 1, rtac ihyp' 1,
   388                      REPEAT_DETERM_N (nprems_of ihyp - length gprems)
   388                      REPEAT_DETERM_N (nprems_of ihyp - length gprems)
   389                        (simp_tac swap_simps_ss 1),
   389                        (simp_tac swap_simps_ss 1),
   390                      REPEAT_DETERM_N (length gprems)
   390                      REPEAT_DETERM_N (length gprems)
   391                        (simp_tac (HOL_ss
   391                        (simp_tac (HOL_basic_ss
   392                           addsimps inductive_forall_def' :: gprems2
   392                           addsimps [inductive_forall_def']
   393                           addsimprocs [NominalPackage.perm_simproc]) 1)]));
   393                           addsimprocs [NominalPackage.perm_simproc]) 1 THEN
       
   394                         resolve_tac gprems2 1)]));
   394                  val final = Goal.prove ctxt'' [] [] (term_of concl)
   395                  val final = Goal.prove ctxt'' [] [] (term_of concl)
   395                    (fn _ => cut_facts_tac [th] 1 THEN full_simp_tac (HOL_ss
   396                    (fn _ => cut_facts_tac [th] 1 THEN full_simp_tac (HOL_ss
   396                      addsimps vc_compat_ths'' @ freshs2' @
   397                      addsimps vc_compat_ths'' @ freshs2' @
   397                        perm_fresh_fresh @ fresh_atm) 1);
   398                        perm_fresh_fresh @ fresh_atm) 1);
   398                  val final' = ProofContext.export ctxt'' ctxt' [final];
   399                  val final' = ProofContext.export ctxt'' ctxt' [final];