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