<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Evaluating Pre-Processing Techniques for the Separated Normal Form for Temporal Logics?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ullrich Hustadt</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Claudia Nalon</string-name>
          <email>nalon@unb.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Clare Dixon</string-name>
          <email>CLDixon@liverpool.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, University of Bras lia C.</institution>
          <addr-line>P. 4466</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Computer Science, University of Liverpool Liverpool</institution>
          ,
          <addr-line>L69 3BX</addr-line>
        </aff>
      </contrib-group>
      <fpage>34</fpage>
      <lpage>48</lpage>
      <abstract>
        <p>We consider the transformation of propositional linear time temporal logic formulae into a clause normal form, called Separated Normal Form, suitable for resolution calculi. In particular, we investigate the e ect of applying various pre-processing techniques on characteristics of the normal form and determine the best combination of techniques on a large collection of benchmark formulae.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Clause normal forms are the foundation of most resolution-based calculi and
such calculi exist for a wide range of logics, including propositional, rst-order,
modal and temporal logics. Given a formula ', the clause normal form of '
is typically computed using a combination of equivalence or satis ability
preserving rewrite steps, including simpli cation as a special case, and renaming,
which replaces complex subformulae by new propositional variables and adds
de nitional clauses for the new propositional variables. Variations in the normal
form can greatly in uence the performance of resolution-based reasoning systems
and transformation procedures that compute clause normal forms typically aim
to produce fewer and/or shorter clauses for a given formula. For propositional
and rst-order logic the computation of such `small' clause normal forms is
wellstudied [
        <xref ref-type="bibr" rid="ref1 ref16 ref18">16,1,18</xref>
        ]. However, the problem has been not been investigated to the
same extent for non-classical logics, one exception being the work by Nalon and
Dixon on prenexing versus anti-prenexing for modal logics [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        In this paper we consider a clausal normal form for propositional linear time
temporal logic (PLTL), called Separated Normal Form (SNF). This normal form
was originally devised as the basis of a clausal resolution calculus and decision
? The second and third authors were partially supported by the EPSRC funded RAI
Hub FAIR-SPACE (EP/R026092/1) and the EPSRC funded programme grant S4
(EP/N007565/1). The third author was also partially supported by the EPSRC
funded RAI Hub RAIN (EP/R026084/1).
procedure for PLTL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. More recently, a decision procedure for PLTL using
labelled superposition has also used SNF as a starting point [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. There are
several theorem provers for PLTL that use SNF as their input language, including
TRP [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], TRP++ [
        <xref ref-type="bibr" rid="ref10 ref11">10,11</xref>
        ] and LS4 [
        <xref ref-type="bibr" rid="ref21 ref22">22,21</xref>
        ].
      </p>
      <p>In following we revisit the problem of computing the SNF of a given PLTL
formula. In particular, we determine the e ect of applying various pre-processing
techniques during the computation.</p>
      <p>The paper is organised as follows. We present the language of PLTL in
Section 2. The Separated Normal Form is given in Section 3, where the techniques
used for producing the normal form are also presented. Experimental evaluation
is discussed in Section 4.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The Language of PLTL</title>
      <p>
        We consider a particular variety of temporal logic, which is based on a linear,
discrete model of time with nite past and in nite future [
        <xref ref-type="bibr" rid="ref13 ref7">7,13</xref>
        ]. This logic can
be seen as a multi-modal language with two modalities, one to represent the
`next' moment in time, the other representing all future moments in time.
      </p>
      <p>
        The temporal operators supplied in the language operate over a sequence of
