Nominal/Parser.thy
changeset 1525 bf321f16d025
parent 1515 76fa21f27f22
child 1540 0d845717f181
equal deleted inserted replaced
1518:212629c90971 1525:bf321f16d025
   408   val lthy19 = note_simp_suffix "distinct" q_dis lthy18;
   408   val lthy19 = note_simp_suffix "distinct" q_dis lthy18;
   409   val q_eqvt = map (lift_thm lthy19) raw_fv_bv_eqvt;
   409   val q_eqvt = map (lift_thm lthy19) raw_fv_bv_eqvt;
   410   val (_, lthy20) = Local_Theory.note ((Binding.empty,
   410   val (_, lthy20) = Local_Theory.note ((Binding.empty,
   411     [Attrib.internal (fn _ => Nominal_ThmDecls.eqvt_add)]), q_eqvt) lthy19;
   411     [Attrib.internal (fn _ => Nominal_ThmDecls.eqvt_add)]), q_eqvt) lthy19;
   412   val _ = tracing "Finite Support";
   412   val _ = tracing "Finite Support";
   413   val supports = map (prove_supports lthy20 q_perm) consts
   413   val supports = map (prove_supports lthy20 q_perm) consts handle _ => []
   414   val fin_supp = HOLogic.conj_elims (prove_fs lthy20 q_induct supports q_tys) handle _ => []
   414   val fin_supp = HOLogic.conj_elims (prove_fs lthy20 q_induct supports q_tys) handle _ => []
   415   val thy3 = Local_Theory.exit_global lthy20;
   415   val thy3 = Local_Theory.exit_global lthy20;
   416   val lthy21 = Theory_Target.instantiation (qty_full_names, [], @{sort fs}) thy3;
   416   val lthy21 = Theory_Target.instantiation (qty_full_names, [], @{sort fs}) thy3;
   417   fun tac _ = Class.intro_classes_tac [] THEN (ALLGOALS (resolve_tac fin_supp))
   417   fun tac _ = Class.intro_classes_tac [] THEN (ALLGOALS (resolve_tac fin_supp))
   418   val lthy22 = Class.prove_instantiation_instance tac lthy21 handle _ => lthy20
   418   val lthy22 = Class.prove_instantiation_instance tac lthy21 handle _ => lthy20