# HG changeset patch # User blanchet # Date 1304267844 -7200 # Node ID 2570e1a5ddfbbdab2d7028dc7cbf21308f3ebb8e # Parent f83036b85a3aec5ebab51d43ad17ae5610d45d76 more higher-order tests for Sledgehammer/ATP diff -r f83036b85a3a -r 2570e1a5ddfb 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 "\ 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 \ 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 \ 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 \ P False \ 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 (\ a) \ \ 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) \ 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 (\ (id (\ a))) \ 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 \ b) \ 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 \ b) \ 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 \ id b \ id (a \ 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 \ id (a \ 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 \ id (a \ 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) \ id (\ b) \ id (\ (a \ 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) \ id (a \ 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 \ b) \ id (\ a \ 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