Motivation. Automatic Large-Scale Software Verification by Abstract Interpretation. Patrick Cousot. Content. Abstract

Size: px
Start display at page:

Download "Motivation. Automatic Large-Scale Software Verification by Abstract Interpretation. Patrick Cousot. Content. Abstract"

Transcription

1 Automatic Large-Scale Software Verification b Abstract Interpretation di.ens.fr di.ens.fr/~cousot Patrick Cousot cims. nu. edu cims. nu. edu /~pcousot Tsinghua Software Da Beijing, China March 15, 2012 Content Motivation An informal introduction to abstract interpretation A touch of theor of abstract interpretation A short overview of a few applications and ongoing work on software verification For a rather complete basic introduction to abstract interpretation and applications to cber-phsical sstems, see: Julien Bertrane, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, & Xavier Rival. Static Analsis and Verification of Aerospace Software b Abstract Interpretation. In AIAA Infotech@@Aerospace 2010, Atlanta, Georgia. American Institute of Aeronautics and Astronautics, April AIAA. 1 3 Abstract Abstract interpretation is a theor of abstraction and constructive approimation of the mathematical structures used in the formal description of programming languages and the inference or verification of undecidable program properties. Developed in the late seventies with Radhia Cousot, it has since then been considerabl applied to man aspects of programming, from snta, to semantics, and proof methods where abstractions are sound and complete but incomputable to full automatic, sound but incomplete approimate abstractions to solve undecidable problems such as static analsis of infinite state software sstems, contract inference, tpe inference, termination inference, model-checking, abstraction refinement, program transformation (including watermarking), combination of decision procedures, securit, malware detection, etc. This last decade, abstract interpretation has been ver successful in program verification for mission- and safet-critical sstems. An eample is Astrée ( which is a static analzer to verif the absence of runtime errors in structured, ver large C programs with comple memor usages, and involving comple boolean as well as floating-point computations (which are handled precisel and safel b taking all possible rounding errors into account), but without recursion or dnamic memor allocation. Astrée targets embedded applications as found in earth transportation, nuclear energ, medical instrumentation, aeronautics and space flight, in particular snchronous control/command such as electric flight control or more recentl asnchronous sstems as found in the automotive industr. Motivation Astrée is industrialized b AbsInt ( 2 4

2 All computer scientists have eperienced bugs Ariane 5.01 failure Patriot failure Mars orbiter loss (overflow) (float rounding) (unit error) Checking the presence of bugs is great Proving their absence is even better! Abstract interpretation Started in the 70 s and widel applied since then Based on the idea that undecidabilit and compleit of automated program analsis can be fought b sound approimations or complete abstractions Wide-spectrum theor so applications range from static analsis to verification to biolog Does scale up! 5 7 Abstract interpretation Patrick Cousot & Radhia Cousot. Static Determination of Dnamic Properties of Programs. In B. Robinet, editor, Proceedings of the second international smposium on Programming, Paris, France, pages , April , Dunod, Paris. Patrick Cousot, Radhia Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analsis of Programs b Construction or Approimation of Fipoints. POPL 1977: Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Patrick Cousot. Méthodes itératives de construction et d'approimation de points fies d'opérateurs monotones sur un treillis, analse sémantique des programmes. Thèse És Sciences Mathématiques, Université Joseph Fourier, Grenoble, France, 21 March 1978 Patrick Cousot. Semantic foundations of program analsis. In S.S. Muchnick & N.D. Jones, editors, Program Flow Analsis: Theor and Applications, Ch. 10, pages , Prentice- Hall, Inc., Englewood Cliffs, New Jerse, U.S.A., Fighting undecidabilit and compleit in program verification An automatic program verification method will definitel fail on infinitel man programs (Gödel) Solutions: Ask for human help (theorem-prover/proof assistant based deductive methods) Consider (small enough) finite sstems (modelchecking) Do sound approimations or complete abstractions (abstract interpretation) 8

3 II) Define the program properties of interest Formalize what ou are interested to know about program behaviors An informal introduction to abstract interpretation P. Cousot & R. Cousot. A gentle introduction to formal verification of computer sstems b abstract interpretation. In Logics and Languages for Reliabilit and Securit, J. Esparza, O. Grumberg, & M. Bro (Eds), NATO Science Series III: Computer and Sstems Sciences, IOS Press, 2010, Pages ) Define the programming language semantics Formalize the concrete eecution of programs (e.g. transition sstem) h (,) 2 I III) Define which specification must be checked Formalize what ou are interested to prove about program behaviors t=0 t=1 t=2 t= t Trajector in state space Space/time trajector I 10 12

4 IV) Choose the appropriate abstraction Abstract awa all information on program behaviors irrelevant to the proof Soundness of the abstract verification Never forget an possible case so the abstract proof is correct in the concrete V) Mechanicall verif in the abstract The proof is full automatic Tr a few cases Unsound validation: testing 14 16

5 Unsound validation: bounded model-checking Simulate the beginning of all eecutions Incompleteness When abstract proofs ma fail while concrete proofs would succeed Forbidden zone Possible trajectories Bounded model-checking B soundness an alarm must be raised for this overapproimation! Unsound validation: static analsis Man static analsis tools are unsound (e.g. Coverit, etc.) so inconclusive True error The abstract alarm ma correspond to a concrete error 18 20

6 False alarm The abstract alarm ma correspond to no concrete error (false negative) A Touch of Abstract Interpretation Theor What to do about false alarms? Automatic refinement: inefficient and ma not terminate (Gödel) Domain-specific abstraction: Adapt the abstraction to the programming paradigms tpicall used in given domain-specific applications e.g. snchronous control/command: no recursion, no dnamic memor allocation, maimum eecution time, etc. Fipoint Set P P Transformer 2 P Fipoint 2 P! P F 2 P! P 2 P 2 P is a fipoint of F () F() () = Poset hp 6i hp, 6i Least hp 6i fipoint 2 P 2 P is the least fipoint of F (written = lfp 6 F) () F() = ^8 2 P :(F() = ) ) ( 6 ) 22 24

