Skip to main content

Build Status PyPI version

Hylaa

Hylaa Logo

Hylaa (HYbrid Linear Automata Analyzer) is a verification tool for system models with linear ODEs, time-varying inputs, and possibly hybrid dynamics.

The is version 2 of Hylaa, with support for resets and hybrid automata with time-varying inputs. The focus has shifted from performance to handling more general dynamics.

The latest version of Hylaa is always available on our github repository at https://github.com/stanleybak/hylaa . A website for Hylaa is maintained at http://stanleybak.com/hylaa .

The main citation to use for Hylaa is: "HyLAA: A Tool for Computing Simulation-Equivalent Reachability for Linear Systems", S. Bak, P. Duggirala, 20th International Conference on Hybrid Systems: Computation and Control (HSCC 2017)

The code was mostly written by Stanley Bak (http://stanleybak.com) with input from Parasara Sridhar Duggirala (http://engr.uconn.edu/~psd).

Hylaa is released under the GPL v3 license (see the LICENSE file). Earlier versions have been approved for public release (DISTRIBUTION A: Approved for public release; distribution unlimited #88ABW-2016-5976, 22 NOV 2016).

Installation

This version of Hylaa runs in python3 and requires a few other libraries that you can install with pip3, the python package manager. You must also set your PYTHONPATH environment variable so that it knows where the hylaa source is located. There is a Dockerfile in this repository which is used as part of our continuous integration framework that has step by step commands for installing the necessary packages and dependencies. This serves as the installation documentation, as it's always up to date.

Getting Started + Example

The easiest way to get started with Hylaa is to run some of the examples. Once installed and setup, Hylaa models are just python source files you directly with python3 in a terminal.

Go to examples/harmonic_oscillator and run ha.py from the command line (python ha.py). This should create plot.png in the same folder, which will be an 2-d plot of the reachable set.

The dynamics in this example are given as x' = Ax, where A is the (potentially sparse) dynamics matrix. This is defined in the define_ha function in the ha.py source file.

Initial states and unsafe states are given as conjunctions of linear constraints. These are defined in the make_init function.

Finally, computation settings are given in the define_settings function. There are lots of settings that can be adjusted, which can be found in hylaa/settings.py, including comments describing what each one does.

The easiest way to use Hylaa on your example is to copy an example from the examples folder and edit that. Notice that models are python code, which means you can create the model programatically using loops or by loading the dynamics from a .mat file.

Pending Deprecation Warnings in Test Suite

The test suite produces pending deprecation warnings. This comes from scipy sparse matrices using matrix objects, particularly for computing the matrix exponential. I expect at some point scipy will make an update that will fix these, and then they'll go away. For now, we're ignoring them.

Metadata

Release files for hylaa 2.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hylaa 2.0.2
File Size Uploaded Provenance Actions
hylaa-2.0.2.tar.gz 104.4 kB Without provenance Details for hylaa-2.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for hylaa 2.0.2
File Interpreter ABI Platform Actions
hylaa-2.0.2-py3-none-any.whl Python 3 none any Details for hylaa-2.0.2-py3-none-any.whl

Total release size: 200.2 kB

Release files / hylaa-2.0.2.tar.gz

Download URL hylaa-2.0.2.tar.gz
Size 104.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bc7dd86f028ee5ae1770186605feccbad04dab2fc5b1a8f6a0d54022f3195d79
BLAKE2b-256 checksum
How to use checksums
a5ee7f0b29c79d3d5f1ea245f39d3a518de2c9ec3aca22c9364ffc316edd9ab3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / hylaa-2.0.2-py3-none-any.whl

Download URL hylaa-2.0.2-py3-none-any.whl
Size 95.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6adb351f38101b88030aa162b37b294854ba82008e43699b8f5b3d3817b09832
BLAKE2b-256 checksum
How to use checksums
1cde27153f55a6ffaa4abb0222343807c50d441abb672e622142435d025ba5b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Security for hylaa 2.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page