- CSE 1.2
- CSE_E 1.1
- CVC4 1.7
- E 2.4
- Enigma 0.4
- Etableau 0.1
- GKC 0.4
- iProver 2.8
- iProver 3.0
- leanCoP 2.2
- LEO-II 1.7.0
- Leo-III 1.4
- MaedMax 1.3
- MaLARea 0.6
- MaLARea 0.8
- nanoCoP 1.1
- Prover9 1109a
- PyRes 1.0
- Satallax 3.3
- Satallax 3.4
- Twee 2.2
- Vampire 4.3
- Vampire 4.4
- Waldmeister 710
- Zipperposition 1.5

Southwest Jiaotong University, China

- A new S-CS inference algorithm is implemented which can make the generation of S-CS Clause slowdown in terms of the number of literals and the maximal function depth to a greater extent.
- A new S-CS inference algorithm is added which can make full use of the same input clause by repeated usage.
- Different S-CS inference algorithms are applied in a mixed way when CSE 1.2 tries to solve a problem.

- Deduction weight. According to the symbol structure of the input clause, it is evaluated how its deduction weight should be increased.
- Substitution complexity. In the process of S-CS deduction, the complexity of the substitution is evaluated to decide whether the deduction can be performed.

Development of CSE 1.0 has been partially supported by the National Natural Science Foundation of China (NSFC) (Grant No.61673320) and the Fundamental Research Funds for the Central Universities in China (Grant No. 2682017ZT12, 2682018CX59).

Southwest Jiaotong University, China

This kind of combination is expected to take advantage of both CSE and E, and produce a better performance. Concretely, CSE is able to generate a good number of unit clauses, based on the fact that unit clauses are helpful for proof search and equality handling. On the other hand, E has a good ability on equality handling.

- Lemma filtering according to whether it contains equality.
- Lemma filtering according to whether it is inferred by the proof search going back to the negated conjecture.

University of Iowa, USA

https://github.com/CVC4

DHBW Stuttgart, Germany

For the LTB divisions, a control program uses a SInE-like analysis to extract reduced axiomatizations that are handed to several instances of E. E will not use on-the-fly learning this year.

For CASC-27, E implements a strategy-scheduling automatic mode. The total CPU time available is broken into several (unequal) time slices. For each time slice, the problem is classified into one of several classes, based on a number of simple features (number of clauses, maximal symbol arity, presence of equality, presence of non-unit and non-Horn clauses, ...). For each class, a schedule of strategies is greedily constructed from experimental data as follows: The first strategy assigned to a schedule is the the one that solves the most problems from this class in the first time slice. Each subsequent strategy is selected based on the number of solutions on problems not already solved by a preceding strategy.

About 230 different strategies have been thoroughly evaluated on all untyped first-order problems from TPTP 7.2.0. In addition, we have explored some parts of the heuristic parameter space with a short time limit of 5 seconds. This allowed us to test about 650 strategies on all TPTP problems, and an extra 7000 strategies on all 1193 UEQ problems from TPTP 7.2.0. About 100 of these strategies are used in the automatic mode, and about 450 are used in at least one schedule.

https://www.eprover.org

Czech Technical University in Prague, Czech Republic

https://github.com/ai4reason/enigmatic

University of Florida, USA

Tallinn University of Technology, Estonia

- Binary resolution with optionally the set of support strategy, negative or positive ordered resolution or unit restriction.
- Hyperresolution.
- Factorization.
- Paramodulation and demodulation with the Knuth-Bendix ordering.

We perform the selection of a given clause by using several queues in order
to spread the selection relatively uniformly over these categories of derived
clauses and their descendants: axioms, external axioms, assumptions, and goals.
The queues are organized in two layers.
As a first layer we use the common ratio-based algorithm of alternating between
selecting *n* clauses from a weight-ordered queue and one clause from
the FIFO queue with the derivation order.
As a second layer we use four separate queues based on the derivation history
of a clause.
Each queue in the second layer contains the two sub-queues of the first layer.

GKC can be obtained from:

https://github.com/tammet/gkc/

University of Manchester, United Kingdom

University of Manchester, United Kingdom

