logic and computer sciences, (1986) · logic and computer sciences, (1986) carlo cellucci ... is an...

38
Rend. Sem. Mat. Univ. Poi. Torino Fascicolo speciale 1987 Logic and Computer Sciences, (1986) Carlo Cellucci USING FULL FIRST ORDER LOGIC AS A PROGRAMMING LANGUAGE 1. Logic programming did not seize the attention of most programmers until the Japanese announced that they had chosen Prolog for their ambitious Fifth Generation Computer Systems project. While that project appeàrs now to be hampered by bureaucratic difficulties, the interest it aroused in Prolog lives on. Part of the attraction of Prolog stems from the fact that the beginner will very quickly be able to write toy programs, even spectacular ones. Difficulties in creating larger programs, however, seem to bring back Prolog to the level of other programming languages. Such difficulties arise from numerous defects of Prolog, some of which are purely logicai in nature. Among the latter at least two should be mentioned: (a) the peculiar meaning of negation; (b) the fact that reduction to clausal form is not part of the language. As to (a), strictly speaking Prolog has no negation. Its notion ot.negation- as-failure - by which -i <p is inferred from fatture to infer y - is a tricky one. For instance, suppose that the goal likes (John, X ) succeeds with X instantiated to mary. Then not (likes (John, X )) fails, so X becomes uninstantiated and hence has no value. However not (not (likes (John, X ))) succeeds with X instantiated to mary. This makes the meaning of negation almost incomprehensible. As to (b), for efficiency Prolog uses the programmer, as it were, as a pre- processor for reduction to clausal form: with the gain in efficiency that one can very well imagine. Of course reduction to clausal form can be implemented in Prolog and bùilt up within every Prolog program together with a suitable user interface, but this is very much like designing a new programming language.

Upload: others

Post on 06-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

Rend. Sem. Mat. Univ. Poi. Torino Fascicolo speciale 1987 Logic and Computer Sciences, (1986)

Carlo Cellucci

USING FULL FIRST ORDER LOGIC AS A PROGRAMMING LANGUAGE

1. Logic programming did not seize the attention of most programmers until the Japanese announced that they had chosen Prolog for their ambitious Fifth Generation Computer Systems project. While that project appeàrs now to be hampered by bureaucratic difficulties, the interest it aroused in Prolog lives on.

Part of the attraction of Prolog stems from the fact that the beginner will very quickly be able to write toy programs, even spectacular ones. Difficulties in creating larger programs, however, seem to bring back Prolog to the level of other programming languages. Such difficulties arise from numerous defects of Prolog, some of which are purely logicai in nature. Among the latter at least two should be mentioned: (a) the peculiar meaning of negation; (b) the fact that reduction to clausal form is not part of the language.

As to (a), strictly speaking Prolog has no negation. Its notion ot.negation-as-failure - by which -i <p is inferred from fatture to infer y - is a tricky one. For instance, suppose that the goal likes (John, X ) succeeds with X instantiated to mary. Then not (likes (John, X )) fails, so X becomes uninstantiated and hence has no value. However not (not (likes (John, X ))) succeeds with X instantiated to mary. This makes the meaning of negation almost incomprehensible.

As to (b), for efficiency Prolog uses the programmer, as it were, as a pre­processor for reduction to clausal form: with the gain in efficiency that one can very well imagine. Of course reduction to clausal form can be implemented in Prolog and bùilt up within every Prolog program together with a suitable user interface, but this is very much like designing a new programming language.

Page 2: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

116

Moreover reduetion to clausal form is not especially perspicuous which is likely to make debugging very difficult.

Using the more transparent sequent calculus seems more promising. While the sequent calculus was popular in the early days of automated theorem proving (see e.g. [7], [18], [4]), interest in it declined for about two decades and has been revived only recently by Bowen [2] who proposed to use a mo-dified version of the calculus of sequents as the basis for a logie programming system.

Bowen's proposai has however the following defeets: (a) the calculus of sequents is cumbersome since it involves copying down ali the extra formulae; (b) no 'intelligent' order of application of the rules is provided; (e) no mention is made of the fact that at each stage one should only consider unifying substitutions over the set of ali terms occurring in the branch. Thus the proposed proof procedure as it stands is incorrect.

In order to overcome such difficulties in this paper we discuss how to use a modified version of the tableaux method (see e.g.[l]) as an alternative approach to logie programming. It should be stressed that our main concern is with language design rather than with automated theorem proving: our aim is to develop a programming language sharing ali the advantages of Prolog while avoiding its logicai limitations. Thus we do not claim that our method will be efficient under ali possible circumstances.

It will be up to the programmer to make the basic tableaux method work more efficiently by devising suitable domain dependent techniques to guide the construction. Hence a program will include both a logie component and a control component, in agreement with Kowalski's [6] philosophy: algo-rithm = logie •+ control.

In this paper we confine ourselves to the logicai component leaving the discussion of the control component for another occasion. Stripped of its control component a program will consist of a goal together with any number of procedures, where both the goal and the procedures will be expressed by arbitrary first order sentences. The purpose of a program with goal <p and procedures «^, ..., <pn will simply be to determine whether <p is a logicai consequence of {«^,..., <p }.

Although tableaux seem to provide a reasonably satisfactory basis for a logie programming system, they have two main defeets : (a) they are not very perspicuous; (b) tableaux with many branches are not easily displayed. Now both perspicuity and easy displayability are essential for program de­bugging. In order to overcome this problem we describe a mechanical method

Page 3: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

117

for converting closed tableaux into deductions of a suitable naturai deduction system. Alternatively we state a proof procedure for Smullyan's [15] analytic naturai deduction system.

2. The language of predicate logie includes variables xlf x2, .., constants ai, a2t ... (also called parameters), for each n > 0 w-ary predicates R", R", -, logicai particles ~] ,A, V t-* , <> , V t 3 and puctuation marks ( and ) .

