Expand description
A linear arithmetic threshold automaton or LIAThresholdAutomaton
is a threshold automaton containing linear arithmetic guards. The
goal of the LIAThresholdAutomaton is to stay as close to the formal
definition of a threshold automaton as possible.
To convert a GeneralThresholdAutomaton to a LIAThresholdAutomaton
all guards are translated into one of these forms:
SingleAtomConstraint: Which represents a threshold in the formx <COMPARISON_OP> c_1 * p_1 + ... c_n * p_n + cwherec_1, ..., c_n, care rational constants,p_1, ..., p_nare Parameters and x is a single shared variable.SumAtomConstraint: Represents a threshold of the formcx_1 * x_1 + ... + cx_m * x_m <COMPARISON_OP> c_1 * p_1 + ... c_n * p_n + cwherec_1, ..., c_n, cx_1, ..., cx_m, care rational constants,p_1, ..., p_nare Parameters and x_1, …, x_m are shared variables. Additionally, all coefficientscx_1, ..., cx_mmust be all positive.ComparisonConstraint: Comparison constraints are structured analog to aSumAtomConstraint, but allow mixing positive and negative constants in the constantscx_1, ..., cx_m.
Note that not all algorithms support all types of guards. Especially the
ComparisonConstraint makes the verification problem undecidable (even without
decrements and or resets). For more information see:
All Flavors of Threshold Automata - Jure Kukovec, Igor Konnov, Josef Widder - https://doi.org/10.4230/LIPIcs.CONCUR.2018.19
Modules§
- general_
to_ lia - Logic to try to convert a
GeneralThresholdAutomatoninto aLIAThresholdAutomaton. - integer_
thresholds - This module defines abstract types for linear arithmetic constraints over
parameters, variables and other
Atomicvalues, that can be safely encoded into integer arithmetic SMT constraints. - no_
sum_ var_ ta - TODO: Replace this logic by implementing a smarter interval logic
- properties
- Implementation of functionality for
LIAThresholdAutomaton,LIARuleand the guard types
Structs§
- Comparison
Constraint - Constraint over the difference between atoms / comparing atoms
- LIARule
- Rule type of
LIAThresholdAutomaton - LIAThreshold
Automaton - A linear arithmetic threshold automaton or
LIAThresholdAutomatonis a threshold automaton containing linear arithmetic guards. The goal of theLIAThresholdAutomatonis to stay as close to the formal definition of a threshold automaton as possible. - Single
Atom Constraint - Threshold guard over a single atom
- SumAtom
Constraint - Constraint over the evaluation over a sum of multiple atoms
Enums§
- Comparison
Constraint Creation Error - Error that can occur during the creation of a comparison guard
- Constraint
Rewrite Error - Error that can occur during the transformation of a guard
- LIATransformation
Error - Errors that can occur when trying to transform a threshold automaton in a linear arithmetic threshold automaton
- LIAVariable
Constraint - Abstract constraint type for linear arithmetic formulas over shared variables
- Single
Atom Constr Extraction Error - Error that can occur when trying to construct a
SingleAtomConstraint - SumVar
Constraint Creation Error - Error that can occur during the creation of a
SumAtomConstraint