Why is Model Finding Useful?
Checking the consistency of an axiomatization. [Sutcliffe]
Finding the countermodel for a conjecture [Claessen], in particular ...
In fault finding applications, e.g., in software verification, a countermodel for a proof obligation points to the location of the fault. [Sutcliffe]
Finding a solution to a problem that is coded as a model finding problem. [Claessen]
In teaching it is really useful to inspecting outcomes of student's experiments. [Steen]
Saturations provide a very useful ways to study modal logics, description logics, fragments of FOL, any sets of formulas really. If the saturation is ground models can be read off. If they are not ground clauses can be read as rules or properties. What makes clauses hard to read is nested Skolem terms and clauses that are not obviously expressible as first-order formulas. If structural transformation is done as part of (the translation to FOL for non-classical logics and) clausification, and ordered resolution/superposition is used, then the saturation will often contain only flat clauses which do not contain any nested terms. This can't be generally guaranteed but if the right combinations of structural transformation and a refinement of resolution for a large number of decidable logics and solvable fragments the saturation will be flat (and finitely bounded) and thus readable and useful for gaining insight into the problem/the logic and the behaviour of inference. Much of the work in developing resolution decision procedures involves developing combinations of techniques so that the saturation is well-behaved (usually flat). [SH13]
Is there a need for model finding systems that:
Give only a "yes", indicating that there is a model.
In an (industrial) application where models indicate bugs, users would probably get very frustrated. [McCune]
Acceptable, but a model is preferred. [Claessen]
As part of a decision procedure, sat/unsat could be used as a yes/no subroutine. I do use this for my I/O logic reasoner. [Steen]
Give only a "yes, finite", indicating that there is a finite model.
Output a model in some form
In the case of a countermodel for a conjecture, one would like to have some concrete representation of it to see why the theorem cannot be proved. [Claessen]
Sometimes it is very easy to find satisfiability (a saturation) with ordered resolution even if there is a finite model. [Tammet]
Regardless of the cardinalities, applications that use ATP systems to find models typically need an explicit model with a domain and symbol mapping. [Sutcliffe]
Output a finite model in some form
Finite models are used to evaluate other clauses. [McCune]
It's better to require the output of a finite model as this can be easily checked by other systems. [Zhang]
It is not enough to know that there is a solution; one would like to know what the solution is. [Claessen]
If the interpretation does not explicitly represent the mapping for a given symbol, then all possible mappings are implied, i.e., it's a set of interpretations. That might not be useful to users.
Infinite domains are necessary as soon as the formula language contains any numbers on an infinite domain (not arithemetic modulo).
Infinite domains are also necessary for other (non-numeric) applications, e.g., those that involve modeling time.
Types of interpretations
Classical Tarskian interpretations
Herbrand. [Wikipedia]
Explicit mapping
Mapping induced by saturation
Mapping induced by formulae (ala iProver)
*** Herband equality interpretations fit in here
Domain & Mapping [Wikipedia]
Interpretations with a finite domain, and the symbol interpretations. These are called finite interpretations. The finite domain can be:
Explicitly enumerated.
The finite Herbrand Universe of a Herbrand interpretation.
Interpretations with an infinite domain, and the symbol interpretations. These are called infinite interpretations. The infinite domain can be:
Explicitly generated, e.g., Peano arithmetic terms.
Explicitly specified, e.g., the integers.
Algebraic numbers (real closed fields)
The infinite Herbrand Universe of a Herbrand interpretation.
One can explicitly state that it's infinite while leaving open how this is realized, e.g., "in all infinite domains, it holds that ..."
Any others?
Saturations. Saturations induce Herbrand interpretations.
Models that are nearly constant everywhere, as used in the SMT world for model-based quantifier instantiation.
Consistent sets of formulae represent families of interpretations. [Steen]
You can read off a satisfying assignment from a non-closable tableau, right? [Steen]
Any others?
Non-classical Kripke interpretations
Kripke interpretations with a finite number of worlds.
Kripke interpretations with an infinite number of worlds. Infinite worlds are necessary when there are, e.g., in alethic modal logic, an infinite number of possibilities; in temporal logics, R is serial (always has a successor) and non-circular etc., so there have to be infinitely many worlds (points in time). [Steen]
Within each world of a Kripke interpretation there is a classical interpretation, with the options as above.
An enumerated finite domain, and the symbol interpretations.
My experience suggests that one would prefer a finite model over a saturation. [Claessen]
A finite model can be abbreviated in some way, e.g., if a 30-ary predicate is true for all but three cases, it is enough to mention those 3 cases and a default case. A large predicate table can be expressed in terms of a few smaller ones, e.g., p(X,Y) := q(X) & r(Y). [Claessen]
A definition of an infinite domain, and the symbol interpretations.
The domain must be adequate for interpreting all formulae. [Sutcliffe]
I hope it will be OK to specify the interpretation for that subset of an infinite domain that is used, for which the range coincides with the domain. The subset is induced by interpretation of terms, first constants, then inductively by functions.
There are uncountably many interpretations. Whatever the language, it will be possible to represent only a small (negligible) subset of all interpretations.
The only ATP systems I know of that can produce an explicit infinite domain model are FEST, Z3 (Pascal says), and cvc5 (I think!). [Sutcliffe]
A saturation.
A saturation of a set of clauses, created with only logical consequence inferences and simple redundancy, induces the set of Herbrand models of the clauses.
A saturation not containing the empty clause induces at least one Herbrand model of the clauses.
An empty saturation induces all interpretations, all of which are Herbrand models of the clauses.
A saturation induces the same set of Herbrand interpretations as the clauses themselves.
Opinions about saturations.
Hardly a useful artifact. [Sutcliffe]
Saturations are pretty much impossible to interpret explicitly in a way that can be used constructively by users. [Sutcliffe]
A saturation is not a direct representation of a finite model. [Tammet]
A saturation tells you only that models exist, but very little about what they might look like. Take some equational axioms for a group plus a denial of commutativity; the typical saturation gives the complete set of reductions for free groups plus the denial of commutativity, which does help finding an example of a non-commutative group. [McCune]
There are classes of problem (including problems where all models are infinite) in which saturation can tell you everything about the models. [McCune]
A saturated set of clauses at the end doesn't mean much for other systems. [Zhang]
I have never been able to make use of a saturated clause set. [Claessen]
The clauses of a saturation could in principle be used for checking whether some later presented finite part of an infinite model is OK. [Tammet]
In some sense the saturation does not differ very much from the original clause set: the saturation is also just a clause set, and is typically not a fixpoint for other search strategies. [Tammet]
Given a saturation and the system search control, it's sometimes possible to decide if a ground atom is TRUE or FALSE. [Schulz] In the general case you cannot even decide ground atoms. [Tammet]
There have been several attempts to improve the representation (Viennese ATP researchers (Leitsch, Baaz, Fermüller etc.), but the improvements are basically still the fixpoint set of clauses. [Tammet]
I have never read the proof of completeness of superposition but isn't it the case that a saturation allows to build a model? [Fontaine]
In recent work we developed a saturation method for deciding Boolean conjunctive querying and query rewriting for a large class of guarded fragments which produces saturations which can be back-translated in FOL, i.e., the saturation is readable. [ZS23]