don't generate unsound proof error for missing proofs
authorblanchet
Wed, 08 Jun 2011 16:20:18 +0200
changeset 43291 9f33b4ec866c
parent 43290 07eb0ad9bb93
child 43292 ff3d49e77359
don't generate unsound proof error for missing proofs
src/HOL/Tools/ATP/atp_reconstruct.ML
--- a/src/HOL/Tools/ATP/atp_reconstruct.ML	Wed Jun 08 16:20:18 2011 +0200
+++ b/src/HOL/Tools/ATP/atp_reconstruct.ML	Wed Jun 08 16:20:18 2011 +0200
@@ -228,22 +228,23 @@
   if null atp_proof then Vector.foldl (op @) [] fact_names
   else fold (add_fact ctxt type_sys facts_offset fact_names) atp_proof []
 
-fun is_conjecture_referred_to_in_proof conjecture_shape =
+fun is_conjecture_used_in_proof conjecture_shape =
   exists (fn Inference (name, _, []) => is_conjecture conjecture_shape name
            | _ => false)
 
-fun used_facts_in_unsound_atp_proof ctxt type_sys conjecture_shape facts_offset
+fun used_facts_in_unsound_atp_proof _ _ _ _ _ [] = NONE
+  | used_facts_in_unsound_atp_proof ctxt type_sys conjecture_shape facts_offset
                                     fact_names atp_proof =
-  let
-    val used_facts =
-      used_facts_in_atp_proof ctxt type_sys facts_offset fact_names atp_proof
-  in
-    if forall (is_locality_global o snd) used_facts andalso
-       not (is_conjecture_referred_to_in_proof conjecture_shape atp_proof) then
-      SOME (map fst used_facts)
-    else
-      NONE
-  end
+    let
+      val used_facts =
+        used_facts_in_atp_proof ctxt type_sys facts_offset fact_names atp_proof
+    in
+      if forall (is_locality_global o snd) used_facts andalso
+         not (is_conjecture_used_in_proof conjecture_shape atp_proof) then
+        SOME (map fst used_facts)
+      else
+        NONE
+    end
 
 fun uses_typed_helpers typed_helpers =
   exists (fn Inference (name, _, []) => is_typed_helper typed_helpers name