Documente Academic
Documente Profesional
Documente Cultură
The method of tableaux is a formal proof pro
edure with many varieties and for several logi
s. Among other
important appli
ations, it is used for the development of theorem-provers. An obje
t-oriented framework for the
implementation of tableaux methods was presented in Wagner Dias's MS
. Dissertation [Dia02. This framework
was implemented in the C++ programming language. In this paper, we des
ribe some modi
ations we have made
in that implementation in order to obtain shorter KE Tableau proofs. We also present the result of tests we have run
with both implementations
omparing: (i) the number of formulas, (ii) the number of nodes in the
losed tableaus
and (iii) the time spent for the
losing of ea
h tableau.
1 Introdu
tion
The method of tableaux is a formal proof pro
edure with many varieties and for several logi
s. Among other
important appli
ations, it is used for the development of theorem-provers. An obje
t-oriented framework for the
implementation of tableaux methods was presented in Wagner Dias's MS
. Dissertation [Dia02. This framework
was implemented in the C++ programming language. Three tableaux methods were
overed by his implementation:
Smullyan's Analyti
Tableaux, D'Agostino's KE Tableaux and Finger and Wasserman's KE-S3 Tableaux. In this
paper, our goal is des
ribing some modi
ations we have made in that implementation in order to obtain shorter
KE Tableau proofs, as well as presenting the result of tests we have run with both implementations
omparing: (i)
the number of formulas, (ii) the number of nodes in the
losed tableaus and (iii) the time spent for the
losing of
ea
h tableau.
In Se
tion 2, we shortly present some of the history of tableaux, give a pre
ise denition of Analyti
Tableaux,
and re
all some of the
onsiderations about tableaux made by Mar
ello D'Agostino in [DAg99. After that, we
present his KE System in subse
tion 3.1. Then in Se
tion 4, we show the modi
ations we have made in Wagner
Dias's system. After that, in Se
tion 5, we introdu
e the families of formulas that were used for the
omparative
tests whose results are in Se
tion 6. We present in Se
tion 7 our
on
lusions and possible future works. And in
Appendix A, we give a personal evaluation on the experien
e of rewriting
ode.
In 1955, Beth, motivated by semanti
on
erns, introdu
ed the `semanti
tableaus'. Hintikka, simultaneously,
also motivated by semanti
on
erns, that is, \the idea behind a proof of X is that it is a systemati
attempt to
onstru
t a model in whi
h :X is true, if the attempt fails, X has been established as valid", introdu
ed model sets.
But it was with Smullyan [Smu68 that tableaus be
ame widely known. In his book First-Order Logi
he presents
a system
alled `Analyti
1 Tableaux'.
2.2.1 Trees
An unordered tree
onsists of three mathemati
al obje
ts:
1. A set S of elements
alled points
2. A fun
tion l, whi
h assigns to ea
h point x a positive integer l(x)
alled the level of x
3. A relation xRy dened in S , whi
h we read as \x is a prede
essor of y " or \y is a su
essor of x". This relation
must obey the following
onditions:
C1 : There is a unique point a1 of level 1. This point is
alled the origin of the tree.
C2 : Every other point besides the origin has exa
tly one prede
essor.
C3 : For any points x, y , if y is a su
essor pof x, then l(y ) = l(x) + 1.
An end point is a point whi
h has no su
essors. A simple point has exa
tly one su
essor and a jun
tion point
has more than one su
essor. A path is any nite or denumerable sequen
e of points, beginning with the origin,
whi
h is su
h that ea
h term of the sequen
e (ex
ept the last, if there is one) is the prede
essor of the next. And a
maximal path or bran
h is either a path whose last term is an end point of the tree, or a path whi
h is innite.
An ordered tree is an unordered tree along with a fun
tion whi
h assigns to ea
h jun
tion point z a sequen
e
(z ) with no repetitions, and whose set of terms
onsists of all the su
essors of z . Therefore, if z is a jun
tion point of
an ordered tree, we
an speak of the 1st , 2nd , : : : , nth , : : : su
essors of z (for any n up to the number of su
essors
of z ) meaning, of
ourse, the 1st , 2nd , : : : , nth , : : : terms of (z ). For a simple point x, we shall also speak of the
su
essor of x as the sole su
essor of x.
Given a tree T , we
an add \new" points as su
essors of an end point x of this tree. That is, for any element y
not belonging to T , the adjun
tion of y as the sole su
essor of x results in the tree obtained by:
1. adding y to the set S ,
2. adding the ordered pair < x; y > to the relation R (looked as a set of ordered pairs), and
3. extending the fun
tion l by dening l(y ) = l(x) + 1.
The above des
ription serves for adding one point. If we want to add more than one point, that is, if we want to
add the distin
t elements y1 ; : : : ; yn , ea
h outside S , as respe
tive 1st , 2nd , : : : , nth su
essors of x, we will have to:
1. add the yi to S ,
2. add the pairs < x; yi > to R,
3. extend l by setting l(y1 ) = : : : = l(yn ) = l(x) + 1, and
4. extend the fun
tion by dening (x) to be the sequen
e (y1 ; : : : ; yn ).
A tree is
alled nitely generated if ea
h point has only nitely many su
essors. A tree, T , is
alled nite if
T has only nitely many points, otherwise the tree is
alled innite. Obviously, a nitely generated tree may be
innite.
A dyadi
tree is an ordered tree in whi
h ea
h jun
tion point has exa
tly 2 su
essors. For su
h trees, the rst
su
essor of a jun
tion point is
alled the left su
essor, and the se
ond su
essor is the right su
essor.
T (A ^ B )
F (A _ B )
T (A ! B )
T :A
F :A
1
TA
FA
TA
FA
TA
2
TB
FB
FB
FA
TA
The letter is used to stand for formulas of disjun
tive type. These are the formulas of type B |i.e. one of
the three forms F (A ^ B ); T (A _ B ); T (A ! B ). For every su
h formula , the two formulas 1 ; 2 are as in the
following table:
1 2
F (A ^ B ) F A F B
T (A _ B ) T A T B
T (A ! B ) F A T B
Therefore, all tableau rules
an be resumed to the following two:
T :A
FA
T (A ^ B )
TA
TB
F :A
TA
T :)
F :)
T ^)
F (A ^ B )
F A jF B
T _)
F (A _ B )
FA
FB
T (A _ B )
T A jT B
T (A ! B )
F A jT B
F (A ! B )
TA
FB
F ^)
F ^)
A Rule:
1
2
B Rule:
1 j 2
F (A ^ B ) ! (A _ B )
T A^B
F A_B
TA
TB
FA
X
\a logi
al system L is not just the traditional
onsequen
e relation `, but a pair (`; S` ), where `
is a mathemati
ally dened
onsequen
e relation (i.e. a set of pairs (; Q) su
h that ` Q) and S` is
an algorithmi
system for generating all those pairs. Thus, a
ording to this denition,
lassi
al logi
` per
eived as a set of tautologies together with a Gentzen system S` is not the same as
lassi
al logi
together with the two-valued truth-table de
ision pro
edure T` for it. In our
on
eptual framework,
(`; S` ) is not the same logi
as (`; T` )."
D'Agostino argues that Gentzen's natural dedu
tion is not really `natural', that is, it does not
ome `as
lose
to a
tual reasoning' as Gentzen wrote in 1935. A
ording to D'Agostino, \natural dedu
tion rules do not
apture
the
lassi
al meaning of the logi
al operators" but, instead, natural dedu
tion rules are a reading of Heyting's
explanations of the
onstru
tive meaning of the logi
al operators.
He shows that some proofs in the natural dedu
tion system, su
h as that for one of the deMorgan's laws:
:(P ^ Q) ! (:P _ :Q)
are rather unnatural (See [DAg99, page 64).
D'Agostino also shows that some Cut free sequent proofs are very redundant as well as some tableau proofs. He
proves that the tableau system and
ut free sequent
al
ulus are intrinsi
ally redundant. Therefore, he
on
ludes,
\su
h systems are not natural for
lassi
al logi
".
2 In other words, for ea
h analyti
tableau proof of size n, there is a KE-Tableau proof with size polynomial in n.
one proof in KE-Tableau of size
n.
T A_B
FB
TA
T _ 1)
(E
F A_B
FA
FB
T _ 2)
(E
(E
F _)
(E
F A^B
TB
FA
F ^ 1)
(E
TA^B
TA
TB
F ^ 2)
T ^)
(E
(E
TA!B
FB
FA
1)
(E
2)
FA!B
TA
FB
Negation Rules
T :A
FA
F :A
TA
T :)
(E
(E
F :)
(PB)
(E
1. A
2. B
3. A
4. B ^ A
5. A ! (B _ A)
But sin
e the third formula is equal to the rst, both
ould be represented by two pointers to the same atom.
We modied Wagner Dias's system so that we have two ve
tors of formulas: one for atomi
formulas and other
for
omposite formulas. In this representation, for the formula above we would have:
index
0
1
atomi
formula
A
B
index
2
3
omposite formula
B_A
A ! (B _ A )
internal representation
1_0
0!2
In Wagner Dias's system, the prove program re
eives a le
ontaining a set of signed formulas and builds a
tableau for this set using one of the methods (analyti
, KE or KES3) present in the framework. As a result, the
program shows the total number of nodes of the tableau, the total number of formulae and the elapsed time (in
se
onds) ne
essary for the
onstru
tion of the tableau. Optionally, it also shows a text representation of the tableau
proof. For instan
e,
prove -m analyti
-f gamma1.prove
builds and shows (-v option) a KE tableau proof for the 2 set of formulas.
In both
ases above, the readProve fun
tion is used to
all parse on the set of formulas3 . The readProve fun
tion
re
eives as input a sequen
e of strings su
h as the one below for the 1 set of formulas:
T(a1|b1)
T(a1->(a2|b2))
T(b1->(a2|b2))
F(a2|b2)
and returns true if all formulas are well-formed and false otherwise. A
tually, it re
eives two parameters: the string
with the formulas and a pointer to a ve
tor of signed formulas. If the string
ontains only well-formed formulas, the
ve
tor of signed formulas will re
eive, for ea
h line in the string, an obje
t of the SignedFormula
lass. This obje
t
will be the result of
alling the
onstru
tor of SignedFormula with two parameters:
1. the sign, whi
h is one of the two
onstants of the SignedFormula
lass: SignedFormula::S T or SignedFormula::S F depending, of
ourse, on the rst
hara
ter of the line and
2. the Formula obje
t whi
h is the result of applying parse to the
hara
ters on the line after the sign.
The
ode for this fun
tion is shown below:
3 There is also a readCNF fun
tion whi
h reads formulas in
onjun
tive normal form, but we have not used it.
8
The
all to readProve or readCNF fun
tions depends on the extension of the le passed as a parameter to the
prove program after the -f option. If the le extension is `.
nf' it
alls readCNF, whilst if the le extension is
`.prove', it
alls readProve. Below we show the lines that de
lare the ve
tor of signed formulas whi
h re
eives the
SignedFormula obje
ts and, after that,
all readCNF or readProve:
ve
tor<SignedFormula *> v;
bool read_ok;
if (
nf)
read_ok = readCNF(file, v);
else
read_ok = readProve(file, v);
And this obje
t is initialized with an obje
t of the
lass that implements the spe
i
tableau method
hosen in the
parameters passed to the prove program. The
onstru
tor of this
lass re
eives as parameter the ve
tor
ontaining
the set of formulas. For, instan
e, for the `-m analyti
' option, the program would initialize the Tableau obje
t in
the following way:
if (method == "analyti
") {
tab = new Analyti
Tableau("1", v);
((Analyti
Tableau *) tab)->setStrategy(new Analyti
Strategy());
}
Noti
e that in the last line a strategy is set for the Tableau obje
t. The
hoi
e of strategy also depends on the
parameters given to the prove program.
Finally, the line
bool
losed = tab->
lose();
9
alls a method that tries to
lose the tableau. If it is su
essful, the method returns true. Otherwise, it returns false.
Following is the new version of the readProve fun
tion. It basi
ally uses two ve
tors to store the atomi
formulas
and the
omposite formulas.
bool readProve(
onst string& file, ve
tor<SignedFormula *>& v)
{
string s_fml;
har sign;
Formula *p_fml;
ve
tor <Formula *> atomi
Formulas,
ompoundFormulas;
ifstream in(file.
_str());
in >> sign;
in >> s_fml;
while (!in.eof()) {
p_fml = parse2(s_fml, &atomi
Formulas, &
ompoundFormulas);
if (p_fml) {
v.push_ba
k(new SignedFormula(
sign=='T'?SignedFormula::S_T:SignedFormula::S_F,
p_fml));
}
else {
in.
lose();
return false;
}
in >> sign;
in >> s_fml;
}
in.
lose();
}
return true;
These are new fun
tions needed for the new parse:
10
// returns a previously allo
ated pointer to a formula (an element of the "formulas"
// ve
tor) if there is a formula equal to "aFormula" in this ve
tor. Otherwise,
// returns NULL.
Formula *in
ludes (ve
tor <Formula *> formulas, Formula * aFormula){
for (unsigned int i = 0; i!=formulas.size(); i++){
if (equalFormula (aFormula, formulas[i))
return formulas[i;
}
};
return NULL;
And below is the new parse fun
tion. It is named parse2. It re
eives three parameters { bsides the string from
whi
h the formula is parsed, it re
eives two pointers to the two ve
tors of atomi
formulas and
ompound formulas
already parsed in previous parses of the same tableau. This is ne
esseary so that for ea
h tableau ea
h formula be
reated only on
e.
//
//
//
//
i++;
}
else
if (i+1 < s.size() && s[i == '-' && s[i+1 == '>') {
item.type = PARSE_OPER;
item.op = Formula::IMPLIES;
S.push(item);
i = i + 2;
}
else
if (s[i == ')') {
Formula *result;
assert(!S.empty() && S.top().type == PARSE_FORM);
ve
tor<Formula *> fmls;
fmls.push_ba
k(S.top().formula);
S.pop();
assert(!S.empty() &&
(S.top().type == PARSE_OPEN || S.top().type == PARSE_OPER));
Formula::opType op = S.top().op;
while (S.top().type == PARSE_OPER) {
assert(op == S.top().op);
S.pop();
assert(!S.empty() && S.top().type == PARSE_FORM);
// puts a formula in fmls
fmls.insert(fmls.begin(), S.top().formula);
S.pop();
}
// removes opening parenthesis from the sta
k
assert(!S.empty() && S.top().type == PARSE_OPEN);
S.pop();
if (fmls.size() > 2) {
assert (op == Formula::AND || op == Formula::OR);
if (op == Formula::AND)
op = Formula::ANDN;
else
op = Formula::ORN;
Formula *aux = new Formula (op, fmls);
insert (
ompoundFormulas, aux, &result);
}else if (fmls.size() == 2){
Formula *aux = new Formula(op, fmls[0, fmls[1);
// insert a formula in the list of formulas
// (if it is a new one)
13
We kept a parse fun
tion that
alls parse2 passing two ve
tors that are not further used. It makes use of the
equalVe
tors fun
tion right below it.
// Calls parse2 passing two ve
tors. Used when you do not want
// to take into a
ount the atomi
formulas and the
ompoound
// formulas.
Formula *parse(
onst string& s)
{
ve
tor<Formula *> atomi
Formulas,
ompoundFormulas;
return parse2 (s, &atomi
Formulas, &
ompoundFormulas);
}
In order to
he
k if a formula was equal to another formula already parsed we had to implement teh following
fun
tion that
he
ks if the
ontent of a formula obje
t is equal to anothers
ontent.
// Returns true if a formula is synta
ti
ally equal to another formula
bool equalFormula (Formula* aFormula, Formula *anotherFormula){
if (aFormula->op != anotherFormula->op){
return false;
}
14
else {
swit
h (aFormula->op) {
ase Formula::ATOM:
{
if (aFormula->atom == anotherFormula->atom)
return true;
else
return false;
}
break;
ase Formula::NOT:
{
return equalFormula (aFormula->right, anotherFormula->right);
}
break;
ase Formula::IMPLIES:
{
return (equalFormula (aFormula->right, anotherFormula->right) &&
equalFormula (aFormula->left, anotherFormula->left));
}
break;
ase Formula::OR:
ase Formula::AND:
{
return ( (equalFormula (aFormula->right, anotherFormula->right)
&&
equalFormula (aFormula->left, anotherFormula->left)));
}
break;
ase Formula::ORN:
ase Formula::ANDN:
{
if (equalVe
tors (aFormula->fmls, anotherFormula->fmls))
return true;
else return false;
}
}
};
return false;
}
// returns true if the ve
tors
ontain the same formulas
// (a
ording to equalFormula) in the same order
bool equalVe
tors (ve
tor<Formula *> v1, ve
tor<Formula *> v2){
if (v1.size() != v2.size())
return false;
else {
for (unsigned int i = 0; i!=v1.size(); i++){
15
}
}
return true;
};
We had to make some
hanges in the TableauStrategy
lass, always following this pattern: adding the ve
tor of
all signed formulas in the tableau as well as the ve
tors of atomi
and
ompound formulas.
lass TableauStrategy
{
publi
:
TableauStrategy();
virtual ~TableauStrategy();
// initializes the obje
t with the items of a tableau. Returns true
// if the tableau is already
lose. This method also uses the
// Floyd-Warshall algorithm to
al
ulate the minimum distan
e
// between ea
h pair of atoms.
virtual bool init(
onst string& tableau_id,
ve
tor<SignedFormula *> *items,
ve
tor<SignedFormula *> *alphas,
ve
tor<SignedFormula *> *betas,
ve
tor<SignedFormula *> *lits,
ve
tor<Formula *> *atomi
Formulas,
ve
tor<Formula *> *
ompoundFormulas
);
(...)
// Atomi
formulae of the tableau.
ve
tor<Formula *> *_atomi
Formulas;
16
And it was ne
essary to make modi
ations in the applyRule method that
alls rules, sin
e we
hanged the
format of rules:
bool Tableau::applyRule(unsigned int index,
onst ve
tor<SignedFormula *>& in,
ve
tor<SignedFormula *>& out,
ve
tor<SignedFormula *>& items,
ve
tor<Formula *>& atomi
Formulas,
ve
tor<Formula *>&
ompoundFormulas)
{
if (index < _rules.size())
return (*_rules[index)(in, out, items, atomi
Formulas,
ompoundFormulas);
return false;
}
The implementation of all rules had to be modied be
ause no new formulas or signed formulas should be
reated
by them. In order to a
hieve this obje
tive, we had to implement four fun
tions:
aSignedFormula { returns a pointer to a new signed formula if there is no signed formula in items (with the
same sign and formula pointer) or to an existing formula.
pushBa
kIfNew { very similar to the previous fun
tion, it pushes a new signed formula in items only if it is
not already there.
aSignedFormulaIndex is the same as aSignedFormula only that it returns an index to the formula in the items
ve
tor (if it is there) or -1 (in
ase it is not there).
aFormulaIndex { returns an index of a formula in a ve
tor of formulas, or -1 if the ve
tor does not in
lude the
formula.
The
ode for these fun
tions is presented below:
SignedFormula *aSignedFormula(SignedFormula::Sign sign, Formula *fml,
ve
tor<SignedFormula *>& items,
ve
tor<Formula *>& atomi
Formulas, ve
tor<Formula *>&
ompoundFormulas){
// verifies if the Signed Formula is in items. If it is, returns it. Otherwise,
//
reates it.
for (unsigned int i=0; i< items.size(); i++){
if ( ( (items[i)->sign == sign
) &&
( (items[i)->formula == fml ) ) {
return items[i;
};
};
}
void pushBa
kIfNew (ve
tor <SignedFormula *>& aVe
tor, SignedFormula::Sign sign, Formula *fml,
ve
tor<SignedFormula *>& items,
17
return -1;
return -1;
18
pushBa
kIfNew(out,SignedFormula::S_F,
in[0->formula->left,
items, atomi
Formulas,
ompoundFormulas);
pushBa
kIfNew(out, SignedFormula::S_F,
in[0->formula->right,
items, atomi
Formulas,
ompoundFormulas);
}
return true;
5 Families of formulas
In order to make
omparative tests for the tableaux methods implemented in his dissertation, Dias [Dia02
onsidered
the following sets of formulas that are well known as di
ult.
5.1
The
formulas
family of formulas [CS00 has the following form:
The
p1 ! (p2 _ q2 )
q1 ! (p2 _ q2 )
..
.
pi ! (pi+1 _ qi+1 )
qi ! (pi+1 _ qi+1 )
family has 2n formulas and 2n propositional variables. The sequent that one wants to prove is:
p1 _ q1 ;
` pn+1 _ qn+1
5.2
H formulas
The H formulas, or fat formulas, were dened in [DAg92 in order to prove that Smullyan's analyti
tableaux did not
polinomially simulate truth-tables. A H formula is
onstru
ted in the following way: let p1 ; : : : ; pn be propositional
variables and
onsider all possible disjun
tions
ontaining either li or li , where li = pi and li = :pi , and i = 1; : : : ; n.
The problem
onsists in showing that the
onjun
tion of these disjun
tions is unsatisable. The size of the problem
is the number of variables n. The initial number of formulas is one but the size of this formula is of order 2n .
p0 _ q0
((p0 _ q0 ) ! p1 ) _ ((p0 _ q0 ) ! q1 )
((p0 _ q0 ) ^ (p1 _ q1 ) ! p2 ) _ ((p0 _ q0 ) ^ (p1 _ q1 ) ! q2 )
..
.
((p0 _ q0 ) ^ (p1 _ q1 ) ^ : : : ^ (pi 1 _ qi 1 ) ! pi ) _ ((p0 _ q0 ) ^ (p1 _ q1 ) ^ : : : ^ (pi 1 _ qi 1 ) ! qi )
The problem is to de
ide if pi ^ qi
an be dedu
ed from the set of formulas above. This family admits short
proofs with the use of the
ut rule, but only exponential proof without
ut.
19
^
^
^
!
^
^
^
_
^
^
^
where pij means that the letter i is in pigeon hole j . The problem
onsists in proving that the formula above is valid.
The problem with size n has n (n 1) propositional variables and the formula's size is of order n3 . Cut-free proofs
of this problem are exponential. This problem
auses a lot of bran
hing and seems to be exponential, although there
is a proof by Buss that is polynomial.
6 Test results
We have tested both implementations with some instan
es of the families of formulas presented in se
tion [? in a
personal
omputer. One
an noti
e that although the number of formulas in the
losed tableaus de
reased a little,
the number of nodes remained the same and the time spent for the
losing of ea
h tableau did not always de
rease.
We believe this happened be
ause there is an overhead asso
iated with the sharing of subformulas. Below we present
the results.
6.1
Instan
e
1
2
3
4
5
6
7
8
formulas
# nodes
3
13
37
109
325
973
2917
8749
Changed version
# formulas Time (s)
13
0.000363
41
0.002388
112
0.011127
321
0.086773
944
0.283089
2809
0.955900
8400
3.635644
25169
13.903300
# nodes
3
13
37
109
325
973
2917
8749
20
Original version
# formulas Time (s)
13
0.000351
42
0.002353
117
0.010763
338
0.047102
997
0.193968
2970
0.927524
8885
3.410045
26626
12.979512
6.2
H formulas
Instan
e
H1
H2
H3
H4
H5
# nodes
1
3
21
105
465
Changed version
# formulas Time (s)
4
0.000040
15
0.000938
99
0.004384
669
0.094125
4761
2.574431
# nodes
1
3
21
105
465
Original version
# formulas Time (s)
4
0.000048
17
0.000329
103
0.004664
677
0.100072
4777
2.709676
# nodes
1
7
31
207
1079
5391
Changed version
# formulas Time (s)
5
0.000063
30
0.000901
124
0.008043
697
0.139583
3538
1.125550
18371
10.263416
# nodes
1
7
31
207
1079
5391
# nodes
1
3
61
483
Changed version
# formulas Time (s)
6
0.000072
26
0.000674
251
0.045288
2159
1.917854
# nodes
1
3
61
483
Original version
# formulas Time (s)
5
0.000069
30
0.000876
124
0.008224
711
0.098986
3696
1.176937
19539
10.126263
Original version
# formulas Time (s)
6
0.000088
29
0.000694
261
0.046799
2219
2.385304
7 Con
lusion
In his MS
. Dissertation [Dia02, Wagner Dias presented an obje
t-oriented framework for tableaux methods. And
he also gave an implementation of this framework in the C++ programming language. His implementation
overed
three tableaux methods: Smullyan's Analyti
Tableaux, D'Agostino's KE Tableaux and Finger and Wasserman's
KE-S3 Tableaux. Our problem was to make some modi
ations in his implementation so that KE Tableau proofs
be
ame shorter. With this in mind, we rst had to make
hanges in the representation of formulas, be
ause the
original implementation did not take advantage of the fa
t that some formulas may share subformulas. Then we
had to modify the Formula
lass, as well as the
lasses Tableau, TableauStrategy and KETableau. In this paper we
presented the major modi
ations we have made.
We have run tests with both implementations and noti
ed that, although the number of formulas in the
losed
tableaus de
reased a little, the number of nodes remained the same and the time spent for the
losing of ea
h tableau
did not always de
rease, be
ause there is an overhead asso
iated with the sharing of subformulas.
a framework also for implementing tableaux methods for substru
tural logi
s or fuzzy logi
, for instan
e? Maybe
aspe
ts, by giving us another dimension,
an help us with that job.
22
23
Referen
es
[Bet59 E. W. Beth. The Foundations of Mathemati
s, North Holland, 1959.
[CS00 A. Carbone and S. Semmes. A graphi
al apology symmetry and impli
itness. Oxford mathemati
al Monographs, 2000.
[Dia02 Wagner Dias. Implementa
~oes de Tableaux para Ra
io
inio por Aproxima
~oes. Disserta
~ao de Mestrado,
Departamento de Ci^en
ia da Computa
~ao, Instituto de Matemati
a e Estatisti
a, Universidade de S~ao
Paulo, 2002.
[DAg92 Mar
ello DAgostino. Are tableaux improvement on truth-tables? Journal of Logi
, Language and Information, 1992. Kluwer A
ademi
Publishers, 1999.
[DAg99 Mar
ello DAgostino. Tableau Methods for Classi
al Propositional Logi
. In: Handbook of Tableau Methods,
Mar
ello DAgostino et al. (eds), 45-123. Kluwer A
ademi
Publishers, 1999.
[Fit99 Melvin Fitting. Introdu
tion. In: Handbook of Tableau Methods, Mar
ello DAgostino et al. (eds), 1-43.
Kluwer A
ademi
Publishers, 1999.
[Gab96 Dov Gabbay. Labelled Dedu
tive Systems, Volume 1 - Foundations. Oxford University Press, 1996.
[Sta78 R. Statman. Bounds for proof-sear
h and speed-up in the predi
ate
al
ulus. Annals of Mathemati
al Logi
,
1978. Oxford University Press, 1996.
[Smu68 Raymond M. Smullyan. First-Order Logi
. Springer-Verlag, 1968.
[Hin55 J. Hintikka. Form and
ontent in quanti
ation theory. A
ta Philosophi
a Fenni
a. 8, 7-55, 1955.
[Gen35 G. Gentzen. Untersu
hungen uber das logis
he S
hliessen. Mathematis
he Zeits
hrift 39, 176-210, 405-431,
1935. English translation, `Investigations into logi
al dedu
tion', in [Sza69.
[Mor01 Mortari, Cezar. Introdu
~ao a Logi
a. Editora da UNESP, So Paulo, 2001.
[Sza69 M. E. Szabo, Ed. The Colle
ted Papers of Gehrard Gentzen. North-Holland, Amsterdam, 1969.
24