Experiments in Verification of Linear Model Predictive Control: Automatic Generation and Formal Verification of an Interior Point Method Algorithm

Classical control of cyber-physical systems used to rely on basic linear controllers. These controllers provided a safe and robust behavior but lack the ability to perform more complex controls such as aggressive maneuvering or performing fuel-efficient controls. Another approach called optimal control is capable of computing such difficult trajectories but lacks the ability to adapt to dynamic changes in the environment. In both cases, the control was designed offline, relying on more or less complex algorithms to find the appropriate parameters. More recent kinds of approaches such as Linear Model-Predictive Control (MPC) rely on the online use of convex optimization to compute the best control at each sample time. In these settings, optimization algorithms are specialized for the specific control problem and embed on the device. This paper proposes to revisit the code generation of an interior point method (IPM) algorithm, an efficient family of convex optimization, focusing on the proof of its implementation at code level. Our approach relies on the code specialization phase to produce additional annotations formalizing the intented specification of the algorithm. Deductive methods are then used to prove automatically the validity of these assertions. Since the algorithm is complex, additional lemmas are also produced, allowing the complete proof to be checked by SMT solvers only. This work is the first to address the effective formal proof of an IPM algorithm. Theapproach could also be generalized more systematically to code generation frameworks, producing proof certificate along the code, for numerical intensive software.

[1]  Enrico Tassi,et al.  A Small Scale Reflection Extension for the Coq system , 2008 .

[2]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[3]  Eric Feron,et al.  PVS Linear Algebra Libraries for Verification of Control Software Algorithms in C/ACSL , 2012, NASA Formal Methods.

[4]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .

[5]  Yurii Nesterov,et al.  Interior-point polynomial algorithms in convex programming , 1994, Siam studies in applied mathematics.

[6]  Alberto Bemporad,et al.  An algorithm for multi-parametric quadratic programming and explicit MPC solutions , 2003, Autom..

[7]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[8]  Pierre Roux,et al.  A reflexive tactic for polynomial positivity using numerical solvers and floating-point computations , 2017, CPP.

[9]  Nikolai Kosmatov,et al.  Frama-C: A software analysis perspective , 2015, Formal Aspects of Computing.

[10]  Stephen P. Boyd,et al.  Convex Optimization , 2004, Algorithms and Theory of Computation Handbook.

[11]  Sylvain Conchon,et al.  Implementing polymorphism in SMT solvers , 2008, SMT '08/BPR '08.

[12]  Sylvie Boldo,et al.  Round-off Error Analysis of Explicit One-Step Numerical Integration Methods , 2017, 2017 IEEE 24th Symposium on Computer Arithmetic (ARITH).

[13]  Pierre Roux Formal Proofs of Rounding Error Bounds With application to an automatic positive definiteness check , 2017 .

[14]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[15]  Alberto Bemporad,et al.  Exact Complexity Certification of Active-Set Methods for Quadratic Programming , 2017, IEEE Transactions on Automatic Control.

[16]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[17]  Yurii Nesterov,et al.  Introductory Lectures on Convex Optimization - A Basic Course , 2014, Applied Optimization.

[18]  Timothy Wang,et al.  Credible autocoding of convex optimization algorithms , 2014, Optimization and Engineering.