Linear Temporal Logic¶
-
class
iglsynth.logic.ltl.LTL(formula: str, alphabet: Optional[iglsynth.logic.core.Alphabet] = None)[source]¶ Bases:
iglsynth.logic.core.PLRepresents an temporal logic formula.
Parameters: - formula –
(str) A formula string constructed from
- Atomic propositions (AP names can be alphanumeric strings
that are not “true” or “false” (case insensitive) and do
not contain
F, G, M, R, U, V, W, X, xoras a sub-string. - Operators: Negation (!), And(&), Or(|), Eventually(F), Always(G), Next(X), Until(U).
- Atomic propositions (AP names can be alphanumeric strings
that are not “true” or “false” (case insensitive) and do
not contain
- alphabet – (
Alphabet) A set of atomic propositions.
-
alphabet¶ Returns the set of atomic propositions (as
Alphabetobject) over which the logic formula is defined.
-
evaluate(st, *args, **kwargs)[source]¶ Evaluates the LTL formula over the given state.
Warning
This function is not yet implemented.
-
formula¶ Returns a string representing the logic formula.
-
is_contained_in(other)¶ Checks whether language of “self” formula is contained within the language of given formula (other).
Parameters: other – ( ILogic) A logic formula.Returns: (bool) Whether language of “self” is contained in “other” (True) or not (False).
-
is_equivalent(other)¶ Checks whether given logic formula accepts the same language as the current (self) formula.
Parameters: other – ( ILogic) A logic formula.Returns: (bool) Whether self and other accept same language (True) or not (False). Note
p.is_equivalent(q)is not the same asp == q. The first checks whether the languagesof formulaspandqare equal or not, whereas the latter (p == q) whetherpandqare syntactically equivalent or not.
-
mp_class¶ Returns the class of LTL formula as per Manna-Pnueli hierarchy.
Returns: (str) A character from {‘B’, ‘S’, ‘G’, ‘O’, ‘R’, ‘P’, ‘T’}. See also
A discussion on Manna-Pnueli Hierarchy
-
simplify()¶ Returns a new logic formula with a simplified formula.
-
substitute(subs_map: dict)¶ Substitutes the current AP with another AP according to given substitution map.
Parameters: subs_map – (dict[<Logic>: <Logic>]) A substitution map. Returns: (AP) Substituted AP object. Raises: KeyError – When subs_map does not contain the AP “self”.
-
translate()[source]¶ Returns an :class:`Automaton <iglsynth.logic.core.Automaton> object representing an equivalent automaton for the logic formula.
-
tree¶ Returns the abstract syntax tree (as
SyntaxTreeobject) of the logic formula.
- formula –