-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
283 lines (174 loc) · 7.52 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
NOTE: The CASC-24 ReadMe file is in DOC/Readme.
Short Installation Instructions for the impatient
-------------------------------------------------
This assumes that you have GNU tar, sh and gawk in your search path!
Simple installation (will install executables):
> tar -xzf E.tgz
> cd E
> ./configure --bindir=/path/to/EXECDIR
> make
> make install
> /path/to/EXECDIR/eprover -h | more
Simplest installation (in-place):
> tar -xzf E.tgz
> cd E
> ./configure
> make
> cd PROVER
> eprover -h | more
This will only allow you to run the eproof and eproof_ram scripts in
place. Most other programs, including eprover, are stand-alone
binaries and should run from everywhere. The eproof scripts are now
semi-obsolete, since E 1.8 can generate proof objects internally.
Read the rest of this file and the fine (if incomplete) manual if
anything fails. There should be a copy of the manual in
DOC/eprover.pdf.
The recommended command for running E on a "modern" TPTP-3 file is
eprover --auto --tptp3-in --proof-object problem.p
If you want to try the experimental (and usually stronger) strategy
scheduling mode, use
eprover --auto-schedule --tptp3-in --proof-object problem.p
You can add a time limit of 300 seconds with the option
--cpu-limit=300 and a memory limit of 2 GB with --memory-limit=2048
for all "automatic" modes. You can reduce output with -s (or
--silent).
The Equational Theorem Prover E
===============================
This is the README file for version 1.8 "Gopaldhara" of the E
equational theorem prover. This version of E is free software, see the
file COPYING for details about the license and the fact that THERE IS
NO WARRANTY!
Release 1.8 contains a number of significant improvements. In
particular, it now supports the internal generation of proof objects,
with little overhead in time and space. Search behaviour was improved
with changes to the automatic mode. Finally, the prover implements a
simple version of strategy-scheduling as an experimental feature.
What is E?
----------
E is an equational theorem prover. That means it is a program that you
can stuff a mathematical specification (in first-order logic with
equality) and a hypothesis into, and which will then run forever,
using up all of your machines resources. Very occasionally it will
find a proof for the hypothesis and tell you so ;-).
E has been created and is currently maintained by Stephan Schulz,
<[email protected]>. It is developed and distributed under the GNU
General Public License. However, you may possibly come around versions
sold or given to you under a different license, probably by Safelogic
A.B. in Gothenburg, Sweden. For some time, Safelogic paid for the
right to distribute (and relicense) closed-source versions of E with
proprietary modifications.
The E homepage can be found at http://www.eprover.org
Installation:
-------------
E can be installed anywhere in the file system, either by a normal
user or by the system administrator.
To install the package, unpack the distribution (if you are reading
this, you probably already did):
gunzip -c E.tgz|tar -xvf -
or
(g)tar -xzf E.tgz (if you have GNU tar)
This should create a directory named E. After unpacking, optionally
edit E/Makefile.vars to your liking. In particular, if building for
HPUX, comment out the suitable CFLAGS definition (for most systems,
the default definition should be ok). Then change to the E directory:
cd E
Determine if you want to run E from it's own build directory or wether
you want to install the executables in some other directory
EXECDIR. In the first case, run
./configure
otherwise
./configure --bindir=EXECDIR
or, if you also want to install the man-pages into MANDIR,
./configure --bindir=EXECDIR --man-prefix=MANDIR
Then type
make
to compile the library and all included programs under the E
directory. If you want to install E in a particular EXECDIR, type
make install
You must have write permission in the EXECDIR, so if you install E
outside your own home directory, you may need to become root or use
sudo.
Type
make documentation
to translate the rudimentary LaTeX documentation (this requires
LaTeX2e, pdflatex, and the packages theorem, amssymb and epsfig, which
are included in most current LaTeX distributions).
For some operating systems, especially if you do not have the GNU gcc
compiler installed, you may need to edit Makefile.vars manually to
select tools and options. If you have any problems, look into
E/DOC/PORTING.
If you get into trouble,
make rebuild
will rebuild E completely to your current configuration.
After installation, go to E/PROVER and type
./eprover BOO001-1+rm_eq_rstfp.lop
to see the prover in action. Type
./eprover LUSK6.lop
for a harder example. "./eprover -h" will give you some information and
a list of options.
For impatient people who do not want to read anything:
eprover --auto --memory-limit=<80%_of_your_main_memory> <problem-file>
should give a reasonable performance on a large class of problems
(unless your main memory is really small).
The new auto mode will perform a heuristic pruning of the axiom set
which may result in incompleteness for very large problems (many
thousands of axioms). If you need completeness, use
eprover --satauto --memory-limit=<80%_of_your_main_memory> <problem-file>
One of the features of E is the ability to produce semi-readable
proofs. To use this, type
eprover --proof-object <other-stuff>
By default, E will read LOP and write proof objects in PCL2. However,
for current usage, TPTP-3 syntax is usually preferred, and strongly
recommended. To use TPTP-3 syntax, use option --tptp3-in (for input
only) or --tptp3-format (for input and proof object output).
You can check the proof objects in PCL format for correctness using
the tool checkproof in the same directory. "checkproof -h" should give
you all necessary information. Note that checkproof cannot yet deal
with the full first order part, and will skip anything not
clausal. Also, support for independent provers in checkproof can be
subject to bit-rot, as other systems and interfaces change.
Directory overview:
-------------------
DOC:
- Documentation, including a very preliminary LaTeX manual for (at
the moment) parts of the library and the prover. You should be
looking there instead of reading this file ;-)
Also has the project NEWS file and some short notes on porting.
include:
- Symbolic links to all user-relevant header files
lib:
- Symbolic links to the individual library modules
BASICS:
INOUT:
TERMS:
ORDERINGS:
CLAUSES:
ANALYSIS:
LEARN:
HEURISTICS:
PCL2:
PROPOSITIONAL:
CONTROL:
- Sources and object files for the individual library modules
TEST:
- Test programs for development work
SIMPLE_APPS:
- Small application programs for demonstration purposes as well as
for solving simple tasks.
PROVER:
- The main program for the E prover, also contains some examples and
stuff, as well as all the major support programs for E.
SKELETONS:
- Skeleton files for source files, make files, comment boxes,...
EXAMPLE_PROBLEMS:
- Example problems taken from the TPTP 2.1.0 library.
EXTERNAL:
- Code that does not belong to the core prover but uses it or parts
of it. Not fully maintained by me, check the headers.
devopment_tools:
- Various tools for working with large scale experimental test runs,
mostly shell or awk scripts. Probably not useful for
non-developers, certainly not documented.
PYTHON:
- More complex tools for large scale experimental evaluation. See
previous comment.