distinct `moments' in time. In this version, only future-time operators are used.
It is possible to include past-time operators in the de nition of the logic, as in
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], but such operators add no extra expressive power [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>Formulae are constructed from a denumerable set P = fp; q; p0; q0; p1; q1; : : :g
of propositional variables and a set of connectives3. In addition to the standard
propositional connectives (:; _; ^; !; $) we use a set of temporal operators
consisting of `3' (sometime in the future), `2' (always in the future), `#' (in the
next moment in the future), `U ' (until ), and `W' (unless or weak until ). The set
of well-formed formulae of PLTL, denoted by WFFPLTL , is inductively de ned
as the smallest set satisfying:
{ the propositional variables are in WFFPLTL ;
{ &gt; and ? are in WFFPLTL ;
{ if ' and are in WFFPLTL , then so are :', (' !</p>
      <p># ', (' U ), (' W );
{ if '1, . . . , 'n, n 1, are in WFFPLTL , then so are ('1 ^
('1 _ _ 'n).
), (' $
), 3 ', 2 ',
^ 'n) and</p>
      <p>A literal is a propositional variable or its negation. An eventuality is a formula
of the form 3 ', for a well-formed formula '. An elementary formula is one of
the logical constants &gt;, ?, a propositional literal or a formula of the form # ',
for an arbitrary formula '. A position is a word over the natural numbers. For
a formula ', the set pos(') of positions of ' is de ned as follows:
3 We consider the connectives that re ect the input language of our tool ltl2snf and
that occur in `real-world' or benchmark formulae, instead of restricting ourselves to
a minimal, expressively complete set of connectives.
{ the empty word 2 pos(');
{ if ' is of the form :'1, # '1, 2 '1, or 3 '1 for some formula '1 and 2
pos('1) then 1: 2 pos(');
{ if ' is of the form ('1 ! '2), ('1 $ '2), ('1 U '2), or ('1 W '2) and
2 pos('i) for i 2 f1; 2g, then i: 2 pos('); and
{ if ' is of the form ('1 ^ ^ 'n) or ('1 _ _ 'n) and 2 pos('i) for
i 2 f1; : : : ; ng, then i: 2 pos(').</p>
      <p>For a formula ' and position
at position as follows:</p>
      <p>2 pos('), we de ne the subformula 'j of '
{ 'j = ';
{ if ' is of the form :'1, # '1, 2 '1, or 3 '1 for some formula '1 and = 1: ,
then 'j = '1j ;
{ if ' is of the form ('1 ! '2), ('1 $ '2), ('1 U '2), or ('1 W '1) and
= i: for i 2 f1; 2g, then 'j = 'ij ; and
{ if ' is of the form ('1^ ^'n) or ('1_ _'n) and = i: for i 2 f1; : : : ; ng,
then 'j = 'ij .</p>
      <p>The polarity pol('; ) of a subformula occurring at position
' is de ned as follows:
in a formula
{ pol('; ) = 1;
{ if = :1 and 'j is of the form # '1, 2 '1, or 3 '1, then pol('; ) =
pol('; );
{ if = :1 and 'j is of the form :'1 or ('1 ! '2), then pol('; ) =
pol('; );
{ if = :2 and 'j is of the form ('1 ! '2), then pol('; ) = pol('; );
{ if = :i with i 2 f1; 2g and 'j is of the form ('1 U '2) or ('1 W '2) then
pol('; ) = pol('; );
{ if = :i with i 2 f1; : : : ; ng and 'j is of the form ('1 ^ ^ 'n) or
('1 ^ ^ 'n), then pol('; ) = pol('; );
{ if = :i with i 2 f1; 2g and 'j is of the form ('1 $ '2) then pol('; ) = 0.</p>
      <p>A formula ' at position is of positive polarity (resp. negative polarity ) if
pol('; ) = 1 (resp. pol('; ) = 1). A formula ' is pure if, for all positions
and 0, pol('; ) = pol('; 0) 6= 0.</p>
      <p>PLTL-formulae are interpreted over in nite sequences of states = (si)i2N
such that each si, 0 i, is a set of propositional variables. The notation ( ; i) j= '
denotes the truth of a formula ' in the model at the state index i, i 2 N. For
any formula ', model , and state index i, i 2 N, then either ( ; i) j= ' holds or
( ; i) j= ' does not hold, where the latter is denoted by ( ; i) 6j= '. The semantics
of WFFPLTL can now be given as follows:
De nition 1. Let ' and
index of a state in .</p>
      <p>{ ( ; i) j= &gt;
be formulae in WFFPLTL ,</p>
      <p>a model, and i 2 N the
{ ( ; i) 6j= ?
{ ( ; i) j= p if, and only if, p 2 si, where p 2 P
{ ( ; i) j= :' if, and only if, ( ; i) 6j= '
{ ( ; i) j= ('1 ^ ^ 'n) if, and only if, for every i, 1 i
{ ( ; i) j= ('1 _ _ 'n) if, and only if, for some i, 1 i
{ ( ; i) j= (' ! ) if, and only if, ( ; i) j= :' or ( ; i) j=
{ ( ; i) j= (' $ ) if, and only if, ( ; i) j= (' ! ) and ( ; i) j= (
{ ( ; i) j= # ' if, and only if, ( ; i + 1) j= '
{ ( ; i) j= 3 ' if, and only if, 9k; k 2 N; k
{ ( ; i) j= 2 ' if, and only if, 8k; k 2 N, if k
{ ( ; i) j= (' U ) if, and only if, 9k; k 2 N; k</p>
      <p>i j &lt; k, then ( ; j) j= '.
{ ( ; i) j= (' W ) if, and only if, either ( ; i) j= ' U
i; ( ; k) j= '
i, then ( ; k) j= '
i; ( ; k) j= and 8j; j 2 N, if
or ( ; i) j= 2 ':
n, ( ; i) j= '
n, ( ; i) j= 'i
! ')</p>
      <p>A formula ' is satis able if there is a model such that ( ; 0) j= '. If
( ; 0) j= ' for all models , then ' is said to be valid, denoted by j= '. Two
PLTL-formulae ' and are equi-satis able if, and only if, ' is satis able if, and
only if, is satis able. Two PLTL-formulae ' and are equivalent if, and only
if, for every model and every state index i, i 2 N, ( ; i) j= ' if and only if
( ; i) j=
3</p>
    </sec>
    <sec id="sec-3">
      <title>Normal Form</title>
      <p>
        Formulae in the language of PLTL can be transformed into a normal form called
Separated Normal Form (SNF) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This normal form was inspired by (but it
is independent of) Gabbay's separation result [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which states that temporal
formulae can be transformed into their past, present and future-time
components. In the version of SNF that we present here, formulae are represented by a
conjunction of clauses,
where each clause Ci, 1
i
      </p>
      <p>n, n 2 N, is in one of the following three forms.
where n; m
literals.</p>
      <p>0 and for every i, 1
m, and j, 1
j</p>
      <p>n, li and lj0 are
m
_ li
i=1
m n
2( _ li _ _ # lj0 )
i=1 j=1
m
2( _ li _ 3 l10)
i=1</p>
      <p>^
1 i n</p>
      <p>Ci
i
(global clause)
(eventuality clause)</p>
      <p>Note that SNF clauses do not contain occurrences of the operators U and
W, the operator 2 only occurs as principal operator of a clause, and nesting
temporal operators is limited to the combinations 2 and #; and 2 and 3.</p>
      <p>
        Every PLTL-formula ' can be transformed into an equi-satis able formula
in SNF. Fisher, Dixon and Peim [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] describe functions 0 and 1 with 0(') =
(q1 ^ 1(2(:q1 _'))), where q1 is a fresh propositional variable not occurring in ',
such that 0(') is in SNF and equi-satis able to '. The function 1 proceeds
topdown and uses renaming to deal with subformulae that are not yet in normal
form [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. The inductive de nition of 1 is shown in Figure 1, where ', 'i,
0 i n, and are PLTL-formulae, l; l1; l2 are literals, q is a propositional
variable, and q0, q00, and q000 are fresh propositional variables. Theorems 7.1.1
and 7.1.2 in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] show that the computation of 0(') always terminates, that the
number of SNF clauses in 0(') is bounded by 1 + 4 size('), and that the
number of fresh propositional variables in 0(') is bounded by 1 + 11 size('),
where size(') is the size of '.
      </p>
      <p>It is easy to see that 1 will not always produce a normal form with the
smallest number of clauses. For example,</p>
      <p>'1 = 2(:q _ : # :p)
is equivalent to 2(:q _ # p) which is in normal form, but, according to
Equation (8) in Figure 1, 1('1) would produce a conjunction of two clauses. This
could be avoided by converting formulae to negation normal form (NNF) before
applying 1, using the rewrite rules for temporal formulae given in Figure 2 and
the usual equivalences for classical formulae. The formula</p>
      <p>'2 = 2(:q _ (p U p))
is equivalent to 2(:q _ p) which again is in normal form, but, according to
Equation (16) in Figure 1, 1('2) would produce a conjunction of ve clauses.
This could be avoided by simpli cation using well-known equivalences among
temporal formulae, which are given in Figure 3, together with the well-known
corresponding equivalences among Boolean formulae.</p>
      <p>
        Using such equivalences we can also extend or reduce the scope of
temporal operators. Prenexing corresponds to moving modal operators outwards a
formula. Analogously, anti-prenexing corresponds to moving modal operators
inwards a formula. For example, anti-prenexing would replace 3(p _ q) by the
equivalent (3 p _ 3 q) while prenexing would do the opposite. Here we only
discuss the anti-prenexing technique. In rst-order logic, it has been shown [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] that
the transformation of a given problem into anti-prenex normal form may result
in a better set of clauses. Similar results for normal modal logics which allow the
simpli cation of nested operators can be found in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. For temporal logics,
antiprenexing together with simpli cation may help reducing the size of a formula
and, consequently, the size of the normal form. For instance, the anti-prenex
normal form of '3 = 2(p ^ 2(p ^ 2 p)) is
2 p ^ 2 2 p ^ 2 2 2 p
1(2(:q _ '1 _ _ 'n)) = 2(:q _ '1 _ _ q0 _ _ 'n) ^ 2(:q0 _ 'i) (3)
if 'i;1 i n; is not an elementary formula
1(2(:q _ ' _ #('1 _ _ 'n))) = 1(2(:q _ ' _ #'1 _ _ #'n))
1(2(:q _ ' _ # )) = 1(2(:q _ ' _ #q0)) ^ 1(2(:q0 _ ))
      </p>
      <p>if is not a disjunction of literals
1(2(:q _ (' ! ))) = 1(2(:q _ :' _ ))
1(2(:q _ :(' ! ))) = 1(2(:q _ ')) ^ 1(2(:q _ : ))
1(2(:q _ :#')) = 1(2(:q _ #q0)) ^ 1(2(:q0 _ :'))
1(2(:q _ 2')) = 1(2(:q _ 2q0)) ^ 1(2(:q0 _ '))</p>
      <p>if ' is neither a literal nor a constant
1(2(:q _ 2l)) = 2(:q _ l) ^ 2(:q _ q0)</p>
      <p>^2(:q0 _ #l) ^ 2(:q0 _ #q0)
1(2(:q _ :2')) = 1(2(:q _ 3:'))
1(2(:q _ 3')) = 1(2(:q _ 3q0)) ^ 1(2(:q0 _ '))</p>
      <p>if ' is neither a literal nor a constant
1(2(:q _ :3')) = 1(2(:q _ 2:'))
1(2(:q _ (' U ))) = 1(2(:q _ (q0 U ))) ^ 1(2(:q0 _ '))</p>
      <p>if ' is neither a literal nor a constant
1(2(:q _ (' U ))) = 1(2(:q _ (' U q0))) ^ 1(2(:q0 _ ))</p>
      <p>if is neither a literal nor a constant
1(2(:q _ (l1 U l2))) = 2(:q _ 3l2) ^ 2(:q _ l1 _ l2)
^2(:q _ q0 _ l2) ^ 2(:q0 _ #l1 _ #l2)
^2(:q0 _ #q0 _ #l2)
1(2(:q _ :(' U ))) = 1(2(:q _ (q0 W q00)))
^2(:q00 _ q0) ^ 2(:q00 _ q000)
^ 1(2(:q0 _ : )) ^ 1(2(:q000 _ :'))
1(2(:q _ (' W ))) = 1(2(:q _ (q0 W ))) ^ 1(2(:q0 _ '))</p>
      <p>if ' is neither a literal nor a constant
1(2(:q _ (' W ))) = 1(2(:q _ (' W q0))) ^ 1(2(:q0 _ ))</p>
      <p>if is neither a literal nor a constant
1(2(:q _ (l1 W l2))) = 2(:q _ l1 _ l2) ^ 2(:q _ q0 _ l2)
^2(:q0 _ #l1 _ #l2)
^2(:q0 _ #q0 _ #l2)
1(2(:q _ :(' W ))) = 1(2(:q _ (q0 U q00)))
^2(:q00 _ q0) ^ 2(:q00 _ q000)
^ 1(2(:q0 _ : )) ^ 1(2(:q000 _ :'))
1(') = '; if no other rule applies
(2)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
nnf(: # ') = # nnf(:') (23)
nnf(:(' U
)) = (nnf(: ) W nnf(:' ^ : )) (29)
nnf(: 3 ') = 2 nnf(:') (25)</p>
      <p>nnf(# ') = # nnf(') (26)
As 2 2 is equivalent to 2 , for any formula , after simpli cation, we obtain
the formula 2 p. Figure 4 shows the equivalences that can be used to either
extend or reduce the scope of temporal operators. For anti-prenexing the
equivalences are used as rewrite-rules from left to right. For instance, the anti-prenex
normal form of the formula # 2 # 2 # 2 p is 2 2 2 # # # p, which can then be
simpli ed to 2 # # # p.</p>
      <p>Since 1 only preserves satis ability, we can go even further for the formulae
'1, '2 and '3, given before. In all these formulae the propositional variable p
only occurs with positive polarity. In analogy to propositional logic, we can apply
pure literal elimination, that is, we replace variables that only occur positively
(resp. negatively) by &gt; (resp. ?), and then simplify. For '1, '2, and '3 we
obtain &gt; as result.</p>
      <p>Finally, a peculiarity of the normal form transformation by 0 and 1 is
that for a formula ' in normal form, 0(') will not be the same as '. Say, '4 is
(q2 ^2(:q2 _p)). Then 0('4) = (q1 ^ 1(2(:q1 _((q2 ^2(:q2 _p))))). Computing
1 will involve Equation (10) in Figure 1, creating four additional clauses. We
can ameliorate this problem by modifying 1 so that it treats 2(:q1 _ 2 ') like
2(:q1 _ ') for the speci c propositional variable q1 used by 0. The next lemma
3('1 _
(62)
(63)
(64)
(65)
(66)
(67)
(68)
(69)
(70)
(71)
(72)
shows that this simpli cation step in the transformation is correct, that is, that
satis ability is preserved.</p>
      <p>
        Lemma 1. Let ' be a PLTL-formula and q1 a propositional variable not
occurring in '. Then, 2 ' is satis able if, and only if, q1 ^ 1(2 ') is satis able.
Proof. ()) By the results in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], 2 ' is satis able if, and only if, q1 ^ 2(:q1 _
1(2 ')) is satis able. From the de nition of satis ability, there is a model such
that ( ; 0) j= q1 ^ 2(:q1 _ 1(2 ')). It follows that (1) ( ; 0) j= q1 and ( ; 0) j=
2(:q1 _ 1(2 ')). From the de nition of satis ability of the temporal operator
2, for all i, i 2 N, we have that ( ; i) j= :q1 _ 1(2 '). In particular, ( ; 0) j=
:q1 _ 1(2 '). As ( ; 0) j= q1, it follows from the de nition of satis ability of
disjunctions that (2) ( ; 0) j= 1(2 '). From (1) and (2), q1^ 1(2 ') is satis able.
      </p>
      <p>
        (() If q1 ^ 1(2 ') is satis able, then there is a model such that ( ; 0) j=
q1 ^ 1(2 '). We construct a model 0 such that s00 = s0 [ fq1g and, for all
i &gt; 0, s0i = si n fq1g. It follows, by construction, that (3) ( 0; 0) j= q1. As
( ; 0) j= 1(2 ') and the evaluation of 1(2 ') does not depend on the evaluation
of q1, we have that ( 0; 0) j= 1(2 ') and, from the de nition of satis ability of
disjunctions, (4) ( 0; 0) j= :q1 _ 1(2 '). Also, by construction, for all i &gt; 0,
( 0; i) j= :q1. Thus, for all i, i 2 N, (5) ( 0; i) j= :q1 _ 1(2 '). From (4) and
(5), it follows that, for all i 0, ( 0; i) j= :q1 _ 1(2 '). From the de nition of
satis ability of the 2 operator, we obtain that (6) ( 0; 0) j= 2(:q1 _ 1(2 ')).
From (3) and (6), we have that ( 0; 0) j= q1 ^ 2(:q1 _ 1(2 ')). By the results
in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], 2 ' is satis able.
2 repeat
3 hnumsimp; 'i input simplification(');
4 until (numsimp = 0);
5 ' nnf transformation(');
6 repeat
7 h'; numaprenexi aprenex transformation(');
8 hnumsimp; 'i input simplification(');
9 until (numsimp = 0 and numaprenex = 0);
10 return snf transformation(');
      </p>
    </sec>
    <sec id="sec-4">
      <title>4 Implementation and Evaluation</title>
      <p>
        We have implemented 0, 1 and the techniques described in Section 3. The tool
ltl2snf is a transformer written in C, which takes a formula in the language of
PLTL and produces a set of SNF clauses in the syntax used by TRP++ [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and
LS4 [
        <xref ref-type="bibr" rid="ref21 ref22">22,21</xref>
        ]. The source code of ltl2snf, together with installation and usage
instructions, is available in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        The techniques for pre-processing the input are coded as independently as
possible in order to allow for the easy addition and testing of new features. By
default, for a given PLTL-formula ', ltl2snf just computes 0(nnf(')). The
resulting formula is in simpli ed form: repeated literals, the constant ?, and
the formulae # ? and 3 ? within a clause are deleted; and clauses containing
the constant &gt;, l and :l, # l and # :l, for some literal l, and the formulae
# &gt; or 3 &gt; are removed. Once such a set of SNF clauses has been computed, no
further simpli cation is performed. In particular, clause subsumption or variable
elimination techniques such as those described in [
        <xref ref-type="bibr" rid="ref10 ref20">10,20</xref>
        ] are not applied. We
consider this to be a task for theorem provers that take SNF clauses as input.
      </p>
      <p>The main loop of ltl2snf is schematically presented in Figure 5, where the
input simplication function returns the number of transformation steps given by
the optional techniques enable by the user, namely:
{ -ple for pure literal elimination together with constant propagation, and
{ -simp for simpli cation.</p>
      <p>Two more processing techniques can be enabled by the options:
{ -aprenex for the anti-prenexing transformation, which is performed by the
function aprenex transformation in Figure 5; and
{ -isnf for the modi ed version of 1, which is implemented as part of the
transformation into the normal form (snf transformation).
Both the simpli cation procedure and the transformation into anti-prenex
normal form are performed until a xed-point is reached, that is, no further
transformation/simpli cation is possible. We also note that simpli cation and pure
literal elimination are performed before the transformation into Negation
Normal Form, as this allows for better memory use and performance. For instance,
the NNF of</p>
      <p>:(p1 U (p2 U p3))
results in</p>
      <p>((:p3 W (:p2 ^ :p3) W (:p1 ^ (:p3 W (:p2 ^ :p3))))
where all literals are pure. It is easy to see that for formulae with similar
structure, the result of the translation into NNF is exponential in the size of the
original formula. Applying pure literal elimination together with constant
propagation to the original formula avoids this problem. For this particular example, the
resulting formula is &gt;.</p>
      <p>
        To evaluate the e ectiveness of each technique and their combinations we
have used a set of PLTL-formulae collected by Schuppan and Darwiche [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The
collection consists of 7450 formulae, half of these are taken from the literature
or previous collections of benchmark formulae, the other half is obtained by
negating these formulae. Since we also compared ltl2snf with an earlier
implementation of the SNF transformation in the tool translate [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], we have
only 6135 of these formulae, on the remaining formulae, translate does not
produce a normal form within a time limit of 1000 CPU seconds. The collection
is divided into seven classes: acacia, alaska, anzu, forobots, rozier, schuppan,
trp. Most classes consist of several families of formulae, sometimes with quite
di erent characteristics (for a detailed description of each class and each family
see [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]). We have therefore re-categorised the formulae as follows:
{ application category: consists of the formulae in the classes acacia, alaska,
anzu, and forobots, all of which relate to `real world' applications, as well as
the counter family of the rozier class, containing formulae that specify serial
counters, and the phltl family of the schuppan class, containing formulae that
specify temporalised instances of the pigeon hole problem;
{ pattern category: consists of the pattern family of the rozier class and the
O1formula and O2formula families of the schuppan class; these are series of
scalable temporal formulae that follow simple patterns;
{ random category: consists of the formulas family of the rozier class, containing
random temporal formulae;
{ semi-random category: consists of the trp class, containing formulae that each
follow a pattern but also have a random part. Half of the formulae in this
category (the unnegated formulae) are already in SNF.
      </p>
      <p>Table 1 shows syntactic properties of these categories. The random category
contains more formulae than all other categories combined. However, the combined
size of its formulae is smaller than that of the application and semi-random
#Temporal Avg #Boolean
#For- Operators Temporal Operator Boolean Total Avg
Category mulae Occurrences Operators Occurrences Variables Size Size
application 542 65733 121.3 194029 6772 381525 703.9
pattern 407 30703 75.4 15051 24068 72739 178.7
random 4000 87734 21.9 141048 11542 311636 77.9
semi-random 1187 128146 108.0 234298 19163 523890 441.4
total 6136 312316 50.9 584426 61545 1289790 210.2
categories. The pattern category is the smallest, both in terms of number of
formulae and their combined size. It is the only category in which the number of
temporal operator occurrences is larger, and signi cantly so, than the number
of occurrences of Boolean operators. On the other hand, the average number of
temporal operators per formula is considerably higher for the application and
semi-random categories than the others. The application category is the only
one where formulae contain the Boolean constants &gt; and ?, on average 13
occurrences in each formula.</p>
      <p>
        Besides considering the e ect of various pre-processing techniques
implemented in ltl2snf on the normal form, we have also compared ltl2snf with the
latest version of translate [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], an earlier implementation of the transformation
of PLTL to SNF. translate which is written in OCaml, implements the same set
of simpli cation rules used by ltl2snf, the main di erences being that
conjunctions and disjunctions are taken as binary operators and that some prenexing
is also applied (speci cally, Equations (61) to (64), (67) and (68) in Figure 4).
The option -s activates simpli cation. With the option -r, during the normal
form transformation translate will replace (' _ ) by (p _ ) together with the
de nition 2(:p _ '), if both ' and are temporal formulae. This is assumed to
result in a smaller normal form in most cases, although it not always does.
      </p>
      <p>Figure 6 shows for particular combinations of ltl2snf and translate
options for each category (a) the average number of fresh propositional variables
introduced in the transformation, (b) the average number of clauses produced,
(c) the average size of the normal form and (d) the average computation time.
Note that ltl2snf always computes the NNF of the input formula. We therefore
cannot investigate whether this in itself has a positive or negative e ect.</p>
      <p>
        Table 1 together with Figures 6(a) and 6(b) show that on average the number
of fresh propositional variables introduced in the SNF transformation as well as
the number of clauses produced is much lower than the worst case upper bound
established in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Instead of four times the number of clauses and eleven times the
number fresh variables in the size of formulae, even without any pre-processing
we see that on everage we get a number of clauses linear in the size of a formulae
and a number of fresh propositional variables at half the size of a formula. With
pre-processing both can further be reduced by half.
      </p>
      <p>application pattern random semi-random overall
(a) Average number of fresh variables introduced for each problem during
transformation
application pattern random semi-random
(b) Average number of SNF clauses for each problem
overall
application</p>
      <p>pattern random semi-random
(c) Average size of SNF for each problem
overall
ltl2snf
ltl2snf -isnf -simp
ltl2snf -isnf -ple -simp
ltl2snf -aprenex -isnf -ple -simp
translate
translate -r -s
application pattern random semi-random overall
(d) Average time for transformation of each problem (in CPU seconds)</p>
      <p>
        Overall, the combination of -isnf, -simp, and -ple o ers the best result.
The option -isnf o er the greatest improvement on the semi-random category,
as half its formulae are already in normal form. The option -ple, pure literal
elimination, shows the greatest improvements on the pattern and random
categories. For the pattern category this is the case because most formulae only
contain positive propositional literals. It seems to have been overlooked in their
construction that the formulae consequently have trivial models. For the random
category, again a lot of them contain pure literals as an artefact of the particular
way they were randomly generated. On the other hand, on the application and
semi-random categories, pure literal elimination has almost no e ect. For the
application category, one can take this as an indication that in the formalisation
of `real world' applications, pure literals are rare. For the semi-random category,
the lack of pure literals is an artefact of their construction. Option -aprenex,
anti-prenexing, appears to have a detrimental e ect. This is in contrast to the
results in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] for basic modal logic, where anti-prenexing was found to be
benecial. This indicates that the assumption that anti-prenexing leads to chains of
temporal operators that can be collapsed, is not true for any of the benchmark
categories.
      </p>
      <p>Regarding the time it takes to compute the normal form, we can see in
Figure 6(d) that ltl2snf typically takes less than 1ms to compute the SNF
of a formula, independent of the pre-processing techniques that are applied.
In contrast, for translate the use of simpli cation increases the computation
time dramatically, in particular, for the application category where it increases
from an average of 0.01 CPU seconds to 12.61 CPU seconds. Also remember
that we have already excluded over 1300 formulae for which translate does
not complete the transformation within 1000 CPU seconds, in particular, it
does not do so with simpli cation enabled. One possible explanation for the
gap between the time spent by translate and that spent by ltl2snf is that
the former does not atten conjunctions and disjunctions, but a polynomial,
thus non-optimal, sorting algorithm is applied to conjuncts and disjuncts before
applying simpli cation.</p>
      <p>We have also started to evaluate how the provers LS4 and TRP++ perform
on the various sets of SNF clauses that ltl2snf can produce for each of the
benchmark formulae. Initial results suggest that at least on average, the smallest
normal form indeed leads to the best performance by the two provers.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>
        Overall, the results show that the application of pre-processing techniques
signi cantly reduced the size of the normal form and that, if implemented well, as
in ltl2snf, this application comes at negligible computational cost. We are
currently implementing the prenex transformations given in Figure 4 and di erent
techniques for renaming in order to reduce further the size of the generated set
of clauses. Finally, although 'small' normal forms seem to be a good measure for
determining the quality of the translation into the normal form, we are planning
for a more systematic evaluation of the impact they have in the e ciency of
the provers. As part of our investigation, we are planning to implement di erent
variants of the separated normal form, for instance a variant introduced in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
where only a single eventuality clause is allowed. While this leads to a bigger
normal form when we need to reduce several eventualities in the input to just
one, proof search by existing PLTL decision procedures may become easier and
therefore result in better overall performance.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Azmy</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weidenbach</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Computing tiny clause normal forms</article-title>
          .
          <source>In: Proc. CADE24. Lecture Notes in Computer Science</source>
          , vol.
          <volume>7898</volume>
          , pp.
          <volume>109</volume>
          {
          <fpage>125</fpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Degtyarev</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Fisher,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Konev</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          :
          <article-title>A simpli ed clausal resolution procedure for propositional linear-time temporal logic</article-title>
          .
          <source>In: Proc. TABLEAUX 2002. Lecture Notes in Computer Science</source>
          , vol.
          <volume>2381</volume>
          , pp.
          <volume>85</volume>
          {
          <fpage>99</fpage>
          . Springer (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Egly</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>On the value of antiprenexing</article-title>
          .
          <source>In: Proc. LPAR 1994. Lecture Notes in Arti cial Intelligence</source>
          , vol.
          <volume>822</volume>
          , pp.
          <volume>69</volume>
          {
          <fpage>83</fpage>
          . Springer (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Fisher,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A Resolution Method for Temporal Logic</article-title>
          .
          <source>In: Proc. IJCAI</source>
          <year>1991</year>
          . pp.
          <volume>99</volume>
          {
          <fpage>104</fpage>
          . Morgan Kaufman (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Fisher,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A Normal Form for Temporal Logic and its Application in TheoremProving and Execution</article-title>
          .
          <source>Journal of Logic and Computation</source>
          <volume>7</volume>
          (
          <issue>4</issue>
          ),
          <volume>429</volume>
          {456 (Aug
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Fisher,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Dixon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Peim</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Clausal temporal resolution</article-title>
          .
          <source>ACM Transactions on Computational Logic</source>
          <volume>2</volume>
          (
          <issue>1</issue>
          ),
          <volume>12</volume>
          {
          <fpage>56</fpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gabbay</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pnueli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shelah</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stavi</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The Temporal Analysis of Fairness</article-title>
          .
          <source>In: Proc. POPL</source>
          <year>1980</year>
          . pp.
          <volume>163</volume>
          {
          <fpage>173</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>1980</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Gabbay</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          :
          <article-title>Declarative Past and Imperative Future: Executable Temporal Logic for Interactive Systems</article-title>
          .
          <source>In: Proc. Colloquium on Temporal Logic in Speci cation. Lecture Notes in Computer Science</source>
          , vol.
          <volume>398</volume>
          , pp.
          <volume>402</volume>
          {
          <fpage>450</fpage>
          . Springer (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hustadt</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          : TRP 1.4 [online] (
          <year>2008</year>
          ), http://cgi.csc.liv.ac.uk/~ullrich/TRP/
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hustadt</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konev</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>TRP++: A temporal resolution prover</article-title>
          . In: Baaz,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Makowsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Voronkov</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.) Collegium Logicum, pp.
          <volume>65</volume>
          {
          <fpage>79</fpage>
          .
          <source>Kurt Godel Society</source>
          (
          <year>2004</year>
          ), http://www.csc.liv.ac.uk/~ullrich/publications/HK_KGS.pdf
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Konev</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <source>TRP++ 2</source>
          .2 [online] (
          <year>2011</year>
          ), http://cgi.csc.liv.ac.uk/~konev/ software/trp++/
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Konev</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          : Translate [online] (
          <year>2016</year>
          ), http://cgi.csc.liv.ac.uk/~konev/ software/trp++/translator/
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lichtenstein</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pnueli</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zuck</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>The Glory of the Past</article-title>
          .
          <source>In: Proc. Logics of Programs 1985, Lecture Notes in Computer Science</source>
          , vol.
          <volume>193</volume>
          , pp.
          <volume>196</volume>
          {
          <fpage>218</fpage>
          . Springer (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Nalon</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dixon</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Anti-prenexing and prenexing for modal logics</article-title>
          .
          <source>In: Proc. JELIA 2006. Lecture Notes in Computer Science</source>
          , vol.
          <volume>4160</volume>
          , pp.
          <volume>333</volume>
          {
          <fpage>345</fpage>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Nalon</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hustadt</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dixon</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>ltl2snf: a translator for LTL formulae into SNF clauses</article-title>
          [online] (
          <year>2018</year>
          ), http://www.cic.
          <source>unb.br/~nalon/software/ltl2snf-0.1</source>
          . 0.tar.gz
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Nonnengart</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weidenbach</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Computing small clause normal forms</article-title>
          . In: Robinson,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Voronkov</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.)
          <source>Handbook of Automated Reasoning, chap. 6</source>
          , pp.
          <volume>335</volume>
          {
          <fpage>367</fpage>
          .
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Plaisted</surname>
            ,
            <given-names>D.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greenbaum</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          :
          <article-title>A Structure-Preserving Clause Form Translation</article-title>
          .
          <source>Journal of Logic and Computation</source>
          <volume>2</volume>
          ,
          <issue>293</issue>
          {
          <fpage>304</fpage>
          (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Reger</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Suda</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Voronkov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>New techniques in clausal form generation</article-title>
          .
          <source>In: Proc. GCAI</source>
          <year>2016</year>
          . EPiC Series in Computing, vol.
          <volume>41</volume>
          , pp.
          <volume>11</volume>
          {
          <fpage>23</fpage>
          .
          <string-name>
            <surname>EasyChair</surname>
          </string-name>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Schuppan</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Darmawan</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Evaluating LTL satis ability solvers</article-title>
          .
          <source>In: Proc. ATVA 2011. Lecture Notes in Computer Science</source>
          , vol.
          <volume>6996</volume>
          , pp.
          <volume>397</volume>
          {
          <fpage>413</fpage>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Suda</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Variable and clause elimination for LTL satis ability checking</article-title>
          .
          <source>Mathematics in Computer Science</source>
          <volume>9</volume>
          (
          <issue>3</issue>
          ),
          <volume>327</volume>
          {
          <fpage>344</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Suda</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          : LS4 [online] (
          <year>2018</year>
          ), https://github.com/quickbeam123/ls4
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Suda</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weidenbach</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A PLTL-prover based on labelled superposition with partial model guidance</article-title>
          .
          <source>In: Proc. IJCAR</source>
          <year>2012</year>
          . pp.
          <volume>537</volume>
          {
          <fpage>543</fpage>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>