src/HOL/Tools/metis_tools.ML
changeset 33039 5018f6a76b3f
parent 33035 15eab423e573
parent 33038 8f9594c31de4
child 33042 ddf1f03a9ad9
equal deleted inserted replaced
33036:c61fe520602b 33039:5018f6a76b3f
   629       (*transform isabelle clause to metis clause *)
   629       (*transform isabelle clause to metis clause *)
   630       fun add_thm is_conjecture (ith, {axioms, tfrees}) : logic_map =
   630       fun add_thm is_conjecture (ith, {axioms, tfrees}) : logic_map =
   631         let val (mth, tfree_lits) = hol_thm_to_fol is_conjecture ctxt mode ith
   631         let val (mth, tfree_lits) = hol_thm_to_fol is_conjecture ctxt mode ith
   632         in
   632         in
   633            {axioms = (mth, Meson.make_meta_clause ith) :: axioms,
   633            {axioms = (mth, Meson.make_meta_clause ith) :: axioms,
   634             tfrees = tfree_lits union tfrees}
   634             tfrees = union (op =) (tfree_lits, tfrees)}
   635         end;
   635         end;
   636       val lmap0 = List.foldl (add_thm true)
   636       val lmap0 = List.foldl (add_thm true)
   637                         {axioms = [], tfrees = init_tfrees ctxt} cls
   637                         {axioms = [], tfrees = init_tfrees ctxt} cls
   638       val lmap = List.foldl (add_thm false) (add_tfrees lmap0) ths
   638       val lmap = List.foldl (add_thm false) (add_tfrees lmap0) ths
   639       val clause_lists = map (Metis.Thm.clause o #1) (#axioms lmap)
   639       val clause_lists = map (Metis.Thm.clause o #1) (#axioms lmap)