Automated merge with ssh://paulson@atbroy100.informatik.tu-muenchen.de//home/isabelle-repository/repos/isabelle
authorpaulson
Fri, 19 Dec 2008 11:49:08 +0000
changeset 29681 4374ca526b65
parent 29139 6e0b7b114072 (current diff)
parent 29680 a88b62dc3821 (diff)
child 29682 7bae3abff5d7
Automated merge with ssh://paulson@atbroy100.informatik.tu-muenchen.de//home/isabelle-repository/repos/isabelle
--- a/src/HOL/MetisExamples/Abstraction.thy	Thu Dec 18 09:30:36 2008 -0800
+++ b/src/HOL/MetisExamples/Abstraction.thy	Fri Dec 19 11:49:08 2008 +0000
@@ -62,9 +62,9 @@
 
 ML{*AtpWrapper.problem_name := "Abstraction__Sigma_Collect"*}
 lemma "(a,b) \<in> (SIGMA x: A. {y. x = f y}) ==> a \<in> A & a = f b"
-(*???metis cannot prove this
-by (metis CollectD SigmaD1 SigmaD2 UN_eq)
-Also, UN_eq is unnecessary*)
+(*???metis says this is satisfiable!
+by (metis CollectD SigmaD1 SigmaD2)
+*)
 by (meson CollectD SigmaD1 SigmaD2)
 
 
--- a/src/HOL/Tools/res_clause.ML	Thu Dec 18 09:30:36 2008 -0800
+++ b/src/HOL/Tools/res_clause.ML	Fri Dec 19 11:49:08 2008 +0000
@@ -279,6 +279,14 @@
 (*Given a list of sorted type variables, return a list of type literals.*)
 fun add_typs Ts = foldl (op union) [] (map sorts_on_typs Ts);
 
+(*The correct treatment of TFrees like 'a in lemmas (axiom clauses) is not clear.
+  * Ignoring them leads to unsound proofs, since we do nothing to ensure that 'a
+    in a lemma has the same sort as 'a in the conjecture.
+  * Deleting such clauses will lead to problems with locales in other use of local results
+    where 'a is fixed. Probably we should delete clauses unless the sorts agree.
+  * Currently we include a class constraint in the clause, exactly as with TVars.
+*)
+
 (** make axiom and conjecture clauses. **)
 
 fun get_tvar_strs [] = []