Abstract

We present StarChild and Lazuli, two libraries which leverage refinement types to verify neural networks, implemented in F\(^*\) and Liquid Haskell. Refinement types are types augmented, or refined, with assertions about values of that type, Open image in new window “integers greater than five”, which are checked by an SMT solver. Crucially, these assertions are written in the language itself. A user of our library can refine the type of neural networks, Open image in new window “neural networks which are robust against adversarial attacks”, and expect F\(^*\) to handle the verification of this claim for any specific network, without having to change the representation of the network, or even having to learn about SMT solvers.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call