src/HOL/Tools/SMT2/smtlib2_isar.ML
changeset 57730 d39815cdb7ba
parent 57714 4856a7b8b9c3
child 57743 0af2d5dfb0ac
equal deleted inserted replaced
57729:2df9ed24114f 57730:d39815cdb7ba
    10   val simplify_bool: term -> term
    10   val simplify_bool: term -> term
    11   val unlift_term: term list -> term -> term
    11   val unlift_term: term list -> term -> term
    12   val postprocess_step_conclusion: term -> theory -> thm list -> term list -> term
    12   val postprocess_step_conclusion: term -> theory -> thm list -> term list -> term
    13   val normalizing_prems : Proof.context -> term -> (string * string list) list
    13   val normalizing_prems : Proof.context -> term -> (string * string list) list
    14   val distinguish_conjecture_and_hypothesis : ''a list -> ''b -> ''b -> ''b list ->
    14   val distinguish_conjecture_and_hypothesis : ''a list -> ''b -> ''b -> ''b list ->
    15     (''a * 'c) list -> 'c list -> 'c -> 'c -> ATP_Problem.atp_formula_role * 'c
    15     (''a * 'c) list -> 'c list -> 'c -> 'c -> (ATP_Problem.atp_formula_role * 'c) option
    16   val unskolemize_names: term -> term
    16   val unskolemize_names: term -> term
    17 end;
    17 end;
    18 
    18 
    19 structure SMTLIB2_Isar: SMTLIB2_ISAR =
    19 structure SMTLIB2_Isar: SMTLIB2_ISAR =
    20 struct
    20 struct
    85       NONE)
    85       NONE)
    86 
    86 
    87 fun distinguish_conjecture_and_hypothesis ss id conjecture_id prem_ids fact_helper_ts hyp_ts concl_t
    87 fun distinguish_conjecture_and_hypothesis ss id conjecture_id prem_ids fact_helper_ts hyp_ts concl_t
    88     t =
    88     t =
    89   (case ss of
    89   (case ss of
    90     [s] => (Axiom, the (AList.lookup (op =) fact_helper_ts s))
    90     [s] => SOME (Axiom, the (AList.lookup (op =) fact_helper_ts s))
    91   | _ =>
    91   | _ =>
    92     if id = conjecture_id then
    92     if id = conjecture_id then
    93       (Conjecture, concl_t)
    93       SOME (Conjecture, concl_t)
    94     else
    94     else
    95       (Hypothesis,
    95      (case find_index (curry (op =) id) prem_ids of
    96        (case find_index (curry (op =) id) prem_ids of
    96        ~1 => NONE (* lambda-lifting definition *)
    97          ~1 => t
    97      | i => SOME (Hypothesis, nth hyp_ts i)))
    98        | i => nth hyp_ts i)))
       
    99 
    98 
   100 end;
    99 end;