7 Program properties as fipoints Program semantics and program properties can be formalized as least/greatest fipoints of increasing transformers on complete lattices (1) Complete lattice / cpo of properties (1) _ hp, 6, 0, 1, _, ^i hp _ ^ Properties of programjp 6 F J _ K S JPK = lfp 6 FJPK F Transformer of program F JP 2 FJPK 2 P! P, increasing (or continuous) Patrick Cousot, Radhia Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analsis of Programs b Construction or Approimation of Fipoints. POPL 1977: Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Proof Jmethods K Proof methods 2 directl! follow from the fipoint definition S JPK 6 P, lfp 6 FJPK 6 P,9I : FJPK(I) 6 I ^ I 6 P (proof b ) Tarski s fipoint ^8theorem 2 P for increasing transformers on complete lattice or Pataria for cpos) lfp 6 F = V { F() 6 } Patrick Cousot, Radhia Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analsis of Programs b Construction or Approimation of Fipoints. POPL 1977: Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Eample: F reachable states Transition sstem (set of states h, initial states I, transition relation i) h, I, i. I Right-image of a I set [ of states b transitions post[ ]X, {s 0 9s 2 X : (s, s 0 )} Reachable h Istates i from initial states I, post[? ]I = lfp X. I [ post[ ]X, { } (I) Patrick Cousot. Méthodes itératives de construction et d'approimation de points fies d'opérateurs monotones sur un treillis, analse sémantique des programmes. Thèse És Sciences Mathématiques, Université Joseph Fourier, Grenoble, France, 21 March 1978 Patrick Cousot. Semantic foundations of program analsis. In S.S. Muchnick & N.D. Jones, editors, Program Flow Analsis: Theor and Applications, Ch. 10, pages , Prentice- Hall, Inc., Englewood Cliffs, New Jerse, U.S.A., h I Eample: Turing/Flod Invariance Proof Bad states B Prove B that no bad state is reachable post[? ]I B 9 2 I Turing/Flod proof method I B 9I 2 }( ) :I I ^ post[ ]I I ^ I B Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979:

8 Abstraction Abstract the concrete properties J into abstract,9 properties K J ^ K J K ha, v,?, >, t, ha ui v? > t J u K If an concrete propert P 2 P has a best abstraction (P) 2 A, then the correspondence is given b a Galois haconnection v? > t ui i.e. hp, 6i! ha, vi hp i! ha vi 8P 2 P : 8Q 2 A : (P) v Q, P 6 (Q) 8 2 P 8 Abstract transformer An abstract transformer 2 A! A Sound iff Complete iff F 2 A! A 8P 2 P : F(P) v F (P) 8 2 P v 8P 2 P : F(P) = F (P) Eample (rule 6 of sign) Addition: sound, v incomplete Multiplication: sound, complete is Patrick Cousot, Radhia Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analsis of Programs b Construction or Approimation of Fipoints. POPL 1977: Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Patrick Cousot, Radhia Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analsis of Programs b Construction or Approimation of Fipoints. POPL 1977: Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Eample: elementwise! abstraction Morphism h 2 P 7! A, { 2 P 7! A (X), {h() 2 X}, { 2 } h P i h A h}(p), i! h}(a), i h : P! i { 1! 0 1} h h : Z! { 1, 0, 1} Abstraction Galois connection Eample: rule of signs h(z), z/ z { 1 { 1, 0} {0 { 1} } { { 1} {0} ), { 1, 0, 1} 1 0} { } {0 1} { 1, 1} { 1} { { 1} {0} {1} { {1 ; { { 1 0 {0, 1} { 1 1 {0} {1} ; Eample: rule of signs {-1, -2, -7} * {0, -2, -5} = {0, 2, 4, 14, 5, 10, 35} i { n n > 0 }!! {-1} * {-1,0} = {1,0}! Negative Negative Positive or zero or zero Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979:

9 Fipoint abstraction For an 8increasing 2 P and sound abstract transformer, we have a fipoint approimation (lfp 6 F) v lfp v F For an increasing, sound, v and complete abstract transformer, we have an eact fipoint abstraction (lfp 6 F) = lfp v F Widening Definition 2 A (widening O 2 A A! A ) ha, vi poset Over-approimation ha vi 8, 2 A : v O ^ v O 8 Termination 2 A v O ^ v O Given an sequence h n, n 2 Ni, the widened sequence h n, n 2 Ni 0, 0,..., n+1, n O n,... converges to a limit ` (such that 8m > ` : m = `) Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Patrick Cousot, Radhia Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analsis of Programs b Construction or Approimation of Fipoints. POPL 1977: Iterative fipoint computation Fipoint of increasing transformers on cpos can be computed iterativel as limits of (transfinite) iterates F 0,? F +1 F, F(F ), + 1 successor ordinal F, F F < F, limit ordinal F Ultimatel stationar at rank Converges to F = lfp v F =! when F is continuous Finite iterates when F operates on a cpo satisfing the ascending chain condition Eample: (simple) widening for polhedra Iterates Widening Patrick Cousot & Radhia Cousot. Constructive versions of Tarski's fied point theorems. In Pacific Journal of Mathematics, Vol. 82, No. 1, 1979, pp Patrick Cousot, Nicolas Halbwachs: Automatic Discover of Linear Restraints Among Variables of a Program. POPL 1978:

10 Iterates with widening for transformer F 0,? The widening speeds up convergence (at the cost of imprecision) Can be improved b a narrowing. Iteration with widening F n+1, F n when F(F n ) v F n F n+1, F n OF(F n ) otherwise 37 F 2 A! A Theorem (Limit of iterates with widening) The iterates of F with widening O from? on a poset ha, v,?i converge to a limit F` such that F(F` ) v F` (and so lfp v F v F` when F is increasing). Patrick Cousot, Radhia Cousot: Abstract Interpretation: A Unified Lattice Model for Static Analsis of Programs b Construction or Approimation of Fipoints. POPL 1977: Reduced product The reduced product combines abstractions b performing 9 2 I their ^ conjunction ^ in B the abstract 1 hp, 6i 1! 2 hp, 6i 2! ha 1, v 1 i ha 2, v 2 i A 1 A 2, {h 1 ( 1 (P 1 )^ 2(P 2 )), 2 ( 1 (P 1 )^ 2(P 2 ))i P 1 2 A 1 ^ P 2 2 A 2 } 1 2 hp, 6i 1 2! ha 1 A 2, v 1 v 2 i Eample: (positive or zero) odd = <positive,odd> h Patrick Cousot, Radhia Cousot: Sstematic Design of Program Analsis Frameworks. POPL 1979: Patrick Cousot, Radhia Cousot, Laurent Mauborgne: The Reduced Product of Abstract Domains and the Combination of Decision Procedures. FOSSACS 2011: Intuition for iteration with widening F F F()6 Recent advances The same principles appl to termination Patrick Cousot, Radhia Cousot: An abstract interpretation framework for termination. POPL 2012: and to probabilistic programs Iteration l fp F l fp F Iteration with widening (using the derivative as in Newton-Raphson method) Patrick Cousot and Michaël Monerau. Probabilistic Abstract Interpretation. In H. Seidel (Ed), 22nd European Smposium on Programming (ESOP 2012), Tallinn, Estonia, 24 March 1 April Lecture Notes in Computer Science, vol. 7211, pp , Springer,

11 The semantics of C implementations is ver hard to define ASTRÉE Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, Xavier Rival: Wh does Astrée scale up? Formal Methods in Sstem Design 35(3): (2009) Patrick Cousot, Radhia Cousot, Jérôme Feret, Antoine Miné, Laurent Mauborgne, David Monniau, Xavier Rival: Varieties of Static Analzers: A Comparison with ASTREE. TASE 2007: 3-20 Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniau, Xavier Rival: Combination of Abstractions in the ASTRÉE Static Analzer. ASIAN 2006: Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniau, Xavier Rival: The ASTREÉ Analzer. ESOP 2005: Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniau, Xavier Rival: A static analzer for large safet-critical software. PLDI 2003: Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniau, Xavier Rival: Design and Implementation of a Special-Purpose Static Program Analzer for Safet-Critical Real-Time Embedded Software. The Essence of Computation 2002: What is the e ect of out-of-bounds arra indeing? %catunpredictable.c #include <stdio.h> int main () { int n, T[1]; n= ; printf("n = %i, T[n] = %i\n", n, T[n]); } Yields di erent results on di erent machines: n= ,t[n]= n= ,t[n]= n= ,t[n]= Bus error Macintosh PPC Macintosh Intel PC Intel 32 bits PC Intel 64 bits Target language and applications C programming language Without recursion, longjump, dnamic memor allocation, conflicting side effects, backward jumps, sstem calls (stubs) With all its horrors (union, pointer arithmetics, etc) Reasonabl etending the standard (e.g. size & endianess of integers, IEEE floats, etc) Originall for snchronous control/command e.g. generated from Scade 42 Implicit specification Absence of runtime errors: overflows, division b zero, buffer overflow, null & dangling pointers, alignment errors, Semantics of runtime errors: Terminating eecution: stop (e.g. floating-point eceptions when traps are activated) Predictable outcome: go on with worst case (e.g. signed integer overflows result in some integer, some options: e.g. modulo arithmetics) Unpredictable outcome: stop (e.g. memor corruption) 44

12 Abstractions Collecting semantics: 1, 5 Intervals: 20 Simple congruences: 24 partial traces [a, b] a[b] Octagons: 25 Ellipses: 26 Eponentials: 27 ± ± a 2 + b 2 a d a bt (t) a bt domains (and more) are described in more details in Sects. III.H III.I. 45 t Eample of general purpose abstraction: decision trees Code Sample: /* boolean.c */ tpedef enum {F=0,T=1} BOOL; BOOL B; void main () { unsigned int X, Y; while (1) {... B=(X==0);... if (!B) { Y=1/X; }... } } The boolean relation abstract The boolean relation abstract domain is parameterized b the height domain is parameterized b the height of the of decision the decision tree (an tree analzer (an analzer option) and the option) abstract and domainthe at the leafs abstract domain at the leaves 47 Eample of general purpose abstraction: octagons Eample: Invariants of the form ± ± c, with O(N 2 ) memor and O(N 3 ) time cost. while (1) { R = A-Z; L = A; if (R>V) { L = Z+V; } } At, the interval domain gives L ma(ma A, (ma Z)+(ma V)). In fact, we have L A. To discover this, we must know at that R = A-Z and R > V. Here, R = A-Z cannot be discovered, but we get L-Z ma R which is sufficient. We use man octagons on small packs of variables instead of a large one using all variables to cut costs. Antoine Miné: The octagon abstract domain. Higher-Order and Smbolic Computation 19(1): (2006) 46 Eample of domain-specific abstraction: ellipses tpedef enum {FALSE = 0, TRUE = 1} BOOLEAN; BOOLEAN INIT; float P, X; void filter () { static float E[2], S[2]; if (INIT) { S[0] = X; P = X; E[0] = X; } else { P = (((((0.5 * X) - (E[0] * 0.7)) + (E[1] * 0.4)) + (S[0] * 1.5)) - (S[1] * 0.7)); } E[1] = E[0]; E[0] = X; S[1] = S[0]; S[0] = P; /* S[0], S[1] in [ , ] */ } void main () { X = 0.2 * X + 5; INIT = TRUE; while (1) { X = 0.9 * X + 35; /* simulated filter input */ filter (); INIT = FALSE; } } 48

13 Eample of domain-specific Arithmetic-geometric abstraction: progressions eponentials (E % cat count.c tpedef enum {FALSE = 0, TRUE = 1} BOOLEAN; volatile BOOLEAN I; int R; BOOLEAN T; void main() { R = 0; while (TRUE) { ASTREE_log_vars((R)); if (I) { R = R + 1; } else { R = 0; } T = (R >= 100); ASTREE_wait_for_clock(()); }} % cat count.config ASTREE_volatile_input((I [0,1])); ASTREE_ma_clock(( )); % astree eec-fn main config-sem count.config count.c grep R R <= 0. + clock *1. <= potential overflow! t An erroneous common belief on static analzers A common believe on static analzers The properties that can be proved b static analzers are often simple [2] Like in mathematics: Ma be simple to state (no overflow) But harder to discover ((P S[0], 2 S[1] [`1325:4522; in [ , 1325:4522]) ] ) And di cult to prove (since it requires finding a non trivial non-linear invariant for second order filters with comple roots [Fer04], which can hardl be found b ehaustive enumeration) Reference [2] Vija D Silva, Daniel Kroening, and Georg Weissenbacher. A Surve of Automated Techniques for Formal Software Verification. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Sstems, Vol. 27, No. 7, Jul [Fer04] Jérôme Feret: Static Analsis of Digital Filters. ESOP 2004: J I Eample of domain-specific abstraction: eponentials % cat retro.c tpedef enum {FALSE=0, TRUE=1} BOOL; BOOL FIRST; volatile BOOL SWITCH; volatile float E; float P, X, A, B; void dev( ) { X=E; if (FIRST) { P = X; } else { P = (P - ((((2.0 * P) - A) - B) * e-03)); }; B = A; if (SWITCH) {A = P;} else {A = X;} } void main() { FIRST = TRUE; while (TRUE) { dev( ); FIRST = FALSE; ASTREE_wait_for_clock(()); }} % cat retro.config ASTREE_volatile_input((E [-15.0, 15.0])); ASTREE_volatile_input((SWITCH [0,1])); ASTREE_ma_clock(( )); P <= ( e-39 / e-07) * ( e-07)ˆclock e-39 / e-07 <= Industrial applications Daniel Kästner, Christian Ferdinand, Stephan Wilhelm, Stefana Nevona, Olha Honcharova, Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, Xavier Rival, and Élodie-Jane Sims. Astrée: Nachweis der Abwesenheit von Laufzeitfehlern. In Workshop ``Entwicklung zuverlässiger Software-Ssteme'', Regensburg, German, June 18th, Olivier Bouissou, Éric Conquet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Khalil Ghorbal, Éric Goubault, David Lesens, Laurent Mauborgne, Antoine Miné, Slvie Putot, Xavier Rival, & Michel Turin. Space Software Validation using Abstract Interpretation. In Proc. of the Int. Space Sstem Engineering Conf., Data Sstems in Aerospace (DASIA 2009). Istambul, Turke, Ma 2009, 7 pages. ESA. Jean Souris, David Delmas: Eperimental Assessment of Astrée on Safet-Critical Avionics Software. SAFECOMP 2007: Jérôme Feret: The Arithmetic-Geometric Progression Abstract Domain. VMCAI 2005: t David Delmas, Jean Souris: Astrée: From Research to Industr. SAS 2007: Jean Souris: Industrial eperience of abstract interpretation-based static analzers. IFIP Congress Topical Sessions 2004: Stephan Thesing, Jean Souris, Reinhold Heckmann, Famantanantsoa Randimbivololona, Marc Langenbach, Reinhard Wilhelm, Christian Ferdinand: An Abstract Interpretation-Based Timing Validation of Hard Real-Time Avionics Software. DSN 2003:

14 Eamples of applications Verification of the absence of runtime-errors in (*) Fl-b-wire flight control sstems ATV docking sstem (*) On-going work Flight warning sstem (on-going work) (*) No false alarm a all! Industrialization 8 ears of research (CNRS/ENS/INRIA): Industrialization b AbsInt (since Jan. 2010): ASTRÉEA: Verification of embedded real-time parallel C programs Antoine Miné: Static Analsis of Run-Time Errors in Embedded Critical Parallel C Programs. ESOP 2011:

15 Parallel programs Bounded number of processes with shared memor, events, semaphores, message queues, blackboards, Processes created at initialization onl Real time operating sstem (ARINC 653) with fied priorities (highest priorit runs first) Scheduled on a single processor Verified properties Absence of runtime errors Absence of unprotected data races 57 Abstractions Based on Astrée for the sequential processes Takes scheduling into account OS entr points (semaphores, logbooks, sampling and queuing ports, buffers, blackboards, ) are all stubbed (using Astrée stubbing directives) Interference between processes: flow-insensitive abstraction of the writes to shared memor and inter-process communications 59 Semantics No memor consistenc model for C Optimizing compilers consider sequential processes out of their eecution contet init: flag1 = flag2 = 0 process 1: process 2: flag1 = 1; flag2 = 1; if (!flag2) if (!flag1) { { /* critical section */ /* critical section */ We assume: sequential consistenc in absence of data race for data races, values are limited b possible interleavings between snchronization points 58 write to flag1/2 and read of flag2/1 are independent so can be reordered error! Eample of application: FWS Degraded mode (5 processes, LOCS) 1h40 on 64-bit 2.66 GHz Intel server A few dozens of alarms Full mode (15 processes, LOCS) 24 h a few hundreds of alarms!!! work going on!!! (e.g. analsis of comple data structures, logs, etc) 60

16 Conclusion Cost-effective verification Wh not tr abstract interpretation? Domain-specific static analsis scales and can deliver no or few false alarms on large industrial code! Conceptual bugs are discovered through their consequences on runtime errors Ver cost effective Compliant with DO178C formal methods! Cost-effective verification The rumor has it that: Manuel validation (testing/debugging/bug finding) is costl, unsafe, not a verification! Formal proofs b theorem provers are etremel laborious hence costl to create and maintain for program/specifications changing over time (15/20 ears for planes) Model-checkers are unsound or do not scale up for comple software (which is unbounded) The End, Thank You 62 64

Static Analysis and Verification of Aerospace Software

Static Analysis and Verification of Aerospace Software Static Analysis and Verification of Aerospace Software by Abstract Interpretation joint work with: Patrick Cousot Julien Bertrane and Radhia Cousot École normale supérieure, Paris Patrick Cousot, Courant

More information

Static Analysis by A. I. of Embedded Critical Software

Static Analysis by A. I. of Embedded Critical Software Static Analysis by Abstract Interpretation of Embedded Critical Software Julien Bertrane ENS, Julien.bertrane@ens.fr Patrick Cousot ENS & CIMS, Patrick.Cousot@ens.fr Radhia Cousot CNRS & ENS, Radhia.Cousot@ens.fr

More information

Abstract Interpretation and Static Analysis. Introductory Motivations on Software Reliability. The Software Reliability Problem

Abstract Interpretation and Static Analysis. Introductory Motivations on Software Reliability. The Software Reliability Problem Abstract Interpretation and Static Analsis Patrick COUSOT École Normale Supérieure, 45 rue d Ulm 75230 Paris cede 05, France mailto:cousot@ens.fr http://www.di.ens.fr/ cousot IFIP WG 10.4, 40th Meeting

More information

Widening Operator. Fixpoint Approximation with Widening. A widening operator 2 L ˆ L 7``! L is such that: Correctness: - 8x; y 2 L : (y) v (x y)

Widening Operator. Fixpoint Approximation with Widening. A widening operator 2 L ˆ L 7``! L is such that: Correctness: - 8x; y 2 L : (y) v (x y) EXPERIENCE AN INTRODUCTION WITH THE DESIGN TOF A SPECIAL PURPOSE STATIC ANALYZER ABSTRACT INTERPRETATION P. Cousot Patrick.Cousot@ens.fr http://www.di.ens.fr/~cousot Biarritz IFIP-WG 2.3 2.4 meeting (1)

More information

State of Practice. Automatic Verification of Embedded Control Software with ASTRÉE and beyond

State of Practice. Automatic Verification of Embedded Control Software with ASTRÉE and beyond Automatic Verification of Embedded Control Software with ASTRÉE and beyond Patrick Cousot Jerome C. Hunsaker Visiting Professor Department of Aeronautics and Astronautics, MIT cousot mit edu www.mit.edu/~cousot

More information

Lecture 6. Abstract Interpretation

Lecture 6. Abstract Interpretation Lecture 6. Abstract Interpretation Wei Le 2014.10 Outline Motivation History What it is: an intuitive understanding An example Steps of abstract interpretation Galois connection Narrowing and Widening

More information

The Verification Grand Challenge and Abstract Interpretation

The Verification Grand Challenge and Abstract Interpretation The Verification Grand Challenge and Abstract Interpretation Patrick Cousot École normale supérieure, 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot ens fr Visiting the Aeronautics and Astronautics

More information

The ASTRÉE Analyzer Patrick Cousot 2, Radhia Cousot 1,3, Jerôme Feret 2, Laurent Mauborgne 2, Antoine Miné 2, David Monniaux 1,2, and Xavier Rival 2 1 CNRS 2 École Normale Supérieure, Paris, France Firstname.Lastname@ens.fr

More information

Space Software Validation using Abstract Interpretation

Space Software Validation using Abstract Interpretation Space Software Validation using Abstract Interpretation Olivier Bouissou, Eric Conquet, Patrick Cousot, Radhia Cousot, Jérôme Feret, Khalil Ghorbal, Eric Goubault, David Lesens, Laurent Mauborgne, Antoine

More information

Automatic Qualification of Abstract Interpretation-based Static Analysis Tools. Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013

Automatic Qualification of Abstract Interpretation-based Static Analysis Tools. Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013 Automatic Qualification of Abstract Interpretation-based Static Analysis Tools Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013 2 Functional Safety Demonstration of functional correctness Well-defined

More information

Abstract interpretation

Abstract interpretation The Verification Grand Challenge and Abstract Interpretation Patrick Cousot École normale supérieure, Paris, France cousot ens fr www.di.ens.fr/~cousot Verified Software: Theories, Tools, Experiments Zürich,

More information

Script started on Thu Oct 11 07:52: demo-astree/programs %./README

Script started on Thu Oct 11 07:52: demo-astree/programs %./README Script started on Thu Oct 11 07:52:30 2007 demo-astree/programs./readme ****************************************************** ****************************************************** *** *** *** Demonstration

More information

Towards an industrial use of FLUCTUAT on safety-critical avionics software

Towards an industrial use of FLUCTUAT on safety-critical avionics software Towards an industrial use of FLUCTUAT on safety-critical avionics software David Delmas 1, Eric Goubault 2, Sylvie Putot 2, Jean Souyris 1, Karim Tekkal 3 and Franck Védrine 2 1. Airbus Operations S.A.S.,

More information

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS Christian Ferdinand and Reinhold Heckmann AbsInt Angewandte Informatik GmbH, Stuhlsatzenhausweg 69, D-66123 Saarbrucken, Germany info@absint.com

More information

Script started on Mon Oct 15 08:21: demo-astree/programs %./README

Script started on Mon Oct 15 08:21: demo-astree/programs %./README Script started on Mon Oct 15 08:21:18 2007 demo-astree/programs./readme ****************************************************** ****************************************************** *** *** *** Demonstration

More information

A Gentle Introduction to Program Analysis

A Gentle Introduction to Program Analysis A Gentle Introduction to Program Analysis Işıl Dillig University of Texas, Austin January 21, 2014 Programming Languages Mentoring Workshop 1 / 24 What is Program Analysis? Very broad topic, but generally

More information

Static Analysis and Verification of Aerospace Software by Abstract Interpretation

Static Analysis and Verification of Aerospace Software by Abstract Interpretation Static Analysis and Verification of Aerospace Software by Abstract Interpretation Julien Bertrane École normale supérieure, Paris Patrick Cousot, Courant Institute of Mathematical Sciences, NYU, New York

More information

Building a specialized static analyzer

Building a specialized static analyzer Building a specialized static analyzer The Astrée experience Antoine Miné CNRS, École Normale Supérieure Security and Reliability of Software Systems 12 December 2008 Antoine Miné Building a specialized

More information

Verification of Embedded Software: Problems and Perspectives

Verification of Embedded Software: Problems and Perspectives Verification of Embedded Software: Problems and Perspectives Patrick COUSOT École Normale Supérieure 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot@ens.fr www.di.ens.fr/ cousot Radhia COUSOT

More information

Lookahead Widening. Denis Gopan 1 and Thomas Reps 1,2. 1 University of Wisconsin. 2 GrammaTech, Inc.

Lookahead Widening. Denis Gopan 1 and Thomas Reps 1,2. 1 University of Wisconsin. 2 GrammaTech, Inc. Lookahead Widening Denis Gopan and Thomas Reps,2 Universit of Wisconsin. 2 GrammaTech, Inc. {gopan,reps}@cs.wisc.edu Abstract. We present lookahead widening, a novel technique for using eisting widening

More information

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors ESOP 2004 Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Antoine Miné École Normale Supérieure Paris FRANCE This work was partially supported by the ASTRÉE RNTL project

More information

Trace Partitioning in Abstract Interpretation Based Static Analyzers

Trace Partitioning in Abstract Interpretation Based Static Analyzers Trace Partitioning in Abstract Interpretation Based Static Analyzers DI, Laurent Mauborgne and Xavier Rival École Normale Supérieure, 45 rue d Ulm, 75 230 Paris cedex 05, France Emails: Laurent.Mauborgne@ens.fr

More information

Semantics and Validation Lecture 1. Informal Introduction

Semantics and Validation Lecture 1. Informal Introduction Semantics and Validation Lecture 1. Informal Introduction Laboratoire Modélisation et Analyse de Systèmes en Interaction, CEA-LIST and Ecole Polytechnique Eric Goubault and Sylvie Putot November 26, 2013

More information

Improving the Static Analysis of Loops by Dynamic Partitioning Techniques

Improving the Static Analysis of Loops by Dynamic Partitioning Techniques Improving the Static Analysis of Loops by Dynamic Partitioning echniques Matthieu Martel CEA - Recherche echnologique LIS-DSI-SLA CEA F91191 Gif-Sur-Yvette Cedex, France Matthieu.Martel@cea.fr Abstract

More information

Advanced Programming Methods. Introduction in program analysis

Advanced Programming Methods. Introduction in program analysis Advanced Programming Methods Introduction in program analysis What is Program Analysis? Very broad topic, but generally speaking, automated analysis of program behavior Program analysis is about developing

More information

Hierarchical Shape Abstraction of Dynamic Structures in Static Blocks

Hierarchical Shape Abstraction of Dynamic Structures in Static Blocks Hierarchical Shape Abstraction of Dynamic Structures in Static Blocks Pascal Sotin and Xavier Rival INRIA 4 novembre 2013 P. Sotin, X. Rival (INRIA) Hierarchical Shape Abstraction 4 novembre 2013 1 / 29

More information

Iterative Program Analysis Abstract Interpretation

Iterative Program Analysis Abstract Interpretation Iterative Program Analysis Abstract Interpretation Summary by Ben Riva & Ofri Ziv Soundness Theorem Theorem: If a computation fixed-point is sound, then its least-fixed-point is sound. More precisely,

More information

AstréeA From Research To Industry

AstréeA From Research To Industry AstréeA From Research To Industry Dr.-Ing. Stephan Wilhelm, AbsInt GmbH Workshop on Static Analysis of Concurrent Software Edinburgh, 2016 2 AbsInt Angewandte Informatik GmbH Provides advanced development

More information

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS The Apron Library Bertrand Jeannet and Antoine Miné INRIA, CNRS/ENS CAV 09 conference 02/07/2009 Context : Static Analysis What is it about? Discover properties of a program statically and automatically.

More information

Introduction to Shape and Pointer Analysis

Introduction to Shape and Pointer Analysis Introduction to Shape and Pointer Analsis CS 502 Lecture 11 10/30/08 Some slides adapted from Nielson, Nielson, Hankin Principles of Program Analsis Analsis of the Heap Thus far, we have focussed on control

More information

Formal proofs of code generation and verification tools

Formal proofs of code generation and verification tools Formal proofs of code generation and verification tools Xavier Leroy To cite this version: Xavier Leroy. Formal proofs of code generation and verification tools. Dimitra Giannakopoulou and Gwen Salaün.

More information

Why does ASTRÉE scale up?

Why does ASTRÉE scale up? Form Methods Syst Des (2009) 35: 229 264 DOI 10.1007/s10703-009-0089-6 Why does ASTRÉE scale up? Patrick Cousot Radhia Cousot Jérôme Feret Laurent Mauborgne Antoine Miné Xavier Rival Published online:

More information

Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security

Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2014 Outline Overview Syntactic Analysis Abstract

More information

Calculational Design of Semantics and Static Analyzers by Abstract Interpretation

Calculational Design of Semantics and Static Analyzers by Abstract Interpretation Calculational Design of Semantics and Static Analyzers by Abstract Interpretation Patrick Cousot École Normale Supérieure DMI, 45, rue d Ulm 75230 Paris cedex 05 France cousot@dmi.ens.fr http://www.dmi.ens.fr/

More information

ABSTRACT INTERPRETATION

ABSTRACT INTERPRETATION Master of Science in Engineering ABSTRACT INTERPRETATION Pascal Roman Artho, partho@hsr.ch Seminar Program Analysis and Transformation Rapperswil, January 7, 2015 Agenda Informal Example What is the idea

More information

Sendmail crackaddr - Static Analysis strikes back

Sendmail crackaddr - Static Analysis strikes back Sendmail crackaddr - Static Analysis strikes back Bogdan Mihaila Technical University of Munich, Germany December 6, 2014 Name Lastname < name@mail.org > ()()()()()()()()()... ()()() 1 / 25 Abstract Interpretation

More information

Verasco: a Formally Verified C Static Analyzer

Verasco: a Formally Verified C Static Analyzer Verasco: a Formally Verified C Static Analyzer Jacques-Henri Jourdan Joint work with: Vincent Laporte, Sandrine Blazy, Xavier Leroy, David Pichardie,... June 13, 2017, Montpellier GdR GPL thesis prize

More information

Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software

Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software Bruno Blanchet 1, Patrick Cousot 1, Radhia Cousot 2, Jérôme Feret 1, Laurent Mauborgne

More information

the assembly level, since part of the structure of the program is lost at compile time the control structure is rather terse (branching to program poi

the assembly level, since part of the structure of the program is lost at compile time the control structure is rather terse (branching to program poi Abstract Interpretation-Based Certication of Assembly Code Xavier Rival Ecole Normale Superieure 45, rue d'ulm, 75230, Paris cedex 5, France rival@di.ens.fr Abstract. We present a method for analyzing

More information

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Static Analysis. Emina Torlak

CSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Static Analysis. Emina Torlak CSE 403: Software Engineering, Fall 2016 courses.cs.washington.edu/courses/cse403/16au/ Static Analysis Emina Torlak emina@cs.washington.edu Outline What is static analysis? How does it work? Free and

More information

Guided Static Analysis

Guided Static Analysis Guided Static Analsis Denis Gopan and Thomas Reps,2 Universit of Wisconsin 2 GrammaTech, Inc. {gopan,reps}@cs.wisc.edu Abstract. In static analsis, the semantics of the program is epressed as a set of

More information

Simplifying Loop Invariant Generation Using Splitter Predicates. Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University

Simplifying Loop Invariant Generation Using Splitter Predicates. Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University Simplifying Loop Invariant Generation Using Splitter Predicates Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University Loops and Loop Invariants Loop Head x = 0; while( x

More information

Static Program Analysis Part 1 the TIP language

Static Program Analysis Part 1 the TIP language Static Program Analysis Part 1 the TIP language http://cs.au.dk/~amoeller/spa/ Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Questions about programs Does the program terminate

More information

A Static Analyzer for Large Safety-Critical Software

A Static Analyzer for Large Safety-Critical Software A Static Analyzer for Large Safety-Critical Software (Extended Abstract) Bruno Blanchet Patrick Cousot Radhia Cousot Jérôme Feret Laurent Mauborgne Antoine Miné David Monniaux Xavier Rival ABSTRACT We

More information

Algebraic Program Analysis

Algebraic Program Analysis Introduction to Algebraic Program Analysis Zachary Kincaid 1 Thomas Reps 2,3 1 Princeton University 2 University of Wisconsin-Madison 3 GrammaTech, Inc. January 8, 2018 1 Program analysis Design algorithms

More information

Static Analysis of Embedded Systems

Static Analysis of Embedded Systems Static Analysis of Embedded Systems Xavier RIVAL rival@di.ens.fr Outline Case study Certification of embedded softwares Demo Static Analysisof Embedded Systems p.2/12 Ariane 5 Flight 501 Ariane 5: sattelite

More information

A Scalable Segmented Decision Tree Abstract Domain

A Scalable Segmented Decision Tree Abstract Domain A Scalable Segmented Decision Tree Abstract Domain Patrick Cousot 2,3, Radhia Cousot 3,1, and Laurent Mauborgne 3,4 1 Centre National de la Recherche Scientifique 2 Courant Institute of Mathematical Sciences,

More information

Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C

Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C David Bühler CEA LIST, Software Safety Lab Frama-C & SPARK Day 2017 May 30th, 2017 David

More information

Program Analysis and Verification

Program Analysis and Verification Program Analysis and Verification 0368-4479 Noam Rinetzky Lecture 12: Interprocedural Analysis + Numerical Analysis Slides credit: Roman Manevich, Mooly Sagiv, Eran Yahav 1 Procedural program void main()

More information

Static Program Analysis

Static Program Analysis Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-1617/spa/ Schedule of Lectures Jan 17/19: Interprocedural DFA

More information

INFORMATION CODING AND NEURAL COMPUTING

INFORMATION CODING AND NEURAL COMPUTING INFORATION CODING AND NEURAL COPUTING J. Pedro Neto 1, Hava T. Siegelmann 2, and J. Féli Costa 1 jpn@di.fc.ul.pt, iehava@ie.technion.ac.il, and fgc@di.fc.ul.pt 1 Faculdade de Ciências da Universidade de

More information

Program Verification. Aarti Gupta

Program Verification. Aarti Gupta Program Verification Aarti Gupta 1 Agenda Famous bugs Common bugs Testing (from lecture 6) Reasoning about programs Techniques for program verification 2 Famous Bugs The first bug: A moth in a relay (1945)

More information

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Antoine Miné To cite this version: Antoine Miné. Relational Abstract Domains for the Detection of Floating-Point Run-Time

More information

Automatic Software Verification

Automatic Software Verification Automatic Software Verification Instructor: Mooly Sagiv TA: Oded Padon Slides from Eran Yahav and the Noun Project, Wikipedia Course Requirements Summarize one lecture 10% one lecture notes 45% homework

More information

Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships

Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships Liqian Chen 1,2 Antoine Miné 3,2 Ji Wang 1 Patrick Cousot 2,4 1 National Lab. for Parallel and Distributed Processing, Changsha,

More information

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Dataflow Lecture: SDF, Kahn Process Networks Stavros Tripakis University of California, Berkeley Stavros Tripakis: EECS

More information

Areas related to SW verif. Trends in Software Validation. Your Expertise. Research Trends High level. Research Trends - Ex 2. Research Trends Ex 1

Areas related to SW verif. Trends in Software Validation. Your Expertise. Research Trends High level. Research Trends - Ex 2. Research Trends Ex 1 Areas related to SW verif. Trends in Software Validation Abhik Roychoudhury CS 6214 Formal Methods Model based techniques Proof construction techniques Program Analysis Static Analysis Abstract Interpretation

More information

Thursday, December 23, The attack model: Static Program Analysis

Thursday, December 23, The attack model: Static Program Analysis The attack model: Static Program Analysis How making SPA? DFA - Data Flow Analysis CFA - Control Flow Analysis Proving invariance: theorem proving Checking models: model checking Giaco & Ranzato DFA:

More information

Lecture 16 Notes AVL Trees

Lecture 16 Notes AVL Trees Lecture 16 Notes AVL Trees 15-122: Principles of Imperative Computation (Fall 2015) Frank Pfenning 1 Introduction Binar search trees are an ecellent data structure to implement associative arras, maps,

More information

Splitting the Control Flow with Boolean Flags

Splitting the Control Flow with Boolean Flags École Normale Supérieure, Paris, France A.Simon@ens.fr July 2008 Good States are Usually Convex Declare C variable int array[12];. 0 1 2 3 4 5 6 7 8 9 10 11 i Access array[i] within bound if 0 i and i

More information

g(x) h(x) f (x) = Examples sin x +1 tan x!

g(x) h(x) f (x) = Examples sin x +1 tan x! Lecture 4-5A: An Introduction to Rational Functions A Rational Function f () is epressed as a fraction with a functiong() in the numerator and a function h() in the denominator. f () = g() h() Eamples

More information

Simple example. Analysis of programs with pointers. Program model. Points-to relation

Simple example. Analysis of programs with pointers. Program model. Points-to relation Simple eample Analsis of programs with pointers := 5 ptr := & *ptr := 9 := program S1 S2 S3 S4 What are the defs and uses of in this program? Problem: just looking at variable names will not give ou the

More information

CS 157: Assignment 6

CS 157: Assignment 6 CS 7: Assignment Douglas R. Lanman 8 Ma Problem : Evaluating Conve Polgons This write-up presents several simple algorithms for determining whether a given set of twodimensional points defines a conve

More information

Abstract Interpretation Based Formal Methods and Future Challenges (Electronic Version)

Abstract Interpretation Based Formal Methods and Future Challenges (Electronic Version) Abstract Interpretation Based Formal Methods and Future Challenges (Electronic Version) Patrick Cousot École normale supérieure, Département d informatique, 45 rue d Ulm, 75230 Paris cede 05, France Patrick.Cousot@ens.fr

More information

Abstract Interpretation of Floating-Point Computations

Abstract Interpretation of Floating-Point Computations Abstract Interpretation of Floating-Point Computations Sylvie Putot Laboratory for ModElling and Analysis of Systems in Interaction, CEA-LIST/X/CNRS Session: Static Analysis for Safety and Performance

More information

Certified Memory Usage Analysis

Certified Memory Usage Analysis Certified Memory Usage Analysis David Cachera, Thomas Jensen, David Pichardie, Gerardo Schneider IRISA, ENS Cachan Bretagne, France Context Embedded devices (smart cards, mobile phones) memory is limited

More information

An Introduction to Heap Analysis. Pietro Ferrara. Chair of Programming Methodology ETH Zurich, Switzerland

An Introduction to Heap Analysis. Pietro Ferrara. Chair of Programming Methodology ETH Zurich, Switzerland An Introduction to Heap Analysis Pietro Ferrara Chair of Programming Methodology ETH Zurich, Switzerland Analisi e Verifica di Programmi Universita Ca Foscari, Venice, Italy Outline 1. Recall of numerical

More information

Static Analysis methods and tools An industrial study. Pär Emanuelsson Ericsson AB and LiU Prof Ulf Nilsson LiU

Static Analysis methods and tools An industrial study. Pär Emanuelsson Ericsson AB and LiU Prof Ulf Nilsson LiU Static Analysis methods and tools An industrial study Pär Emanuelsson Ericsson AB and LiU Prof Ulf Nilsson LiU Outline Why static analysis What is it Underlying technology Some tools (Coverity, KlocWork,

More information

Program Static Analysis. Overview

Program Static Analysis. Overview Program Static Analysis Overview Program static analysis Abstract interpretation Data flow analysis Intra-procedural Inter-procedural 2 1 What is static analysis? The analysis to understand computer software

More information

Seminar in Software Engineering Presented by Dima Pavlov, November 2010

Seminar in Software Engineering Presented by Dima Pavlov, November 2010 Seminar in Software Engineering-236800 Presented by Dima Pavlov, November 2010 1. Introduction 2. Overview CBMC and SAT 3. CBMC Loop Unwinding 4. Running CBMC 5. Lets Compare 6. How does it work? 7. Conclusions

More information

Efficient Verification of Non-Functional Safety Properties by Abstract Interpretation: Timing, Stack Consumption, and Absence of Runtime Errors

Efficient Verification of Non-Functional Safety Properties by Abstract Interpretation: Timing, Stack Consumption, and Absence of Runtime Errors Efficient Verification of Non-Functional Safety Properties by Abstract Interpretation: Timing, Stack Consumption, and Absence of Runtime Errors Daniel Kästner, Christian Ferdinand AbsInt GmbH, Science

More information

Statistically Analyzing the Impact of Automated ETL Testing on Data Quality

Statistically Analyzing the Impact of Automated ETL Testing on Data Quality Chapter 5 Statisticall Analzing the Impact of Automated ETL Testing on Data Qualit 5.0 INTRODUCTION In the previous chapter some prime components of hand coded ETL prototpe were reinforced with automated

More information

TVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS*

TVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS* TVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS* Tal Lev-Ami, Roman Manevich, and Mooly Sagiv Tel Aviv University {tla@trivnet.com, {rumster,msagiv}@post.tau.ac.il} Abstract TVLA (Three-Valued-Logic

More information

CS 6110 S14 Lecture 38 Abstract Interpretation 30 April 2014

CS 6110 S14 Lecture 38 Abstract Interpretation 30 April 2014 CS 6110 S14 Lecture 38 Abstract Interpretation 30 April 2014 1 Introduction to Abstract Interpretation At this point in the course, we have looked at several aspects of programming languages: operational

More information

A Formally-Verified C static analyzer

A Formally-Verified C static analyzer A Formally-Verified C static analyzer David Pichardie joint work with J.-H. Jourdan, V. Laporte, S.Blazy, X. Leroy, presented at POPL 15!! How do you trust your software? bug finders sound verifiers verified

More information

Abstract Interpretation of Floating-Point. Computations. Interaction, CEA-LIST/X/CNRS. February 20, Presentation at the University of Verona

Abstract Interpretation of Floating-Point. Computations. Interaction, CEA-LIST/X/CNRS. February 20, Presentation at the University of Verona 1 Laboratory for ModElling and Analysis of Systems in Interaction, Laboratory for ModElling and Analysis of Systems in Interaction, Presentation at the University of Verona February 20, 2007 2 Outline

More information

Lecture Notes on AVL Trees

Lecture Notes on AVL Trees Lecture Notes on AVL Trees 15-122: Principles of Imperative Computation Frank Pfenning Lecture 19 March 28, 2013 1 Introduction Binar search trees are an ecellent data structure to implement associative

More information

2.3 Polynomial Functions of Higher Degree with Modeling

2.3 Polynomial Functions of Higher Degree with Modeling SECTION 2.3 Polnomial Functions of Higher Degree with Modeling 185 2.3 Polnomial Functions of Higher Degree with Modeling What ou ll learn about Graphs of Polnomial Functions End Behavior of Polnomial

More information

Interprocedurally Analysing Linear Inequality Relations

Interprocedurally Analysing Linear Inequality Relations Interprocedurally Analysing Linear Inequality Relations Helmut Seidl, Andrea Flexeder and Michael Petter Technische Universität München, Boltzmannstrasse 3, 85748 Garching, Germany, {seidl, flexeder, petter}@cs.tum.edu,

More information

An Approach to Behavioral Subtyping Based on Static Analysis

An Approach to Behavioral Subtyping Based on Static Analysis TACoS 04 Preliminary Version An Approach to Behavioral Subtyping Based on Static Analysis Francesco Logozzo 1 STIX - École Polytechnique F-91128 Palaiseau, France Abstract In mainstream object oriented

More information

Roberto s Notes on Differential Calculus Chapter 8: Graphical analysis Section 5. Graph sketching

Roberto s Notes on Differential Calculus Chapter 8: Graphical analysis Section 5. Graph sketching Roberto s Notes on Differential Calculus Chapter 8: Graphical analsis Section 5 Graph sketching What ou need to know alread: How to compute and interpret limits How to perform first and second derivative

More information

Contents. Program 1. Java s Integral Types in PVS (p.4 of 37)

Contents. Program 1. Java s Integral Types in PVS (p.4 of 37) Java s Integral Types in PVS Bart Jacobs bart@cs.kun.nl www.cs.kun.nl/ bart www.verificard.org. Dep. Computer Science, Univ. Nijmegen, NL Contents I. Example programs II. Integral types in Java (implementations)

More information

Static Program Analysis

Static Program Analysis Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-18/spa/ Preliminaries Outline of Lecture 1 Preliminaries Introduction

More information

4.2 Properties of Rational Functions. 188 CHAPTER 4 Polynomial and Rational Functions. Are You Prepared? Answers

4.2 Properties of Rational Functions. 188 CHAPTER 4 Polynomial and Rational Functions. Are You Prepared? Answers 88 CHAPTER 4 Polnomial and Rational Functions 5. Obtain a graph of the function for the values of a, b, and c in the following table. Conjecture a relation between the degree of a polnomial and the number

More information

STATIC ANALYSIS OF RUN-TIME ERRORS IN EMBEDDED REAL-TIME PARALLEL C PROGRAMS ANTOINE MINÉ

STATIC ANALYSIS OF RUN-TIME ERRORS IN EMBEDDED REAL-TIME PARALLEL C PROGRAMS ANTOINE MINÉ Logical Methods in Computer Science Vol. 8 (1:26) 2012, pp. 1 63 www.lmcs-online.org Submitted Sep. 7, 2011 Published Mar. 23, 2012 STATIC ANALYSIS OF RUN-TIME ERRORS IN EMBEDDED REAL-TIME PARALLEL C PROGRAMS

More information

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Program verification. Generalities about software Verification Model Checking. September 20, 2016 Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,

More information

Static program checking and verification

Static program checking and verification Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness

More information

Static Analysis. Systems and Internet Infrastructure Security

Static Analysis. Systems and Internet Infrastructure Security Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Static Analysis Trent

More information

Static analysis of concurrent avionics software

Static analysis of concurrent avionics software Static analysis of concurrent avionics software with AstréeA Workshop on Static Analysis of Concurrent Software David Delmas Airbus 11 September 2016 Agenda 1 Industrial context Avionics software Formal

More information

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI).

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI). Sérgio Campos scampos@dcc.ufmg.br Why? Imagine the implementation of a complex hardware or software system: A 100K gate ASIC perhaps 100 concurrent modules; A flight control system dozens of concurrent

More information

4/24/18. Overview. Program Static Analysis. Has anyone done static analysis? What is static analysis? Why static analysis?

4/24/18. Overview. Program Static Analysis. Has anyone done static analysis? What is static analysis? Why static analysis? Overview Program Static Analysis Program static analysis Abstract interpretation Static analysis techniques 2 What is static analysis? The analysis to understand computer software without executing programs

More information

Formal verification of a static analyzer based on abstract interpretation

Formal verification of a static analyzer based on abstract interpretation Formal verification of a static analyzer based on abstract interpretation Sandrine Blazy joint work with J.-H. Jourdan, V. Laporte, A. Maroneze, X. Leroy, D. Pichardie IFIP WG 1.9/2.15, 2014-07-14 1 Background:

More information

Embedded Software Verification Challenges and Solutions. Static Program Analysis

Embedded Software Verification Challenges and Solutions. Static Program Analysis Embedded Software Verification Challenges and Solutions Static Program Analysis Chao Wang chaowang@nec-labs.com NEC Labs America Princeton, NJ ICCAD Tutorial November 11, 2008 www.nec-labs.com 1 Outline

More information

Investigation Free Fall

Investigation Free Fall Investigation Free Fall Name Period Date You will need: a motion sensor, a small pillow or other soft object What function models the height of an object falling due to the force of gravit? Use a motion

More information

Flight Systems are Cyber-Physical Systems

Flight Systems are Cyber-Physical Systems Flight Systems are Cyber-Physical Systems Dr. Christopher Landauer Software Systems Analysis Department The Aerospace Corporation Computer Science Division / Software Engineering Subdivision 08 November

More information

Simple Data Types in C. Alan L. Cox

Simple Data Types in C. Alan L. Cox Simple Data Types in C Alan L. Cox alc@rice.edu Objectives Be able to explain to others what a data type is Be able to use basic data types in C programs Be able to see the inaccuracies and limitations

More information

Unit I - Chapter 3 Polynomial Functions 3.1 Characteristics of Polynomial Functions

Unit I - Chapter 3 Polynomial Functions 3.1 Characteristics of Polynomial Functions Math 3200 Unit I Ch 3 - Polnomial Functions 1 Unit I - Chapter 3 Polnomial Functions 3.1 Characteristics of Polnomial Functions Goal: To Understand some Basic Features of Polnomial functions: Continuous

More information

Timing Analysis of Parallel Software Using Abstract Execution

Timing Analysis of Parallel Software Using Abstract Execution Timing Analysis of Parallel Software Using Abstract Execution Björn Lisper School of Innovation, Design, and Engineering Mälardalen University bjorn.lisper@mdh.se 2014-09-10 EACO Workshop 2014 Motivation

More information

Operational Semantics. One-Slide Summary. Lecture Outline

Operational Semantics. One-Slide Summary. Lecture Outline Operational Semantics #1 One-Slide Summary Operational semantics are a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:

More information

Abstract debugging of higher-order imperative languages

Abstract debugging of higher-order imperative languages Abstract debugging of higher-order imperative languages François Bourdoncle DIGITAL Paris Research Laboratory Centre de Mathématiques Appliquées 85, avenue Victor Hugo Ecole des Mines de Paris 92500 Rueil-Malmaison

More information