- Superposition calculus together with simplifications such as demodulation, light normalisation, subsumption, subsumption resolution and global subsumption [DK19]. iProver's simplification set up is tunable via command line options and generalises common architectures such as Discount or Otter.
- In the LTB and FEW divisions we use machine learning for learning iProver's heuristics based on dynamic clustering and hyper-parameter optimisation using SMAC [HHL12] as described in [HK19, HK19]. In these divisions iProver runs in parallel most promising learnt heuristics.
- In the LTB division iProver combines abstraction-refinement [HK18] with axiom selection based on the SinE algorithm [HV11] as implemented in Vampire [KV13]. We also implemented a number of under-and over-approximation strategies [HK18, HK19].

http://www.cs.man.ac.uk/~korovink/iprover/

University of Oslo, Norway

leanCoP can read formulae in leanCoP syntax and in TPTP first-order syntax. Equality axioms and axioms to support distinct objects are automatically added if required. The leanCoP core prover returns a very compact connection proof, which is then translated into a more comprehensive output format, e.g., into a lean (TPTP-style) connection proof or into a readable text proof.

The source code of leanCoP 2.2 is available under the GNU general public license. It can be downloaded from the leanCoP website at:

http://www.leancop.deThe website also contains information about ileanCoP [Ott08] and MleanCoP [Ott12, Ott14], two versions of leanCoP for first-order intuitionistic logic and first-order modal logic, respectively.

University of Luxembourg, Luxembourg

Unfortunately the LEO-II system still uses only a very simple sequential collaboration model with first-order ATPs instead of using the more advanced, concurrent and resource-adaptive OANTS architecture [BS+08] as exploited by its predecessor LEO.

The LEO-II system is distributed under a BSD style license, and it is available from

http://www.leoprover.org

University of Luxembourg, Luxembourg

Leo-III cooperates with external first-order ATPs which are called asynchronously during proof search; a focus is on cooperation with systems that support typed first-order (TFF) input. For this year's CASC, CVC4 [BC+11] and E [Sch02, Sch13] are used as external systems. However, cooperation is in general not limited to first-order systems. Further TPTP/TSTP-compliant external systems (such as higher-order ATPs or counter model generators) may be included using simple command-line arguments. If the saturation procedure loop (or one of the external provers) finds a proof, the system stops, generates the proof certificate and returns the result.

For the LTB division, Leo-III is augmented by an external Python3 driver which schedules Leo-III of the batches.

The term data structure of Leo-III uses a polymorphically typed spine term representation augmented with explicit substitutions and De Bruijn-indices. Furthermore, terms are perfectly shared during proof search, permitting constant-time equality checks between alpha-equivalent terms.

Leo-III's saturation procedure may at any point invoke external reasoning tools. To that end, Leo-III includes an encoding module which translates (polymorphic) higher-order clauses to polymorphic and monomorphic typed first-order clauses, whichever is supported by the external system. While LEO-II relied on cooperation with untyped first-order provers, Leo-III exploits the native type support in first-order provers (TFF logic) for removing clutter during translation and, in turn, higher effectivity of external cooperation.

Leo-III is available on GitHub:

https://github.com/leoprover/Leo-III

As a novelty, this year is the first time that Leo-III will compete in the LTB division of CASC. Stemming from Leo-III's support for polymorphic HOL reasoning, we expect a reasonable performance compared to the other systems. On the other hand, Leo-III's LTB mode does not do any learning and/or analysis of the learning samples.

Universität Innsbruck, Austria

Compared to traditional ordered completion [BDP89], maximal ordered completion has the advantage of being fully automatic with respect to the reduction order, a notoriously critical parameter: rather than requiring an explicit heuristic, the reduction order is determined by optimizing some goal function. Moreover, rather than processing one equation at a time, the inference scheme is inherently more parallel: multiple equations are oriented at once, and critical pair computation as well as rewriting is done for many equations in every iteration.

Different criteria for ground joinability are supported, some of which can contribute to the optimization in the maxSMT call.

MaedMax can output proofs in the TSTP format as well as in CPF, which is checkable by the verified proof checker CeTA [SWZ15].

http://informatik-maedmax.uibk.ac.at/

Czech Technical University in Prague, Czech Republic

https://github.com/JUrban/MPTP2/tree/master/MaLAReaThe metasystem's Perl code is released under GPL2.

Czech Technical University in Prague, Czech Republic

https://github.com/JUrban/MPTP2/tree/master/MaLAReaThe metasystem's Perl code is released under GPL2.

University of Oslo, Norway

