Reference. Vehicle: Interfacing Neural Network Verifiers with Interactive Theorem Provers
Verification of neural networks is currently a hot topic in automated theorem proving. Progress has been rapid and there are now a wide range of tools available that can verify properties of networks with hundreds of thousands of nodes. In theory this opens the door to the verification of larger control systems that make use of neural network components. However, although work has managed to incorporate the results of these verifiers to prove larger properties of individual systems, there is currently no general methodology for bridging the gap between verifiers and interactive theorem provers (ITPs). In this paper we present Vehicle, our solution to this problem. Vehicle is equipped with an expressive domain specific language for stating neural network specifications which can be compiled to both verifiers and ITPs. It overcomes previous issues with maintainability and scalability in similar ITP formalisations by using a standard ONNX file as the single canonical representation of the network. We demonstrate its utility by using it to connect the neural network verifier Marabou to Agda and then formally verifying that a car steered by a neural network never leaves the road, even in the face of an unpredictable cross wind and imperfect sensors. The network has over 20,000 nodes, and therefore this proof represents an improvement of 3 orders of magnitude over prior proofs about neural network enhanced systems in ITPs.
Cite
Cites 28 works (1 here)
With notes (1)
Everybody’s Got To Be Somewhere mcbrideEverybodysGotToBeSomewhere2018
The key to any nameless representation of syntax is how it indicates the variables we choose to use and thus, implicitly, those we discard. Standard de Bruijn representations delay discarding maximally till the leaves of terms where one is chosen from the variables in scope at the expense of the rest. Consequently, introducing new but unused variables requires term traversal. This paper introduces a nameless ‘co-de-Bruijn’ representation which makes the opposite canonical choice, delaying discarding minimally, as near as possible to the root. It is literate Agda: dependent types make it a practical joy to express and be driven by strong intrinsic invariants which ensure that scope is aggressively whittled down to just the support of each subterm, in which every remaining variable occurs somewhere. The construction is generic, delivering a universe of syntaxes with higher-order metavariables, for which the appropriate notion of substitution is hereditary. The implementation of simultaneous substitution exploits tight scope control to avoid busywork and shift terms without traversal. Surprisingly, it is also intrinsically terminating, by structural recursion alone.
External (27)
- Vehicle (software repository) (2022)
- DNNV: A Framework for Deep Neural Network Verification (2021)
- Property-driven Training: All You (N)Ever Wanted to Know About (2021)
- VNNLib format (website) (2021)
- On the use of formal methods to model and verify neuronal archetypes (2020)
- Knowledge Distillation: A Survey (2020)
- Exploiting Verified Neural Networks via Floating Point Numerical Error (2020)
- Socrates: Towards a unified platform for neural network analysis (2020)
- Case study: verifying the safety of an autonomous racing car with a neural network controller (2019)
- Unconstrained Monotonic Neural Networks (2019)
- Certifying the True Error: Machine Learning in Coq with Verified Generalization Guarantees (2019)
- The Marabou Framework for Verification and Analysis of Deep Neural Networks (2019)
- DL2: Training and Querying Neural Networks with Logic (2019)
- An abstract domain for certifying neural networks (2019)
- Verisig: verifying safety properties of hybrid systems with neural network controllers (2018)
- Output Reachable Set Estimation and Verification for Multilayer Neural Networks (2017)
- SMTCoq: A Plug-In for Integrating SMT Solvers into Coq (2017)
- Towards Deep Learning Models Resistant to Adversarial Attacks (2017)
- Formal Verification of Piece-Wise Linear Feed-Forward Neural Networks (2017)
- Reluplex: An Efficient SMT Solver for Verifying Deep Neural Networks (2017)
- KeYmaera X: An Axiomatic Tactical Theorem Prover for Hybrid Systems (2015)
- Intriguing properties of neural networks (2013)
- Extending Sledgehammer with SMT solvers (JAR journal version) (2013)
- A Tutorial Implementation of a Dependently Typed Lambda Calculus (2010)
- Dependently typed programming in Agda (2009)
- The use of a formal simulator to verify a simple real time control program (1990)
- Open Neural Network Exchange format. Accessed on 30