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 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825
|
This history describes the major differences between versions of the E
equational theorem prover.
Version 3.1.0 -> 3.2.X Puttabong Moondrop
- Added support for $distinct
- Disabled -xAuto and cut out most of the relics of the old auto-mode
stuff
- Added option to select one of the built-in strategies
- Took out old clausifier
- Updated several options
- Debugged some higher-order problems
Version 3.0.03 -> 3.1.0
- Added disequality decomposition inference
- Fixed various bugs (e.g. in local rewriting)
- Added support for additional statistics
- Enabled printout of all built-in search strategies
Version 3.0 ->3.0.03 Shangri-La
- Fixed bug in activating clause selection heuristics
- Fixed several bugs in the higher-order module, mostly related to the
difference between shared and unshared terms. This will need further
work to catch all corner cases.
- Fixed several minor memory leaks and simplified management of parsed
strings with the clb_permastrings module.
Version 3.0 (pre-release) ->3.0 Shangri-La
- Fixed various bugs in the HO preprocessor
- Fixed various bugs in the HO reasoner
- Improved the multicore scheduler
Version 2.6 ->3.0 Shangri-La (pe-release)
- New option --fw-subsumption-aggressive.
- Fixed bug in negative unit subsumption.
- Added new DAG-based evaluation functions
- Fixed status for incomplete literal weight functions
- Added support for UTF-8 in Strings and single-quoted symbols.
- Added multicore scheduler and schedule generation
- Replaced auto-mode code by new symbolic auto-mode
- Various minor improvements
- Added support for full (monomorphic) higher-order reasoning (PV)
Version 2.5 -> 2.6 Floral Guranse
- Much improved algorithm for finding maximal literals in long clauses
- Much improved algorithm for identifying dual (conflicting) literals
in long clauses
- Added max literal limit for full equational tautology check (we
should now really replace that with a congruence closure based
approach!)
- Added DAGWeight() evaluation function (symbol-counts shared terms
only once, with different options for sharing regions (terms,
literals, clauses)
- Improved support for THF: E can now parse most of TH0 syntax
- (notable exceptions are symbols !!, ?? and @+), including lambdas.
Note that on the reasoning side, E still does not support any
advanced lambda reasoning, as lambdas are simply lifted and after
parsing E is not aware of them.
- Improved support for TFX: E now supports $let and $ite expressions.
Version 2.4 -> 2.5 Avongrove
- Clausal problems are now classified before equational definitions
expansion, which moves equational definition expansion under control
auf the automatic modes)
- Strong rewrite (optionally instantiating unbound variables of the
right hand side of equations considered for rewriting) has neem
fixed and updeted to the sorted case.
- An improvement in strategy scheduling will now aovid repetition of
the same strategy in cases where the data does not change from one
level to the next, allowing for meaningful deeper schedules.
- New automatic modes
- Added variants to symbol precedence schemes (prefer/defer
skolems/defined symbols/axiom-symbols/conjecture symbols).
Version 2.3 -> 2.4 Sandakphu
- Added random clause "evaluation"
- Added Diversity-based clause evaluation
- Added (simplified) transfinite orderings for literal comparision
- New automatic modes
- Support for CASC-27 LTB (with various alternative formalisations per
problem)
- Slightly finer classificarion of problems (for improved UEQ
performance)
Version 2.3pre -> 2.3 Gielle
- Made clausification more robust for extreme examples
Version 2.2 -> 2.3pre Gielle
- Merged support for lambda-free higher-order logic.
- Improved fingerprint indexing by excluding one more subcase for
finding instances
Version 2.1 -> 2.2 Thurbo Moonlight
- Prover now always builds internal proof object (--proof-object only
controls output)
- As a result, E can now detect ContradictoryAxioms if the proof state
is unsatisfiable even without the conjecture.
- Moved from eager to lazy orphan deletion. If you don't know what
this means: It's much cooler and simpler.
- Fixed and simplified processing of unprocessed clauses
- Refactored PicoSAT integration - PicoSAT is now linked into E
proper, and used via its API. We are back to a single binary
executable with no dependencies.
- Prover now enforces that fof, tff and tcf formulas are closed (no
free variables allowed)
- Fixed condensation (somewhat).
- New automatic modes (but with very few current test results)
Version 2.0 -> 2.1 Maharani Hills
- Added type output for CNFed TFFs
- Added tcf sublanguage for clause-form TFFs
- Combined consecutive applications of the same quantifier into a
single quantifier
- Improved stability and performance on TFF problems
- Changed internal workflow of unprocessed clauses so that they can be
batch-evaluated (e.g. by a Deep Neural Network).
- Added PicoSAT and the ability to use PicoSAT as a SAT terminator
- Added support for flexible-arity derivation operations
- Removed obsolete eproof-scripts. Use --proof-object to generate a
checkable proof.
Version 1.9.1 -> 2.0 Turzum
- Support for TFF (typed first-order form), thanks to Simon Cruanes
- Improved clausification (faster, with graceful degradation if
miniscoping becomes too expensive)
- Improved auto-modes
- Improved Set-of-Support simulation
- Parsing and pruning preprocessing FOF now, even for CNF input
- Input clauses/formulas keep their original name (if any)
- Added options --generated-limit and --tb-insert-limit to more
closely limit effort by the prover in a deterministic way.
Version 1.9 -> 1.9.1 Sungma
- Improved proof object output
- Added optional recording of selected given clauses in the proof
object
- New auto modes (including one bred heuristic)
- Fixed bug in formula simplification involving P=><=>$false
- Added given clause recording and training example generation
- Various cleanups and additional compile time warnings
- More detailed proof graphs
- Automatic determination of input format if no format is
specified. If input format is determined as TPTP-3, output format is
automatically set to TPTP-3/TSTP, too.
- Various fixes to watchlist code. Again. And again. If you use this
feature and have been using a pre-release, you want to upgrade!
Version 1.9pre016 -> 1.9 Sourenee
- Fixed Auto-SInE to never SInE if there is no seed to SInE on
- Added output of proof graphs in GraphViz/dot format (coloured, too!)
- Added derivation output for CNFization
- Fixed minor bug in proof output
Version 1.8 -> 1.9pre016
- Fixed bug that caused proof output to fail in rare cases when the
proof was found in preprocessing.
- Took out "theory(equality)" from TSTP-output, since FOL-EQ is now
assumed the default logic.
- Improved proof objects (taking out empty "quote" steps).
- Added plenty of new literal selection functions.
- Updated auto-modes
Version 1.7 -> 1.8 Gopaldhara
- Added support for internal proof objects (and option --proof-object)
- Added experimental support for strategy scheduling (--auto-schedule)
- Minor cleanup and improved auto-mode(s)
Version 1.6 -> 1.7 Jun Chiabari
- Added prototypical condensing
- Significantly improved auto-mode (note that AutoDev mode is, at the
moment, intentionally inferior to normal auto mode - use only if you
want to compare the effect of inferior ordering implementations!)
- Fixed non-critical (but annoying) bug in SOS strategies
- Updated eground to support FOF input (if it clausifies to EPR) and
to handle unexpected behaviour from MiniSAT
- Added interactive batch mode to e_ltb_runner (load large spec once,
then keep asking for the status of different theorems via
stdin/stdout)
- Added enormalize for normalization of terms, clauses and formulas
with an oriented rule set without regard for orderings.
- Various minor updates and bugfixes
Version 1.5 -> 1.6 Tiger Hill
- Incorporated minor improvements to the scripts suggested by Jasmin
Blanchette
- Added support for "Shell" PCL (a more compact form that only records
the dependency graph, but not the actual clauses for intermediate
results)
- Added SInE-axiom filtering and automatic mode for SInE.
- Much better heuristics and new auto mode(s)
- Even better AutoDev-Mode (use at your own risk ;-)
- More convenient command line interface:
"eprover --auto" will be good for most people.
- Updated manual
Version 1.4 -> 1.5 Pussimbing
- Fixed bug stopping miniscoping from ever being used
- Implemented non-perfect discrimination tree indexing (mostly for
comparison with FP indexing)
- Fixed indexed paramodulation (no more inefficient top-level overlaps
of non-equational literals)
- Added further instrumentation for profiling
- Implemented (prototypically) folded feature vector indexing and made
it the default
- Fixed Makefiles to cleanly work with more modern gcc versions
- Some more executables are now installed as part of the standard
installation.
- New auto mode
Version 1.3 -> 1.4 Namring
- Adapted e_ltb_runner for CASC-23
- Various minor fixes, in particular to proof and answer output
- New literal selection function
- New auto-modec
Version 1.2 -> 1.3 Ringtong
- Fixed redundant output resulting in broken proof extraction.
- Fixed sub-optimal CNFing (slow, not incorrect)
- Implemented e_axfilter as a stand-alone program for pre-processing
large problems, and adapted/extended the corresponging libraries.
- Added clause evaluation functions that allow the manipulation of the
weight based on the pre-sence and frequency of invidual function
symbols.
- Added answer instantiation output.
Version 1.1 -> 1.2 Badamtam
- Made stack limit increase fail gracefully (run with default)
- Fixed (most) problems with C stream output and signals. The core
prover should be clean now.
- Cleaned up variable handling and got rid of the ugly second term
bank for the given clause
- Implemented Bernd Loechner's linear time version of KBO (JAR
36(4):289-310, 2006).
- Fixed a serious bug with mixed CNF/FOF input (now it works,
previously it did not).
- Implemented fingerprint indexing for paramodulation/superposition
and backwards rewriting.
- Implemented e_ltb_runner for CASC-J5. Probably not generally useful,
but comes with extended SinE-like functionality that will be used in
the main prover eventually.
Version 1.0 -> 1.1 Balasun
- Added --help output to eproof
- Improved eproof script signal handling.
- Fixed automatic memory determination bug on large-memory Macs.
- Fixed a number of warnings with the latest gcc version.
- Updated proof objects to latest SZS ontology.
- Removed some C99-style comments that bothered ancient compilers
- Improves TPTP-3/TSTP output (fof sometimes used prefix equal, not
infix =).
- Fixed bug in the output of symbols with an embedded %.
- Added man pages for the major binaries
- Added various goal-directed heuristics
- Improved pre-processing (cut-off-limit for eq-def-expansion)
- Better auto-mode
- Optional pre-saturation simplificaton
Version 0.999-004->1.0 Temi
- Removed old style formulas and CNF algorithm.
- Fixed a number of bugs in backwards rewriting.
- Made parser more compliant to TPTP 3.5.0 (stricter checking of
formula roles)
- New GNU-like build and installation system
- Fixed one completeness bug in CNF, fixed two serious performance
bugs for very large formula CNFization.
- Removed dependency on bash (only POSIX Bourne Shell required, I
hope)
Version 0.999 -> 0.999-004
- Fixed string overflow bug sometimes corrupting auto mode
classification (Thanks to Josef Urban for finding it)
- Fixed illegal memory access in term formula building
(Thanks to Josef Urban for pointing it out).
- Updated TPTP-3 parser.
- Cleanup of eproof script (thanks to Larry Paulson for bugging me
over and over again).
Version 0.99 -> 0.999 Longview
- Finally got to eliminate the ugly duplicate term cells for terms
with rewrite restrictions. This lead to a rather simpler term bank
structure, too.
- Added better syntactic support for integers and floats.
- Removed old '--interprete-numbers' option and associated dead code.
- Fixed (hopefully) the learning module, which had suffered from bit
rot. It works now, although it ignores FOF axioms for similarity
measures. This does not affect the default heuristics.
- Made some minor changes to SZS output to make Geoff happy.
- Fixed some bugs in the eproof script to make Larry happy.
Version 0.91 -> 0.99 Singtom
- Introduced new and (maybe) better clause evaluation data type.
- Updated install scripts to handle OSes with UCB tail.
- Found (and fixed) mismatch between split handling and split
documentation (argh!).
- New splitting via (reusable) definitions introduced and tested.
- Spell-checked manual and (prover) help output.
- Better Auto-Mode
- Some cleanup.
Version 0.9 -> 0.91 Kanyam
- Alternative CNF translator with configurable renaming finally done
(still needs more testing) (use option --definitional-cnf)
- More goal-directed heuristics, and better evaluation of same
- Fixed classification bug in auto mode
- Result: Better auto-mode
- Added option --order-weights for user-defined KBO
- Fixed and updated a number of tools, all of which should now work
with full FOF format
- Fixed TSTP parser to conform to new parenthesizing/precedence
handling.
Version 0.82 -> 0.9 Soom
- Small improvement in unification
- Reworked parser
- Rebuild indexing data structures with IntMaps (should be much more
memory efficient for large signatures)
- Added preliminary support for distinct objects and numbers (only
ground case so far)
- Added support for stronger rewriting (instantiating unbound
variables in potential right hand sides)
- Implemented TPTP style includes for TPTP/TSTP syntax
- Made groundness a stored invariant in term banks (enables more
efficient inserting of gorund terms, also helps with literal
selection).
- Reworked the watchlist (needs more work).
- Reworked subsumption by ordering clauses (still need to look at the
effect this has on search).
- Got rid of ancient options restricting paramodulation (dating back
to METOP, and never used)
- Modified/rewrote some literal selection functions, taking the AHP
(Avoid Head Predicates) property into account (solves some of the
interference of the new literal order with heuristic search)
- Added simultaneous paramodulation (very useful)
- Added goal-directed heuristics.
- New auto-mode taking some of the new features into account.
- Cleaned up output (--tptp3-out will now also work for output levels
<=2 and for final clause sets).
- Removed old Auto071 mode (it did not work well with the new
internals anyways) and added AutoCASC mode (corresponding to E
0.9pre003 as used in CASC-20).
Version 0.81 -> 0.82 Lung Ching
- Fixed a bug in find_spec_literal() pointed out by Flavio
Ribeira. Might improve performance for large problems with a lot of
subsumption.
- Added LPO4 variant from Bernd Loechners paper. Much faster
- Cleanup of feature stuff (needs more cleaning)
- Added support for full first-order logic and clausification
- Optimized automatic mode and fixed some ancient automatic mode bugs
Version 0.8 -> 0.81 Tumsong
- Fixed the SOS propagation bug in splitting.
- Overhauled feature vector indexing and added a lot of bells and
whistles
- Added support for the watch list and watch list based heuristics
- Added support for multiple auto modes, including the 0.71 auto mode
- (-xAuto071 -tAuto071), the current one, and a developer auto mode
(-xAutoDev -tAutoDev, the last two are identical for official
release versions, but allow experiments while keeping behavior
stable for in-between versions).
- Much improved automatic mode (knows more about contextual literal
cutting and SOS now)
- Improved support for TSTP input and full TSTP output
- Added some things to the manual. Yes, really!
Version 0.71 -> 0.8 Steinthal
- Finally fixed that SOS bug. There still is an SOS problem with
splitting (split clauses do not inherit SOS status) that will be
fixed for the next release
- Added PrioFunDeferSOS
- Changed the order of arguments of PCL expression for paramod
inferences (seen as a conditional lazy speculative rewrite step now
is consistent, i.e. the second one is being applied to an instance
of the first one).
- Changed the main loop to a more conservative version (_all_
simplified clauses are scheduled for reprocessing) giving a much
nicer invariant
- Added Defaultweight() and a number of evaluation- and priority
functions to improve FIFO (ByDerivationDate, StaggeredWeight(),
...)
- Added feature vector indexing for non-unit subsumption
- Added contextual simplify-reflect (may change that name - what about
contextual equational literal cutting?)
- New auto mode, still mostly based on pre-subsumption-indexing test
runs
- Added epcllemma program that will use various heuristics to suggest
lemmata in PCL protocols.
Version 0.7 -> 0.71 Puttabong
- Added preprocessing of clause sets: Demodulation to get rid of fully
defined function symbols, tautology elemination, sorting of clauses
- Fixed some bugs, including a bug in subsumption.
- Made function symbol ordering more stable by adding more and better
secondary criteria (number of occurences in formula...)
- Ported to MacOS X, fixed some small portability problems
- Fixed bug in compressed PCL output (output of inital clauses came
from a different term bank, yielding wrong abbreviations)
- Fixed bug in eground (number of clauses in printed DIMACS format was
potentially different from stored number of clauses)
- Added new and better term ordering schemes and literal selection
functions.
- Added new weight functions and priority functions to get a better
grip on FIFO.
- New and better auto-mode (surprise ;-)
- Modified the prover to make it run consistently on different
architectures. Compile with CONSTANT_MEM_ESTIMATE to get the most
from this (see Makefile.vars for documentation).
- Added putative TSTP exit status (as a compile time option, on by
default).
Version 0.63 --> 0.7 Dhajea
+ Changed rewriting implementation from destructive global to cached
global.
+ Changed memory estimator, all limit-based options now use
(estimated) bytes as memory units.
+ New literal selection functions, in particular those avoiding type
literals
+ Rewrote and simplified splitting, added aggressive splitting
(splitting of unprocessed clauses)
+ Added aggressive equality resolution
+ Added optional unit cutting with unprocessed clauses
+ New and improved automatic mode
+ Fixed a bug with --prefer-initial-clauses. Now it works (and often
is quite helpful)
+ Changed output format to native PCL2, optionally with compressed
terms. Output level 4 will now print all real inference steps,
output level 6 will also print given clause selection, evaluation
steps, and subsumption. Implemented epclextract for proof object
generation. Note that pattern-based learning now is temporarily
broken.
After CASC-18 prerelease:
+ Full virtualization of the core prover - it should now be possible
to run several logically independent copies inside one process space
(they still share some inference counters and output variables, but
nothing that should affect proof search).
+ Added improved SoS support. You can now specify the SoS by using
--sos-uses-input-types and choosing TPTP clause type conjecture or
E-LOP query format. Note that there still is a small bug in SoS
implementation -- non-SoS clauses simplified with a SoS clause do
not enter SoS, but probably should. Since we only simulate SoS
anyways, this bug does not lead to a hard incompleteness (but
possibly to infinite runs for unsatisfiable problems). It will
(hopefully) be fixed for the next release.
+ Worked on the manual. It is still very incomplete.
Version 0.62 --> 0.63 Nuwara Eliya
+ Added explicit code for the occur-check (shoud be faster than the
general TermIsSubTerm())
+ Improved interreduction and 1-1-matching (should also help for
Subsumption)
+ Added hooks and code to generate a version with proprietary
extensions (under a separate license)
+ Added SymbolTypeweight heuristic (assigns different weight to
non-constant function symbols, constants, predicates, and
variables).
+ Addded support for HPUX again.
+ Added some new literal selection functions.
+ Implemented epclanalyse to easily determine certain properties of
proofs.
+ Significantly improved eground, in particular by implementing
non-ground splitting (and several pure performance hacks)
+ New Automatic mode for unit problems (non-Units still use old
auto-mode, which probably is sub-optimal with the new calculus
refinements)
Version 0.61 --> 0.62 Mullootar
+ Added clause splitting (not yet very good)
+ Added PNweight clause weight, which assigns different values to
symbols and variables in positive and negative literals
+ Added new features for auto mode (maximum function symnbol arity),
very useful for UEQ
+ New auto mode
+ Implemented eground (grounds near-propositional proof problems)
Version 0.6 --> 0.61 North Tukvar
+ Added priority function PrioFunPreferNonEqUnits
+ Addded more literal selection functions
+ Added option --precedence to allow the user to select partial
precedences for the term ordering
+ Added precedence-generation scheme "const_min", simplified some of
the precedence code
+ Added Waldmeister-like AC handling (on by default), with options
--ac-handling and --ac-non-aggressive (read their documentation to
see what they do).
+ Updated proof analysis tools to deal with AC handling, fixed some
other annoying things with them (SR was encoded as a generating
rule).
+ Implemented NLweight clause weight, giving different weight to the
first occurrence of a variable in a term and later (i.e. non-linear)
ones.
+ Fixed bug in TSM-based weight functions (introduced by
pseudo-optimizing me....aaargh!)
+ Modified frequency-based ordering generation - will now use arity as
tie-breaker.
+ Added new weight generation schemes modarity and modaritymax0
+ Fixed some problems with evaluation comparisons on Intel Itanium
systems (thanks to Compaqs Test Drive program for access to the
hardware!) (in fact, did _not_ yet fix all of them...strange stuff
happens!)
+ Added literal selection functions selecting literals based on
orientability.
+ Rewrote term indexing - can now cope with growing signatures
+ Added M-literal-selection functions (select positive literals in
Non-Horn clauses, not in Horn clauses)
+ Added --inherit-goal-pm-literals to inherit paramod-literals in
goals only
+ New auto mode once more
+ Fixed minor bug in RR-literal selection functions
Version 0.6 (prerelease) --> 0.6 (Kanchanjangha)
+ Updated (some) documentation, in particular the help texts of the
programs.
+ Overhauled the manual - it's still very incomplete, but at least not
outrightly false anymore (I hope)
+ Several changes to the CSSCPA code in the EXTERNAL directory (does
not affect main prover)
Version 0.51 --> 0.6 prerelease
+ Added various learning heuristics (but documentation is still
missing)
+ Added new literal selection functions taking the ordering into
account (and reorganized parts of the proof procedure to allow
this).
+ Added relatively naive LPO cache
+ Reimplemented LPO for better performance - now faster without the
cache
+ Added support for SOS strategy (with priority function SimulateSOS,
does not seem to do very well at the moment)
+ Enabled soft- and hard cpu time limits simultanously.
+ Removed legacy option --paramod-strategy (use
--literal-selection-strategy instead)
+ Added option --error-on-empty to allow the catching of certain
errors in E-SETHEO
+ Implemented e2pcl, translating E output to UPCL2 language.
+ Implemented proof checker for UPCL2.
+ Eliminated option --no-pdt-indexing (and associated code)
+ Removed option --discount-vars and associated code (nobody used it
anyways, and it lead to code bloat).
+ Changed option --memory-limit to require an argument.
Version 0.5 --> 0.51 (Mim)
+ Added more literal selection functions playing with
range-restriction variations
+ Moved input format description to scanner object and generalized
concept.
+ Moved signal handling from CONTROL.a to INOUT.a
+ Included handling for temorary files, abstracted some of the other
file stuff
+ Removed a minor problem from rewriting (affected only proof analysis
tools)
+ Fixed bugs in reproduction and analysis tools
+ Completed knowledge base management with ekb_create, ekb_ginsert and
ekb_delete
+ Fixed nasty bug in implementation of SimplifyReflect
+ Added learning heuristics (prototypical)
Version 0.5 (prerelease) --> 0.5 (Phuguri)
+ Fixed a minor bug in clause weight precalculation
+ Added new literal selection function that does not select literals
in range-restricted clauses.
Version 0.32 --> 0.5 (prerelease, this is the CASC-16-Version)
+ Added new weight functions and literal selection functions
+ Changed an off-by-one error in Saturate...if said to process 0
clauses the prover will now stopp immediately instead of processing
one clause.
+ Added syntax check after clause set has been read - will now
complain about additional garbage.
+ Added option to restrict selection by clause weight and to perform
selection only when processing, not when evaluating.
+ Improved Auto-mode again, based on lots of new test data.
+ Added another classification to classify_problem (Few, some or many
positive ground clauses). Does not seem to help much.
+ Changed the auto-mode generation tool chain by cutting me and my
stupid mistakes out of it. Only che_[HGU]*.c need to be modified now
to change the auto mode, and generate_auto.awk will collect all
necessary information.
Version 0.31a --> 0.32 (Lingia)
+ Added support to use the prover as a clause set normalizer
(basically doing interreduction and subsumption).
+ Implemented stronger tautology detection (should now eliminate _all_
tautologies. Does e.g. remove equality axioms). Thanks to Roberto
Nieuwenhuis for the suggestion. Needs testing!
+ Removed obsolete option "--paramod-with-units-only", eliminated
paramodulation strategies and replaced them with literal selection
strategies (once more, thanks to Roberto for pointing out the
relationship forcefully enough for me to believe in it
;-). "--paramod-strategy" remains for the moment for backward
compatibility, but is mapped to set the corresponding selection
strategy. Introduced option "--literal-selection-strategy".
+ Removed a bug (might have caused incompleteness) from detection of
backward-rewritable clauses.
+ Changed output of result line. Thanks to the literal selection
strategy, E will now never terminate with indeterminate result
unless the calculus is restricted (and in this case it will say
so).
+ Added more literal selection strategies and option --nogeneration.
+ Fixed bug in EqnListEqnIs[Strictly]Maximal().
+ Removed test for maximality of instantiated negative literals into
which the prover paramodulates - it never yielded false anyways in
practice.
+ Added output of the empty clause whenever --print-saturated is
selected and the empty clause has been derived.
+ Added evaluations functions reminiscent of DISCOUNT's MaxWeight.
+ Added options to control selection (don't yet know if it helps)
+ Optimized non-unit subsumption and made all stack functions inline -
not nice, but that helps a lot.
+ Made some more stuff inline and optimized matching
+ Updated automatic mode
Version 0.31 --> 0.31a (Jungpana II)
+ Fixed proofanalyse (prints dependency graph and selects clauses on
and near to the proof path as examples) and generate_examples
(generates external representations of selected clauses from the -l3
or -l4 protocol
+ Improved auto-mode once more (only change to the main prover)
Version 0.3 --> 0.31 Jungpana
+ Added TPTP format parser and output routines.
+ Did some more hacks for evaluation.
+ Restructured EXAMPLE_PROBLEMS subdirectory (now has the
non-obfuscated TPTP and LOP versions of the CASC-15 problems).
+ Ripped out AVL trees and plugged in Splay trees in
clb_ptrees.c. Should save significant amounts of memory, definitly
speeds things up. Also reduces code size seriously. I will probably
replace some more AVL trees with Splay trees.
+ Did that: Term Trees and Evaluation Trees now also use Splay
trees. The remaning AVL's should be cleaned up sometimes, but are
definitly uncritical.
+ Made $true-term special, it will now no longer carry ext-ref
information. Not nice, but saves time and lot's of memory (3 words +
Overhead per non-equational literal).
+ Added options for intermediate filtering of unprocessed clauses,
including deletion of (possibly) non-redundant clauses to keep
memory consumption in check. The prover no works quite well with
whatever memory is offered (but 10 MB is about a rational minimum
for non-trivial problems, with 128 MB suggested).
+ Made all boolean options NoArg options (instead of options with
optional argument).
+ Following a hint by Roberto Nieuwenhuis, implemented real
PosUnit-Strategy. I'll have to learn to read sometime...
+ Added soft cpu limit.
+ Debugged filtering of unprocessed clauses...first time I ever had to
deal with a long overflow (due to my stupidity, no doubt).
+ Fixed bugs with long option handling and auto-mode (introduced by
the changes necessary to support multiple paramod-strategies)
+ Added filtering for clause copies.
+ Added removing of clauses in cases of tight memory
+ Added new weight functions (Sigweight, Proofweight)
+ Removed entry-index in term banks
+ Changed rewrite machinery to stop replaced term from being
reinserted as super-terms
+ Brought depanalyze up to working state (it currently prints a
dependency graph for clauses, including demodulators). As a side
effect, the -l3 option should now work and really print a complete
protocol.
+ Fixed a bug in Equality factoring (it allowed unification between
variable and predicate term).
+ Improved Auto-Mode for heuristic selection, now optimized for
standard term ordering (no need for -tAuto anymore).
Version 0.24 --> 0.3 "Castleton"
+ Tested signal handling under HPUX - works fine.
+ Added a simple auto-mode, changed WFCB interface and added
WFCB-Administration for new heuristics-management.
+ BIG ONE: The command line semantics of the prover
changed. Previously, "eprover p1 p2 p3" was equivalent to "eprover
p1; eprover p2; eprover p3", but that did not make to much sense and
complicated quite some things. Now it is equivalent to "cat p1 p2
p3| eprover". This allows you to modularize your specifications to a
certain degree.
+ Added HCB-Administration and interface, rewrote
heuristics-code. Does now need user-level documentation badly!
+ Wrote some of this documentation ;-) See CLIB/DOC/eprover.tex
+ Added proof output (machine friendly only, will need tools to
post-process).
+ Hacked a lot of scripts for test runs and evaluation.
+ Fixed an extremely stupid bug (4 times over) in precedence
generation, fixed a lot of bugs in weight generation that were
masked by this one. Removed TOGenerateDefaultWeights(), as it was
redundant anyways. Moved TOGenerateDefaultPrecedence() to
che_to_precgen.[ch], were it belongs.
+ Fixed incompleteness caused by too strong subsumption.
+ Added auto-mode for heuristic selection and ordering selection.
Version 0.23 --> 0.24 "Yunnan"
+ Fixed one more bug (subsumption of negative literals without
recomputation of maximal literals)
+ Added simple signal handler to make --cpu-limit work on more
platforms (should now work on all versions of Linux and Solaris,
untested on other platforms).
+ Restructured part of the code, moved ProofState object deeper to
allow clean coding of an auto-mode.
+ Variables do not have external references anymore -> saves time and
space, and fixes half a bug.
+ Did some testing.
"eprover -x Standard --memory-limit=192 --cpu-limit=300" on a SUN
Ultra-10 Workstation should be able to solve about 1312 problems
from the TPTP version 2.1.0.
Version 0.22 --> 0.23 "StopGap"
+ Fixed bugs in LiteralCompare() (main reason for new release)
+ Added paramodulation with maximal variable sides
(makes the prover more complete ;-)
+ Wrote some simple precedence generation schemes for the orderings
+ Added unit-paramodulation strategy for Horn Clauses form
[Der91]. Very strong except for the TPTP PLA domain.
Version 0.21 --> 0.22 "Risheehat"
+ Removed rewrite cruft (see last version change)
+ Unified term banks for processed and unprocessed clauses, optimized
rewriting
+ Optimized unification
+ More verbose and more correct statistics
+ Removed a long-standing (but basically user-invisible) memory
allocation bug from cto_ocb.c. Yes this is important (to me...)!
+ Optimized rewriting (again) with better use of normal form
dates. Helps some, but not as much as I would have expected -
perhaps a lingering bug?
+ Removed some more cruft, cleaned up term type
+ Simplified clause type.
+ Simplified equation type, replaced boolean properties with bit
properties after profiling showed that shared terms are so efficient
that clause and equation cells contribute significantly to memory
consumption.
+ Implemented simple non-unit-subsumption. Prover now works in some
fashion on non-unit problems (i.e. would not come in as last in
CASC-15).
+ Did some more profiling on KBO and found out that new implementation
does help -> it is now the default.
+ Implemented weight-generation schemes for KBO
+ Took variables out of the term trees in the term bank.
+ Implemented pre-hashing for term bank terms. Works great!
+ Changed default weight for terms and variables -> usually better
performance. Currently, use -i1 -i1 for old default behaviour.
+ Decided to give cool names to releases.
+ Optimized rewriting once more...marginal improvements.
Version 0.2 --> 0.21
+ Rewrote rewrite machinery (still some cruft to remove) and
simplified proof procedure
+ Added --version option for GNU's sake
+ Fixed still more serious (if seldom occuring) bugs
+ Added --memory-limit option (works only on systems with rational
setrlimit())
+ Added second implementation of KBO (no improvement *sigh*)
+ Some cleanup
Version 0.1 --> 0.2
+ Improved indexing
+ Stronger unit-subsumption
+ Fixed lots of serious bugs
+ Improved KBO efficiency
|