We use letters *x\ *y\ V to denote arbitrary variables; 'a', *b\ V to denote parameters; 'Rn \ 'Sn', T* ' (orsimply 'R', 'S', T' whenever arity is clear from context) to denote w-ary predicates.

An atomic formula is an expression of the form Rtx ... t where R is an »-ary predicate and each of tlt ..., t is a variable or a parameter.

A formula is either an atomic formula, or an expression of one of the forms ~*l<p, (sp A \//),(<p V \p), (<p -• i//), (<p *> \jj) where *p and ty are formulae, or an expression of one of the forms V x *p, 3 x y where x is a variable and <p is a formula.

We use V'» *V>'> W 'p' to denote arbitrary formulae. The opposte of a formula <p , written <p, is defined by :

I \jj if <p = ~l tf/

"1 <p if <p is not a negation.

We say that an occurrence of a variable x in a formula «p is free if it is neither within the scope of some occurrence of V x or 3x nor is itself immediately preceded by V or 3 .

We denote by <p (x/a) the result of replacing every free occurrence of the variable x in <p by the parameter 0 .

A sentence is a formula in which no occurrence of a variable is free. A literal is an atomic sentence or the negation of an atomic sentence.

3. By a sequent we mean any finite set T of sentences. We write T, <p for r u {«p}.

Page 4: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

118

The rules of sequent tableaux are as follows:

r,-n*

(A) r, ^ A ^ _ . HA) r , <p, ty r . n* r , - i*

(V) r, loVit ' y y (IV)

r , i ( ^ v «

(•*) r .n (*-•*)

(•*) r, ¢, n *

< * ) r«*** n - ì r.-i(^**)

< * ) r,*,* r,>,~i*'' ' ' r,¥>,n* r.-ijp,*

(V) f—i \ / Ì r,~ivx<p

(V) r, V x <p, ip (x/a) I\ ~l(p(#/«)

provided that « does not occur in V .

(3) r,3«». r,i3*„ T, *p (èc/a) I\ ~13 # <p, ~"| <p (#/a)

provided that a does not occur in T.

A sequent tableau for T is a tree obtained by placing T at the origin and then continuing downward according to the above rules.

A branch of a sequent tableau is closed if there is a sequent T on that branch and an atomic sentence \p such that both \p and ~~I <p are in T . A sequent tableau is closed if ali of its branches are closed.

Remark. The rules of sequent tableaux are strictly related to the rules of the Gentzen-type sequent system G4 of Kleene [5]. Indeed they are obtained from the latter as follows : (1) Transpose ali sentences from right to left replacing each sequent {<Pi, ..., ^m }**• {0i,-..., tyn } by an equivalent

Page 5: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

119

sequent {</>i, ..., <pw, ~l #1, ..., 1 ^ } * and drop the symbol •* which now becomes superflous. (The transposition is justified by the rule (""!=*) of negation introduction in the antecedent). (2) Drop the rule thus resulting from (~l =») which now becomes vacous. (3) Turn the rules upside-down. Sequents T such that, for some atomic sentence <p , both <p and "1 «p are in T are the result of transposing ali sentences from right to left in axioms of G4 . Thus closed sequent tableaux coincide with proofs in the system resulting from G4 by the above procedure, turned upside-down.

4. Sequent tableaux are cumbersome in actual practice because their rules involve duplicating the extra sentences T ali the time. A more convenient arrangement is given by sentence tableaux, which are obtained by dropping the extra sentences T altogether and ticking off (vO the principal sentence of the premise whenever it is not duplicated in the conclusion. (Note that (V) and ("13) are the only rules in which the principal sentence of the premise is duplicated in the conclusion).

The rules of sentence tableaux are as follows:

(A) 1

*

(V)

( • * )

- | < £ yjj

( • )

1(<pA^)y/~

f

HA)

(IV)

"1*

CI-*)

CI-») / \ <p ~\<p

Page 6: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

120

V x <p (V) I

«p (x/a)

3x $ y/

(3) I <p (x/a)

provided that a is

new to the tableau.

A sentènce tableau, or more briefly a tableau for a sequent {<Pi, ••-, <Pn } is a tree obtained by starting with

where $x is at the origin, and then continuing according to the rules where the conclusion of a rule must be entered on every branch passing through the premise.

A branch of a tableau is closed if there is an atomic sentènce <p such that both «p and ~l «p are on that branch. A tableau is closed if ali of its bran-ches are closed.

Remark. It is commonly held that sencence tableaux were originally introdu-ced by Smullyan [16] (more fully in [17]). As a matter of historical fact they were already used by Prawitz [9.].

5. There is a simple mechanical method for converting a sequent tableau & for {<pj., ..., <£w} into a sentènce tableau: (1) Replace the origin of jT, i .e . {^i,...,^M},by

«Pi

Civ)

CI 3)

I ~~\\p.'(x/a)

provided that a is new to the tableau.

~1 3 x<$

I ~1<p (x/a)

Page 7: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

121

(2) Replace each node except the origin by

* m

where i//t, ..., \p is the list of ali sentences occurring in that node but not in its immediate predecessor, and tick off (\/") a sentence not occurring in that node but occurring in its immediate predecessor. (3) Replace each

inference line — by a vertical line or a fork / \

depending on whether the corresponding inference rule has only one or two premises.

There is also a simple mechanical method for converting a sentence tableau & for {<£>!,..., <pw } into a sequent tableau:

(1) Put ali nodes of &~ not connected by a line in the same set.

(2) Add to each node of the resulting tree ali sentences occurring in its imme­diate predecessor which are not ticked off, or are ticked off but are not used as premises of an inference whose conclusion occurs in that node.

6. We introduce the following notions concerning sequents.

A sequent T is said to be confutable if there exists a closed tableau for r .

We say that a sequent T entails a sentence y if r U {"1 \p} is confu­table.

Theorem

(i) T is confutable =• T has no model.

(ii) T entails \p *> \p is a logicai consequence of T .

7. Similarly to [2] we may say that there are two main problems in devising a mechanical method for generating sentence tableaux (or sequent tableaux for that matter) for arbitrary sequents Y :

(1) The determination of which tableau rule to apply next at any point in the process.

Page 8: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

122

(2) In applications of (V) and ("13), choice of the parameter a.

It is commonly held (see e.g. [2]) that (1) is solved by the following result -which is more easily stated for sequent tableaux.

Lemma. Let T be a sequent, and let @lx and ^ 2 be sequent tableau rules both of which may apply to Y . Let fj\ and ,T2 be the sequent tableaux resulting from applications of these two rules in opposing orders. Then .¥\ can be extended to a closed sequent tableau for T iff .T^ may be so extended.

Actually the above lemma fails to provide a full solution to (1). This is shown by the following simple example.

Example (I)

VxRx, 13 xRx (V)

VxRx, Rat, 13xRx CI3) —

VxRx, /?i»j,n 3 xRx, 1 Rat

(II)

VxRx, ~\3xRx (V) :

VxRx, Ralt 13xRx (V)

VxRx, Ralt Ra2, 13xRx (V) — ;

\/xRx, Rat, Ra2, Ra3, ~13xRx

Page 9: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

123

(HI)

VxRx, "1 3 xRx (V)

VxRx, Ralf 13xRx CI 3)

VxRx, Rau ~13xRx, 1 Rbt

(V) — VxRx, Rax, Ra2, ~\3xRx, 1Rbt

CI 3) : VxRx, Ralt Ra2, ~~]3xRx,~]Rb1,~\Rb2

