Package

at.logic.gapt.provers.prover9

commands

Permalink

package commands

Visibility
  1. Public
  2. All

Type Members

  1. case class Prover9InitCommand(clauses: Iterable[HOLSequent]) extends SetSequentsCommand[OccClause] with Logger with Product with Serializable

    Permalink

    Should translate prover9 justifications into a robinson resolution proof.

    Should translate prover9 justifications into a robinson resolution proof. The justifications are:

    Clause Justifications After the initial stage of the output, each clause in the file has an integer identifier (ID) and a justification that may refer to IDs of other clauses. A justification is a list consisting of one primary step and some number of secondary steps. Most primary steps are inference rules applied to given clauses, and most secondary steps consist of simplification, rewriting, or orienting equalities.

    Many of the types of step refer to positions of literals or terms in the parent clauses. Literals are identified by the characters 'a' (first literal), 'b' (second literal), etc. Terms are identified by the literal identifier followed by a sequence of integers giving the position of the term within the literal. For example, the position 'c,1,3,2' means third literal, first argument, third argument, second argument. Negation signs on literals are not included in the sequence.

    Primary Steps.

    assumption -- input formula. clausify -- from CNF translation of a non-clausal assumption. goal -- input formula. deny -- from CNF translation of the negation of a goal. resolve(59,b,47,c) -- resolve the second literal of clause 59 with the third literal of clause 47. hyper(59, b,47,a, c,38,a) -- hyperresolution; interpret the list as a clause ID followed by a sequence of triples, <literal,clause-ID,literal> the inference is presented as a sequence of binary resolution steps. In the example shown, start with clause 59; then resolve literal b with clause 47 on literal a; with the result of the first step, resolve literal c with clause 38 on literal a. The special case "xx" means resolution with x=x. ur(39, a,48,a, b,88,a, c,87,a, d,86,a) -- unit-resulting resolution; the list is interpreted as in hyperresolution. para(47(a,1),28(a,1,2,2,1)) -- paramodulate from the clause 47 into clause 28 at the positions shown. copy(59) -- copy clause 59. back_rewite(59) -- copy clause 59. back_unit_del(59) -- copy clause 59. new_symbol(59) -- introduce a new constant (see parameter new_constants). factor(59,b,c) -- factor clause 59 by unifying the second and third literals. xx_res(59,b) -- resolve the second literal of clause 59 with x=x. propositional -- not used in sandard proofs. instantiate -- not used in standard proofs. ivy -- not used in standard proofs.

    Secondary Steps (each assumes a working clause, which is either the result of a primary step or a previous secondary step).

    rewrite([38(5,R),47(5),59(6,R)]) -- rewriting (demodulation) with equations 38, 47, then 59; the arguments (5), (5), and (6) identify the positions of the rewritten subterms (in an obscure way), and the argument R indicates that the demodulator is used backward (right-to-left). flip(c) -- the third literal is an equality that has been flipped by the term ordering. This does not necessarily mean that the equality is orientable by the primary term ordering, e.g., KBO. merge(d) -- the fourth literal has been removed because it was identical to a preceding literal. unit_del(b,38) -- the second literal has been removed because it was an instance of the negation clause 38 (which is a unit clause). xx(b) -- the second literal has been removed because it was an instance of x!=x.

Value Members

  1. object InferenceExtractor

    Permalink

Ungrouped