Main Index
Editors
(accessible from the Top Menu window)
Editors are used to define logic formulae, such as temporal formulae,
and automata, such as finite automata, alternating ω-automata,
or games.
Once a logic formula or automaton/game has been defined, it can be
manipulated by the functions included in the menu items
that are accessible from the menu bar of an editor window.
Currently, there are four editors:
-
Temporal Formula:
Currently GOAL can handle a subset of the full QPTL (Quantified Propositional
Temporal Logic, which which subsumes LTL) formulae, namely those with quantifiers
that do not fall in the scope of temporal operators. This subset is as expressive
as the full set of QPTL formulae.
-
Automaton: Currently
Büchi automata (BA or NBW) and generalized Büchi automata (GBA or NGBW)
are fully supported, while Muller automata (NMW), Rabin automata (NRW), Streett
automata (NSW), parity automata (NPW), transition Büchi automata (TBA or NTBW),
transition generalized Büchi automata (TGBA or NTGBW), transition Muller
automata (NTMW), transition Rabin automata (NTRW), transition Streett automata (NTSW)
and transition parity automata (NTPW) are partially supported. GOAL also supports
classic finite automata (CLASSIC).
-
Alternating Automaton:
Currently alternating automata, including alternating Büchi automata (ABW),
universal Co-Büchi automata (UCBW), and alternating parity automata (APW),
can only be edited, saved, printed, or translated into NBW.
-
Game: Currently games can
only be edited, saved, or printed.
(on the menu bar of an editor window)
The following are fully supported for Büchi automata and generalized Büchi
automata, and partially supported for the others.
-
File:
file handling options, including saving automata as Promela code.
-
Repository:
a collection of common temporal formulae (or description) and their corresponding
equivalent Büchi automata.
-
Test:
several tests are available for temporal formulae and finite automata.
Both temporal formulae and finite automata will remain unchanged after any test.
-
For formulae:
- Satisfiability: check whether the formula is satisfiable.
- Validity: check whether the formula is valid.
- Temporal Hierarchy: check which temporal hierarchy the formula belongs to.
[Manna and Pnueli. A hierarchy of temporal properties. PODC '90]
-
For automata:
- Input
- Emptiness
- Containment
- by Complementation and Intersection
- by Rank-Based Approach [Kupferman and Vardi. Weak
alternating automata are not that weak. ACM Transactions on Computational
Logic, '01]
- Equivalence
- with an Automaton
- with a Formula
- On-the-Fly Model Checking
- Simulation Equivalence
-
Semantically Deterministic check if a Büchi automaton is
equivalent to some deterministic Büchi automaton.
-
Convert/Translate:
For automata: from variants of GBA or BA to variants of GBA or BA (using standard
algorithms).
In particular, for transition GBA:
-
To BA [Gastin and Oddoux. Fast LTL to Büchi automata
translation. CAV '01]
-
To BA (all permutations): Try all permutations of TGBA
acceptance sets.
For formulae: translate a temporal formula into an equivalent Büchi automaton.
-
Simplification: a subset of formula rewriting rules from [Somenzi and Bloem.
Efficient Büchi automata from LTL formulae. CAV '00].
-
To GBA (label-on-state):
-
Tableau (MP) [Manna and Pnueli. Temporal verification of reactive
systems. Springer '95]
-
Incremental Tableau (KMMP) [Kesten, Manna, McGuire, and Pnueli.
A decision algorithm for full propositional temporal logic. CAV '93]
-
Temporal Tester (KP) [Kesten and Pnueli. Verification by augmented
finitary abstraction. IC '00]
-
Extended On-the-Fly (GPVW) [Gerth, Peled, Vardi, and Wolper. Simple
on-the-fly Automatic verification of linear temporal logic. PSTV '95]:
this is an extension of the original on-the-fly algorithm, which applies for
formulae containing quantifiers or past operators.
-
Extended On-the-Fly (GPVW+): the same on-the-fly algorithm with
enhancements suggested in the above paper.
the algorithm has also been extended to handle formulae containing quantifiers
or past operators.
-
Extended LTL2AUT (DGV) [Daniele, Giunchiglia, and Vardi. Improved
automata generation for linear temporal logic. CAV '99]:
this is an extension of the original LTL2AUT algorithm, which applies for
formulae containing quantifiers or past operators.
-
Extended LTL2AUT+ (DGV):
this is a slightly improved version of the original LTL2AUT algorithm.
-
To GBA:
- Tableau (MP)
- Incremental Tableau (KMMP)
- Temporal Tester (KP)
- Extended On-the-Fly (GPVW)
- Extended On-the-Fly (GPVW+)
- Extended LTL2AUT (DGV)
- Extended LTL2AUT+ (DGV)
-
MoDeLLa (ST) [Sebastiani and Tonetta. "More deterministic" v.s.
"Smaller" Büchi automata for efficient LTL model checking. CHARME '03]
-
To BA (label-on-state):
- Tableau (MP)
- Incremental Tableau (KMMP)
- Temporal Tester (KP)
- Extended On-the-Fly (GPVW)
- Extended On-the-Fly (GPVW+)
- Extended LTL2AUT (DGV)
- Extended LTL2AUT+ (DGV)
- To BA:
- Tableau (MP)
- Incremental Tableau (KMMP)
- Temporal Tester (KP)
- Extended On-the-Fly (GPVW)
- Extended On-the-Fly (GPVW+)
- Extended LTL2AUT (DGV)
- Extended LTL2AUT+ (DGV)
- MoDeLLa (ST)
-
LTL2BA (GO) [Gastin and Oddoux. Fast LTL to
Büchi automata translation. CAV '01]
-
PLTL2BA (GO) [Gastin and Oddoux. LTL with past and
two-way very-weak alternating automata. MFCS '03]
-
Couvreur’s Algorithm [Couvreur.
On-the-fly verification of linear temporal logic. FM '99]
-
LTL2BUCHI (GL) [Giannakopoulou and Lerda. From states to
transitions: Improving translation of LTL formulae to Büchi
automata. FORTE '02]
-
LTL2BUCHI+ (GL): the conversion from LTL formula to TGBA is
the same as in LTL2BUCHI, but the conversion from TGBA to BA follows
instead the same algorithm as used in LTL2BA, which appears to perform better.
-
To GBA (label-on-state,
step-by-step):
translate a temporal formula into an equivalent label-on-state GBA step by step.
- Tableau (MP)
-
Extended On-the-Fly (GPVW), explained in the terminology of LTL2AUT
-
Extended On-the-Fly (GPVW+), explained in the terminology of LTL2AUT
- Extended LTL2AUT (DGV)
- Extended LTL2AUT+ (DGV)
- To Transition GBA:
- Couvreur’s Algorithm
- LTL2BUCHI(GL)
- To Alternating Automaton:
-
LTL2VWAA (GO), this algorithm is an intermediate step
of LTL2BA algorithm.
-
Operation: functions for manipulating Büchi and other types of automata.
-
Duplicate: create a duplicate automaton.
-
Duplicate without ACC:
create a duplicate automaton without acceptance condition.
-
Union: generate the union of the current and another chosen automaton.
-
Intersection: generate the intersection of the current and another chosen
automaton.
-
Complement: generate the complement of the current automaton.
In particular, for Büchi Automata:
-
Ramsey-Based Construction [Büchi. On a decision method
in restricted second order arithmetic. Congress on Logic, Method,
and Philosophy of Science '60]
[Sistla, Vardi, and Wolper. The complementation problem for Büchi
automata with applications to temporal logic. TCS '87]
-
Kurshan's Construction (for DBW) [Kurshan. Complementing
deterministic Büchi automata in polynomial time. JCSS '87]
-
Safra's Construction [Safra. On the complexity of
omega-automata. FOCS '88]
-
Modified Safra's Construction: this is the same as Safra's
construction, except that we exchange the steps of computing
successors and creating sons when constructing Safra trees.
-
Muller-Schupp Construction [Muller and Schupp. Simulating
alternating tree automata by nondeterministic automata:
New results and new proofs of the theorems of Rabin, McNaughton
and Safra. TCS '95]
[Althoff, Thomas, and Wallmeier. Observations on determinization of
Büchi automata. Theoretical Computer Science, '06]
-
Via Weak Alternating Parity Automaton [Thomas. Complementation
of Büchi automata revisited. '99]
-
Via Weak Alternating Automaton [Kupferman and Vardi. Weak
alternating automata are not that weak. ACM Transactions on
Computational Logic, '01]
(The rank is 2*(n-F), where n is the size of state and F is the size
of Büchi acceptance condition)
-
Safra-Piterman Construction [Piterman. From nondeterministic
Büchi and Streett automata to deterministic parity automata.
LICS '06]
-
Rank-Based Construction: the basic rank-based complementation algorithm is
based on [Kupferman and Vardi. Weak alternating automata are not
that weak. ACM Transactions on Computational Logic, 2001], and other
optimizations are based on [Schewe. Büchi complementation made
tight. STACS '09].
-
Slice-Based Construction: besides of the basic slice-based complementation algorithm
[Kähler and Wilke. Complementation, disambiguation, and determinization of
Büchi automata unified. ICALP '08.],
several optimizations proposed by Seth Fogarty and Ming-Hsien Tsai are also implemented.
-
Complement (Stage-by-Stage): generate the complement of the
current automaton stage by stage.
In particular, for Büchi Automata:
-
Safra's Construction
: NBW → DRW → (complement) DSW → NBW
-
Modified Safra's Construction:
NBW → DRW → (complement) DSW → NBW
-
Muller-Schupp Construction:
NBW → DRW → (complement) DSW → NBW
-
Via Weak Alternating Parity Automaton:
NBW → APW → (complement) NBW
-
(Temporarily disabled) Via Weak Alternating Automaton:
NBW → (complement) UCBW (viewed as one; no actual conversion) →
VWAA (very weak alternating automaton; a special case of ABW) → NBW
-
Safra-Piterman Construction:
NBW → DPW → (complement) DPW → NBW
-
Rank-Based Construction:
Rank-based completementation performed step-by-step
-
Slice-Based Construction:
Slice-based completementation performed step-by-step
-
Determinization: generate the determinization of the current automaton.
In particular, for Büchi Automata:
- Safra's Construction: NBW → DRW
- Modefied Safra's Construction: NBW → DRW
- Muller-Schupp Construction: NBW → DRW
- Safra-Piterman Construction: NBW → DPW
-
Minimization: generate the minimized determinization of the
current automaton. This applies only to classic finite automaton.
-
Simplify (by Simulation) [Somenzi and Bloem. Efficient
Büchi automata from LTL formulae. Section 5, CAV '00]:
remove redundant states, including unreachable states, dead states, and
states that are simulation-equivalent to another state.
-
Simplify (by Pruning Fair Sets) [Somenzi and Bloem. Efficient
Büchi automata from LTL formulae. Section 6, CAV '00]:
remove redundant automaton information (states or fair sets) by analyzing
the fair sets. This applies only to GBA.
-
Simplify (by the Wring approach) [Somenzi and Bloem. Efficient
Büchi automata from LTL formulae. CAV '00]:
repeatedly apply the above two simplification methods until a fix-point is reached.
-
Maximize Acceptance Set: maximize the acceptance set of a Büchi
automaton without changing its language.
- Closure: take the safety closure of the given automaton.
- Reduce: remove unreachable and dead states.
-
Alphabet: operations on the alphabet, including add/remove an atomic
proposition, rename an atomic proposition, and show current atomic propositions.
- Statistics: get the number of states and the number of transitions.
-
Get intermediate GBA: get the intermediate generalized Büchi
automaton, if the Büchi automaton is translated from a temporal formula.
This function does not apply for LTL2BA or PLTL2BA, which uses intermediate
GBA with acceptance conditions on transitions.
- Preference: adjust the user preferences.
- Help: go to various help pages such as this one.