<!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>Linear Temporal Logics for Structured Context-Free Languages?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michele Chiari</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Davide Bergamaschi</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dino Mandrioli</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matteo Pradella</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DEIB</institution>
          ,
          <addr-line>Politecnico di Milano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IEIIT, Consiglio Nazionale delle Ricerche</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>The need to extend traditional temporal logics to express and prove properties typical of stack-based formalisms led, among others, to CaRet and NWTL on Visibly Pushdown Languages (VPL). Such formalisms support, e.g., model checking of procedural programs and other context-free languages (CFL). To further and signi cantly extend their expressive power, we recently introduced the logic OPTL, based on Operator Precedence Languages (OPL) which cover a much wider subclass of CFL. In this communication we survey the latest developments of our work. We introduced a novel temporal logic, POTL, that rede nes OPTL to be First-Order complete. Furthermore, POTL's semantics is better connected to the typical treestructure of CFL while retaining the ability to reason about linear time. Besides the theoretical advancements, we are also moving steps toward the implementation of POTL model checking.</p>
      </abstract>
      <kwd-group>
        <kwd>Linear Temporal Logic</kwd>
        <kwd>Operator-Precedence Languages</kwd>
        <kwd>Model Checking</kwd>
        <kwd>Visibly Pushdown Languages</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The need for specifying requirements in model checking with formalisms more
expressive than classical Linear Temporal Logic (LTL) has motivated much
research towards the development of formalisms capable of expressing context-free
properties [
        <xref ref-type="bibr" rid="ref12 ref14 ref15 ref16 ref6 ref7 ref8">6,7,16,14,15,12,8</xref>
        ]. Most notable are those based on Nested Words [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],
or Visibly Pushdown Languages (VPL, [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]), a class of structured deterministic
context-free languages (CFL) slightly more general than Parenthesis Languages
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Temporal logics based on them, such as CaRet [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and the First-Order
(FO) complete NWTL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], introduced temporal modalities to explicitly reason
about the nested structure of CFL, and found applications in the veri cation of
procedural programs.
      </p>
      <p>Such logics, however, su er from the limited generality of VPL with respect
to general CFL. This restricts the nesting relation on which they reason to be
? Copyright c 2020 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).</p>
      <p>call ret han exc
call l =: l m
hraent ml mm ml =m:
exc m m m m
#[call[[han[call[call[call]]]exc]call ret]ret]#
Simple chains: call[call]exc, call[han exc]call
Composed chains: call[call[call]]exc
call[[han[call[call[call]]]exc]call ret]call
·</p>
      <p>m
# (0) · # (10)
l . m
call (1) = · ret (9)
l l· call (7) =. remt (8)</p>
      <p>. m
han (2) = · exc (6)
l
call (3) · m m
l
call (4) ·
l
call (5)
one-to-one, which is enough for modeling the matching between function calls
and returns in procedural programs. However, it is not adequate to represent
more complex constructs such as exceptions and continuations, which need to be
modeled by one-to-many or many-to-one relations. E.g., an exception is a single
event that needs to be put in relation with all function instances it terminates.</p>
      <p>
        To further expand the expressiveness of temporal logics we introduced OPTL
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], a temporal logic based on Operator Precedence Languages (OPL, [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]), a
class of structured CFL which retains all closure and decidability properties
needed for model checking. OPL are wider than VPL [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], and their more general
nesting relation, called the chain relation, can be many-to-one or one-to-many.
      </p>
      <p>
        One of the features that is generally expected from temporal logics is
equivalence to FO Logic. Since proving this property for OPTL seems arduous, as is for
CaRet, in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] we surveyed some possible ways to de ne a logic more strictly
related to the context-free structure of OPL, for which FO-completeness could be
proved. Thus, we devised Precedence Oriented Temporal Logic (POTL), which
makes reasoning on the underlying syntax tree of an OPL word easier, while
remaining a linear-time temporal logic. We gave a FO-completeness proof of
POTL on nite words, which can be extended to !-words by composition
arguments. Moreover, the automata-theoretic model checking procedure we devised
for POTL has the same asymptotic complexity of less expressive formalisms,
being exponential in formula length.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Operator Precedence Languages</title>
      <p>OPL have been inspired by precedence relations among operators in arithmetic
