Skip to main content

A high-level functional language for writing mathematically-precise specifications for neural networks.

Project description

PyPI GitHub tag (latest by date) GitHub Workflow Status readthedocs status pre-commit.ci status

Vehicle

Vehicle is a system for embedding logical specifications into neural networks. At its heart is the Vehicle specification language, a high-level, functional language for writing mathematically-precise specifications for your networks. For example, the following simple specification says that a network's output should be monotonically increasing with respect to its third input.

Example specification

These specifications can then automatically be compiled down to loss functions to be used when training your network. After training, the same specification can be compiled down to low-level neural network verifiers such as Marabou which either prove that the specification holds or produce a counter-example. Such a proof is far better than simply testing, as you can prove that the specification holds for all inputs. Verified specifications can also be exported to interactive theorem provers (ITPs) such as Agda. This in turn allows for the formal verification of larger software systems that use neural networks as subcomponents. The generated ITP code is tightly linked to the actual deployed network, so changes to the network will result in errors when checking the larger proof.

Documentation

Examples

Each of the following examples comes with an explanatory README file:

  • ACAS Xu - The complete specification of the ACAS Xu collision avoidance system from the Reluplex paper in a single file.

  • Car controller - A neural network controller that is formally proven to always keep a simple model of a car on the road in the face of noisy sensor data and an unpredictable cross-wind.

  • MNIST robustness - A classifier for the MNIST dataset that is proven to be robust around the images in the dataset.

In addition to the above, further examples of specifications can be found in the test suite and the corresponding output of the Vehicle compiler can be found here.

Support

If you are interested in adding support for a particular format/verifier/ITP then open an issue on the Issue Tracker to discuss it with us.

Neural network formats

Dataset formats

Verifier backends

Interactive Theorem Prover backends

Related papers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

vehicle_lang-0.15.0-cp312-cp312-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.12 Windows x86-64

