handle E's Skolem constants more gracefully
authorblanchet
Tue, 17 Aug 2010 14:37:16 +0200
changeset 387133abda3c76df9
parent 38712 1b460d6a9d58
child 38714 124193c26751
handle E's Skolem constants more gracefully
src/HOL/Tools/Sledgehammer/sledgehammer_fact_minimize.ML
src/HOL/Tools/Sledgehammer/sledgehammer_proof_reconstruct.ML
     1.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_fact_minimize.ML	Tue Aug 17 14:35:44 2010 +0200
     1.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_fact_minimize.ML	Tue Aug 17 14:37:16 2010 +0200
     1.3 @@ -85,8 +85,7 @@
     1.4  fun sublinear_minimize _ [] p = p
     1.5    | sublinear_minimize test (x :: xs) (seen, result) =
     1.6      case test (xs @ seen) of
     1.7 -      result as {outcome = NONE, proof, used_thm_names, ...}
     1.8 -      : prover_result =>
     1.9 +      result as {outcome = NONE, proof, used_thm_names, ...} : prover_result =>
    1.10        sublinear_minimize test (filter_used_facts used_thm_names xs)
    1.11                           (filter_used_facts used_thm_names seen, result)
    1.12      | _ => sublinear_minimize test xs (x :: seen, result)
     2.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_proof_reconstruct.ML	Tue Aug 17 14:35:44 2010 +0200
     2.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_proof_reconstruct.ML	Tue Aug 17 14:37:16 2010 +0200
     2.3 @@ -279,10 +279,10 @@
     2.4    | add_type_constraint (false, cl, TVar (ix, _)) = add_var (ix, cl)
     2.5    | add_type_constraint _ = I
     2.6  
     2.7 -fun fix_atp_variable_name s =
     2.8 +fun fix_atp_variable_name f s =
     2.9    let
    2.10      fun subscript_name s n = s ^ nat_subscript n
    2.11 -    val s = String.map Char.toLower s
    2.12 +    val s = String.map f s
    2.13    in
    2.14      case space_explode "_" s of
    2.15        [_] => (case take_suffix Char.isDigit (String.explode s) of
    2.16 @@ -349,9 +349,10 @@
    2.17                    SOME b => Var ((b, 0), T)
    2.18                  | NONE =>
    2.19                    if is_tptp_variable a then
    2.20 -                    Var ((fix_atp_variable_name a, 0), T)
    2.21 +                    Var ((fix_atp_variable_name Char.toLower a, 0), T)
    2.22                    else
    2.23 -                    raise Fail ("Unexpected constant: " ^ quote a)
    2.24 +                    (* Skolem constants? *)
    2.25 +                    Var ((fix_atp_variable_name Char.toUpper a, 0), T)
    2.26            in list_comb (t, ts) end
    2.27    in aux (SOME HOLogic.boolT) [] end
    2.28