nanoCoP can read formulae in leanCoP/nanoCoP syntax and in TPTP first-order syntax. Equality axioms are automatically added if required. The nanoCoP core prover returns a compact non-clausal connection proof.

The source code of nanoCoP 1.1 is available under the GNU general public license. It can be downloaded from the nanoCoP website at:

http://www.leancop.de/nanocopThe provers nanoCoP-i and nanoCoP-M are version of nanoCoP for first-order intuitionistic logic and first-order modal logic, respectively. They are based on an adapted non-clausal connection calculus for non-classical logics [Ott17].

University of New Mexico, USA

Prover9 has available positive ordered (and nonordered) resolution and paramodulation, negative ordered (and nonordered) resolution, factoring, positive and negative hyperresolution, UR-resolution, and demodulation (term rewriting). Terms can be ordered with LPO, RPO, or KBO. Selection of the "given clause" is by an age-weight ratio.

Proofs can be given at two levels of detail: (1) standard, in which each line of the proof is a stored clause with detailed justification, and (2) expanded, with a separate line for each operation. When FOF problems are input, proof of transformation to clauses is not given.

Completeness is not guaranteed, so termination does not indicate satisfiability.

Given a problem, Prover9 adjusts its inference rules and strategy according to syntactic properties of the input clauses such as the presence of equality and non-Horn clauses. Prover9 also does some preprocessing, for example, to eliminate predicates.

For CASC Prover9 uses KBO to order terms for demodulation and for the inference rules, with a simple rule for determining symbol precedence.

For the FOF problems, a preprocessing step attempts to reduce the problem to independent subproblems by a miniscope transformation; if the problem reduction succeeds, each subproblem is clausified and given to the ordinary search procedure; if the problem reduction fails, the original problem is clausified and given to the search procedure.

http://www.cs.unm.edu/~mccune/prover9/

DHBW Stuttgart, Germany

https://github.com/eprover/PyRes

Universität Innsbruck, Austria

Proof search: A branch is formed from the axioms of the problem and the negation of the conjecture (if any is given). From this point on, Satallax tries to determine unsatisfiability or satisfiability of this branch. Satallax progressively generates higher-order formulae and corresponding propositional clauses [Bro13]. These formulae and propositional clauses correspond to instances of the tableau rules. Satallax uses the SAT solver MiniSat to test the current set of propositional clauses for unsatisfiability. If the clauses are unsatisfiable, then the original branch is unsatisfiable. Optionally, Satallax generates first-order formulae in addition to the propositional clauses. If this option is used, then Satallax periodically calls the first-order theorem prover E [Sch13] to test for first-order unsatisfiability. If the set of first-order formulae is unsatisfiable, then the original branch is unsatisfiable. Upon request, Satallax attempts to reconstruct a proof which can be output in the TSTP format.

http://satallaxprover.com

ENS Paris-Saclay, France

Proof search: A branch is formed from the axioms of the problem and the negation of the conjecture (if any is given). From this point on, Satallax tries to determine unsatisfiability or satisfiability of this branch. Satallax progressively generates higher-order formulae and corresponding propositional clauses [Bro13]. These formulae and propositional clauses correspond to instances of the tableau rules. Satallax uses the SAT solver MiniSat to test the current set of propositional clauses for unsatisfiability. If the clauses are unsatisfiable, then the original branch is unsatisfiable. Optionally, Satallax generates lambda-free higher-order logic (lfHOL) formulae in addition to the propositional clauses [VB+19]. If this option is used, then Satallax periodically calls the theorem prover E [Sch13] to test for lfHOL unsatisfiability. If the set of lfHOL formulae is unsatisfiable, then the original branch is unsatisfiable. Upon request, Satallax attempts to reconstruct a proof which can be output in the TSTP format.

http://cl-informatik.uibk.ac.at/~mfaerber/satallax.html

Chalmers University of Technology, Sweden

Twee's implementation of ground joinability testing performs case splits on the order of variables, in the style of [MN90], and discharges individual cases by rewriting modulo a variable ordering. It is able to pick only useful case splits and to case split on a subset of the variables, which makes it efficient enough to be switched on unconditionally. Horn clauses are encoded as equations as described in [CS18]. The CASC version of Twee "handles" non-Horn clauses by discarding them.