vehicle_lang-0.15.0-cp312-cp312-musllinux_1_1_x86_64.whl (21.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

vehicle_lang-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

vehicle_lang-0.15.0-cp312-cp312-macosx_10_10_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.12 macOS 10.10+ x86-64

vehicle_lang-0.15.0-cp311-cp311-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

vehicle_lang-0.15.0-cp311-cp311-musllinux_1_1_x86_64.whl (21.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

vehicle_lang-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

vehicle_lang-0.15.0-cp311-cp311-macosx_10_10_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.11 macOS 10.10+ x86-64

vehicle_lang-0.15.0-cp310-cp310-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

vehicle_lang-0.15.0-cp310-cp310-musllinux_1_1_x86_64.whl (21.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

vehicle_lang-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

vehicle_lang-0.15.0-cp310-cp310-macosx_10_10_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.10 macOS 10.10+ x86-64

vehicle_lang-0.15.0-cp39-cp39-win_amd64.whl (12.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

vehicle_lang-0.15.0-cp39-cp39-musllinux_1_1_x86_64.whl (21.1 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

vehicle_lang-0.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

vehicle_lang-0.15.0-cp39-cp39-macosx_10_10_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.9 macOS 10.10+ x86-64

File details

Details for the file vehicle_lang-0.15.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ee30d1d83720b2a5f481739bd6850ea4b02bd97603e926ad7880c7553f000518
MD5 d4fed8ba02dd4d1f0866e2a78502d265
BLAKE2b-256 8c777703896c28278fe7db9043dd9ed39a628669d287695b0fe4fd824039a089

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8233e29ded3f21564f2ce9b567e12384d9f69292bb834ef29c9f740eb070f671
MD5 55c811259fb968c4747db0ca49bf607b
BLAKE2b-256 4ad362500bd1a693c3d2fa1bb676ec52e625508fe7a5206a753fba99ca5428f0

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 16dac2def54b1de736fd7797d539fd7f9501a5a7375d060482c14276cffd09b5
MD5 848064030511f59a9a4ddbed72ad09e3
BLAKE2b-256 fc101da6d469be1290e64e63bda1a2b374a4eea4a737c4b3c3ce7ceb262f8ee1

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp312-cp312-macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp312-cp312-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 258008aef26dad55bc9cc48fb2b8529c6b366587ab7cdeecb0e0b36af62c31c4
MD5 1c600f58fbc01af3a049abfca8cdbc2d
BLAKE2b-256 5c5fd805560378bdab6cd4a345b05f09152479a86233b1432262fcc7af521422

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9386cdb692be1cd733f27b780e9c5b600211256086ba4a628de63a393a23be18
MD5 d8065c117310c7b3d577835931406bb3
BLAKE2b-256 619c2ab73f56d471bbb3b0df6df35d40afb2677b3bbffd093810a4ab461208a0

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cb2bbbcaef75954c8692fbb55a65e5bcc340589b3616c9b1e8438e55e017141d
MD5 32d0927a8403f69e1e437bc97667835a
BLAKE2b-256 0762c66eba12a9d5812a6681cb6c9667e9b4425976b6544eecda2509b8f2b22f

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96f8e247ae0b81159f3179f509cef5736cfa59c5dcf0d4a541c47ebeabbf3848
MD5 0e41d1a2bceba8fb58566c13b938ff28
BLAKE2b-256 6423e9a933e4c7e182fd38b0d3fe7f3a94dfd15416380baf8e409c5878e21cac

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp311-cp311-macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp311-cp311-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 d197fbad406379ff6e570dc5410d0f8d35455147c5240dbb28ec6f5199b97467
MD5 24e09d7d246a888a11792d640db4b6da
BLAKE2b-256 f8bbe60d86394e5f2d0809526f8763fdb43c5b10675b8ab883a08f9d3f4f4f20

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 525f400526904e1437a2ef3d21df25085d671047aebc526afc4376ab86df9c78
MD5 9d6548de295095bde1fcb1828b146677
BLAKE2b-256 047afcba572acaf4f9b2c92d48921429c582fc15e81d1e159b878bdb4f79253d

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c8be8454a8393c1b7c4fe32cd59c798ed66cdc8ca2dc92f2418f12672850b905
MD5 8758c256c5ce2787692cbc66f5a50717
BLAKE2b-256 e95132d24efe648a350a18ff4148797644dd393f05e395e3d95843fc167051e0

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c464036bd7e532452499fe6b7755efdfdff5d89c61165d4878b0bc224313ce9d
MD5 cac496f82eddaee353c7a5fabbce7505
BLAKE2b-256 40ba3c2bf9d1f7000f4072d2f897ec8202859c544269a27f28913f66c640201a

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp310-cp310-macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp310-cp310-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 c911bfac9602b3e2969d1df85f2d0a43eb073eedb397ccbb053c9a72592cf384
MD5 210374b713b32877fd472c07a1f6f076
BLAKE2b-256 28eaf7a89599a7276c22ec52aa3c56acd7fcab16058721d595bbd8e1d697864f

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 935f483a195abf30b4d08bbae63089bd021afa76594071180e6c4f25f94b330b
MD5 80bd066948afcdb1f3d59b7bfbf28184
BLAKE2b-256 ad796500a4f230944940d5dad841aed2a8886948fdbf8a839cd75f179617a399

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7d8f38d7ac1e3fdbd01818592fbd01b94014a67c24e1ad175629a2274e092622
MD5 6c8ae0d810368d43710458164e0d5bf3
BLAKE2b-256 7b6b52de7143d9b424665b0fba1251bef7fde065e6e85f2fc7f0aa488c13ac51

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d57999931e823926339d0d2f07c583e20b683f9b1ca69761acd3f1983ebac2e
MD5 c32500364fa291bb563684c3ecf3dca0
BLAKE2b-256 2864b27b1f7e97bdf1283b54d3b5e2aeafbd13381155e241b98809c4b5d7862b

See more details on using hashes here.

File details

Details for the file vehicle_lang-0.15.0-cp39-cp39-macosx_10_10_x86_64.whl.

File metadata

File hashes

Hashes for vehicle_lang-0.15.0-cp39-cp39-macosx_10_10_x86_64.whl
Algorithm Hash digest
SHA256 3a3c1973aeb1096fefbde58ba8b9e907e31551a43490836cbbf49786ed86c274
MD5 da76d7c4808295464e7bb29aa28e85bd
BLAKE2b-256 71a3cfcdebe06e8008e6464c7dff6da6e2f0ea7c2f0fc4336f3c2abd0a071ac7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page