Automata¶
Note
All the following automata inherit from ggsolver.logic.base.Automaton
.
Refer to the class documentation for a description of inherited functions.
DFA: Deterministic Finite Automaton¶
- class ggsolver.logic.automata.DFA(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Represents a Deterministic Finite-state base.Automaton.
Acceptance Type: base.Automaton.ACC_REACH
Acceptance condition: (Reach, 0)
Accepts: Finite words.
Interpretation: \(\mathsf{Last}(\rho) \in F\) where \(F = \{q \in Q \mid \mathsf{AccSet}(q) = 0\}\)
Number of Acceptance Sets: 1
final(state) function returns either -1 to indicate that the state is not accepting or 0 to indicate that the state is accepting with acceptance set 0.
- __init__(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Constructs a DFA.
- Parameters
states – (Iterable) An iterable over states in the automaton.
atoms – (Iterable[str]) An iterable over atomic propositions in the automaton.
trans_dict – (dict) A dictionary defining the (deterministic) transition function of automaton. Format of dictionary: {state: {logic.PLFormula: state}}
init_state – (object) The initial state, a member of states iterable.
final – (Iterable[states]) The set of final states, a subset of states iterable.
Monitor: Deterministic Safety Automaton¶
- class ggsolver.logic.automata.Monitor(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Represents a Safety automaton.
Acceptance Type: base.Automaton.ACC_SAFETY
Acceptance condition: (Safety, 0)
Accepts: Infinite words.
Interpretation: \(\mathsf{Occ}(\rho) \subseteq F\) where \(F = \{q \in Q \mid \mathsf{AccSet}(q) = 0\}\)
Number of Acceptance Sets: 1
final(state) function returns either -1 to indicate that the state is not accepting or 0 to indicate that the state is accepting with acceptance set 0.
- __init__(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Constructs a Monitor.
- Parameters
states – (Iterable) An iterable over states in the automaton.
atoms – (Iterable[str]) An iterable over atomic propositions in the automaton.
trans_dict – (dict) A dictionary defining the (deterministic) transition function of automaton. Format of dictionary: {state: {logic.PLFormula: state}}
init_state – (object) The initial state, a member of states iterable.
final – (Iterable[states]) The set of final states, a subset of states iterable.
DBA: Deterministic Buchi Automaton¶
- class ggsolver.logic.automata.DBA(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Represents a Deterministic Buchi automaton.
Acceptance Type: base.Automaton.ACC_BUCHI
Acceptance condition: (Buchi, 0)
Accepts: Infinite words.
Interpretation: \(\mathsf{Inf}(\rho) \cap F \neq \emptyset\) where \(F = \{q \in Q \mid \mathsf{AccSet}(q) = 0\}\)
Number of Acceptance Sets: 1
final(state) function returns either -1 to indicate that the state is not accepting or 0 to indicate that the state is accepting with acceptance set 0.
- __init__(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Constructs a DBA.
- Parameters
states – (Iterable) An iterable over states in the automaton.
atoms – (Iterable[str]) An iterable over atomic propositions in the automaton.
trans_dict – (dict) A dictionary defining the (deterministic) transition function of automaton. Format of dictionary: {state: {logic.PLFormula: state}}
init_state – (object) The initial state, a member of states iterable.
final – (Iterable[states]) The set of final states, a subset of states iterable.
DCBA: Deterministic co-Buchi Automaton¶
- class ggsolver.logic.automata.DCBA(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Represents a Deterministic co-Buchi automaton.
Acceptance Type: base.Automaton.ACC_COBUCHI
Acceptance condition: (co-Buchi, 0)
Accepts: Infinite words.
Interpretation: \(\mathsf{Inf}(\rho) \subseteq F\) where \(F = \{q \in Q \mid \mathsf{AccSet}(q) = 0\}\)
Number of Acceptance Sets: 1
final(state) function returns either -1 to indicate that the state is not accepting or 0 to indicate that the state is accepting with acceptance set 0.
- __init__(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Constructs a DCBA.
- Parameters
states – (Iterable) An iterable over states in the automaton.
atoms – (Iterable[str]) An iterable over atomic propositions in the automaton.
trans_dict – (dict) A dictionary defining the (deterministic) transition function of automaton. Format of dictionary: {state: {logic.PLFormula: state}}
init_state – (object) The initial state, a member of states iterable.
final – (Iterable[states]) The set of final states, a subset of states iterable.
DPA: Deterministic Parity Automaton¶
- class ggsolver.logic.automata.DPA(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Represents a Deterministic Buchi automaton.
Acceptance Type: base.Automaton.ACC_PARITY
Acceptance condition: (Parity Min Even , 0)
Accepts: Infinite words.
Interpretation: \(\min_{q \in \mathsf{Inf}(\rho)} \chi(q)\) is even, where \(\chi: Q \rightarrow \mathbb{N}\) is a coloring function that associates every state in DPA with a color (an integer).
Number of Acceptance Sets: k, where k is a positive integer.
final(state) a value between 0 and k-1 to indicate that the color of a state.
Note
The DPA definition is not stable. DO NOT USE IT!
- __init__(states=None, atoms=None, trans_dict=None, init_state=None, final=None)[source]¶
Constructs a DPA.
- Parameters
states – (Iterable) An iterable over states in the automaton.
atoms – (Iterable[str]) An iterable over atomic propositions in the automaton.
trans_dict – (dict) A dictionary defining the (deterministic) transition function of automaton. Format of dictionary: {state: {logic.PLFormula: state}}
init_state – (object) The initial state, a member of states iterable.
final – (dict[state: int]) A state to color mapping.