Twee uses an LCF-style kernel: all rules in the active set come with a certified proof object which traces back to the input axioms. When a conjecture is proved, the proof object is transformed into a human-readable proof. Proof construction does not harm efficiency because the proof kernel is invoked only when a new rule is accepted. In particular, reasoning about the passive set does not invoke the kernel. The translation from Horn clauses to equations is not yet certified.

Twee can be downloaded from:

http://nick8325.github.io/twee

University of Manchester, United Kingdom

A number of standard redundancy criteria and simplification techniques are used for pruning the search space: subsumption, tautology deletion, subsumption resolution and rewriting by ordered unit equalities. The reduction ordering is the Knuth-Bendix Ordering. Substitution tree and code tree indexes are used to implement all major operations on sets of terms, literals and clauses. Internally, Vampire works only with clausal normal form. Problems in the full first-order logic syntax are clausified during preprocessing. Vampire implements many useful preprocessing transformations including the SinE axiom selection algorithm. When a theorem is proved, the system produces a verifiable proof, which validates both the clausification phase and the refutation of the CNF.

- Choices of saturation algorithm:
- Limited Resource Strategy [RV03]
- DISCOUNT loop
- Otter loop
- Instantiation using the Inst-Gen calculus
- MACE-style finite model building with sort inference

- Splitting via AVATAR [Vor14]
- A variety of optional simplifications.
- Parameterized reduction orderings.
- A number of built-in literal selection functions and different modes of comparing literals [HR+16].
- Age-weight ratio that specifies how strongly lighter clauses are preferred for inference selection.
- Set-of-support strategy.
- Ground equational reasoning via congruence closure.
- Addition of theory axioms and evaluation of interpreted functions.
- Use of Z3 with AVATAR to restrict search to ground-theory-consistent splitting branches [RB+16].
- Specialised theory instantiation and unification [RSV18]
- Extensionality resolution with detection of extensionality axioms

University of Manchester, United Kingdom

There are no major changes to the main part of Vampire since 4.4, beyond some new proof search heuristics and new default values for some options. The biggest addition is support for higher-order reasoning via translation to applicative form and combinators, addition of axioms and extra inference rules, and a new form of combinatory unification.

A number of standard redundancy criteria and simplification techniques are used for pruning the search space: subsumption, tautology deletion, subsumption resolution and rewriting by ordered unit equalities. The reduction ordering is the Knuth-Bendix Ordering. Substitution tree and code tree indexes are used to implement all major operations on sets of terms, literals and clauses. Internally, Vampire works only with clausal normal form. Problems in the full first-order logic syntax are clausified during preprocessing. Vampire implements many useful preprocessing transformations including the SinE axiom selection algorithm.

When a theorem is proved, the system produces a verifiable proof, which validates both the clausification phase and the refutation of the CNF. Vampire 4.4 provides a very large number of options for strategy selection. The most important ones are:

- Choices of saturation algorithm:
- Limited Resource Strategy [RV03]
- DISCOUNT loop
- Otter loop
- Instantiation using the Inst-Gen calculus
- MACE-style finite model building with sort inference

- Splitting via AVATAR [Vor14]
- A variety of optional simplifications.
- Parameterized reduction orderings.
- A number of built-in literal selection functions and different modes of comparing literals [HR+16].
- Age-weight ratio that specifies how strongly lighter clauses are preferred for inference selection.
- Set-of-support strategy.
- For theory-reasoning:
- Ground equational reasoning via congruence closure.
- Addition of theory axioms and evaluation of interpreted functions.
- Use of Z3 with AVATAR to restrict search to ground-theory-consistent splitting branches [RB+16].
- Specialised theory instantiation and unification [RSV18].
- Extensionality resolution with detection of extensionality axioms

- For higher-order problems:
- Translation to applicative and combinator form.
- Addition of combinator axioms.
- Addition of shortcut inference rules that encode axioms.
- Proof search heuristics targetting the growth of combinator axioms.
- Restricted combinatory unification [RSV18].

Max-Planck-Institut für Informatik, Germany

http://www.waldmeister.org

Vrije Universiteit Amsterdam, The Netherlands

https://github.com/c-cube/zipperpositionand is entirely free software (BSD-licensed). Zipperposition can also output graphic proofs using graphviz. Some tools to perform type inference and clausification for typed formulas are also provided, as well as a separate library for dealing with terms and formulas [Cru15].