expressions parsing. They are generated by grammars in operator form, i.e.
whose rules' right-hand sides (rhs) have no consecutive non-terminals. Their
parsers are guided in recognizing and reducing grammar rhs by three binary
precedence relations (PR) among terminal symbols. Given two terminals a; b,
for any non-terminals A; B; C and mixed terminal/non-terminal strings ; ; ,
we say a yields precedence to b (a l b) if there exists a rule A ! aC , s.t. a
string Bb or b derives from C in any number of passes; a is equal in precedence
to b (a =: b) if there exists a rule A ! aCb or A ! ab ; and a takes
precedence over b (a m b) if there is a rule A ! Cb , s:.t. aB or a derives from C.
In practice, a l b if b is the beginning of a rhs; a = b if they belong to the same
rhs; a m b if a is the end of a rhs. If at most one PR holds between any terminal
pair, once all PR are collected into an operator precedence matrix (OPM), the
syntax tree (ST) of any word on the same alphabet is fully determined.</p>
      <p>The way PR determine the ST of a string is formalized by chains:
tDhaet:nci0t;ico`n+:112. A s[imfp#leg,chciai2n c0 [cf1ocr2e:v:e:rcy`]ci`+=1 1is; 2a; s:t:r:i`ng(`c0c11c)2,: a::ncd`cc`0+l1, cs1uc=:h
c2 : : : c` 1 = c`mc`+1. A composed chain is a string c0s0c1s1c2 : : : c`s`c`+1, where
c0 [c1c2 : : : c`]c`+1 is a simple chain, and si 2 is the empty string or is such
that ci [si]ci+1 is a chain (simple or composed), for every i = 0; 1; : : : ; ` (` 1).
Such a composed chain will be written as c0 [s0c1s1c2 : : : c`s`]c`+1 . c0 (resp. c`+1)
is called its left (resp. right) context.</p>
      <p>Fig. 1 shows OPM Mcall, together with word # call han call call call exc
call ret ret #. Its chain structure is shown by surrounding chain bodies with
brackets. The word is delimited by #, s.t. # l a and a m # for any terminal a. In
the ST, each simple chain body corresponds to a rhs in the tree, and composed
chains contain non-terminals, which are the bodies of other simple or composed
chains. Thus, the structure of chains in a given string is isomorphic to its ST.</p>
      <p>
        OPL also have a de ning class of pushdown automata, Operator Precedence
Automata [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. We use them for model checking POTL, but we omit their de
nition for lack of space. For a better de nition of OPL we refer readers to [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Precedence Oriented Temporal Logic</title>
      <p>Given a nite set of atomic propositions AP , the syntax of POTL follows:
' ::= a j :' j ' _ ' j #t' j t' j tF ' j tP ' j ' U t ' j ' St '</p>
      <p>j #tH ' j tH ' j ' U Ht ' j ' SHt '
where a 2 AP , and t 2 fd; ug.</p>
      <p>The semantics of POTL is based on the word structure {also called OP word
for short{ hU; MP(AP ); P i, where U = f0; 1; : : : ; n; n + 1g, with n 2 N is a set
of word positions; MP(AP ) is an OPM on P(AP ); P : U ! P(AP ) is a function
associating each word position in U with the set of atomic propositions that hold
in that position, with P (0) = P (n + 1) = f#g.</p>
      <p>We use a partitioning of AP into a set of normal propositional labels (in
round font), and structural labels (SL, in bold). SL de ne the OP structure of
the word: MP(AP ) is only de ned for subsets of AP containing exactly one SL,</p>
      <p># l call l han l call l call l call m exc m call =: ret m ret m #</p>
      <p>pA pB pC pC pErr pErr pA
0 1 2 3 4 5 6 7 8 9 10
so that given two SL l1; l2, for any a; a0; b; b0 2 P(AP ) s.t. l1 2 a; a0 and l2 2 b; b0
we have MP(AP )(a; b) = MP(AP )(a0; b0). This way, we de ne an OPM on P(AP )
by only giving relations between SL, as we did for Mcall. Given two positions
i; j and a PR 2 fl; =: ; mg, we write i j to say P (i) P (j).</p>
      <p>We de ne the chain relation U U so that (i; j) holds between two
positions i; j i i &lt; j 1, and i and j are resp. the left and right contexts of the
same chain. For composed chains, may not be one-to-one, but also one-to-many
or many-to-one. Fig. 2 shows the execution trace of a procedural program. The
relation is meaningful w.r.t. the program semantics: every call to a function is in
relation with the ret terminating it, and all instructions issued by that function
are contained between them. calls terminated by an exception are in relation
with the corresponding exc statement, so the chain relation is many-to-one.</p>
      <p>The truth of POTL formulas is de ned w.r.t. a single word position. Let
w be an OP word, and a 2 AP . Then, for any position i 2 U of w, we have
(w; i) j= a if a 2 P (i). Operators such as ^ and : have the usual semantics from
propositional logic. Next, while giving the formal semantics of POTL operators,
we illustrate it by showing how it can be used to express properties on program
execution traces, such as the one of Fig. 2.</p>
      <p>Next/back operators. The downward next and back operators #d and d are
like their LTL counterparts, except they are true only if the next (resp. current)
position is at a lower or equal ST level than the current (resp. preceding) one.
aiTnhd(ew(u;ipiw+a11r))d lj=nie'xotraan(ndidi lb1a)(cik=+:, 1i#.)uSourabnisd=t:it(uuit+,ea1lr)e, wsaynitmdh m(mwet;trioi)cj.o=bFtoardimn'atilhlye,(ws(ew;mi; ai)n1tj=)icj=s#fd'o'r,
#u and u. E.g., #dcall means that the next position is an inner call (it holds
in pos. 2, 3, 4 of Fig. 2), dcall to say that the previous position is a call, and
the current is the rst of the body of a function (pos. 2, 4, 5), or the ret of an
empty one (pos. 8).</p>
      <p>The chain next and back operators tF and tP evaluate their argument
respectively on future and past positions in the chain relation with the current
one. The downward (resp. upward ) variant only considers chains whose right
context goes down (resp. up) in the ST. (w; i) j= dF ' i there exists a position
ja &gt;poisistuiocnh tjh&lt;ati s(uic;hj)t,hialtj o(rj;ii)=:, jj,lanidor( wj;=:j)i,j=an'd. ((ww;;ij))j=j= 'dP. 'Riepltahceerelexwiistths
m for the upward versions. E.g., in pos. 1 of Fig. 2, dF pErr holds because (1; 7),
meaning that pA calls pErr at least once. Also, uF exc is true in call positions
whose procedure is terminated by an exception thrown by an inner procedure
(e.g. pos. 3 and 4). uP call is true in exc statements that terminate at least one
procedure other than the one raising it, such as the one in pos. 6. dF ret and
uF ret hold in calls to non-empty procedures that terminate normally, and not
due to an uncaught exception (e.g., pos. 1).</p>
      <p>Until/Since operators. The summary until U t (resp. since St ) operator
iIst ohbotldasiniendabpyosinitdiounctiifveeiltyhearpplhyoinldgs,thoer #thoalndds wtFith(r#estp(. Utt a)n(dresptP.)otp(eraSttor)s).
or tF ( U t ) (resp. tP ( St )). It is an until on paths that move not only
between consecutive positions, but also between contexts of a chain, skipping
its body. With OPM Mcall, this means skipping function bodies. The downward
variants move between positions at the same level in the ST (i.e., in the same
simple chain body), or down in the nested chain structure. The upward ones move
at the same or to higher levels of the ST. Formula &gt; U u exc is true in positions
contained in the frame of a function that is terminated by an exception. It is
true in pos. 3 of Fig. 2 because of path 3-6, and false in pos. 1, because no path
can enter chain (1; 9). Formula &gt; U d exc is true in call positions whose function
frame contains excs, but that are not directly terminated by one of them, such
as the one in pos. 1 (with path 1-2-6). Moreover, call U d (ret ^ pErr ) holds in
pos. 1 because of path 1-7-8, (call _ exc) Su pB in pos. 7 because of path 3-6-7,
and (call _ exc) U u ret in 3 because of path 3-6-7-8.</p>
      <p>Hierarchical Operators These operators enable reasoning on multiple
positions in the chain relation with a single one. The upward and downward
hierarchical next are de ned as (w; i) j= #uH ' i there exist a position h &lt; i s.t. (h; i)
and h l i and a position j = minfk j i &lt; k ^ (h; k) ^ h l kg and (w; j) j= ';
(w; i) j= #dH ' i there exist a position h &gt; i s.t. (i; h) and i m h and a position
j = minfk j i &lt; k ^ (k; h) ^ k m hg and (w; j) j= '. Their past counterparts are
symmetric, and their until and since operators are obtained by iterating them.</p>
      <p>We proved the following claims on POTL's expressivity:
Theorem 1. POTL = FO with one free variable on nite OP words.
Corollary 1. NWTL</p>
      <sec id="sec-3-1">
        <title>OPTL</title>
      </sec>
      <sec id="sec-3-2">
        <title>POTL over nite OP words.</title>
        <p>Moreover, we developed an automata-theoretic model checking procedure,
whose complexity is not asymptotically greater than comparable formalisms:
Theorem 2. Given a POTL formula ', it is possible to build an OPA A'
accepting the language denoted by ' with at most 2O(j'j) states.</p>
        <p>
          A' can then be intersected [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] with an OPA modeling a program, and emptiness
can be decided with summarization techniques [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>We surveyed our work on POTL, a novel temporal logic based on OPL, for
which we proved FO-completeness. We gave a model-checking procedure based
on automata construction, which we implemented in a prototype tool. We plan
to further develop such tool to apply POTL to veri cation tasks.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arenas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barcelo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Etessami</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Immerman</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Libkin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>First-order and temporal logics for nested words</article-title>
          .
          <source>LMCS</source>
          <volume>4</volume>
          (
          <issue>4</issue>
          ) (
          <year>2008</year>
          ). https://doi.org/10.2168/LMCS-4(
          <issue>4</issue>
          :11)
          <fpage>2008</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bouajjani</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Esparza</surname>
          </string-name>
          , J.:
          <article-title>Model checking procedural programs</article-title>
          .
          <source>In: Handbook of Model Checking</source>
          , pp.
          <volume>541</volume>
          {
          <fpage>572</fpage>
          . Springer (
          <year>2018</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -10575-8 17
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Etessami</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Madhusudan</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>A temporal logic of nested calls and returns</article-title>
          .
          <source>In: TACAS 2004</source>
          . pp.
          <volume>467</volume>
          {
          <fpage>481</fpage>
          . Springer (
          <year>2004</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -24730-2 35
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Madhusudan</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Visibly Pushdown Languages</article-title>
          .
          <source>In: ACM STOC</source>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Madhusudan</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Adding nesting structure to words</article-title>
          .
          <source>JACM</source>
          <volume>56</volume>
          (
          <issue>3</issue>
          ) (
          <year>2009</year>
          ). https://doi.org/10.1145/1516512.1516518
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bouajjani</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Echahed</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Habermehl</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>On the veri cation problem of nonregular properties for nonregular processes</article-title>
          .
          <source>In: LICS 95</source>
          . pp.
          <volume>123</volume>
          {
          <issue>133</issue>
          (
          <year>1995</year>
          ). https://doi.org/10.1109/LICS.
          <year>1995</year>
          .523250
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bouajjani</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Habermehl</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Constrained properties, semilinear systems, and petri nets</article-title>
          .
          <source>In: CONCUR '96</source>
          ,
          <string-name>
            <surname>Concurrency</surname>
            <given-names>Theory</given-names>
          </string-name>
          , 7th International Conference, Pisa, Italy,
          <source>August 26-29</source>
          ,
          <year>1996</year>
          , Proceedings. LNCS, vol.
          <volume>1119</volume>
          , pp.
          <volume>481</volume>
          {
          <fpage>497</fpage>
          . Springer (
          <year>1996</year>
          ). https://doi.org/10.1007/3-540-61604-7 71
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Chatterjee</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ma</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Majumdar</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palsberg</surname>
          </string-name>
          , J.:
          <article-title>Stack size analysis for interrupt-driven programs</article-title>
          .
          <source>Inf. Comput</source>
          .
          <volume>194</volume>
          (
          <issue>2</issue>
          ),
          <volume>144</volume>
          {
          <fpage>174</fpage>
          (
          <year>2004</year>
          ). https://doi.org/10.1016/j.ic.
          <year>2004</year>
          .
          <volume>06</volume>
          .001
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Chiari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mandrioli</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pradella</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Temporal logic and model checking for operator precedence languages</article-title>
          .
          <source>In: GandALF</source>
          <year>2018</year>
          . EPTCS, vol.
          <volume>277</volume>
          , pp.
          <volume>161</volume>
          {
          <fpage>175</fpage>
          . Open Publishing Association (
          <year>2018</year>
          ). https://doi.org/10.4204/EPTCS.277.12
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Chiari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mandrioli</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pradella</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Word- and tree-based temporal logics for operator precedence languages</article-title>
          .
          <source>In: Proc. 20th Italian Conference on Theoretical Computer Science, ICTCS</source>
          <year>2019</year>
          , Como, Italy, September 9-
          <issue>11</issue>
          ,
          <year>2019</year>
          .
          <source>CEUR Workshop Proceedings</source>
          , vol.
          <volume>2504</volume>
          , pp.
          <volume>222</volume>
          {
          <fpage>228</fpage>
          .
          <string-name>
            <surname>CEUR-WS.org</surname>
          </string-name>
          (
          <year>2019</year>
          ), http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>2504</volume>
          /paper25.pdf
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Crespi</given-names>
            <surname>Reghizzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Mandrioli</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>Operator Precedence and the Visibly Pushdown Property</article-title>
          .
          <source>JCSS</source>
          <volume>78</volume>
          (
          <issue>6</issue>
          ),
          <year>1837</year>
          {
          <year>1867</year>
          (
          <year>2012</year>
          ). https://doi.org/10.1016/j.jcss.
          <year>2011</year>
          .
          <volume>12</volume>
          .006
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Esparza</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kucera</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwoon</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Model checking LTL with regular valuations for pushdown systems</article-title>
          .
          <source>Information and Computation</source>
          <volume>186</volume>
          (
          <issue>2</issue>
          ),
          <volume>355</volume>
          {
          <fpage>376</fpage>
          (
          <year>2003</year>
          ). https://doi.org/10.1016/S0890-
          <volume>5401</volume>
          (
          <issue>03</issue>
          )
          <fpage>00139</fpage>
          -
          <lpage>1</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Floyd</surname>
          </string-name>
          , R.W.:
          <article-title>Syntactic Analysis and Operator Precedence</article-title>
          .
          <source>JACM</source>
          <volume>10</volume>
          (
          <issue>3</issue>
          ),
          <volume>316</volume>
          {
          <fpage>333</fpage>
          (
          <year>1963</year>
          ). https://doi.org/10.1145/321172.321179
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kozen</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tiuryn</surname>
          </string-name>
          , J.:
          <source>Dynamic Logic</source>
          , pp.
          <volume>99</volume>
          {
          <fpage>217</fpage>
          . Springer (
          <year>2002</year>
          ). https://doi.org/10.1007/
          <fpage>978</fpage>
          -94
          <source>-017-0456-4 2</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Jensen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Le Metayer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thorn</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Veri cation of control ow based security properties</article-title>
          .
          <source>In: Proc. '99 IEEE Symp. on Security and Privacy</source>
          . pp.
          <volume>89</volume>
          {
          <issue>103</issue>
          (
          <year>1999</year>
          ). https://doi.org/10.1109/SECPRI.
          <year>1999</year>
          .766902
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kupferman</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piterman</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vardi</surname>
          </string-name>
          , M.Y.:
          <article-title>Pushdown Speci cations</article-title>
          .
          <source>In: LPAR 2002. LNCS</source>
          , vol.
          <volume>2514</volume>
          , pp.
          <volume>262</volume>
          {
          <fpage>277</fpage>
          . Springer (
          <year>2002</year>
          ). https://doi.org/10.1007/3- 540-36078-6 18
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Lonati</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mandrioli</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Panella</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pradella</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Operator precedence languages: Their automata-theoretic and logic characterization</article-title>
          .
          <source>SIAM J. Comput</source>
          .
          <volume>44</volume>
          (
          <issue>4</issue>
          ),
          <volume>1026</volume>
          {
          <fpage>1088</fpage>
          (
          <year>2015</year>
          ). https://doi.org/10.1137/140978818
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Mandrioli</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pradella</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Generalizing input-driven languages: Theoretical and practical bene ts</article-title>
          .
          <source>Computer Science Review</source>
          <volume>27</volume>
          ,
          <issue>61</issue>
          {
          <fpage>87</fpage>
          (
          <year>2018</year>
          ). https://doi.org/10.1016/j.cosrev.
          <year>2017</year>
          .
          <volume>12</volume>
          .001
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>McNaughton</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <source>Parenthesis Grammars. JACM</source>
          <volume>14</volume>
          (
          <issue>3</issue>
          ),
          <volume>490</volume>
          {
          <fpage>500</fpage>
          (
          <year>1967</year>
          ). https://doi.org/10.1145/321406.321411
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>