more higher-order tests for Sledgehammer/ATP
authorblanchet
Sun, 01 May 2011 18:37:24 +0200
changeset 42555 2570e1a5ddfb
parent 42554 f83036b85a3a
child 42556 f65e5f0341b8
more higher-order tests for Sledgehammer/ATP
src/HOL/Metis_Examples/HO_Reas.thy
--- a/src/HOL/Metis_Examples/HO_Reas.thy	Sun May 01 18:37:24 2011 +0200
+++ b/src/HOL/Metis_Examples/HO_Reas.thy	Sun May 01 18:37:24 2011 +0200
@@ -10,102 +10,182 @@
 
 declare [[metis_new_skolemizer]]
 
-sledgehammer_params [prover = e, blocking, isar_proof, timeout = 10]
+sledgehammer_params [prover = e, blocking, timeout = 10]
 
 lemma "id True"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "\<not> id False"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "x = id True \<or> x = id False"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id x = id True \<or> id x = id False"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "P True \<Longrightarrow> P False \<Longrightarrow> P x"
-sledgehammer [expect = none] ()
-sledgehammer [type_sys = tags, expect = some] ()
+sledgehammer [partial_types, type_sys = none, expect = none] ()
+sledgehammer [partial_types, type_sys = tags, expect = some] ()
+sledgehammer [partial_types, type_sys = args, expect = none] ()
+sledgehammer [partial_types, type_sys = mangled, expect = none] ()
+sledgehammer [full_types, type_sys = none, expect = some] ()
 sledgehammer [full_types, type_sys = tags, expect = some] ()
+sledgehammer [full_types, type_sys = args, expect = some] ()
+sledgehammer [full_types, type_sys = mangled, expect = some] ()
 by metisFT
 
 lemma "id (\<not> a) \<Longrightarrow> \<not> id a"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id (\<not> \<not> a) \<Longrightarrow> id a"
-sledgehammer [expect = some] ()
-sledgehammer [type_sys = tags, expect = some] ()
-sledgehammer [full_types, type_sys = tags, expect = some] ()
-by metis
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
+by (metis id_apply)
 
 lemma "id (\<not> (id (\<not> a))) \<Longrightarrow> id a"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id (a \<and> b) \<Longrightarrow> id a"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id (a \<and> b) \<Longrightarrow> id b"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id a \<Longrightarrow> id b \<Longrightarrow> id (a \<and> b)"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id a \<Longrightarrow> id (a \<or> b)"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id b \<Longrightarrow> id (a \<or> b)"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id (\<not> a) \<Longrightarrow> id (\<not> b) \<Longrightarrow> id (\<not> (a \<or> b))"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id (\<not> a) \<Longrightarrow> id (a \<longrightarrow> b)"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 lemma "id (a \<longrightarrow> b) \<longleftrightarrow> id (\<not> a \<or> b)"
-sledgehammer [expect = some] (id_apply)
-sledgehammer [type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = none, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [partial_types, type_sys = mangled, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = none, expect = some] (id_apply)
 sledgehammer [full_types, type_sys = tags, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = args, expect = some] (id_apply)
+sledgehammer [full_types, type_sys = mangled, expect = some] (id_apply)
 by (metis id_apply)
 
 end