src/HOL/ATP.thy
 changeset 43085 0a2f5b86bdd7 parent 40178 00152d17855b child 43108 eb1e31eb7449
```     1.1 --- a/src/HOL/ATP.thy	Tue May 31 11:21:47 2011 +0200
1.2 +++ b/src/HOL/ATP.thy	Tue May 31 16:38:36 2011 +0200
1.3 @@ -6,12 +6,44 @@
1.4  header {* Automatic Theorem Provers (ATPs) *}
1.5
1.6  theory ATP
1.7 -imports Plain
1.8 -uses "Tools/ATP/atp_problem.ML"
1.9 +imports Meson
1.10 +uses "Tools/ATP/atp_util.ML"
1.11 +     "Tools/ATP/atp_problem.ML"
1.12       "Tools/ATP/atp_proof.ML"
1.13       "Tools/ATP/atp_systems.ML"
1.14 +     ("Tools/ATP/atp_translate.ML")
1.15 +     ("Tools/ATP/atp_reconstruct.ML")
1.16  begin
1.17
1.18 +subsection {* Higher-order reasoning helpers *}
1.19 +
1.20 +definition fFalse :: bool where [no_atp]:
1.21 +"fFalse \<longleftrightarrow> False"
1.22 +
1.23 +definition fTrue :: bool where [no_atp]:
1.24 +"fTrue \<longleftrightarrow> True"
1.25 +
1.26 +definition fNot :: "bool \<Rightarrow> bool" where [no_atp]:
1.27 +"fNot P \<longleftrightarrow> \<not> P"
1.28 +
1.29 +definition fconj :: "bool \<Rightarrow> bool \<Rightarrow> bool" where [no_atp]:
1.30 +"fconj P Q \<longleftrightarrow> P \<and> Q"
1.31 +
1.32 +definition fdisj :: "bool \<Rightarrow> bool \<Rightarrow> bool" where [no_atp]:
1.33 +"fdisj P Q \<longleftrightarrow> P \<or> Q"
1.34 +
1.35 +definition fimplies :: "bool \<Rightarrow> bool \<Rightarrow> bool" where [no_atp]:
1.36 +"fimplies P Q \<longleftrightarrow> (P \<longrightarrow> Q)"
1.37 +
1.38 +definition fequal :: "'a \<Rightarrow> 'a \<Rightarrow> bool" where [no_atp]:
1.39 +"fequal x y \<longleftrightarrow> (x = y)"
1.40 +
1.41 +
1.42 +subsection {* Setup *}
1.43 +
1.44 +use "Tools/ATP/atp_translate.ML"
1.45 +use "Tools/ATP/atp_reconstruct.ML"
1.46 +
1.47  setup ATP_Systems.setup
1.48
1.49  end
```