Vampire 5.1.0
The new Vampire version includes full higher-order reasoning and compliance with GDV (commit 503a7971f569d7a291a22269ab8aa5ad64453240). More details below.
What's Changed
- Setup code coverage by @mezpusz in #803
- Core inference unit tests by @mezpusz in #804
- Polymorphic arrays by @mezpusz in #786
- Add ToPlaceholders TermTransformer by @hetzenmat in #806
- Shuffle minisat by @quickbeam123 in #807
- Made cmake command more portable. by @jackeown in #808
- Fix linker error on Mac OSX Tahoe 26.3 by @mezpusz in #810
- properly release VirtualIterators in LookaheadLiteralSelector's pickTheBest by @quickbeam123 in #811
- Do not quantify over empty list of variables in SMTLIB2 parser by @mezpusz in #816
- Use proper code locations instead of arbitrary string in assertions by @mezpusz in #814
- actually find SAT duplicate literals and tautologies by @MichaelRawson in #813
- Sorts carried around (compulsorily) with quantifiers and lambdas by @quickbeam123 in #812
- Inspired by the Cadical people at Dagstuhl, let's try to reduce Clause's memory footprint by @quickbeam123 in #815
- make Inference a few bytes ligher by @quickbeam123 in #817
- DHMap<Unit*,..> is dangerous by @quickbeam123 in #818
- Update python scripts & small bugfixes by @EpsilonPhoenix in #820
- TermFunIterator should only return function symbols by @mezpusz in #825
- Remove attach detach by @mezpusz in #819
- Improve newcnf by @quickbeam123 in #826
- fix: pushed proxies are terms (TM) by @quickbeam123 in #830
- shrink Clause memory footprint by fiddling with layout by @MichaelRawson in #831
- HOL improvements by @mezpusz in #829
- allow (but ignore) unary $distinct by @MichaelRawson in #832
- Use lazily expanding flat term everywhere and clean up class by @mezpusz in #834
- Higher order code trees by @mezpusz in #833
- Fixed issue 823 by @joe-hauns in #835
- HOL improvements (continued) by @mezpusz in #836
- Add Leibniz equality elimination by @mezpusz in #838
- Do not check special term result sort in assertion by @mezpusz in #842
- Improve code tree printing by @mezpusz in #839
- Subsumption equality resolution by @mezpusz in #841
- no synchronisation mechanism needed for portfolio workers by @MichaelRawson in #840
- bump action versions to silence GitHub warning by @MichaelRawson in #844
- cleanup Multiprocessing API by @MichaelRawson in #845
- HOL improvements (continued) by @mezpusz in #846
- Choice inference by @mezpusz in #847
- also allow imports relative to the supplied input file by @MichaelRawson in #851
- Remove secondary term variables stack to prevent unsoundness by @mezpusz in #852
- Moving to C++20 by @mezpusz in #857
- Skolemization format update by @i-am-a-teapot in #849
- Accept define-const from SMTLIB2.7 by @mezpusz in #855
- Hol improvements (continued) by @mezpusz in #856
- Fix logic for handling single-threaded unit tests by @hetzenmat in #860
- Fix divisibility evaluation by @joe-hauns in #859
- Smtlib goal annotation by @joe-hauns in #858
- Preparation for CASC HOL 2026 #1 by @mezpusz in #862
- removed unstable alasca options from samplers by @joe-hauns in #868
- Sledghammer-style Conjecture Parsing by @joe-hauns in #866
- Fix divisibility by @joe-hauns in #869
- Ignore Unrecognized Logic in SMTCOMP porfolio mode by @joe-hauns in #864
- fix the cnf-claim path by @quickbeam123 in #870
- Basic HOL unification for Superposition and Equality Resolution by @mezpusz in #865
- add a space after printing TPTP negations by @MichaelRawson in #871
- Fix skolemizing index by @mezpusz in #872
- Fix subst tree generalizations for hol by @mezpusz in #873
- Hol functional extensionality by @mezpusz in #874
- also add space for the negated-conjecture case ~~p by @MichaelRawson in #875
- report correct file paths for axioms by @MichaelRawson in #876
- A working branch for the casc submission by @quickbeam123 in #877
- Casc2026 fixes by @quickbeam123 in #879
- remove output_axiom_names option by @MichaelRawson in #883
- Fix eqModACRect renaming check and Injectivity success_3 expectation by @shalashaska117 in #890
- quote axiom names in TSTP by @MichaelRawson in #888
- build $let definitions of Boolean symbols as formulas by @shalashaska117 in #885
- Geoff is changing the spec in QA (tiny change in output) by @quickbeam123 in #897
- Add predicate elimination as a new preprocessing step by @quickbeam123 in #892
- More fixes to align with CASC rules by @mezpusz in #881
- Randomized preprocessing by @quickbeam123 in #895
- add named hash functors and delegate DefaultHash to them by @shalashaska117 in #899
- Randomized simplifications by @quickbeam123 in #896
- output proofs in the TPTP fragment of the input problem by @shalashaska117 in #884
New Contributors
- @jackeown made their first contribution in #808
- @EpsilonPhoenix made their first contribution in #820
- @i-am-a-teapot made their first contribution in #849
- @shalashaska117 made their first contribution in #890
Full Changelog: v5.0.1...v5.1.0
Vampire 5.0.1
Merge pull request #802 from kazarmy/5.0.1-bump Bump version number to 5.0.1
Vampire 5.0.0
This is very similar to the version that competed in CASC-30.
Pre-built Binaries
We offer pre-built binaries (including Z3) for common platforms below. These are new this release, so please tell us if they don't work for you. A source build is of course still possible - please use the provided tarballs rather than the GitHub sources. The pre-built binaries:
- are static for Linux systems
- dynamically link to the C++ runtime on Mac
- dynamically link to the C++ runtime and to Cygwin on Windows - we provide the Cygwin DLL we linked against, but others may work
Semantic Versioning
This is a major release mostly to coincide with The Vampire Diary (CAV 2025), but we intend to stick to semantic versioning in a very restricted sense from now on:
- The only supported interface is the default mode and the portfolio mode,
--mode portfolio. - Supported portfolio schedules are
cascandcasc_sat, e.g.--schedule casc: this list might be extended to other schedules in the future. - The TPTP and SMT-LIB input formats are supported via
--input_syntax tptpand--input_syntax smtlib2. - The default output and the output flags
-p tptpor-om smtcompor-om ucoreare supported. - Runtime can be limited (with some margin of error) using
-t <seconds>, where<seconds>is a positive integer. - Vampire uses one CPU core in its default mode.
- All other options may break without warning.
- We do not guarantee solving any particular problem or returning any particular output, only that the above-enumerated ways of calling Vampire remain valid.
Most of our releases will be minor releases because we do not break the above, but may change, add or remove other functionality. Occasional point releases may occur in the event of disaster.
Vampire 4.9
This Vampire is very similar to the version that competed in CASC-J12.
Linked against Z3 4.12.3, commit 79bbbf76d0c123481c8ca05cd3a98939270074d3.
vampireHO-sledgehammerScheds
This is the higher-order branch of vampire 4.8 (not in master yet) updated after CASC 2023 by a few bug fixes and by adding a final schedule adapted to work well for problems coming from Sledgehammer. All of TFX/TFF, TH0 and TH1 exports are supported.
To access the new schedule(s), one should use
--input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_slh
Vampire will automatically dispatch to the corresponding sub-schedule, based on the input dialect: first-order / higher-order, polymorphic / monomorphic.
The compile is only compatible with cmake and it does not make sense to link against z3 here. Use
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_HOL=On -DCMAKE_DISABLE_FIND_PACKAGE_Z3=ON
after cd-ing to your fresh build folder.
Vampire 4.8
This is the 4.8 version submitted to CASC in 2023.
NOTE: This release has only been optimized for the Starexec cluster and does not represent the full capabilities of Vampire. It will be followed up by a full-fledged version in the near future.
There were new schedules developed for FOF, TFA, and UEQ accessible under --mode casc and one new schedule for FNT under --mode casc_sat.
Linked with z3 6ed071b44407cf6623b8d3c0dceb2a8fb7040cee z3-4.9.1
vampireHO-casc2023
This is the higher-order branch of vampire 4.8 (not in master yet) which competed in CASC 2023.
The compile is only compatible with cmake and it does not make sense to link against z3 here. Use
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_HOL=On -DCMAKE_DISABLE_FIND_PACKAGE_Z3=ON
after cd-ing to your fresh build folder.
The interesting modes of operation are:
--cores 8 --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_holused in the Higher-order Theorems division of CASC--input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_slhused in the SLedgeHammer Theorems division there
There is also a likely quite a bit more powerful schedule for sledgehammer schedule under --schedule snake_slh2 that got only fine-tuned after the competition.
SnakeForV4.7+
This is the 4.7 version of Vampire enhanced with randomization.
It includes (an improved version) of the snake schedules which participated at CASC 2022.
Linked with z3 f03d756e086f81f2596157241e0decfb1c982299.
Version 4.7
This is the 4.7 version submitted to SMTCOMP and CASC in 2022.
No major differences to the competition schedules compared to 2021.
Linked with z3 f03d756e086f81f2596157241e0decfb1c982299.