While (I) is closed, both (II) and (IH) could be indefinitely continued without closing although they do not violate any of the sequent tableau rules.

A basic requirement on a mechanical method for generating a sequent tableau for T is that it should produce a closed sequent tableau for T whenever the latter exists as in the case T = { V xRx, H 3 xRx}. Then our previous example shows that the above lemma is of little help in solving (l).

A further basic requirement is that the method should be efficient. Such a requirement affects the solution of (2) . For instance, in establishing the completeness of the tableau rules the following approach to (2) is commonly used (see [1] p. 436): if a sentence of the fórm V#<p occurs on a given branch of the tableau and A = {aXt ..., an } is the set of ali parameters occurring on that branch, then each of <p {x/ax ) , . . . , «p (x/an ) is entered on the branch within a finite number of lines.

Such an approach is very crude since it simply tries ali possible instances. This is ali very well for completeness proofs but is hardly satisfactory as regards efficiency.

8. A better approach consists in using a device originally introduced by Prawitz (see [7] footnote 11) and Kanger [4]. The idea is to replace the variable x by a dummy ih any application of (V) or ( 1 3 ) , post-poning the search for an appropriate parameter a until convenient.

Accordingly we expand the language of predicate logie by including dummies

Page 10: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

124

at., a2, ••• • We use letters '<x\ '0\ *y\ '5' to denote arbitrary dummies. Both parameters and dummies will be terms. Moreover we expand the rules of sentence tableaux by introducing the following two new rules :

(V*) \ OL-.A

<p {X/OL)

provided that <x is new to the tableau

"13*x ip I OL.A

(-»3*) ~lv(x/oì)

provided that ce is new to the tableau.

Both in (V*) and ( 1 3 *) A is the set of ali terms occurring in the branch above $ {X/OL) or ~l<p(x/<x) respectively, or A={ax} ifthere are no such terms (where at is the first parameter). We cali A the set v

of ali admissible values of a. The restrictions on (~1V) or (3) are now extended to guarantee that a is not an admissible value of any dummy and is distinct from a%.

Sentence tableaux, closed branches and closed tableaux are defined as usuai. We introduce the following additional notions.

A branch of a tableau is open if it is not closed. A finite open branch is completed whenever each sentence occurring on that branch is one of the following:

(i) a literal;

(ii) ticked off;

(iii) a sentence of one of the forms \/xy or "1 3 x <p such that also cp (X/OL) or "1 </? (X/OL) respectively occurs on that branch (for some dummy a whose set A of admissible values includes ali terms occurring on that branch).

A tableau is open if it contains at least one completed open branch or at least one non-terminating branch.

Page 11: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

125

9. Next we define a mechanical method for generating a sentence tableau for T , for arbitrary T . First we introduce some notions about substitution.

A substitution is a set of assignments of terms to dummies, where no dummy is assigned more that one term. Substitutions will be denoted by o> T , ... . If the terms assigned to dummies in a substitution a belong to a given set A , then we say that a is a substitution over A .

Application of a substitution o to a sentence \p consists of replacing dummies in <p by the terms which a assigns to them. Any dummies in <p not mentioned in a are left unchanged, and any assignments in a to dummies not occurring in «p are not applied. The result of applying a to «p is denoted by «/? a .

Substitutions can be composed in the obvious way, i.e. <p (CJT) = (<po)T. Given any two sentences <p and \p and any substitution a , if <pa =

\pa we say that o unifìes <p and \jj ; o is said to be a unifier of # and ^ , and the latter are said to be unifìable.

There is an algorithm, called the unifìcation algorithm, which operates on any two sentences «p and \jj, and either terminates with an indication that <p and \j/ are not unifìable, or terminates with both an indication that they are unifìable and a specific unifier of <p and \fr (see [13]).

Given any two sentences <p and i// let

the unifier of \p and \jj given by the unifìcation algorithm, if <p and \jj are unifìable

€ (= the empty substitution) otherwise.

Given any finite set A of literals and any finite set A of terms let:

