normal form, prenex, disjunctive, conjunctive, form, normal, DNF, CNF, prenex normal form, Skolem normal form, disjunctive normal form, conjunctive normal form, Skolem

Back to title page

Left

Adjust your browser window
In this book, constructive logic is used as a synonym of intuitionistic logic!

Right

5. Normal Forms. Resolution Method

  • 5.1. Prenex normal form
  • 5.2. Conjunctive and disjunctive normal forms
  • 5.3. Skolem normal form
  • 5.4. Clause form
  • 5.5. Resolution method for propositional formulas
  • 5.6. Herbrand's theorem
  • 5.7. Resolution method for predicate formulas
  • In this section, we will try to produce a practical method allowing to prove theorems by using computers. In general, this task is not feasible because of its enormous computational complexity (see Section 6). Still, for problems of a "practical size" (arising, for example, in deductive databases and other artificial intelligence systems, or, trying to formalize real mathematical proofs), such methods are possible and some of them are already successfully implemented.

    Mizar project QED project

    Classical logic only...

    Main Ideas

    If F1, ..., Fn is the set of our assumptions (facts, rules, axioms, hypotheses etc.), does the assertion G follow from this set? One of the well known approaches to proving theorems in mathematics are the so-called refutation proofs (reductio ad absurdum) - proofs by deriving a contradiction: assume ~G, and derive a contradiction. I.e. prove that F1, ..., Fn, ~G is an inconsistent set of assumptions.

    Idea #1: let us prove theorems only in this way. Let us try developing the best possible method of deriving contradictions from inconsistent sets of assumptions. This (at first glance - trivial) decision is one of the most important steps in the whole history - it will allow (see below) conversion of the formulas F1, ..., Fn, ~G into a form that does not contain existential quantifiers. And after this, having universal quantifier only, we may simply drop them all, and continue working with quantifier-free formulas (see below).

    Idea #2: "normalize" assumptions as far as possible.

    The first step (idea #2a) is here reducing to the so-called prenex normal form - moving all the quantifiers to left. For example, the formula

    [(ExB(x) -> ExC(x)) -> ExD(x)] -> ExF(x)

    is equivalent (in the classical logic!) to the following formula in prenex normal form:

    Ax1Ex2Ax3Ex4[[(B(x1) -> C(x2)) ->D(x3)] -> F(x4)].

    (When moving quantifiers to left, some of them are changing from E to A, or from A to E, see Section 5.1.)

    The second step (idea #2b, due to Thoralf Skolem) allows elimination of existential quantifiers. Indeed, Ax1Ex2 means that x2=f(x1), and Ax1Ex2Ax3Ex4 means that x4=g(x1, x3), where f and g are some functions (see Section 5.3). In this way we obtain the so-called Skolem normal form, containing universal quantifiers only:

    Ax1Ax3[[(B(x1) -> C(f(x1))) ->D(x3)] -> F(g(x1, x3))].

    If our formulas contain universal quantifiers only, we may drop these quantifiers (simply by assuming that all free variables are universally quantified):

    [(B(x1) -> C(f(x1))) ->D(x3)] -> F(g(x1, x3)).

    Note that a formula and its Skolem normal form are not equivalent (even in the classical logic!), they are only a kind of "semi-equivalent": a set of formulas is inconsistent, iff so is the set of their Skolem normal forms.

    The third step (idea #2c) - reduction of quantifier-free formulas to the so-called conjunctive normal form (a conjunction of disjunctions of atomic formulas - with or without negations, see Section 5.2). For example, the above formula can be reduced to the following form:

    (~B(x1) v C(f(x1)) v F(g(x1, x3))) & (~D(x3) v F(g(x1, x3))).

    By assuming that a set of formulas is equivalent to their conjunction, we can drop the conjunction(s) obtaining a set of the so-called clauses:

    ~B(x1) v C(f(x1)) v F(g(x1, x3)),

    ~D(x3) v F(g(x1, x3)).

    Each clause is a disjunctions of atomic formulas - with or without negations.

    In this way, instead of our initial set of assumptions F1, ..., Fn, ~G, we can obtain a set of clauses, which is inconsistent, iff so the set F1, ..., Fn, ~G.

    Idea #3 (due to John Alan Robinson, see Section 5.5 and 5.7) - a set of clauses is inconsistent, iff a contradiction can be derived from it by using term substitution and the so-called resolution rule:

    F v C, ~C v G
    ----------------.
    F v G

    ...

    To be continued.

     

    5.1. Prenex Normal Form

    Let us consider an interpretation J of some first order language L, such that the domain DJ contains an infinite set of "objects". Under such interpretation, the "meaning" of formulas containing quantifiers may be more or less non-constructive, or, at least, "constructively difficult".

    For example, the formula AxB(x) will be true, if B(x) will be true for all "objects" x in the (infinite!) set DJ. Thus, it is impossible to verify directly (i.e. "empirically"), is AxB(x) true or not. Saying that AxAy(x+y=y+x) is true under the standard interpretation of first order arithmetic, does not mean that we have verified this fact empirically - by checking x+y=y+x for all pairs of natural numbers x, y. Then, how do we know that AxAy(x+y=y+x) is true? Of course, we either postulated this feature of natural numbers directly (i.e. derived it from "empirical evidence"), or proved it by using some set of axioms (i.e. derived it from other postulates). But, in general, formulas having the form AxB(x), are "constructively difficult".

    The formula AxEyC(x, y) may be even more difficult: it will be true, if for each x in DJ we will be able to find y in DJ such that C(x, y) is true. Thus, thinking constructively, we could say that AxEyC(x, y) is true, only, if there is an algorithm, which, for each x in DJ can find y in DJ such that C(x, y) is true. For example, under the standard interpretation of first order arithmetic, the formula

    AxEy(x<y & y is prime number)

    is true (i.e. "there are infinitely many prime numbers"). How do we know this? This fact has been proved in VI century BC. But the (similarly quantified) formula

    AxEy(x<y & y is prime number & y+2 is prime number),

    i.e. the famous twin prime conjecture, is it true or not? Nobody knows the answer.

    Exercise 5.1.1. Verify that the "meaning" of AxEyAzD(x, y, z) and AxEyAzEuF(x, y, z, u) may be even more non-constructive.

    But how about the formula ExG(x)->EyH(y)? Is it constructively more difficult than AxEyC(x, y), or less? In general, we could prove that ExG(x)->EyH(y) is true, if we had an algorithm, which, for each x in DJ such that G(x) is true, could find y in DI such that G( y) is true, i.e. if AxEy(G(x)->H(y)) would be true. We will establish below, that, in the classical logic, if G does not contain y, and H does not contain x, then the formula ExG(x)->EyH(y) is equivalent to AxEy(G(x)->H(y)). Thus, in general, the formula ExG(x)->EyH(y) is constructively as difficult as is the formula AxEyC(x, y)!

    To generalize this approach to comparing "constructive difficulty" of formulas, the so-called prenex normal forms have been introduced:

    a) If a formula does not contain quantifiers, then it is in the prenex normal form.

    b) If x is any variable, and the formula F is in the prenex normal form, then AxF and ExF also are in the prenex normal form.

    c) (If you wish so,) there are no other formulas in the prenex normal form.

    I.e. a formula is in the prenex normal form, iff it has all its quantifiers gathered in front of a formula that does not contain quantifiers. It appears, that in the classical logic, each formula cane be "reduced" to an appropriate equivalent formula in the prenex normal form. To obtain this normal form, the following lemmas may be used.

    Lemma 5.1.1. If the formula G does not contain x as a free variable, then:

    a) [L1, L2, L5, L12, L14, MP, Gen]: G->AxF(x) <-> Ax(G->F(x)).

    b) [L1, L2, L5, L12-L15, MP, Gen]: ExF(x)->G <-> Ax(F(x)->G).

    c) [L1-L11, L12-L15, MP, Gen]: G->ExF(x) <-> Ex(G->F(x)). More precisely:

    [L1-L11, L12-L15, MP, Gen]: G->ExF(x) -> Ex(G->F(x)). This formula cannot be proved constructively! Why? See Section 4.5. But the converse formula can be proved constructively:

    [L1, L2, L13-L15, MP, Gen]: Ex(G->F(x)) -> (G->ExF(x)).

    d) [L1-L11, L12-L15, MP, Gen]: (AxF(x)->G) <-> Ex(F(x)->G). More precisely:

    [L1-L11, L12-L15, MP, Gen]: (AxF(x)->G) -> Ex(F(x)->G). This formula cannot be proved constructively! Why? See Section 4.5. But the converse formula can be proved constructively:

    [L1, L2, L13-L15, MP, Gen]: Ex(F(x)->G) -> (AxF(x)->G).

    Proof.

    First, let us note that (a)<- is an instance of the axiom L14: Ax(G->F(x))->(G->AxF(x)), and that (b)<- is an instance of the axiom L15.

    Prove (a)-> and (b)-> as the Exercise 5.1.2 below.

    Let us prove (c)<-: Ex(G->F(x))->(G->ExF(x)).

    (1) G->F(x) Hypothesis.
    (2) G Hypothesis.
    (3) F(x) By MP.
    (4) ExF(x) By Axiom L13: F(x)->ExF(x).
    (5) |- (G->F(x))->(G->ExF(x)) By Deduction Theorem 1.
    (6) |- Ax((G->F(x))->(G->ExF(x))) By Gen.
    (7) |- Ex(G->F(x))->(G->ExF(x)) By Axiom L15: Ax(F(x)->G)->(ExF(x)->G), since G->ExF(x) does not contain x as a free variable.

    Let us prove (d)<-: Ex(F(x)->G) ->(AxF(x)->G) .

    (1) F(x)->G Hypothesis.
    (2) AxF(x) Hypothesis.
    (3) F(x) By Axiom L12: AxF(x)->F(x).
    (4) G By MP.
    (5) |- (F(x)->G)->(AxF(x)->G) By Deduction Theorem 1.
    (6) |- Ax((F(x)->G)->(AxF(x)->G)) By Gen.
    (7) |- Ex(+F(x)->G) ->(AxF(x)->G) By Axiom L15: Ax(F(x)->G)->(ExF(x)->G), since AxF(x)->G does not contain x as a free variable.

    Now, let us prove (c)->: (G->ExF(x)) -> Ex(G->F(x)) in the classical logic (a constructive proof is impossible, see Section 4.5).

      First, let us prove that: |- ~G -> ((G->ExF(x))->Ex(G->F(x)))
    (1) |- ~G->(G->F(x)) Axiom L10.
    (2) |- (G->F(x))->Ex(G->F(x)) Axiom L13: F(x)->ExF(x).
    (3) |- ~G->Ex(G->F(x)) From (1) and (2).
    (4) |- ~G -> ((G->ExF(x)) -> Ex(G->F(x))) By Axiom L1: B->(C->B).
      Now, let us prove also that: |- G -> ((G->ExF(x))->Ex(G->F(x)))
    (5) G Hypothesis.
    (6) G->ExF(x) Hypothesis.
    (7) ExF(x) From (5) and (6).
    (8) F(x)->(G->F(x)) Axiom L1: B->(C->B).
    (9) Ax(F(x)->(G->F(x))) By Gen.
    (10) ExF(x)->Ex(G->F(x)) By Theorem 3.1.1(b), [L1, L2, L12-L15, MP, Gen] |- Ax(B->C)->(ExB->ExC).
    (11) Ex(G->F(x)) From (7) and (10).
    (12) |- G -> ((G->ExF(x))-> Ex(G->F(x))) By Deduction Theorem 2 (x is not a free variable in G and G->ExF(x).
    (13) |- Gv~G -> ((G->ExF(x))-> Ex(G->F(x))) From (4) and (12), by Axiom L8. The total is [L1, L2, L8, L10, L12-L15, MP, Gen]
    (14) |- (G->ExF(x)-> Ex(G->F(x)) By Axiom L11: Gv~G.

    Finally, let us prove (d)->: (AxF(x)->G) -> Ex(F(x)->G) in the classical logic(a constructive proof is impossible, see Section 4.5). Let us denote this formula by H.

      First, let us prove that: |- AxF(x)->H
    (1) AxF(x) Hypothesis.
    (2) AxF(x)->G Hypothesis.
    (3) G From (1) and (2).
    (4) F(x)->G By Axiom L1: B->(C->B).
    (5) |- Ex(F(x)->G) By Axiom L13: F(x)->ExF(x).
    (6) |- AxF(x) ->H By Deduction Theorem 2.
      Now, let us prove also that |- Ex~F(x)->H
    (5) ~F(x) Hypothesis.
    (6) ~F(x)->(F(x)->G) Axiom L10.
    (7) F(x)->G From (5) and (6).
    (8) Ex(F(x)->G) By Axiom L13: F(x)->ExF(x).
    (9) (AxF(x)->G) -> Ex(F(x)->G) By Axiom L1: B->(C->B).
    (10) |- ~F(x)->H By Deduction Theorem 2.
    (11) |- Ex~F(x)->H By Gen and Axiom L15: Ax(~F(x)->H)-> (Ex~F(x)->H).
    (12) |- ~AxF(x)->H By Section 3.2, III-4. [L1-L11, L13, L14, MP, Gen]: |- ~AxF(x)->Ex~F(x). Axiom L11 is used here!
    (13) |- AxF(x) v ~AxF(x) -> H From (4) and (12), by Axiom L8.
    (13) |- H By Axiom L11: AxF(x) v ~AxF(x)

    Q.E.D.

    Exercise 5.1.2. a) Prove (a)-> of Lemma 5.1.1, [L1, L2, L5, L12, L14, MP, Gen]: (G->AxF(x)) -> Ax(G->F(x)).

    b) Prove (b)-> of Lemma 5.1.1, [L1, L2, L5, L12-L15, MP, Gen]: (ExF(x)->G) -> Ax(F(x)->G).

    Lemma 5.1.2. If the formula G does not contain x as a free variable, then

    a) [L1-L5, L12-L15, MP, Gen]: ExF(x)&G <-> Ex(F(x)&G).

    b) [L1-L5, L12, L14, MP, Gen]: AxF(x)&G<->Ax(F(x)&G).

    c) [L1, L2, L5, L6-L8, L12-L15, MP, Gen]: ExF(x)vG<->Ex(F(x)vG).

    d) [L1-L11, L12, L14, MP, Gen]: AxF(x)vG <-> Ax(F(x)vG). More precisely:

    [L1, L2, L5, L6-L8, L12, L14, MP, Gen]: AxF(x)vG -> Ax(F(x)vG), i.e. this part of the equivalence can be proved constructively. But,

    [L1-L11, L12, L14, MP, Gen]: Ax(F(x)vG) -> AxF(x)vG. This formula cannot be proved constructively! Why? See Section 4.5.

    Proof.

    Prove (a, b, c) as the Exercise 5.1.3 below.

    Let us prove (d)->: AxF(x)vG -> Ax(F(x)vG).

    (1) |- F(x)->F(x)vG Axiom L6.
    (2) |- Ax(F(x)->F(x)vG) By Gen.
    (3) |- Ax(B->C)->(AxB->AxC) Theorem 3.1.1(a) [L1, L2, L12, L14, MP, Gen].
    (4) |- AxF(x)->Ax(F(x)vG) From (2) and (3).
    (5) |- G->F(x)vG Axiom L7.
    (6) |- Ax(G->F(x)vG) By Gen.
    (7) |- G->Ax(F(x)vG) By Axiom L14.
    (8) |- AxF(x)vG->Ax(F(x)vG) From (4) and (7), by Axiom L8.

    Finally, let us prove (d)<-: Ax(F(x)vG) -> AxF(x)vG in the classical logic (a constructive proof is impossible, see Section 4.5).

    (1) Ax(F(x)vG) Hypothesis.
    (2) F(x)vG By Axiom L12.
    (3) GvF(x) From (2).
    (4) ~G Hypothesis.
    (4) F(x) By Theorem 2.5.1(b) [L1, L2, L8, L10, MP]: |- AvB->(~A->B)
    (5) AxF(x) By Gen.
    (6) AxF(x)vG By Axiom L6.
    (7) |- ~G -> (Ax(F(x)vG)->AxF(x)vG) By Deduction Theorem 2 (x is not free variable in Ax(F(x)vG)).
    (8) |-G->AxF(x)vG Axiom L7.
    (9) |-G -> (Ax(F(x)vG)->AxF(x)vG) By Axiom L1: B->(C->B).
    (10) |-Gv~G->(Ax(F(x)vG)->AxF(x)vG) From (7) and (9), by Axiom L8.
    (11) |- Ax(F(x)vG)->AxF(x)vG By Axiom L11: Gv~G.

    Q.E.D

    Exercise 5.1.3. Prove Lemma 5.1.2(a, b, c).

    .Lemma 5.1.3. a) [L1-L10, L12-L15, MP, Gen]: ~ExF(x) <-> Ax~F(x).

    b) [L1-L11, L12-L15, MP, Gen]: ~AxF(x) <-> Ex~F(x). More precisely:

    [L1-L11, L13, L14, MP, Gen]: ~AxF(x) -> Ex~F(x). This formula cannot be proved constructively! Why? See Section 4.5. But,

    [L1-L10, L13, L14, MP, Gen]: Ex~F(x) -> ~AxF(x).

    Proof.

    a) See Section 3.2, Group IV.

    b)->. This is exactly Section 3.2, III-4.

    b)<-. See Section 3.2, Group III.

    Q.E.D.

    Let us recall that a formula is in the prenex normal form, iff it has all its quantifiers gathered in front of a formula that does not contain quantifiers.

    Theorem 5.1.4. (Author?) In the classical logic, each formula is equivalent to an appropriate formula in the prenex normal form. More precisely, if F is a formula, then, following a simple algorithm, a formula F' can be constructed such that: a) F' is in a prenex normal form, b) F' has the same free variables as F, c) [L1-L11, L12-L15, MP, Gen]: F<->F'.

    Proof. Let us start by an example:

    ExG(x)->EyH(y).

    If H did not contain x as a free variable, then, by Lemma 5.1.1(b): ExF(x)->G <-> Ax(F(x)->G), i.e. this formula would be equivalent to Ax(G(x)->EyH(y)). Now, let us consider the sub-formula G(x)->EyH(y). If G did not contain y as a free variable, then, by Lemma 5.1.1(c): G->ExF(x) <-> Ex(G->F(x)), the sub-formula would be equivalent to Ey(G(x)->H(y)). Hence, by Replacement Theorem 2, Ax(G(x)->EyH(y)) would be equivalent to AxEy(G(x)->H(y)).

    But, if H would contain x as a free variable, and/or G would contain y as a free variable? Then our "shifting quantifiers up" would be wrong - the formula AxEy(G(x)->H(y)) would not be equivalent to ExG(x)->EyH(y).

    To avoid this problem, let us use Replacement Theorem 3, which says that the meaning of a formula does not depend on the names of bound variables used in it. Thus, as the first step, in ExG(x), let us replace x by another variable letter x1 that does not appear neither in G, nor in H. Then, by Replacement Theorem 3, ExG(x) is equivalent to Ex1G(x1), and by Replacement Theorem 2, ExG(x)->EyH(y) is equivalent to Ex1G(x1)->EyH(y). Now, Ax1(G(x1)->EyH(y)) is really equivalent to Ex1G(x1)->EyH(y). As the next step, in EyH(y), let us replace y by another variable letter y1 that does not appear neither in G, nor in H. Then, by Replacement Theorem 3, EyH(y) is equivalent to Ey1H(y1), and by Replacement Theorem 2, G(x1)->Ey1H(y1) is equivalent to Ey1(G(x1)->H(y1)). And, finally, ExG(x)->EyH(y) is equivalent to Ax1Ey1(G(x1)->H(y1)).

    Now, we can start the general proof. In a formula F, let us find the leftmost quantifier having a propositional connective over it. If such a quantifier does not exist, the formula is in the prenex normal form. If such a quantifier exists, then F is in one of the following forms:

    QqQq...Qq(...(~QxG)...), or QqQq...Qq(...(QxGooH)...), or QqQq...Qq(...(GooQxH)...),

    where QqQq...Qq are the quantifiers "already in prefix", Q is the quantifier in question, and oo is the propositional connective standing directly over Q.

    In the first case, by Lemma 5.1.3, ~QxG is equivalent to Q'x~G, where Q' is the quantifier opposite to Q. By Replacement Theorem 2, QqQq...Qq(...(~QxG)...) is then equivalent to QqQq...Qq(...(Q'x~G)...), i.e. Q' has now one propositional connective less over it ( (than had Q).

    In the second case, as the first step, in QxG, let us replace x by another variable letter x1 that does not appear in the entire formula F at all. Then, by Replacement Theorem 3, QxG is equivalent to Qx1G1, and by Replacement Theorem 2, QqQq...Qq(...(QxGooH)...) is equivalent to QqQq...Qq(...(Qx1G1ooH)...). Now, we can apply the appropriate case of Lemma 5.1.1 or Lemma 5.1.2, obtaining that Qx1G1ooH is equivalent to Q'x1(G1ooH), where Q' is the quantifier determined by the lemma applied. Then , by Replacement Theorem 2, QqQq...Qq(...(Qx1G1ooH)...) is equivalent to QqQq...Qq(...(Q'x1(G1ooH))...), i.e. Q' has now one propositional connective less over it (than had Q).

    In the third case, the argument is similar.

    By iterating this operation a finite number of times, we arrive at a formula F' which is in the prenex normal form, and which is (in the classical logic) equivalent to F. Q.E.D.

    Note. Most formulas admit many different prenex normal forms. For example, the above formula ExG(x)->EyH(y) is equivalent not only to Ax1Ey1(G(x1)->H(y1)), but also to Ey1Ax1(G(x1)->H(y1)) (verify).

    As an example, let us obtain a prenex normal form of the following formula:

    ExB(x) v AxC(x) -> AxD(x) & (~AxF(x)).

    Assign unique names to bound variables: Ex1B(x1) v Ax2C(x2) -> Ax3D(x3) & (~Ax4F(x4)).

    Process disjunction: Ex1Ax2(B(x1) v C(x2)) -> Ax3D(x3) & (~Ax4F(x4)).

    Process negation (A-E): Ex1Ax2(B(x1) v C(x2)) -> Ax3D(x3) & Ex4~F(x4))

    Process conjunction: Ex1Ax2(B(x1) v C(x2)) -> Ax3Ex4(D(x3) & ~F(x4)).

    Process implication premise: (E-A, A-E): Ax1Ex2( B(x1) v C(x2) -> Ax3Ex4(D(x3) & ~F(x4)).

    Process implication consequent: Ax1Ex2Ax3Ex4( B(x1) v C(x2) -> D(x3) & ~F(x4)).

    The last two steps could be performed in the reverse order as well.

    Exercise 5.1.4. Transform each of the following formulas into a prenex normal form. Write down every single step of the process. (Hint: the algorithm is explained in the proof of Theorem 5.1.4.)

    a) ExB(x)->(ExC(x)->ExD(x)),

    b) AxEyB(x, y) & ExC(x) -> AyExD(x, y),

    c) ExB(x, y, z) -> AxC(x, y) v EyD(y, z),

    d) AxB(x) -> (AxC(x) -> (AxD(x) -> AxF(x))),

    e) ((ExB(x) -> ExC(x)) -> ExD(x)) -> ExF(x).

    Note. From a programmer's point of view, prenex normal forms are, in a sense, a crazy invention. In computer programming, you always try to reduce loop bodies, not to extend them as much as possible!

    Exercise 5.1.5. We may use reduction to prenex normal forms in proofs. More precisely, let us try extending the classical logic by introducing of the following additional inference rule (let us call it PNF-rule): given a formula F, replace it by some its prenex normal form F'. Verify, that, in fact, this rule does not extend the classical logic, i.e. if there is a proof of F1, F2, ..., Fn |- G in [L1-L15, MP, Gen, PNF-rule], then there is a proof of the same in [L1-L15, MP, Gen]. (In some other texts, such rules are called admissible. Thus, the PNF-rule is admissible in the classical logic.)

     

    5.2. Conjunctive and Disjunctive Normal Forms

    Let us continue the "normalization" process that we started in Section 5.1 by reducing formulas to their prenex normal forms, where all quantifiers are gathered in front of a formula that does not contain quantifiers. How could we further "normalize" this "formula that does not contain quantifiers"?

    Step 1: eliminate equivalence

    First of all, we can eliminate all equivalence connectives because B<->C is only a shortcut for (B->C)&(C->B). Why should we? Because, proving of B<->C includes proving of B->C and proving of C->B. Using the shortcut simplifies the appearance of the formula, not its proof.

    Step 2: eliminate implication

    After this, our formula will contain only implication, conjunction, disjunction and negation connectives. As the next step, we could try to eliminate one (or two?) of these connectives. The classical logic allows this. For example, by Theorem 2.6.4(b),

    [L1-L11, MP]: |- (A->B)<->~AvB.

    By using this equivalence, we can eliminate implication connectives. For example, the formula B->(C->D) is equivalent (in the classical logic only!) to ~Bv(~CvD).

    But, instead of implications, we could try eliminating disjunctions or conjunctions as well. Indeed,

    Exercise 5.2.1. In the classical logic [L1-L11, MP], prove the following:

    a) |- (A->B)<->~(A&~B).

    b) |- (AvB)<->(~A->B).

    c) |- (AvB)<->~(~A&~B).

    d) |- (A&B)<->~(A->~B).

    e) |- (A&B)<->~(~Av~B).

    (For smart students) Determine, which parts of these equivalencies can be proved in the constructive logic [L1-L10, MP]. End of Exercise 5.2.1.

    By using these results, we could eliminate from our formulas any one (or any two) of the three connectives - implication, conjunction, or disjunction.

    However, the best decision would be eliminating only implications. Why? Because conjunction and disjunction are associative and commutative operations - and very much like addition (disjunction) and multiplication (conjunction)! For example, after reducing the formula B->(C->B) to ~Bv(~CvB), we can further transform it to ~Bv~CvB and Bv~BvC - and conclude that it is "true and provable" (no surprise, it is Axiom L1).

    Step 3: move negations down to atoms

    Thus, after Step 2, our formula contains only conjunction, disjunction and negation connectives. Now, let us recall the two de Morgan laws:

    Theorem 2.6.3, [L1-L11, MP]: |- ~(A&B) <-> ~Av~B.
    Theorem 2.4.10(b), [L1-L9, MP] |- ~(AvB) <-> ~A&~B.

    By using these equivalencies, we can shift negations down - until the atoms of the formula. For example, let us transform the formula ((A->B)->C)->(C->B):

    ((A->B)->C)->(C->B)
    ~((A->B)->C)v(C->B)
    ~((A->B)->C)v(~CvB)
    ~(~(A->B)vC)v(~CvB)
    ~(~(~AvB)vC)v(~CvB) - after Step 2
    (~~(~AvB)&~C)v(~CvB)
    (~(~~A&~B)&~C)v(~CvB)
    ((~~~Av~~B)&~C)v(~CvB)

    Now, let us recall the Double Negation Law:

    Theorem 2.6.1, [L1-L11, MP]: |- ~~A <-> A.

    It allows dropping the ugly excessive negations - we can replace ~~~A by ~A and ~~B - by B:

    ((~AvB)&~C)v(~CvB)

    Step 4: algebra

    After Step 3, our formula is built up by using:

    a) atoms,

    b) atoms preceded by a negation,

    c) conjunction and disjunction connectives.

    Conjunction and disjunction are associative and commutative operations. By the behavior of "truth values", conjunction is a kind of multiplication (0&0=0, 0&1=1&0=0, 1&1=1), and disjunction - a kind of addition (0v0=0, 0v1=1v0=1, 1v1=1). However, for these operations two distributive laws are valid (Theorem 2.3.1) - conjunction is distributive to disjunction, and disjunction is distributive to conjunction:

    [L1-L8, MP]: |- (A&B)vC<->(AvC)&(BvC).
    [L1-L8, MP]: |- (AvB)&C<->(A&C)v(B&C).

    Thus, both of the two decisions could be justified:

    1) (Our first "algebra") Treat conjunction as multiplication and disjunction - as addition (+). Then the above formula ((~AvB)&~C)v(~CvB) takes the form ((A'+B)C')+(C'+B) (let us replace ~A by a "more algebraic" A'). After this, the usual algebraic transformations yield the formula A'C'+BC'+C'+B.

    2) (Our second "algebra") Treat conjunction as addition (+) and disjunction - as multiplication. Then the above formula ((~AvB)&~C)v(~CvB) takes the form ((A'B)+C')(C'B). After this, the usual algebraic transformations yield the formula A'BBC'+BC'C'.

    Additional rules can be applied in these "algebras".

    First rule - conjunction and disjunction are idempotent operations:

    [L1- L5, MP]: |- A&A<->A (see Section 2.2).
    [L1, L2, L5, L6-L8, MP]: |- AvA<->A (Exercise 2.3.1(c)).

    Thus, in both of our "algebras": A+A = AA = A.

    Second rule - A&~A (i.e. "false") is a kind of "zero" in the first "algebra", and a kind of "one" - in the second "algebra":

    [L1-L10, MP]: |- Bv(A&~A) <-> B (Exercise 2.5.1(a)).
    [L1-L10, MP]: |- ((A&~A)&B)vC <-> C (Exercise 2.5.1(b)).

    Indeed, in the first "algebra", these formulas mean B+AA' = B and AA'B+C = C, i.e. we may think that AA'=0, B0=0, C+0=C. In the second "algebra", these formulas mean B(A+A') = B and (A+A'+B)C = C, i.e. we may think that A+A'=1, B1=B, C+1=1.

    Third rule - Av~A (i.e. "true") is a kind of "one" in the first "algebra", and a kind of "zero" - in the second "algebra":

    [L1-L11, MP]: |- B&(Av~A) <-> B (Exercise 2.6.2(a)).
    [L1-L11, MP]: |-( (Av~A)vB)&C <-> C (Exercise 2.6.2(b)).

    Indeed, in the first "algebra", these formulas mean B(A+A') = B and (A+A'+B)C = C, i.e. we may think that A+A'=1, C1=1, B+1=1. In the second "algebra". these formulas mean B+AA' = B and AA'B+C = C, i.e. we may think that AA'=0, B0=0, C+0=C.

    So, let us continue:

    1) (The first "algebra") Nothing new for the formula A'C'+BC'+C'+B, or, if we return to logic: (~A&~C)v(B&~C)v(~C)v(B). Such disjunctions consisting of conjunctions are called disjunctive normal forms (DNFs). In a DNF, each conjunction contains each atom no more than once - either without negation, or with it. Indeed, if it contains some atom X twice, then: a) replace XX by X, b) replace X'X' by X', c) replace XX' by 0 and drop the entire conjunction from the expression. In this way, for some formulas, we may obtain an empty DNF. Of course, such formulas take only false values ("false" is "zero" in the first "algebra").

    2) (The second "algebra") The formula A'BBC'+BC'C' is equivalent to A'BC'+BC', or, if we return to logic: (~AvBv~C)&(Bv~C). Such conjunctions consisting of disjunctions are called conjunctive normal forms (CNFs). In a CNF, each disjunction contains each atom no more than once - either without negation, or with it. Indeed, if it contains some atom X twice, then: a) replace XX by X, b) replace X'X' by X', c) replace XX' by 0 and drop the entire disjunction from the expression. In this way, for some formulas, we may obtain an empty CNF. Of course, such formulas take only true values ("true" is "zero" in the second "algebra").

    Thus, we have proved the following

    Theorem 5.2.1. (Authors?) In the classical logic, every propositional formula can be reduced to DNF and to CNF. More precisely, assume, the formula F has been built of formulas B1, B2, ..., Bn by using propositional connectives only. Then:

    a) There is a formula F1, which is in a (possibly empty) disjunctive normal form over B1, B2, ..., Bn such that [L1-L11, MP]: |- F <-> F1.

    b) There is a formula F2, which is in a (possibly empty) conjunctive normal form over B1, B2, ..., Bn such that [L1-L11, MP]: |- F <-> F2.

    Exercise 5.2.2. a) Build DNFs and CNFs of the following formulas. (Hint: the algorithm is explained in the above Steps 1-4.)

    ~(A&B->C),
    (A->B)<->(C->D),
    AvB<->CvD,
    A&B<->C&D.

    b) Build DNFs and CNFs of the following formulas:

    ~(Av~A),
    ((A->B)->A)->A,
    (A->B)->((~A->B)->B).

    Exercise 5.2.3. a) Verify that, under the classical truth tables, a formula takes only false values, iff: a1) in the first "algebra", it can be reduced to 0, i.e. to Bi&~Bi (for some i), a2) in the second "algebra", it can be reduced to 1, i.e. to Bi&~Bi (for some i).

    b) Verify that, under the classical truth tables, a formula takes only true values, iff: b1) in the first "algebra", it can be reduced to 1, i.e. to Biv ~Bi (for some i), b2) in the second "algebra", it can be reduced to 0, i.e. to Biv ~Bi (for some i).

    Appendix. Complexity Considerations (do not read)

    Assume, the formula F has been built of formulas B1, B2, ..., Bn by using propositional connectives only. We wish to determine, takes F only true values, or not. How many time may this task require?

    You could take, one by one, all the possible 2n combinations of n atomic truth values: 0...00, 0...01, 0...10, 0...11, ..., 1...11. And compute the truth value of F for each of these combinations. If you obtain a false value, print the corresponding combination as the negative result. Otherwise, you will spend at least 2n units of time to establish that F takes only true values (at least one unit per each evaluation of F). Thus, the straightforward algorithm takes "exponential time".

    Could reducing to DNFs (or CNFs) make this task easier?

    As you established in Exercise 5.2.3(b), a formula takes only true values, iff, in the first "algebra", it can be reduced to 1, i.e. to Biv ~Bi (for some i). How many time may this reduction process require?

    Assume, the formula F contains: k0 occurrences of atoms, k1 negations, k2 conjunctions, k3 disjunctions and k4 implications (verify that k0 <= k2+k3+k4+1).

    In Step 2, we eliminate implications by replacing A->B by ~AvB. Thus, after this step, our formula will contain k1+k4 negations, k2 conjunctions and k3+k4 disjunctions (and the same number k0 of occurrences of atoms).

    In Step 3, we move negations down to atoms by replacing: ~(A&B) - by ~Av~B, and ~(AvB) - by ~A&~B, and finally, we reduce negations by replacing ~~A by A. Thus, after this step, we can have a somewhat larger number of negations, but the total number of conjunctions and disjunction will remain the same - k2+k3+k4. The number of occurrences of atoms also will remain the same - k0.

    Suppose, in Step 4, we wish to use our two "algebras" to obtain a DNF or CNF (let's say simply NF). I.e. we will always replace (A+B)C by AC+BC. Each of such operations not only adds one more conjunction (in the first "algebra", or disjunction - in the second "algebra") - it is doubling the entire formula C! Which size will we have at the end? If the formulas F1 and F2 are already in the NF containing d1 and d2 members accordingly, then:

    a) For the formula F1+F2, we can obtain a NF containing d1+d2 members. For example,

    (C1+C2+C3+C4)+(C5+C6+C7) = C1+C2+C3+C4+C5+C6+C7.

    b) For the formula F1F2, we can obtain a NF containing d1d2 members (each member of F1 is combined with each member of F2). For example,

    (C1+C2+C3)(C4+C5) = C1C4+C2C4+C3C4+C1C5+C2C5+C3C5.

    So, let us denote by D(m) the "worst case" size (number of disjunction members) of the NF obtained by Steps 2-4 from a formula containing m propositional connectives (conjunctions, disjunctions and implications). As e established above, after Step 3, the formula will contain m conjunctions and disjunctions.

    Of course, D(0) = 1 - NF of the formula X1 consists of 1 member (X1 is an atom, or negation of an atom).

    Of course, D(1) = 2 - NF of the formula X1X2 consists of 1 member, and NF of the formula X1+X2 - of 2 members. The worst case is X1+X2.

    Now, let us calculate D(2). A formula containing 2 connectives, is a conjunction or disjunction of two formulas - one of them contains 0 connectives, the other - 1 connective. In this way we can obtain NFs consisting of D(0)+D(1) = 3 and D(0)D(1) = 2 members. Hence, D(2) = 3. The worst case is X1+X2+X3.

    The next step: D(3) is the maximum of

    D(0)+D(2) = 4, D(0)D(2) = 3,
    D(1)+D(1) = 4, D(1)D(1) = 4,

    i.e. D(3) = 4. The worst cases are (X1+X2)(X3+X4) and X1+X2+X3+X4.

    D(4) is the maximum of

    D(0)+D(3) = 5, D(0)D(3) = 4,
    D(1)+D(2) = 5, D(1)D(2) = 6,

    i.e. D(4) = 6. The worst case is (X1+X2+X3)(X4+X5).

    D(5) is the maximum of

    D(0)+D(4) = 7, D(0)D(4) = 6,
    D(1)+D(3) = 6, D(1)D(3) = 8,
    D(2)+D(2) = 6, D(2)D(2) = 9,

    i.e. D(5) = 9. The worst case is (X1+X2+X3)(X4+X5+X6).

    Exercise 5.2.4. Verify that:
    - D(6) = 12
    - the worst case are (X1+X2+X3)(X4+X5)(X6+X7) and (X1+X2+X3)(X4+X5+X6+X7),
    - D(7) = 18
    - the worst case is (X1+X2+X3)(X4+X5+X6)(X7+X8),
    - D(8) = 27 - the worst case is (X1+X2+X3)(X4+X5+X6)(X7+X8+X9),
    - D(9) = 36 - the worst cases are (X1+X2+X3)(X4+X5+X6)(X7+X8)(X9+X10) and (X1+X2+X3)(X4+X5+X6)(X7+X8+X9+X10),
    - D(10) = 54- the worst case is (X1+X2+X3)(X4+X5+X6)(X7+X8+X9)(X10+X11),
    - D(11) = 81- the worst case is (X1+X2+X3)(X4+X5+X6)(X7+X8+X9)(X10+X11+X12).

    This should be enough to propose a formula allowing to calculate D(m), Indeed,

    m D(m)    
    0 1   1
    1 2   2*30
    2 3 31 3*30
    3 4   4*30
    4 6   2*31
    5 9 32 3*31
    6 12   4*31
    7 18   2*32
    8 27 33 3*32
    9 36   4*32
    10 54   2*33
    11 81 34 3*33

    Theorem 5.2.2. If a formula has been built by using m propositional connectives (conjunctions, disjunctions and implications) and any number of negations and atoms, then, after Step4 of the above method, it will be in a DNF (or CNF) consisting of no more than D(m) disjunction (or conjunction) members, where D(m) < 2*3m/3 = 2*2m*0.52832.... More precisely, D(0) = 1, and for any k>=0:

    - D(3k+1) = 2*3k - the worst case is (X+X+X)k(X+X),
    - D(3k+2) = 3*3k - the worst case is (X+X+X)k(X+X+X),
    - D(3k+3) = 4*3k - the worst cases are (X+X+X)k(X+X)(X+X) and (X+X+X)k(X+X+X+X).

    Or, for any k>=0 and 1<=r<=3: D(3k+r) = (r+1)*3k.

    Proof. By induction: let us assume, that m>=3, and that the formula is true for all numbers less than m, and let us verify it for m.

    Let m = x +y+1.

    If x=0 and y=0, then D(0)+D(0) = 2 = D(1), and D(0)*D(0) = 1 < D(1).

    If x=0 and y>0, then y = 3v+q and and D(y) = (q+1)*3v .

    q 1 2 3
      m=y+1=3v+2
    D(0)+D(y)=1+2*3v<=3*3v
    D(0)D(y)=2*3v<3*3v
    Q.E.D.
    m=y+1=3v+3
    D(0)+D(y)=1+3*3v<=4*3v
    D(0)D(y)=3*3v<4*3v
    Q.E.D.
    m=y+1=3v+4 = 3(v+1)+1
    D(0)+D(y)=1+4*3v<2*3v+1
    D(0)D(y)=4*3v<2*3v+1
    Q.E.D.

    If x>0 and y>0, then x = 3u+p and y = 3v+q, and, D(x) = (p+1)*3u and D(y) = (q+1)*3v. Since D(x)>=2 and D(y)>=2, we may use the fact that D(x)+D(y)<=D(x)D(y) (verify!), i.e. we may ignore cases D(x)+D(y).

    p \ q 1 2 3
    1 p+q+1=3
    m=3(u+v)+3
    (p+1)(q+1)=4
    D(x)D(y)=4*3u+v
    The worst case
    Q.E.D.
    p+q+1=4
    m=3(u+v+1)+1
    (p+1)(q+1)=6
    D(x)D(y)=6*3u+v=2*3u+v+1
    The worst case
    Q.E.D.
    p+q+1=5
    m=3(u+v+1)+2
    (p+1)(q+1)=8
    D(x)D(y)=8*3u+v<3*3u+v+1
    Q.E.D.
    2 Same as (1, 2) p+q+1=5
    m=3(u+v+1)+2
    (p+1)(q+1)=9
    D(x)D(y)=9*3u+v=3*3u+v+1
    The worst case
    Q.E.D.
    p+q+1=6
    m=3(u+v+1)+3
    (p+1)(q+1)=12
    D(x)D(y)=12*3u+v=4*3u+v+1
    The worst case
    Q.E.D.
    3 Same as (1, 3) Same as (2, 3) p+q+1=7
    m=3(u+v+2)+1
    (p+1)(q+1)=16
    D(x)D(y)=16*3u+v<2*3u+v+2
    Q.E.D.

    To complete the proof, we must verify that for all m: D(m) < 2*3m/3 = 2*2m*0.52832.... Indeed:

    1) m = 3k+1: D(m) = 2*3k = 2*(3-1/3)*3(3k+1)/3 < 2*3m/3.

    2) m = 3k+2: D(m) = 3*3k = 3*(3-2/3)*3(3k+2)/3 < 2*3m/3.

    3) m = 3k+3: D(m) = 4*3k = 4*(3-1)*3(3k+3)/3 < 2*3m/3.

    Q.E.D.

     

    To be continued.

     

    5.3. Skolem Normal Form

    It was first introduced by Thoralf Skolem (1887-1963) in 1928:

    Th.Skolem. Ueber die mathematische Logik. "Norsk matematisk tidsskrift", 1928, vol.10, pp.125-142 (see online comments: Clarification: Skolem by Stanley N.Burris, and Thoralf Skolem: Pioneer of Computational Logic by Herman R.Jervell).

    The first very important idea was proposed by Skolem already in 1920:

    Th. Skolem. Logisch-kombinatorische Untersuchungen über die Erfüllbarkeit und Beweisbarkeit mathematischen Sätze nebst einem Theoreme über dichte Mengen. Videnskabsakademiet i Kristiania, Skrifter I, No. 4, 1920, pp. 1-36

    Namely, further "normalization" becomes possible, if we drop the requirement that the "normal form" must be equivalent to the initial formula, and replace it by the requirement: "normal form" must be logically valid; iff the initial formula is logically valid. It appears, that in this way we can "reduce" any closed formula to a closed formula containing only one kind of quantifiers - Ex1Ex2...Exn H(x1, x2, ..., xn), where H does not contain quantifiers at all (see Theorem 5.3.4 below).

    Still, in his original formulation, instead of logical validity, Skolem was interested in a more technical notion - satisfiability. Let us recall that, in a first order language L, a formula F is called satisfiable, iff there is an interpretation of the language L such that F is true for some values of its free variables.

    Skolem' s second main idea (proposed in his 1928 paper): allow introduction of new constant and function letters. It can be demonstrated on the following example: how could we "simplify" the formula AxEy F(x, y)? It asserts that for each x there is y such that F(x, y) is true. Thus, it asserts, that there is a function g, which selects for each value of x a value of y such that F(x, y) is true. Thus, in a sense, AxEy F(x, y) is "equivalent" to Ax F(x, g(x)). In which sense? In the sense that

    AxEy F(x, y) is satisfiable, iff Ax F(x, g(x)) is satisfiable.

    Indeed,

    1. If AxEy F(x, y) is satisfiable, then there is an interpretation J where it is true, i.e. for each value of x there is a value of y such that F(x, y) is true. This allows us to define the following interpretation of the function letter g: g(x) is one of y-s such that F(x, y) is true in J. If we extend J by adding this interpretation of the letter g, we obtain an interpretation J', where Ax F(x, g(x)) is true, i.e. this formula is satisfiable.

    2. If Ax F(x, g(x)) is satisfiable, then there is an interpretation J where it is true, i.e. for each value of x the formula F(x, g(x)) is true. Hence, in this interpretation, for each value of x there is a value of y (namely, g(x)) such that F(x, y) is true in J. Thus, AxEy F(x, y) is true in J, i.e. this formula is satisfiable.

    Note. In the first part of this proof, to define the function g, we need, in general, the Axiom of Choice. Indeed, if there is a non-empty set Yx of y-s such that F(x, y) is true, to define g(x), we must choose a single element of Yx. If we know nothing else about the interpretation J, we are forced to use the Axiom of Choice. But, if we know that the interpretation J has a countable domain, then we can define g(x) as the "least" y from the set Yx. In this way we can avoid using the Axiom of Choice.

    The third idea is even simpler: the formula Ex F(x) asserts that there is x such that F(x) is true, so, let us denote by (a constant letter) c one of these x-s, thus obtaining F(c) as a "normal form" of Ex F(x). Of course (verify),

    Ex F(x) is satisfiable, iff F(c) is satisfiable.

    These two ideas allow "reducing" of any quantifier prefix Qx1Qx2...Qxn to a sequence of universal quantifiers only:

    Theorem 5.3.1 (Th.Skolem). Let L be a first order language. There is an algorithm allowing to construct, for each closed formula F of this language, a closed formula F' (in a language L' obtained from L by adding a finite set of new constant letters and new function letters - depending on F) such that:

    a) F' is satisfiable, iff F is satisfiable,

    b) F' is in form Ax1Ax2...Axn G, where n>=0, and G does not contain quantifiers.

    If a formula is in form Ax1Ax2...Axn G, where n>=0, and G does not contain quantifiers, let us call it Skolem normal form. Thus, each closed formula can be reduced to a Skolem normal form in the following sense: for each closed formula F of a language L there is a Skolem normal form |F|Sk (in the language L extended by a finite set of Skolem constants and Skolem functions), which is satisfiable, iff so is F.

    Note. Theorem 5.3.1 does not assert that a formula and its Skolem normal form are equivalent. It asserts only that the satisfiability problem of the first formula is equivalent to the satisfiability problem of the second formula.

    Thus, if we would be interested in determining the satisfiability of formulas, then reducing to Skolem normal forms would be a promising method. Indeed, formulas Ax1Ax2...Axn G (where G does not contain quantifiers) are, perhaps, easier to analyze...

    Proof of Theorem 5.3.1 First, let us obtain a prenex normal form F1 of the formula F (see Section 5.1). Indeed, by Theorem 5.1.4, there is a simple algorithm, allowing to construct a closed formula F1 such that F1 is a prenex normal form, and, in the classical logic, |- F<->F1. Of course, F1 is satisfiable; iff so is F.

    If the quantifier prefix of F1 starts with a sequence of existential quantifiers (EE...EA...), we will need the following lemma to "reduce" these quantifiers:

    Lemma 5.3.2 . A closed formula Ex1Ex2...Exn H(x1, x2, ..., xn) is satisfiable, iff H(c1, c2, ..., cn) is satisfiable, where c1, c2, ..., cn are new constant letters that do not appear in H.

    After this operation, we have a closed prenex formula H(c1, c2, ..., cn) (in a language obtained from L by adding a finite set of new constant letters, called Skolem constants), which is satisfiable, iff so is F1 (and F). The the quantifier prefix of H(c1, c2, ..., cn) (if any) starts with a sequence of universal quantifiers (AA...AE...).

    To proceed, we will need the following

    Lemma 5.3.3. A closed formula Ax1Ax2...AxnEy K(x1, x2, ..., xn, y) is satisfiable, iff Ax1Ax2...Axn K(x1, x2, ..., xn, g(x1, x2, ..., xn)) is satisfiable, where g is a new n-ry function letter (called Skolem function), which does not appear in K.

    By iterating this lemma, we can "reduce" the entire quantifier prefix of H(c1, c2, ..., cn) to a sequence of universal quantifiers only (AA...A).

    For example, the formula AxAyEzAuEw F(x, y, z, u, w) is satisfiable, iff so is

    AxAyAuEw F(x, y, g(x, y), u, w),

    and so is

    AxAyAu F(x, y, g(x, y), u, h(x, y, u)),

    where g and h are Skolem functions that do not appear in F.

    Exercise 5.3.1. a) Prove Lemma 5.3.2. b) Prove Lemma 5.3.3.

    How many new constant letters and new function letters (Skolem constants and functions) do we need to obtain the final formula F'? The number of new letters is determined by the number of existential quantifiers in the quantifier prefix of the prenex formula F1. Indeed, a) the number of new constant letters is determined by the number of existential quantifiers in front of the prefix, and b) the number of new function letters is determined by the number of existential quantifiers that follow after the universal ones.

    This completes the proof of Theorem 5.3.1.

    Exercise 5.3.2. Obtain Skolem normal forms of the formulas mentioned in Exercise 5.1.4.

    Still, if we are interested in determining the logical validity of formulas, then we should apply the result of Exercise 4.1.3 together with Theorem 5.3.1:

    F is logically valid, iff ~F is not satisfiable, iff a Skolem normal form of ~F is not satisfiable, iff Ax1Ax2...Axn G (where n>=0, and G does not contain quantifiers) is not satisfiable, iff ~Ax1Ax2...Axn G is logically valid, iff Ex1Ex2...Exn ~G is logically valid.

    Thus we have proved the following

    Theorem 5.3.4. Let L be a first order language. There is an algorithm allowing to construct, for each closed formula F of this language, a closed formula F' (in a language L' obtained from L by adding a finite set of new constant letters and new function letters - depending on F) such that:

    a) F' is logically valid (or, provable in the classical logic), iff F is logically valid (or, provable in the classical logic),

    b) F' is in form Ex1Ex2...Exn G, where n>=0, and G does not contain quantifiers.

    The objects of artificial intelligence and of deductive databases are, as a rule, large sets of formulas, i.e., in fact, large conjunctions of formulas. Thus, the following extension of Theorem 5.3.1 will be very useful - it will allow separate reducing to Skolem normal form of each conjunction member (instead of reducing the entire conjunction as a single very long formula):

    Theorem 5.3.5. Let L be a first order language. There is an algorithm allowing to construct, for each finite set of closed formulas F1, F2, ..., Fn of this language, a set of closed formula |F1|Sk, |F2|Sk, ..., |Fn|Sk (in a language L' obtained from L by adding a finite set of new constant letters and new function letters) such that:

    a) |F1|Sk, |F2|Sk, ..., |Fn|Sk are all Skolem normal forms of F1, F2, ..., Fn respectively,

    b) the conjunction F1&F2& ...&Fn is satisfiable, iff so is the conjunction |F1|Sk& |F2|Sk& ... &|Fn|Sk.

    Proof.

    ...

    To be continued.

    Exercise 5.3.3 (for smart students). In his above-mentioned 1920 paper, for quantifier elimination, Skolem proposed introduction of new predicate letters (to the idea that function letters will do better, he arrived only in the 1928 paper). Do not read neither Skolem's papers, nor the above-mentioned online comments, and prove yourself that by introduction of new predicate letters, the satisfiability problem of any closed formula can be reduced to the satisfiability problem of a formula having the form Ax1Ax2...AxmEy1Ey2...Eyn G, where m, n>=0, and G does not contain quantifiers. Thus, function letters "will do better" - see Theorem 5.3.1.

    Exercise 5.3.4 (compare with Exercise 5.1.5). Since, in general, Skolem normal form is not equivalent to the initial formula, we cannot use reduction to Skolem normal forms in the usual ("positive", or affirmative) proofs. But we may use it in "negative" (or, refutation) proofs, i.e. in proofs aimed at deriving a contradiction! More precisely, let us try extending the classical logic by introducing of the following additional inference rule (let us call it SNF-rule): given a formula F, replace it by some its Skolem normal form F' (such that the newly introduced constants and function letters do not appear in the proof before F'). Verify, that, in fact, this rule does not extend the classical logic for refutation proofs, i.e. if, from a set of formulas F1, F2, ..., Fn, one can derive a contradiction by using [L1-L15, MP, Gen, SNF-rule], then one can do the same by using [L1-L15, MP, Gen]. (Thus, the SNF-rule is admissible for refutation proofs in the classical logic.)

    Back to title page

    normal form, prenex, disjunctive, conjunctive, form, normal, DNF, CNF, prenex normal form, Skolem normal form, disjunctive normal form, conjunctive normal form, Skolem