Static Analysis and Verification of Aerospace Software by Abstract Interpretation

Julien Bertrane, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, Xavier Rival
2015 Foundations and Trends® in Programming Languages  
We discuss the principles of static analysis by abstract interpretation and report on the automatic verification of the absence of runtime errors in large embedded aerospace software by static analysis based on abstract interpretation. The first industrial applications concerned synchronous control/command software in open loop. Recent advances consider imperfectly synchronous, parallel programs, and target code validation as well. Future research directions on abstract interpretation are also
more » ... iscussed in the context of aerospace software. Nomenclature S program states C t I collecting semantics F P prefix trace transformer F ι interval transformer V set of all program variables t reflexive transitive closure of relation t lfp ⊆ F least fixpoint of F for ⊆ |x| absolute value of x q quaternion N naturals I initial states T t I trace semantics R t I reachability semantics 1 S identity on S (also t 0 ) x program variable t n powers of relation t α abstraction function widening X abstract counterpart of X q conjugate of quaternion q Z integers t state transition P t I prefix trace semantics F R reachability transformer t • r composition of relations t and r ρ reduction γ concretization function narrowing ℘(S) parts of set S (also 2 S ) ||q|| norm of quaternion q R reals * É cole normale supérieure, Département d'informatique, 45 rue d'Ulm, 75230 Paris cedex 05, First.Last@ens.fr.
doi:10.1561/2500000002 fatcat:qexzhfzrlvhh7eghzfo76ezca4