equal
deleted
inserted
replaced
187 (verbose_warning ctxt |
187 (verbose_warning ctxt |
188 ("Falling back on " ^ |
188 ("Falling back on " ^ |
189 quote (method_call_for_type_enc fallback_type_syss) ^ "..."); |
189 quote (method_call_for_type_enc fallback_type_syss) ^ "..."); |
190 FOL_SOLVE fallback_type_syss ctxt cls ths0) |
190 FOL_SOLVE fallback_type_syss ctxt cls ths0) |
191 |
191 |
192 val neg_clausify = |
192 fun neg_clausify ctxt = |
193 single |
193 single |
194 #> Meson.make_clauses_unsorted |
194 #> Meson.make_clauses_unsorted ctxt |
195 #> map Meson_Clausify.introduce_combinators_in_theorem |
195 #> map Meson_Clausify.introduce_combinators_in_theorem |
196 #> Meson.finish_cnf |
196 #> Meson.finish_cnf |
197 |
197 |
198 fun preskolem_tac ctxt st0 = |
198 fun preskolem_tac ctxt st0 = |
199 (if exists (Meson.has_too_many_clauses ctxt) |
199 (if exists (Meson.has_too_many_clauses ctxt) |
215 in |
215 in |
216 if exists_type type_has_top_sort (prop_of st0) then |
216 if exists_type type_has_top_sort (prop_of st0) then |
217 verbose_warning ctxt "Proof state contains the universal sort {}" |
217 verbose_warning ctxt "Proof state contains the universal sort {}" |
218 else |
218 else |
219 (); |
219 (); |
220 Meson.MESON (preskolem_tac ctxt) (maps neg_clausify) tac ctxt i st0 |
220 Meson.MESON (preskolem_tac ctxt) (maps (neg_clausify ctxt)) tac ctxt i st0 |
221 end |
221 end |
222 |
222 |
223 fun metis_tac [] = generic_metis_tac partial_type_syss |
223 fun metis_tac [] = generic_metis_tac partial_type_syss |
224 | metis_tac type_syss = generic_metis_tac type_syss |
224 | metis_tac type_syss = generic_metis_tac type_syss |
225 |
225 |