Automatic verification of safety critical softwares
Xavier Rival
INRIA Paris Rocquencourt
Nov, 8th. 2012
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 1 / 20
Automatic verification of safety critical softwares Xavier Rival - - PowerPoint PPT Presentation
Automatic verification of safety critical softwares Xavier Rival INRIA Paris Rocquencourt Nov, 8th. 2012 Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 1 / 20 Why to verify embedded softwares ?
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 1 / 20
Why to verify embedded softwares ?
◮ disastrous, not theoretical
◮ mostly testing, need for better techniques
◮ sound, automatic ◮ successful verification of synchronous softwares
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 2 / 20
Why to verify embedded softwares ?
◮ at T0 + 30 s, an arithmetic overflow (float -> short int)
◮ the on-board computer misinterprets those as physical data ◮ loss of control of the trajectory
1
2
3
4
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 3 / 20
Why to verify embedded softwares ?
◮ imprecisions in fixed-point computation (0.1 not representable) ◮ 28 fatalities
◮ wrong use of units: no conversion between meters and yards ◮ crash on the surface of Mars
◮ unstability issues in control sofwares ◮ two crashes, due to “Pilot Induced Oscillations”
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 4 / 20
Verification in avionics
1
2
◮ documentation, traceability of software ◮ testing, from unit testing to iron bird
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 5 / 20
Verification in avionics
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 6 / 20
Verification in avionics
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 7 / 20
Static analysis fundamental principles
x y
bC bC bC bC bC bC bC bC bC
x y
bC bC bC bC bC bC bC bC bC
x y
bC bC bC bC bC bC bC bC bC
x y
bC bC bC bC bC bC bC bC bC
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 8 / 20
Static analysis fundamental principles
x y
bC bC bC bC bC bC bC bC
x y
bC bC bC bC
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 9 / 20
Static analysis fundamental principles
x y X0
x y X0 F(X0) X1 = X0▽F(X0)
x y X1 F(X1)
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 10 / 20
Application to control software
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 11 / 20
Application to control software
◮ two variables per inequality ◮ αij ∈ {−1, 0, 1} ◮ reasonable cost
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 12 / 20
Application to control software
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 13 / 20
Application to control software
◮ new abstract domains ◮ new analysis techniques ◮ . . .
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 14 / 20
Beyond control software
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 15 / 20
Beyond control software
b
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 16 / 20
Beyond control software
b
b
b
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 17 / 20
Beyond control software
b
b
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 18 / 20
Beyond control software
1 “high”
b b
7 “low” 8 “medium” msg_tab msg_list
&msg_list
α
&msg_tab
β
48bytes
β =
δ list
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 19 / 20
Perspectives
Xavier Rival (INRIA Paris Rocquencourt) Verify safety critical softwares Nov, 8th. 2012 20 / 20