src/HOL/Tools/Metis/metis_generate.ML
changeset 73932 fd21b4a93043
parent 69593 3dda49e08b9d
child 74347 f984d30cd0c3
equal deleted inserted replaced
73866:66bff50bc5f1 73932:fd21b4a93043
   169       else if String.isPrefix conjecture_prefix ident then
   169       else if String.isPrefix conjecture_prefix ident then
   170         NONE
   170         NONE
   171       else if String.isPrefix helper_prefix ident then
   171       else if String.isPrefix helper_prefix ident then
   172         (case (String.isSuffix typed_helper_suffix ident, space_explode "_" ident) of
   172         (case (String.isSuffix typed_helper_suffix ident, space_explode "_" ident) of
   173           (needs_fairly_sound, _ :: const :: j :: _) =>
   173           (needs_fairly_sound, _ :: const :: j :: _) =>
   174           nth (AList.lookup (op =) helper_table (const, needs_fairly_sound) |> the)
   174           nth (AList.lookup (op =) (helper_table true) (const, needs_fairly_sound) |> the)
   175             (the (Int.fromString j) - 1)
   175             (the (Int.fromString j) - 1)
   176           |> snd |> prepare_helper ctxt
   176           |> snd |> prepare_helper ctxt
   177           |> Isa_Raw |> some
   177           |> Isa_Raw |> some
   178         | _ => raise Fail ("malformed helper identifier " ^ quote ident))
   178         | _ => raise Fail ("malformed helper identifier " ^ quote ident))
   179       else
   179       else
   215         (0 upto length fact_clauses - 1) fact_clauses
   215         (0 upto length fact_clauses - 1) fact_clauses
   216     val (old_skolems, props) =
   216     val (old_skolems, props) =
   217       fold_rev (fn (name, th) => fn (old_skolems, props) =>
   217       fold_rev (fn (name, th) => fn (old_skolems, props) =>
   218            th |> Thm.prop_of |> Logic.strip_imp_concl
   218            th |> Thm.prop_of |> Logic.strip_imp_concl
   219               |> conceal_old_skolem_terms (length clauses) old_skolems
   219               |> conceal_old_skolem_terms (length clauses) old_skolems
   220               ||> (lam_trans = liftingN orelse lam_trans = lam_liftingN) ? eliminate_lam_wrappers
   220               ||> lam_trans = liftingN ? eliminate_lam_wrappers
   221               ||> (fn prop => (name, prop) :: props))
   221               ||> (fn prop => (name, prop) :: props))
   222          clauses ([], [])
   222          clauses ([], [])
   223     (*
   223     (*
   224     val _ =
   224     val _ =
   225       tracing ("PROPS:\n" ^
   225       tracing ("PROPS:\n" ^