src/HOL/ex/sledgehammer_tactics.ML
changeset 47773 7292038cad2a
parent 47766 9f7cdd5fff7c
equal deleted inserted replaced
47772:993a44ef9928 47773:7292038cad2a
    20 structure Sledgehammer_Tactics : SLEDGEHAMMER_TACTICS =
    20 structure Sledgehammer_Tactics : SLEDGEHAMMER_TACTICS =
    21 struct
    21 struct
    22 
    22 
    23 open Sledgehammer_Filter
    23 open Sledgehammer_Filter
    24 
    24 
    25 fun run_atp override_params relevance_override i n ctxt goal =
    25 fun run_prover override_params relevance_override i n ctxt goal =
    26   let
    26   let
    27     val chained_ths = [] (* a tactic has no chained ths *)
    27     val chained_ths = [] (* a tactic has no chained ths *)
    28     val params as {provers, relevance_thresholds, max_relevant, slice, ...} =
    28     val params as {provers, relevance_thresholds, max_relevant, slice, ...} =
    29       Sledgehammer_Isar.default_params ctxt override_params
    29       Sledgehammer_Isar.default_params ctxt override_params
    30     val name = hd provers
    30     val name = hd provers
    71   let
    71   let
    72     val override_params =
    72     val override_params =
    73       override_params @
    73       override_params @
    74       [("preplay_timeout", "0")]
    74       [("preplay_timeout", "0")]
    75   in
    75   in
    76     case run_atp override_params relevance_override i i ctxt th of
    76     case run_prover override_params relevance_override i i ctxt th of
    77       SOME facts =>
    77       SOME facts =>
    78       Metis_Tactic.metis_tac [] ATP_Problem_Generate.combs_or_liftingN ctxt
    78       Metis_Tactic.metis_tac [] ATP_Problem_Generate.combs_or_liftingN ctxt
    79           (maps (thms_of_name ctxt) facts) i th
    79           (maps (thms_of_name ctxt) facts) i th
    80     | NONE => Seq.empty
    80     | NONE => Seq.empty
    81   end
    81   end
    85     val thy = Proof_Context.theory_of ctxt
    85     val thy = Proof_Context.theory_of ctxt
    86     val override_params =
    86     val override_params =
    87       override_params @
    87       override_params @
    88       [("preplay_timeout", "0"),
    88       [("preplay_timeout", "0"),
    89        ("minimize", "false")]
    89        ("minimize", "false")]
    90     val xs = run_atp override_params relevance_override i i ctxt th
    90     val xs = run_prover override_params relevance_override i i ctxt th
    91   in if is_some xs then Skip_Proof.cheat_tac thy th else Seq.empty end
    91   in if is_some xs then Skip_Proof.cheat_tac thy th else Seq.empty end
    92 
    92 
    93 end;
    93 end;