Computation tree logic: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 5:
 
== Syntax of CTL ==
The [[Regular Language|language]] of [[well -formed formula]]s for CTL is generated by the following [[Context-free grammar|grammar]]:
 
:<math>\begin{align}
Line 14:
\end{align}</math>
 
where <math>p</math> ranges over a set of [[atomic formula]]s. It is not necessary to use all connectives &nbsp;&ndash; for example,
<math>\{\neg, \land, \mbox{AX}, \mbox{AU}, \mbox{EU}\}</math> comprises a complete set of connectives, and the others can be defined using them.
 
*<math>\mbox{A}</math> means 'along All paths' ''(Inevitablyinevitably)''
*<math>\mbox{E}</math> means 'along at least (there Exists) one path' ''(possibly)''
 
Line 28:
:<math>\mbox{EF }\big(r \mbox{ U } q\big) </math>
 
The problem with this string is that <math>U</math> can occur only when paired with an <math>A</math> or an <math>E</math>. <!-- TODO: explain it is evaluated over multiple paths /// here is a copy-paste from the LTL page: build up from proposition variables p1,p2,..., LTL formulas are generally evaluated over paths and a position on that path. A LTL formula as such is satisfied if and only if it is satisfied for position 0 on that path. --> It

CTL uses [[First-order logic#Vocabulary|atomic propositions]] as its building blocks to make statements about the states of a system. <!-- TODO: give an example of an atomic proposition. --> CTLThese thenpropositions combinesare thesethen propositionscombined into formulas using [[logical operator]]s and [[temporal logic|temporal operator]]s.
 
==Operators==
Line 34 ⟶ 36:
===Logical operators===
 
The [[Logical connective|logical operators]] are the usual ones: ¬, &or;, &and;, ⇒ and ⇔. Along with these operators CTL formulas can also make use of the boolean constants [[Truth|true]] and [[False (logic)|false]].
 
===Temporal operators===
The temporal operators are the following:
* Quantifiers over paths
**'''A''' ''φ''&Phi;&nbsp;&ndash; '''A'''ll: ''φ''&Phi; has to hold on all paths starting from the current state.
**'''E''' ''φ''&Phi;&nbsp;&ndash; '''E'''xists: there exists at least one path starting from the current state where ''φ''&Phi; holds.
* Path-specific quantifiers
**'''X''' ''φ''&nbsp;&ndash; Ne'''x'''t: ''φ'' has to hold at the next state (this operator is sometimes noted '''N''' instead of '''X''').
Line 51 ⟶ 53:
 
===Minimal set of operators===
In CTL there is aare minimal setsets of operators. All CTL formulas can be transformed to use only those operators. This is useful in [[model checking]]. One minimal set of operators is: {true, &or;, ¬, '''EG''', '''EU''', '''EX'''}.
 
Some of the transformations used for temporal operators are:
Line 67 ⟶ 69:
 
===Definition===
CTL formulae are interpreted over [[Transitiontransition system|Transition Systems]]. A transition system is a triple <math>\mathcal{M}=(S,{\rightarrow},L)</math>, where <math>S</math> is a set of states, <math>{\rightarrow} \subseteq S \times S</math> is a transition relation, assumed to be serial, i.e. every state has at least one successor, and <math>L</math> is a labelling function, assigning propositional letters to states. Let <math>\mathcal{M}=(S,\rightarrow,L)</math> be such a transition model
:with <math>s \in S, \phi \in F</math> where F is the set of [[Well formed formula|wffs]] over the [[Regular Language|language]] of <math>\mathcal{M}</math>.
 
Line 96 ⟶ 98:
 
It can be seen that A and E are duals, being universal and existential computation path quantifiers respectively:
<math>\neg A\phiPhi \equiv E \neg \phiPhi </math>.
 
Furthermore, so are G and F.
 
Hence an instance of [[De Morgan's Lawslaws]] can be formulated in CTL:
:<math>\neg AF\phi \equiv EG\neg\phi</math>
:<math>\neg EF\phi \equiv AG\neg\phi</math>
Line 107 ⟶ 109:
It can be shown using such identities that a subset of the CTL temporal connectives is adequate if it contains <math>EU</math>, at least one of <math>\{AX,EX\}</math> and at least one of <math>\{EG,AF,AU\}</math> and the boolean connectives.
 
The important equivalences below are called the '''expansion laws'''; they allow to unfold the verification of a CTL connective towards its successors in time.
:<math>AG\phi \equiv \phi \land AX AG \phi</math>
:<math>EG\phi \equiv \phi \land EX EG \phi</math>
Line 125 ⟶ 127:
:"It's always possible (AF) that I will suddenly start liking chocolate for the rest of time." (Note: not just the rest of my life, since my life is finite, while '''G''' is infinite).
*'''EG'''.'''AF'''.P
:"This is a critical time in my life. Depending on what happens nextin the future (E), it's possible that for the rest of time (G), there will alwaysI'll be someguaranteed timeat inleast the futureone (AF) whenchocolate-liking Istill willahead likeof chocolateme. However, if thesomething wrongever thinggoes happens nextwrong, then all bets are off and there's no guarantee about whether I'll ever like chocolate."
 
The two following examples show the difference between CTL and CTL*, as they allow for the until operator to not be qualified with any path operator ('''A''' or '''E'''):
Line 136 ⟶ 138:
==Relations with other logics==
<!-- CTL is a subset of CTL* -->
Computation tree logic (CTL) is a subset of CTL* as well as of the [[modal mu calculus|modal μ calculus]]. CTL is also a fragment of Alur, Henzinger and Kupferman's [[Alternatingalternating-time Temporaltemporal Logiclogic]] (ATL).
 
<!-- CTL is complementary to LTL -->
Computation tree logic (CTL) and [[Linearlinear temporal logic]] (LTL) are both a subset of CTL*. CTL and [[Linear temporal logic|LTL]] are not equivalent and they have a common subset, which is a proper subset of both CTL and LTL.
*'''FG'''.P exists in LTL but not in CTL.
*'''AG'''(P<math>\Rightarrow</math>(('''EX'''.Q)<math>\land</math>('''EX'''¬Q))) and '''AG.EF'''.P exist in CTL but not in LTL.
 
== Extensions ==
CTL has been extended with second -order quantifierquantification <math>\exists p</math> and <math>\forall p</math> to quantified computational tree logic (QCTL).<ref>{{Cite journal|last=David|first=Amélie|last2=Laroussinie|first2=Francois|last3=Markey|first3=Nicolas|date=2016|editor-last=Desharnais|editor-first=Josée|editor2-last=Jagadeesan|editor2-first=Radha|title=On the Expressiveness of QCTL|url=http://drops.dagstuhl.de/opus/volltexte/2016/6164|journal=27th International Conference on Concurrency Theory (CONCUR 2016)|series=Leibniz International Proceedings in Informatics (LIPIcs)|___location=Dagstuhl, Germany|publisher=Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik|volume=59|pages=28:1–28:15|doi=10.4230/LIPIcs.CONCUR.2016.28|isbn=978-3-95977-017-0}}</ref> There are two semantics:
 
* the tree semantics. We label nodes of the computation tree. QCTL* = QCTL = [[monadic second-order logic|MSO]] over trees. Model checking and satisfiability are tower- complete.
* the structure semantics. We label states. QCTL* = QCTL = MSO over graphs[[graph (mathematics)|graph]]s. Model checking is [[PSPACE-complete]] but satisfiability is [[undecidable problem|undecidable]].
 
A reduction from the model -checking problem of QCTL with the structure semantics, to TQBF (true quantified binaryBoolean formulae) has been proposed, in order to take advantage of the QBF solvers.<ref>{{Cite journal|last=Hossain|first=Akash|last2=Laroussinie|first2=François|date=2019|editor-last=Gamper|editor-first=Johann|editor2-last=Pinchinat|editor2-first=Sophie|editor3-last=Sciavicco|editor3-first=Guido|title=From Quantified CTL to QBF|url=http://drops.dagstuhl.de/opus/volltexte/2019/11369|journal=26th International Symposium on Temporal Representation and Reasoning (TIME 2019)|series=Leibniz International Proceedings in Informatics (LIPIcs)|___location=Dagstuhl, Germany|publisher=Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik|volume=147|pages=11:1–11:20|doi=10.4230/LIPIcs.TIME.2019.11|isbn=978-3-95977-127-6}}</ref>
 
==See also==
*[[Probabilistic CTL]]
*[[Fair Computationalcomputational tree logic]]
*[[Linear temporal logic]]