v0.2.0
Announcements
This release dropped compatibility with pre-v1.0 versions of Julia (#431).
This release is used for ARCH2019_RE.
Features
- added (rudimentary) support to check properties for hybrid systems (#480, #500)
- added a new option to discretize using concrete operations on zonotopes (#528)
Inf
as time horizon is now supported (#549)- added clustering option
:none_oa
which does not cluster but still overapproximates (#555) - accept affine continuous systems without inputs (#560)
- added new continuous-post algorithm:
GLGM06
(#531) - added new continuous-post algorithm:
TMJets
(#537)
Bug fixes
- fixed behavior of
LazyDiscretePost
's option:lazy_R⋂G
and added option:lazy_A⌜R⋂G⌟
for the old behavior (#459) - fixed bloating for systems without inputs in the approximation model that uses interpolation (former
assume_homogeneous
option) (#503) BFFPSV18
(continuous-post operator) now returns the input options (instead of an internal representation) (#539)- fixed crash in error message (#546)
- do not automatically project if
:projection_matrix
option is given (#547)
Enhancements
- allow to disable the
max_jumps
option and disable it by default (#456) - allow using a
U::LazySet
for the input set of systems; it is equivalent toConstantInput(U)
(#526) - allow to use
x' = Ax + Bu
, with or without constraints, which is transformed to the canonical form internally, with thenormalize
function (#542) - initial states in hybrid-system analysis are now preserved if are fully inside the invariant (#573)
Other
- refactoring work (#430, #432)
- new page in the documentation about works citing
JuliaReach
related packages (#428), and another one with publications of repeatability evaluations or algorithms (#426) - We now use the
AbstractMap
interface fromMathematicalSystems
for transitions (guards/assignmens) of hybrid automaton models (#439, #458) - The options interface has changed. In particular, options specific to the continuous-post algorithm now need to be passed to the respective post operator, and the default values for some options has changed. (#464)
- The
Properties
module has become a standalone module. We renamed the property types and a method (check_property
→check
).Conjunction
/Disjunction
types have been added.LinearConstraintProperty
has been removed as it can be imitated by a combination of the other property types. (#493, #494, #497) - The options for the
BFFPSV
algorithm have changed. For overapproximation during decomposition and iteration, we now use a unified option:block_options
. This synchronizes the code with recent corresponding changes inLazySets
. (#505) - Overhaul
discretize.jl
(#503) inout_map
now uses the concrete projection of half-spaces and hpolyhedron from LazySets for property checking (#525)- decomposition for one-block partitions is now only skipped if the option
:block_options_init
is set toLinearMap
in addition (#534) - the
invariant
argument is removed from the continuous post; instead it is read from the stateset of the dynamical system in each mode (#551) - better error message if unsupported value for option
:overapproximation
is given (#561)
Breaking changes
ContinuousSystem
andDiscreteSystem
constructors are removed; use constructors from MathematicalSystems types instead (#503)- see the section Other above for more refactoring-related changes