5 research outputs found
Satisfiability Modulo ODEs
We study SMT problems over the reals containing ordinary differential
equations. They are important for formal verification of realistic hybrid
systems and embedded software. We develop delta-complete algorithms for SMT
formulas that are purely existentially quantified, as well as exists-forall
formulas whose universal quantification is restricted to the time variables. We
demonstrate scalability of the algorithms, as implemented in our open-source
solver dReal, on SMT benchmarks with several hundred nonlinear ODEs and
variables.Comment: Published in FMCAD 201
Verifying safety properties of a nonlinear control by interactive theorem proving with the Prototype Verification System
Interactive, or computer-assisted, theorem proving is the verification of statements in a
formal system, where the proof is developed by a logician who chooses the appropriate inference steps, in turn executed by an automatic theorem prover. In this paper, interactive theorem proving is used to verify safety properties of a nonlinear (hybrid) control system
LNCS
Template polyhedra generalize intervals and octagons to polyhedra whose facets are orthogonal to a given set of arbitrary directions. They have been employed in the abstract interpretation of programs and, with particular success, in the reachability analysis of hybrid automata. While previously, the choice of directions has been left to the user or a heuristic, we present a method for the automatic discovery of directions that generalize and eliminate spurious counterexamples. We show that for the class of convex hybrid automata, i.e., hybrid automata with (possibly nonlinear) convex constraints on derivatives, such directions always exist and can be found using convex optimization. We embed our method inside a CEGAR loop, thus enabling the time-unbounded reachability analysis of an important and richer class of hybrid automata than was previously possible. We evaluate our method on several benchmarks, demonstrating also its superior efficiency for the special case of linear hybrid automata
PEF: Python Error Finder
Tesis (Lic. en Cs. de la Computación)--Universidad Nacional de Córdoba, Facultad de Matemática, Astronomía y Física, 2014.La verificación del correcto funcionamiento de los sistemas es uno de los aspectos más importante
del desarrollo de software, y a su vez, uno de los más costosos de llevar a cabo. El testing tradicional
y la verificación de modelos requiere mucho esfuerzo para lograr una buena cobertura de las posibles
ejecuciones. En este trabajo, utilizamos y extendemos una técnica que combina ejecución simbólica,
el poder de los razonadores recientes y la versatilidad de lenguajes puramente orientados a objetos,
para crear una librería que explora y describe los caminos de un programa, detectando errores de
manera automática y facilitando posteriormente, la generación de tests.
Presentaremos a PEF, una herramienta novedosa que hace uso de la técnica mencionada para
detectar errores en programas escritos en Python 3 con muy poco esfuerzo por parte del usuario.
Mostraremos la arquitectura del motor de ejecución simbólica y los aspectos fundamentales del
lenguaje necesarios para construir el motor en forma de librería, sin tener que re-implementar el
intérprete, como es usual en proyectos similares. También explicaremos el sistema de contratos que
incorporamos para indicar pre y post condiciones que se desean aplicar y validar en los programas
a ser explorados por PEF