tuned interface
authortraytel
Thu, 31 Mar 2016 08:38:50 +0200
changeset 62777 596baa1a3251
parent 62776 42a997773bb0
child 62778 f0e8ed202ce5
child 62781 7ba8b944d093
tuned interface
src/HOL/BNF_Composition.thy
src/HOL/Tools/BNF/bnf_lift.ML
--- a/src/HOL/BNF_Composition.thy	Wed Mar 30 23:47:12 2016 +0200
+++ b/src/HOL/BNF_Composition.thy	Thu Mar 31 08:38:50 2016 +0200
@@ -81,9 +81,6 @@
 lemma Collect_inj: "Collect P = Collect Q \<Longrightarrow> P = Q"
   by blast
 
-lemma Ball_Collect: "Ball A P = (A \<subseteq> (Collect P))"
-by auto
-
 lemma Grp_fst_snd: "(Grp (Collect (case_prod R)) fst)^--1 OO Grp (Collect (case_prod R)) snd = R"
   unfolding Grp_def fun_eq_iff relcompp.simps by auto
 
--- a/src/HOL/Tools/BNF/bnf_lift.ML	Wed Mar 30 23:47:12 2016 +0200
+++ b/src/HOL/Tools/BNF/bnf_lift.ML	Thu Mar 31 08:38:50 2016 +0200
@@ -20,8 +20,8 @@
       string) * (Facts.ref * Token.src list) option) * (binding * binding * binding) ->
       local_theory -> local_theory
   val lift_bnf:
-    (((lift_bnf_option list * (binding option * (string * sort option)) list) *
-      string) * thm option) * (binding * binding * binding) ->
+    ((((lift_bnf_option list * (binding option * (string * sort option)) list) *
+      string) * term list option) * thm option) * (binding * binding * binding) ->
       ({context: Proof.context, prems: thm list} -> tactic) list ->
       local_theory -> local_theory
   val lift_bnf_cmd:
@@ -378,7 +378,7 @@
   (fn (goals, after_qed, _, lthy) =>
     lthy
     |> after_qed (map2 (single oo Goal.prove lthy [] []) goals (tacs (length goals)))) oo
-  prepare_common prepare_name prepare_typ prepare_sort prepare_thm o apfst (apfst (rpair NONE));
+  prepare_common prepare_name prepare_typ prepare_sort prepare_thm;
 
 in
 
@@ -387,14 +387,17 @@
     (fst o dest_Type oo Proof_Context.read_type_name {proper = true, strict = false})
     Syntax.read_sort Syntax.read_term (singleton o Attrib.eval_thms);
 
-fun lift_bnf args tacs = prepare_solve (K I) (K I) (K I) (K I) (K tacs) args;
+fun lift_bnf args tacs =
+  prepare_solve (K I) (K I) (K I) (K I) (K tacs) args;
 
 val copy_bnf =
-  prepare_solve (K I) (K I) (K I) (K I)
+  apfst (apfst (rpair NONE))
+  #> prepare_solve (K I) (K I) (K I) (K I)
     (fn n => replicate n (fn {context = ctxt, prems = _} => rtac ctxt UNIV_I 1));
 
 val copy_bnf_cmd =
-  prepare_solve
+  apfst (apfst (rpair NONE))
+  #> prepare_solve
     (fst o dest_Type oo Proof_Context.read_type_name {proper = true, strict = false})
     Syntax.read_sort Syntax.read_term (singleton o Attrib.eval_thms)
     (fn n => replicate n (fn {context = ctxt, prems = _} => rtac ctxt UNIV_I 1));