Propositional Formula¶
masa.common.ltl.Formula ¶
Base class for propositional formulae over atomic proposition labels.
A formula is evaluated against a label set (an iterable of strings), and returns whether the formula is satisfied.
Subclasses must implement sat, which defines the satisfaction
relation between the formula and a set of labels.
Notes
The operators provided here are propositional (Boolean) connectives only.
Temporal structure is represented externally via a DFA that
consumes a trace of label sets.
sat ¶
Checks whether the formula is satisfied by the given labels.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
labels
|
Iterable[str]
|
Iterable of atomic proposition names that hold at the current step. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Raises:
| Type | Description |
|---|---|
NotImplementedError
|
If the subclass does not implement the satisfaction relation. |
Source code in masa/common/ltl.py
masa.common.ltl.Atom ¶
Bases: Formula
Atomic proposition.
An Atom is satisfied iff the stored atomic proposition name appears
in the given label set.
Attributes:
| Name | Type | Description |
|---|---|---|
atom |
The atomic proposition name. |
sat ¶
Evaluates whether the atom is present in labels.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
labels
|
Iterable[str]
|
Iterable of atomic proposition names. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Source code in masa/common/ltl.py
masa.common.ltl.Truth ¶
masa.common.ltl.And ¶
Bases: Formula
Conjunction of two subformulae.
Satisfied iff both subformulae are satisfied.
Attributes:
| Name | Type | Description |
|---|---|---|
subformula_1 |
Left operand. |
|
subformula_2 |
Right operand. |
Source code in masa/common/ltl.py
sat ¶
Evaluates conjunction satisfaction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
labels
|
Iterable[str]
|
Iterable of atomic proposition names. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
bool
|
satisfied by |
Source code in masa/common/ltl.py
masa.common.ltl.Or ¶
Bases: Formula
Disjunction of two subformulae.
Satisfied iff at least one subformula is satisfied.
Attributes:
| Name | Type | Description |
|---|---|---|
subformula_1 |
Left operand. |
|
subformula_2 |
Right operand. |
Source code in masa/common/ltl.py
sat ¶
Evaluates disjunction satisfaction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
labels
|
Iterable[str]
|
Iterable of atomic proposition names. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
bool
|
satisfied by |
Source code in masa/common/ltl.py
masa.common.ltl.Neg ¶
Bases: Formula
Negation of a subformula.
Satisfied iff the subformula is not satisfied.
Attributes:
| Name | Type | Description |
|---|---|---|
subformula |
The formula being negated. |
Source code in masa/common/ltl.py
sat ¶
Evaluates negation satisfaction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
labels
|
Iterable[str]
|
Iterable of atomic proposition names. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|
Source code in masa/common/ltl.py
masa.common.ltl.Implies ¶
Bases: Formula
Implication between two subformulae.
Implies(a, b) is satisfied iff either a is false or b is true
under the given labels, i.e. it is equivalent to:
Attributes:
| Name | Type | Description |
|---|---|---|
subformula_1 |
Antecedent (premise). |
|
subformula_2 |
Consequent (conclusion). |
Source code in masa/common/ltl.py
sat ¶
Evaluates implication satisfaction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
labels
|
Iterable[str]
|
Iterable of atomic proposition names. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
|