dose (A.,4) = {o I a = unify (<p, i//), o a substitution over A , and <p , t// G A}.

10. A partial description of a method for generating a tableau for an arbitrary T = {</?!,..., <pw } is as follows:-

(1) Start with

unify {$, \jj) =

%

Page 12: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

126

where <pt is at the origin.

(2) Let A be the set of ali literals occurring on the given branch and A a set including ali the admissible values of oc, for any oc occurring on that branch. Determine the set dose (A,A).

(3) If dose (A, A) = {£} , then go to (4). Else, by construction dose (A, A) will contain a single non-empty substitution a . Apply a to ali sentences occurring on open branches.

(4) Are ali branches closed?

(5) If so, stop: T is confutable.

(6) If there any completed open branch?

(7) If so, stop: T is unconfutable.

(8) Is there any sentence of the form "1 "1 «̂ which is not ticked off?

(9) If so, apply (111 Thengo to (2).

(10) Is there any sentence of one of the forms y A \jj , "1 (<p V ^) , ~~1 (<P -* $) which is not ticked off?

(11) If so, apply (A), ("1V), ("1 -•) respectively. Then go to (2).

(12) Is there any sentence of one of the forms IVx <p, 3 x «p which is not ticked off?

(13) If so, apply (HV) or (3) respectively. Then go to (2).

(14) Is there any sentence of one of the forms <p «• \p , 1 (<p *> /̂) which is not ticked off?

(15) If so, apply («») or (~l^) respectively. Then go to (2).

(16) Is there any sentence of one of the forms ~l(<pA \jj) ,<pV ^/,^-^ \jj which is not ticked off?

(17) If so, apply ( 1 A) t (V) or (->) respectively. Then go to (2).

(18) Is there any sentence of one of the forms Vx<p , "13 x y ?

(19) If so, apply (V*) or ("13 *) respectively to ali sentences of one of such forms on that branch (including those entered by sùch appli-cations). Then go to (2).

(20) Else, mistake!

Page 13: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

127

11. Part of the motivation for the above procedure is clear. We consider first sentences of one of the forms 1 1 <p , <p A ̂ , "1 (\p V \jf), H (<p -»• rjt), ~"IV# <p, 3 * <p because ("11) , (A) , ("1V) , ("I -•) , ("IV), (3) do not yield new branches. We consider sentences of one of the forms ^ ^ ^ , 1 ( ^ ^ ^ / ) before considering those of one of the forms ~l(<pA^),<pV^ , *p ~+ \j/ because they introduce two sentences on each branch thus doubling the chances of its closing soon. Further explanation is proVided by the foUowing examples.

Example VylxRyx

13 xVyRyx

I a : {«!}

3xRocx\

I

1VyRyP\/~

I Rab

I

n/?c0

If a is a substitution which assigns e to a and b to j3 , theri clearly o - unify (Rab, ~\Rc$), hence applying o to ali sentences of the tableau a closed tableau obtains. Therefore we should conclude that the set { \/y 3 xRyx , "1 3 x V yRyx } is confutable and hence is not satisfiable which is clearly false. Thus the restriction in. (2) to substitutions over the set A of admissible values of dummies occurring on the branch is essential for soundness.

Page 14: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

128

(I)

V xRx

_3 x 1 Rx s/~

I

IRb I OC: { b }

Ra

OD

VxRx

3x~] Rx\/~

I a: {a{}

Ra

I

IRb

I P:{<X,b}

Rp •

If a is a substitution which assigns b to a , and r is a substitution which assigns b to |3 , then applying a to (I) yields a closed tableau, and applying T to (II) also yields a closed tableau. However in (II) some effort is wasted since b is not an admissible value of a., and so we must introduce a new sentence i?0 . Now while in (I), in accordance with our procedure, we consider 3 x "I Rx before considering VxRx , in (II) we do just the opposite violating the procedure. This explains why in our procedure we consider sentences of one of the forms 3 x <p , IVx <p before considering those of one of the forms Vx <p , "13 x <p .

Page 15: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

129

Example

(I)

V xRx

H 3 xRx

I oc: {at}

Roc

I 0 : { a }

IRp

(II)

VxRx

^\3xRx

I a: {al }

Roc

I /5: {OC}

Ry

If a is a substitution which assigns oc to j3 , then applying a to (I) yields a closed tableau. However no substitution can convert (II) into a closed tableau. While in (I), in accordance with step (19) of our procedure, we consi­der ali sentences of one of the forms V#<p,"13#<p on the branch, in (II) we just ignore the sentence "13 xRx thus violating the procedure. Consi-dering only V xRx we are headed for an endless cycle.

12. In order to compare the efficiency of our procedure with that originally developed by Prawitz (cf. [9]) we consider the following tableau which shows that { Vx Vy V 2 (Rxy A Ryz -> Rxz) , V# "1 Rxx } entails VxVy (Rxy -*

Page 16: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

130

-iRyx).

\fx VyVz (Rxy A Ryz -• Rxz)

Vx~\Rxx

"l\/x\/y (Rxy -> ~l Ryx)*s/~~

I

~~\Vy(Ray -• 1 Rya)\f

I

H(i?dtfc-* "I Rba)\T

I

I a : {a, Z>}

Vy\/z(RotyARyz-+Roiz)

I /J: {*, b,CL}

I 7: {a, b, a, 0}

\/z(R ayAR yz^Rotz)

: I 5 : {a, *, a, ft 7}

# «7A/? 76 -^ i?a6V^

n(/?aj7Ai? 76) \ / ~ X

Irta? X

l / *75 X"

If a is a substitution which assigns a to oc, 0 , 5 and & to 7 , then applyìng a to the above tableau yields a closed tableau. The tableau has

Page 17: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

131

12 arcs. The tableau built up by the proof procedure of [9] had 60 arcs (and required 12" to executé; 48" including printing).

13. Our procedure as described above is incomplete because it leaves open two problems:

(1) The determination of which sentence to consider next whenever several sentences of the same form which are not ticked off occur on a given branch.

(2) The determination of which branch to continue generating next whenever a branching rule is applied.

As to (1), a simple solution consists in considering the first sentence of the given form occurring on the branch. However a more efficient solution is to order ali sentences of the given form occurring on the branch by length (= number of symbols), and then consider a sentence of maximal length. The reason for (greater) efficiency is that if longer sentences are considered earlier in a tableau, the chances are that there will be less open branches on which the conclusions of the rule must be entered.

As to (2), a naturai solution is provided by a depth-fìrst strategy. In depth-first we continue generating a branch until its end node (if any). Then we retreat to the latest branching node, and plunge on down generating another branch. For definiteness we assume that the leftmost branch is generated first.

Depth-first can be easily implemented on a conventional (sequential) computer. It has however the disadvantage that we may pursue an infinite branch indefinitely and never back-up to the rest of the tableau. Thus we may be unable to establish that the tableau is open because it has a comple-ted open branch. Hence depth-first is an incomplete strategy.

A strategy which avoids such a problem is breadth-fìrst. In breadth-first ali the nodes at depth 1 are generated first, then ali the nodes at depth 2 and so on, i.e. a tableau is generated in stagés, where at stage n ali the nodes of depth n are generated. Again for definiteness, whenever the tableau is generated sequéntially, we assume that nodes of the same depth are generated left-to-right.

Clearly ali nodes will thus eventually be generated, hence breadth-first is a complete strategy. However, since at stage n ali the nodes of depth n must be generated, generally the number of such nodes will grow expo-

Page 18: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

132

nentially. Hence breadth-first is better implemented on a non-sequential computer.

We cali canonical tableau any tableau built up by our procedure together with a breadth-first strategy. The order in which sentences of the same form on the same branch are considered is unimportant in the following results.

Theorem

(i) The canonical tableau for V is open =• T has a model,

(ii) T has no model => The canonical tableau for T is closed.

Corollary 1.

(i) The canonical tableau for T is closed ^T has no model.

(ii) T is confutable <** T has no model.

(iii) The canonical tableau for T is closed <=> T is confutable.

Corollary 2.

(i) T entails <p <=*<£ is a logicai consequence of T .

(ii) The canonical tableau for r U {1 ^} is closed «=•<£ is a logicai consequence of T.

Remark. Corollary 2 (ii) reduces the problem whether <p is a logicai consequence of T to the problem whether the canonical tableau for r u {1^} is closed. This does not provide an effective test for logicai conse­quence because there is no effective way of determining, for an uncompleted open branch, whether that branch is a non-terminating one, or a branch that will become, if appropriately continued, a completed open branch or a closed branch. However, owing to the spatio-temporal constraints of computers, even a closed canonical tableau for r u {1^} may be too large to be feasibly generated. Thus the difference between such tableaux and those with non-terminating branches may be inessential in practice.

Page 19: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

133

14. Now we introduce a naturai deduction system adequate for linearizing sentence tableaux.

A deduction of the system is to be understood as a finite sequence of ordered pairs (m, <p) where m is a vector of integers and <p is a sen­tence.

If (m, <p) is the »-th element of a deduction @ , then the integers in m are called the assumption numbers of the w-th line of ^ , and <p is said to occur as, or to be written as the w-th line of Q) ...

If m is an assumption number of line n , the sentence occurring as the m-th line of @ is said to be an assumption of line n .

Rules for constructing deductions will include: (i)an assumption rule; (ii) direct rules; (iii) a discharge rule.

The assumption rule has simply the form:

meaning: Any sentence <p may be written as the »-th line of a deduction with n as its only assumption number.

The direct rules have the general form:

meaning: If \pXl ..., yk occur as lines wilf ..., mk of a deduction, then ty may be written as a later line. The assumption numbers of the new line are to be the assumption numbers of lines mx,..., mk .

We also write:

X

as a shorthand device for expressing both:

— and — . * X

Page 20: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

134

The discharge mie has the form:

-lo

meaning: If \j/ occurs as line / of a deduction and "1 \p occurs as line m , then 1 <p may be written as a later line. The assumption numbers of the new line are to be either the assumption numbers of lines /, m or , if $ is an assumption of lines /, m and occurs as line k , the assumption numbers of lines /, m less k .

The rules are as follows:

(A)

*

n n ) (RAA) —

(A) J ^ * - (HA) ^ _

5 n*

(V) —f— nv) ^ WJ

Page 21: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

135

¥>->•*

( - • ) ' <fi

( - • ) ' *

<p « - • ^

(** , ) <p

(** , ) *

(«*») 1 *

(«*») " 1 *

V A : <p

~i(*>^)

<p (x/a)

V i ^

1 *

-\(<p<->t)

n^*,) f n^*,) ~i*

T ( , p ^ ^ )

0+*>ù . " V 0+*>ù 4>

("IV) "1 V * <p

("IV) "1 <£ (#/tf )

provided that a is new to the deduction

I~I a i " I 3 » i p ( 3 ) ^ -

ip(x/a) ~~\ip(pc/a)

provided that a is new to the deduction

A deduction of y from {^, ..., <p } is a finite sequence of ordered pairs (m, ^) generated by the above rules such that:

(i) <p occurs as its last line, and *pVt..., <pM are the assumptions of that-line.

(ii) No parameter occurring in \p or <Pi,.-.,^w has been introduced into the deduction by an application of ( 3 ) or ("IV).

A proof o t {p is a derivation of <p from the empty sequent 0 .

Remark. The above system is intermediate between Smullyan's [15] analytic naturai deduction system and more traditional naturai deduction systems like [10], [11] or derivatives. Like in the case of [15] most of its rules are eliminations, but not ali of them. Because of (RAA) the following sub-sentence property of [15] is violated: The only sentences occurring in a proof

Page 22: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

136

of \p are either subsentences of y or negations of subsentences of <p .

15. Next we describe a mechanical method for converting closed tableaux into deductions. Deductions resulting from such conversion will not be pic-tured as arrays of lines of the forni:

m (n) \f> ,

where m are the assumption numbers of line n and <£ is the sentence which occurs as line n . Instead we use the following representation: (1) Any sentence introduced by an application of (A) is to be starred (*). (2) Any application of (RAA) is to be represented by drawing a box from the discharged assumption <p up to "li//:

Our method for converting a closed tableau .T for {<£j, ..., <p , ~~l<p} into a deduction Q) of y from {^,.. . , <pM } consists of the following steps:

(1) Copy down ali nodes of .T in the order established by the depth-first search strategy, except as stated under (3) or (4) below.

(2) Put a star before each of tplt - - , ^ , "l<p and before each node which is a left successor (i.e. is the leftmost successor of a branching node).

(3) When you come to an end node which is a left successor, do not copy down that node.

(4) When you come to an end node x„ which is not a left successor, put a box from the last starred node *% which is not yet boxed up to x« • Then add the sentence 1 x « and.whenever Y « ^

Page 23: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

137

of the form 1 p , also the sentence p . (Then copy next node

The followihg example gives the flavor of applications of the method.

Example. Let «p, ̂ , x> P he atomic sentences.

<p-»(i//->X) ^

p/\<p V~

nx

^-\xV~

*

x x x

•* -* (* -* x)

pA(p

16. Although our naturai deduction system may appear somewhat unusual, its deductions are easily converted into deductions of a Quine-type naturai deduction system. We consider the foUowing simplification of [10], [11] which does not require that variablés are flagged and arranged in a certain order.

Page 24: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

138

The rules of the system are as follows:

(A)

>r

Vi *

(TC) <Pn

*

provided that \p is a tautological consequence of {\px,..., \pn }

(RAA)

(VE) ip (x/a)

(3£) 3 a; <p

<p (#/#)

(W) <p (x/a)

Vx <p

provided that: (i) a does not occur in ip ; and if V x <p occurs as line n, then (ii) a does not occur in any as-sumption of that line nor (iii) in any earlier line obtained by (3 E)

<p (x/a) (3/) 3x <p

provided that: (i) a does not occur in <p ; andif <p(x/a) occurs as line n , then (ii) a does not occur in any assumption of that line nor (iii) in any earlier line obtained by (3E) «

A deduction of y> from {^, ..., <pw } is a finite sequence of ordered pairs (m , \jj) generated by the above rules such that:

(i) <£ occurs as its last line, and yh ..., <pw are the assumptions of that line.

(ii) No parameter occurring in (p or <Pi, ..., ip has been introduced into the deduction by an application of ( 3 E).

Page 25: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

139

Remark. An appealing feature of the restrictions on ( V/) and ( 3 E) is that they are naturai and perfectly symmetric (like in [3]). However, as shown in [8], they are stronger than necessary.

17. There is a simple mechanical method for converting a deduction Q) of <p from {^i,...., ^ } in our former naturai deduction system into a deduction @ in the latter Quine-type naturai deduction system:

(1) Copy down ali lines of @ except as stated under (2) or (3) below.

(2) When you come to lines of the form:

—•

m (k) ~\Vxip

m (n) ~\ip(x/a) k IV

replace such lines by the following lines and renumber the remaining lines accordingly:

—>

m (k) ~\yx<p

n (n) ~~\3x~\if A

n+1 (n+1) 1*p{x/b) A

n+1 (n+2) Rxlip n+1 31

n (»+3)ll^W n+l,n+2,n RAA

n (n+4) «p (x/b) n+3 TC

n (n+5) Vx ip n+A- VI

m (n+6) T l f fx - ty n,n+5,k RAA

m (n+1) 3x~\<p n+6 TC - > -m (n+S) 1<p(x/a) n+1 3E

(3) When you come to lines of the form:

m (k) 13x $

m (n) ~1 {p (x/a) k -13

Page 26: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

140

replace such lines by the following lines and renumber the remaining li nes accordingly:

m (k) 13x {p

n (n) <p (x/a) n (n + 1) 3x*p n —>. m (»+2) 1if(x/a) n,n + lyk

A

31

RAA

18. So far we have employed tableaux for proof search and naturai deduction for linearizing tableaux. Alternatively we may use a modified version of Smul-lyan's [15] analytic naturai deduction system for proof search itself.

We consider box structures like in the following example;

«Pi

Vi

^ 3

i

*6

Vi

^ 8

^ 9

<PlO

The example illustrates the three basic conditions which must be satisfied by a box structure: (a) if two distinct boxes overlap, then one of them wholly contains the other; (b) no formula «p, is the top formula of two distinct boxes, nor is the bottom formula of two distinct boxes; (e) if a formula \pi is the bottom formula of a box, its successor <pi+1 is no the top formula

Page 27: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

141

of another box. (Thus the structure used in the example at the end of section 15 is a box structure).

To introduce a sentence y as an assumption at a given stage n of the constructión of a box structure means to write down fy a s the » + 1-th line. To discharge (a line /. which is) an assumption at stage n means to draw a box from the line /. up to the last line / ' (inclusive). A line which is not boxed at stage n is said to be alive at that stage.

We consider rules for constructing box structures of a special kind, called nests. The rules will include: (i) an assumption rule; (ii) direct rules; (iii) discharge rules.

The assumption rule has the form:

V »

meaning: at stage n we may introduce any sentence <p as an assumption. The direct rules have the general form:

meaning: If <£ is alive at stage n , then we may write down \jj as line w + 1 .

In order to introduce the discharge rules we need an auxiliary notion. We say that at a given stage n of constructión a nest is in a contradictory state if there exists an atomic sentence p such that both p and ~!<p are alive at stage n .

The discharge rules may have one of the following two forms. Either they have the form:

cont.

X

meaning: If * ̂ is the last assumption alive at stage n and \p has an

Page 28: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

142

earlier occurrence also alive at stage n , and if the nest at stage » is in a cpntradictory state, then we may discharge * ^ and write down x as line « + 1 .

Alternatively the discarge rules may have the form:

*>

meaning: If *^j is the last assumption alive at stage » , \p2 is asuc-cessor of \pì alive at stage w , <p has an earlier occurrence also alive at stage n , and if the nest at stage n is in a contradictory state, then we may discharge * \jj\ and write down Xi as line » 4 - 1 and %i as line » + 2 .

The rules for constructing nests are as follows:

(A)

n i ) ~K*Atf/)

(A) HA)

~ 1 *

Page 29: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

,pV*

(V) OV) ~»(»V»)

( - ) n->)

yfi<* \jj "1 ( * < • * )

( ~ ) ci*)

(V) Vx *p {f (x/a)

(IV) "1 «p (#/tf )

provided that a new to the nest

Page 30: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

144

( 3 ) 1*2- (-,3) ^** ipipc/à) ~]ip(x/a)

provided that a is new to the nest.

A nest for a sequent {<f>x > •••» V„ } 1S a DOX structure obtained by star-ting with

Vi

V

where Vi is the first line, and then continuing according to the rulès subject to the restriction that no other sentence may be introduced as an assumption except under the following conditions:

(i) If "1 (<p A \jj) is alive at stage n , then "1 \p may be introduced as an assumption at that stage.

(ii) If >̂ V \\j is alive at stage n , then y may be introduced as an assumption at that stage.

(iii) If ip -> \p is alive at stage n , then ~1 $ may introduced as an assumption at that stage.

(iv) If either $ «» \j/ or "1 (</> «» \jj) is alive at stage n , then \p may be introduced as an assumption at that stage.

Whenever, in a nest for {\px, ..., \pn }, an assumption ~l</> is introduced in accordance with coridition (i) above, we say that the corresponding senten­ce ~l (if A \p) is used to introduce "I $ . Similarly in the case of assumptions introduced in accordance with one of the remaining conditions (ii) - (iv) .

A nest for {<pj, ..., \pn } is closed if it satisfies the following conditions: (i) Itis finite, (ii) It contains no assumptions alive at its last stage except for the initial

ones V i , - , V„ . (iii) It is in a'contradictory state at its last stage.

Page 31: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

145

19. Confutability and entailment can be introduced as follòws. A sequent T is said to be confutable if there exists a closed nest for T . We say that a sequent T entails a sentence <p if r u {1\p}. is confu­

table.

Theorem.

(i) T is confutable => T has no model.

(ii) T entails <p => <p is a logicai consequence of T .

20. The problems involved in devising a mechanical method for generating a nest for an arbitrary sequent {<pj, ...,$„} are similar to those already discussed for tableaux.

Again we introduce dummies together with the following two new rules:

V x Kp (V*) y OL.A

yp (x/oc)

provided that a is new to the nest.

"13 x &

\ip(pe/a)

provided that a is new to the nest.

Both in (V*) and ("13*) A is the set of ali terms occurring in senten-ces above «p (x/oì) or I <p (x/a) respectively which are alive, or A ={ax ] if there are no such terms. We cali A the set of ali admissible values of a.

Nests and closed nests are defined as usuai. We introduce the following additional notions.

By the main path of a nest for a sequent {\px, ..., $n } we mean the sequence of lines beginning with the iriitial ones V i > •••> *VW and inclu-ding ali lines which are not boxed. (If : the nest is finite, then the main path will consist of ali lines which are alive at its last stage).

We say that a line /. on the main path is fulfilled if one of the following

Page 32: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

146

conditions holds:

(i) /. = 1 1 ^ and <p occurs on the main path..

(ii) /. = <p A \j/ and both <p and ^ occur on the main path.

(iii) /• = ~I (if A \j/) and either "1 <p or "1 \j/ occurs on the main path.

(iv) l. = ipV \p and either $ or ty occurs on the main path.

(v) l. = 1 (</>V ^) and both "1 <p and "1 \fr occur on the main path.

(vi) l. = ip-> \j/ and either 1 ^ or ^ occurs on the main path.

(vii) l. = "I (<p..-• \/0 and both <p and "1 \j/ occur on the main path.

(viii) / j = ^ ^ and either $ and ^ , or "1 <p and "1i// occur on the main path.

(ix) / , = 1 ( ^ ^ ^ ) and either «p and "1 \p , or 1<p and \J/ occur on the main path.

(x) /. = Vx<p and <p (#/a) occurs on the main path for some dummy a whose set A of admissible values includes ali terms occurring on the main path.

(xi) /f-=~lVtf^ anc* ~fy {pela) occurs on the main path for some parameter a .

(xii) l. = 3*<p and <p (x/a) occurs on the main path for some para­meter a.

(xiii) /,- = ""13*^ and ~~l<£ (x/a) occurs on the main path for some dummy a whose set A of admissible values includes ali terms occurring on the main path.

Any fulfilled line will be ticked off (vO except for the fulfilled lines of one of the forms Vx <p or "13 # <p . A line which is fulfilled at a certain stage may become unfulfilled at a later stage. This will be indicated by can-celling the tick br).

Page 33: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

147

Example. Let <p , <p,x be atomic sentences.

* (X V 0/> V n * ) ) A ( * A Op V x - ~W)v ' -

»xV («V-l*)>/~

\j> A(i/)Vx-*~l'/')vr"

*x

*"i(^Vx)V~

! # •

~lx

• n *

» ^ V I ^ N T

The arrows show the sentences used to introduce the assumptions.

We say that a nest is a compieteci open nest if the following conditions hold:

(i) it is finite;

(ii) every line on its main path is fulfilled;

(iii) it is not in a contradictory state.

Page 34: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

148

We say that a nest is open if either it is a compieteci open nest or it is infinite.

21. A partial description of amethod for generating a nest for an arbitrary r = {<£i,..., (pn } is as follows:

(1) Start with Vi

V,

where Vi ls the first line.

(2) Let A be the set of ali literals occurring on the main path and A a set including ali the admissible values of a, for any a occurring on the main path. Determine the set dose (A, A).

(3) If dose (A, A) = {£}'•, then go to (4). Else, by construction dose (A,A) will contain a single non-empty substitution à. Apply o to ali sentences occurring on the main path.

(4) Is the nest closed?

(5) If so, stop: T is confutable.

(6) Is the nest a completed open nest?

(7) If so, stop: B is unconfutable.

(8) Is there any sentence of the form "1 ~1 \p which is not ticked off?

(9) If so, apply O D . Then goto (2).

(10) Is there any sentence of one of the forms y A ty , "1 (<p V 0), "1 (<p ~* i/0 which is not ticked off?

(11) Isso, apply (A), ("IV), (H-*) respectively. Then go to (2).

(12) Is there any sentence of one of the forms "1 Vx {p , 3 x \p which is not ticked off?

(13) If so, apply (~\V ) or (3) respectively. Then go to (2).

(14) Is there any sentence of one of the forms (<p «* \jj) , ~1 («p «» \js) which is not ticked off?

Page 35: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

149

(15) Ifso, apply («•) or (~l^) respectively. Then go to (2).

(16) Is there any sentence of one of the forms "~l(tpAi//),ipV^ , ^ - ^ which is not ticked off?

(17) If so, apply (1 A), (V) or (-•) respectively. Then go to (2).

(18) Is there any sentence of one of the forms V x <p , 13 x <p • ?

(19) If so, apply (V *) or (~"l #*) respectively to ali sentences òf one of such forms on the main path (including those entered by such applications). Then go to (2).

(20) Else, mistake!

22. The above procedure is incomplete because it leaves open the problem of determining which sentence to consider next whenever several sentences of the same form which are not ticked off occur on the main path. Like in section 13 we may consider the first sentence occurring on the main path or, more efficiently, a. sentence of maximal length.

We cali canonical nest any nest built up by our procedure irrespective of the order in which sentences of the same form are considered.

Theorem.

(i) The canonical nest for T is open ==• F has a model,

(ii) T has no model =* The canonical nest for Y is closed.

Corollary 1.

(i) The canonical nest for T is closed *=• T has no model.

(ii) T is confutable *=* V has no model.

(iii) The canonical nest for T is closed *=> T is confutable.

Corollary 2.

(i) T entails <p <=> «p is a logicai consequence of T .

(ii) The canonical nest for T U {"1 <p} is closed <=* *p is a logicai

consequence of F .

Page 36: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

150

23. It should be noted, however, that there are sequents T such that the canonical tableau for T contains a completed open branch whereas the canonical nest for T is not a completed open nest. This is shown by the following simple example.

Example.

P-Aatì

y.{P,b}

VyHxRyxV VzSz\T

VySxRyx

SxRpx^

RPb

SxRyx y/~

Ryc

*Yy3xRyxV VzSzyf

VyHxRyx

a : {*! } 0 : {*i>

Sa 3xR&Xy/

Rpb

Ex Ryc

Ryc

y.iP.b]

24. So far we have confined ourselves to the language of predicate logie without equality. If we add equality, then we may employ either a set of equality axioms or a substitution rule for equals similar to paramodulation (see [12]).

Generally, however, this is not the best approach because, contrary to a widespread misunderstanding, equality is a domain dependent concept. In implementing a logie programming system based on tableaux or nests, it will be more efficient to build-in direct access to machine execution of equality when both of its arguments are integer terms (and presumably also other kinds of terms). In the remaining cases one may resort to the above logicai approach.

Page 37: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

151

REFERENCES

[1] M. Bergmann, J. Moor and J. Nelson, The Logic Book, New York (Random House) 1980.

[2] K.A. Bowen frogrammtng with full first-order logie, in: J.E. Hayes, D. Michie and Y-H Pao (Eds.), Machine Intelligence 10, Chichester (Ellis Horwood) 1982, 421-440.

H.E. Hendry, Another system of naturai deduction, Notre Dame Journal of Formai Logic 16 (1975) 491^95.

S. Kanger, A simplified proof method for elementare logie, in: P. Braffort and D. Hirschberg (Eds.), Computer programming and formai systems, Amsterdam (North-Holland) 1963, 87-94; reprinted in [14] 364-371.

S.C. Kleene, Mathematical logie, New York (John Wiley & Sons) 1967.

R.A. Kowalski, Algorithm = logie 4- control, Communications of the Association for ComputingMachinery 22 (1979)424-431.

D. Prawitz, An improved proof procedure, Theoria 26 (1960) 102-139; reprinted in [14] 162-199.

D. Prawitz, A note on existential instantiation, The Journal of Symbolic Logic 32 (1967) 81-82.

[9] D. Prawitz, H. Prawitz and N. Voghera, A mechanical proof procedure and its realization in an electronic computer, Journal of the Association for Computing Machinery 7 (1960) 102-128; reprinted in [14] 202-228.

[10] W.V. Quine, On naturai deduction, The Journal of Symbolic Logic 15 (1950) 93-102.

[11] W.V. Quine, Methods of Logic, 3rd edition, New York (Holt, Rinehart and Winston, Ine) 1972.

[12] G. Robinson and L. Wos, Paramodulation and theorem-proving in first-order theories with equality, in: B. Meltzer and D. Michie (Eds.), Machine Intelligence 4, Edinburgh (Edinburgh University Press) 1969, 135-150; reprinted in [14] 298-313.

[13] J.A. Robinson, A machìne-orìentedlogie based on the resolution principle, Journal

[3]

W

[5]

[6]

[7]

[8]

Page 38: Logic and Computer Sciences, (1986) · Logic and Computer Sciences, (1986) Carlo Cellucci ... is an »-ary predicate and eaclt ... A sequent tableau for T is a tree obtained by placing

152

of the Association for Computing Machinery 12 (1965) 23-41; reprinted in [14] 397415.

[14] J. Siekmann and G. Wrightson (Eds), Automation of reasoning 1, Berlin (Springer-Verlag)1983.

[15] R.M. Smullyan, Analytic naturai deduction, The Journal of Symbolic Logic 30 (1965)123-139. .

[16] R.M. Smullyan, Trees and nest structures, The Journal of Symbolic Logic 31 (1966)303-321.

[17] R.M. Smullyan, First order logie, Berlin (Springer-Verlag) 1968.

[18] H. Wang, Toward mechanical mathematics, IBM Journal for Research and Deve-lopment 4 (I960) 2-22; reprinted in [14] 244-264.

CARLO CELLUCCI - Università di Roma "La Sapienza" - Istituto di Filosofia - Via No-mentana, 118-00161 Roma