33
©Charles Pecheur 2003 1 Verification of Intelligent Software Charles Pecheur (RIACS / NASA Ames)

Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 1

Verification of Intelligent Software

Charles Pecheur (RIACS / NASA Ames)

Page 2: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 2

Contents

Model Checking for Intelligent Software

• Why?Intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group

Model Checking for Intelligent Software

• Why?Intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group

Page 3: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 3

Contents

Model Checking for Intelligent Software

• Why?Intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group

Model Checking for Intelligent Software

• Why?Intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group

Page 4: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 4

Autonomous Systems

Deep space mission spacecrafts

=> add on-board intelligence

• From self-diagnosisto on-board science.

• Smaller mission control crews=> reduced cost

• Less reliance on control link=> OK for deep space

Deep space mission spacecrafts

=> add on-board intelligence

• From self-diagnosisto on-board science.

• Smaller mission control crews=> reduced cost

• Less reliance on control link=> OK for deep space

Page 5: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 5

Integrated VehicleHealth Maintenance

Automated analysis of vehicle data=> improved diagnosis and prognosis

• Smaller mission control crews=> reduced cost

• Improved health knowledge=> optimize maintenance costs,reduce risk

Automated analysis of vehicle data=> improved diagnosis and prognosis

• Smaller mission control crews=> reduced cost

• Improved health knowledge=> optimize maintenance costs,reduce risk

Page 6: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 6

Model-Based Autonomy

• Based on AI technology

• General reasoning engine +application-specific model

• Use model to respond tounanticipated situations

• Based on AI technology

• General reasoning engine +application-specific model

• Use model to respond tounanticipated situations

ReasoningEngine Model

commands status

Spacecraft

Autonomous controller

model of

Page 7: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 7

Example: Remote Agent• From Ames and JPL

• On Deep Space One in May 1999 (1st AI in space!)

• From Ames and JPL

• On Deep Space One in May 1999 (1st AI in space!)

Model Model

Page 8: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 8

MRMI

Comm

and

DiscretizedObservations

Mode updates Goals

ModelReconfig Command

current state

Plan Execution SystemHigh level operational plan

Livingstone

Courtesy Autonomous Systems Group, NASA Ames

LivingstoneModel-Based Diagnosis

Remote Agent's model-based fault recovery sub-systemRemote Agent's model-based fault recovery sub-system

Page 9: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 9

Controlled vs. Autonomous

Controller

“Valve 1 stuck” “Open valve 2”

Tester

“Here we are”“Go to Saturn” Tester

?

Controller

Planner MIRExec

Page 10: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 10

Testing intelligent software?• Programs are much more complex

• Many more scenarios

=> testing gives low coverage

• Concurrency!Due to scheduling,the same inputs (test) can givedifferent outputs (results)

=> test results are not reliable

• Programs are much more complex

• Many more scenarios

=> testing gives low coverage

• Concurrency!Due to scheduling,the same inputs (test) can givedifferent outputs (results)

=> test results are not reliable

A.read?0

A.write!1

B.read?1

B.write!2

B.read?0

B.write!1

A.write!1

0

0

01

1 1

12

A.read?x;A.write !x+1;

B.read?y;B.write !y+1;

0

Page 11: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 11

Contents

Model Checking for Intelligent Software

• Why?Intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group

Model Checking for Intelligent Software

• Why?Intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group

Page 12: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 12

Model CheckingCheck whether a system S satisfies a property Pby exhaustive exploration of all executions of S

• Controls scheduling => better coverage

• Can be done at early stage => less costly

• Widely used in hardware, coming in software

• Examples: Spin (Bell Labs), Murphi (Stanford)

Check whether a system S satisfies a property Pby exhaustive exploration of all executions of S

• Controls scheduling => better coverage

• Can be done at early stage => less costly

• Widely used in hardware, coming in software

• Examples: Spin (Bell Labs), Murphi (Stanford)

Page 13: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 13

Model ...

Controller

Planner MIRExec

ModelingAbstraction

Verification

Page 14: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 14

Model Checking

Controller

Planner MIRExec

“Valve is closed whenTank is empty”

AG (tank=empty=> valve=closed)

ModelingAbstraction

Verification

Page 15: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 15

State Space Explosion

K processes with N local states ≤ NK global statesK processes with N local states ≤ NK global states

Controller

Planner MIRExec

“Valve is closed whenTank is empty”

Model CheckerRun

Yes/No because ...

Controller

Planner MIRExec

“Valve is closed whenTank is empty”

Model CheckerRun

No morememory

Theory:

Practice:

Page 16: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 16

State Space Explosion(by the numbers)

• k independent threads of n steps each =– (n+1)k states

– k(n+1)(n)k-1 transitions

– (kn)! / (n!)k execution paths

• k independent threads of n steps each =– (n+1)k states

– k(n+1)(n)k-1 transitions

– (kn)! / (n!)k execution paths

4.8335E+31732050161051105

4.7054E+215324014641104

5.551E+1236301331103

184756220121102

11011101

90542723

(k*n)! / (n!)^kk*n*(n+1)^(k-1)(n+1)^knk

pathstransstatesstepsthreads

Page 17: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 17

Modeling

This is the tough job!• Translation: to model checker's syntax

e.g. C —> Promela (Spin)

• Abstraction: ignore irrelevant partse.g. contents of messages

• Simplification: downsize relevant partse.g. number of processes, size of buffers

This is the tough job!• Translation: to model checker's syntax

e.g. C —> Promela (Spin)

• Abstraction: ignore irrelevant partse.g. contents of messages

• Simplification: downsize relevant partse.g. number of processes, size of buffers

Controller

Planner MIRExec

“Valve is closed whenTank is empty”

Model CheckerRun

Yes/No because ...TranslationAbstraction

Simplification

Page 18: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 18

Temporal Logic

• Propositional logic + quantifiers over executions

• Example: "every request gets a response"AG (Req => AF Resp)

Always Globally, if Req then Always Finally Resp

• Branching (CTL) vs. linear (LTL)– different verification techniques

– neither is more general than the other

• Model checking without TL– Assertions, invariants

– Compare systems, observers

• Propositional logic + quantifiers over executions

• Example: "every request gets a response"AG (Req => AF Resp)

Always Globally, if Req then Always Finally Resp

• Branching (CTL) vs. linear (LTL)– different verification techniques

– neither is more general than the other

• Model checking without TL– Assertions, invariants

– Compare systems, observers

Page 19: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 19

Symbolic Model Checking• Manipulates sets of states,

Represented as boolean formulas,Encoded as binary decision diagrams.

• Can handle large state spaces (1050 and up).

• BDD computations:– Efficient algorithms for needed operations.

– BDD size is still exponential in worst case.

– Highly sensitive (e.g. to variable ordering) and hardto optimize.

• Example: SMV/NuSMV (Carnegie Mellon/IRST)

• Manipulates sets of states,Represented as boolean formulas,Encoded as binary decision diagrams.

• Can handle large state spaces (1050 and up).

• BDD computations:– Efficient algorithms for needed operations.

– BDD size is still exponential in worst case.

– Highly sensitive (e.g. to variable ordering) and hardto optimize.

• Example: SMV/NuSMV (Carnegie Mellon/IRST)

x

y

0 1 2 ...01

...

x=2 ⁄ y=1

1 0

x=2

y=1

Page 20: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 20

Bounded Model Checking

• Symbolic model checking variant.

• Uses SAT (propositional satisfiability) rather than BDDs.– Idea: unroll transition relation a finite number of times into a (big)

constraint network.

• Bounded-depth only, not complete.

• Polynomial space!

• Exponential time in the worst-case butmodern SAT solvers are very efficient in most practical cases.

• Example: NuSMV (using the Chaff solver from Princeton)

• Symbolic model checking variant.

• Uses SAT (propositional satisfiability) rather than BDDs.– Idea: unroll transition relation a finite number of times into a (big)

constraint network.

• Bounded-depth only, not complete.

• Polynomial space!

• Exponential time in the worst-case butmodern SAT solvers are very efficient in most practical cases.

• Example: NuSMV (using the Chaff solver from Princeton)

Page 21: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 21

Real-Time and Hybrid

• "Classic" model checking: finite state, un-timed

• Real-time model checking: add clockse.g. Khronos (Verimag), Uppaal (Uppsala/Aalborg)

• Hybrid model checking: add derivativese.g. Hytech (Berkeley)

More complex problems & less mature tools

• "Classic" model checking: finite state, un-timed

• Real-time model checking: add clockse.g. Khronos (Verimag), Uppaal (Uppsala/Aalborg)

• Hybrid model checking: add derivativese.g. Hytech (Berkeley)

More complex problems & less mature tools

cl<5 cl≥4cl:=0

dx/dt=2 x≥4x:=0

Page 22: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 22

Contents

Model Checking for intelligent software

• Why?intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group at NASA Ames

Model Checking for intelligent software

• Why?intelligent software, how to verify it?

• What?A bird's-eye view of model checking

• How?Experiences in the ASE Group at NASA Ames

Page 23: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 23

Verification ofRemote Agent Executive

• Smart executive system with AI features (Lisp)

• Modeled (1.5 month) andModel-checked with Spin (less than a week)

• 5 concurrency bugs found, that would have beenhard to find through traditional testing

• Smart executive system with AI features (Lisp)

• Modeled (1.5 month) andModel-checked with Spin (less than a week)

• 5 concurrency bugs found, that would have beenhard to find through traditional testing

(Lowry, Havelund and Penix)

Page 24: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 24

Hunting the RAX Bug

• 18 May 1999: Remote Agent Experiment suspendedfollowing a deadlock in RA EXEC=> Q: could V&V have found it?

• Over-the-week-end "clean room" experiment• => A: V&V "found" it... two years ago!

Similar to one of the 5 bugs found before (elsewhere)– Highly unlikely to occur– Never occurred during thorough testing– Occurred in flight!

• Morale: Testing not enough for concurrency bugs!

• 18 May 1999: Remote Agent Experiment suspendedfollowing a deadlock in RA EXEC=> Q: could V&V have found it?

• Over-the-week-end "clean room" experiment• => A: V&V "found" it... two years ago!

Similar to one of the 5 bugs found before (elsewhere)– Highly unlikely to occur– Never occurred during thorough testing– Occurred in flight!

• Morale: Testing not enough for concurrency bugs!

(Lowry, White, Havelund, Pecheur, ...)

Page 25: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 25

Verification ofModel-Based Autonomy

Reasoning Engine• Relatively small, generic

algorithm => use prover

• Requires V&V expert level butonce and for all

• At application level, assumecorrectness(cf. compiler)

Reasoning Engine• Relatively small, generic

algorithm => use prover

• Requires V&V expert level butonce and for all

• At application level, assumecorrectness(cf. compiler)

ReasoningEngine Model

Autonomous Controller

Reasoning Engine + Model ???

Model• Complex assembly of

interacting components=> model checking

• Avoid V&V experts=> automated translationNot too hard because modelsare abstract

Model• Complex assembly of

interacting components=> model checking

• Avoid V&V experts=> automated translationNot too hard because modelsare abstract

Page 26: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 26

Verification ofPlanner/Scheduler Models

• Model-based planner from Remote AgentModels: constraint style, real-time

• Small sample model translated by handSubset of the full modeling language, untimed

• Compare 3 model checkers: Spin, Murphi, SMV=> SMV much easier and faster (≈0.05s vs. ≈30s)

• Continuation (Khatib): handle timed properties usingreal-time model checker (Uppaal)

• Model-based planner from Remote AgentModels: constraint style, real-time

• Small sample model translated by handSubset of the full modeling language, untimed

• Compare 3 model checkers: Spin, Murphi, SMV=> SMV much easier and faster (≈0.05s vs. ≈30s)

• Continuation (Khatib): handle timed properties usingreal-time model checker (Uppaal)

(Penix, Pecheur and Havelund)

Page 27: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 27

Verification ofLivingstone Models

LivingstoneModel

SMVModel

LivingstoneRequirement

SMVRequirement

LivingstoneTrace

SMVTrace

Livingstone

SMV

TRANSLATOR

Autonomy Verification

(Pecheur, Simmons)

Page 28: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 28

Simulation-Based VerificationLivingstone PathFinder (LPF)

• Real system => accuracy.• More control => more coverage.• For any discrete-event controller (not only model-based).

• Real system => accuracy.• More control => more coverage.• For any discrete-event controller (not only model-based).

SearchEngineSearch

Engine

• single step• backtrack• select choices• get/set state• ...

Engine Model

Autonomous Controller SearchEngine

SpacecraftSimulator

Driver ...TESTBED Exec Control API

(Pecheur, Lindsey)

Page 29: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 29

Model Checking JavaJava PathFinder (JPF)

• Java PathFinder 1: Translator to Promela (Spin)• Java PathFinder 2: Based on custom Java VM.

– Supports all Java bytecode.– Emphasis on efficient encoding of states (heap, GC).– Integrates static analysis for partial-order reduction, run-time

analysis, abstraction, symbolic data, ...– Applied to DEOS avionics OS, planetary rover exec, MD-11

autopilot simulator...

• Java PathFinder 1: Translator to Promela (Spin)• Java PathFinder 2: Based on custom Java VM.

– Supports all Java bytecode.– Emphasis on efficient encoding of states (heap, GC).– Integrates static analysis for partial-order reduction, run-time

analysis, abstraction, symbolic data, ...– Applied to DEOS avionics OS, planetary rover exec, MD-11

autopilot simulator...

(Havelund, Visser, ...)

Page 30: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 30

Compositional verification

• Assume-guarantee reasoning on separatecomponents of a system

=> prove properties of the wholefrom properties of the parts

• Automated extraction of assumptions

• Assume-guarantee reasoning on separatecomponents of a system

=> prove properties of the wholefrom properties of the parts

• Automated extraction of assumptions

(Giannakopoulou, Pasareanu)

Page 31: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 31

Runtime AnalysisJava Path Explorer (JPaX)

• An observer analyses an event stream from aninstrumented program to detect anomalies.

• Analyze temporal logic properties, hazardousconcurrency patterns (lock ordering, data races).

• On actual program runs => limited but highly scalable.

• An observer analyses an event stream from aninstrumented program to detect anomalies.

• Analyze temporal logic properties, hazardousconcurrency patterns (lock ordering, data races).

• On actual program runs => limited but highly scalable.

(Havelund, Rosu)

Page 32: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 32

Conclusions

Model checking:• Needed for automated/autonomous systems

testing is not enough

• General pros&cons apply:– exhaustive... if model is small enough

– automatic verification... but tough modeling

• Works nicely on autonomy models

• Solutions inbetween testing and model checking

• Not short of tough problems:– Real-time, hybrid, AI

– Learning/adaptive systems: after training/including training

Model checking:• Needed for automated/autonomous systems

testing is not enough

• General pros&cons apply:– exhaustive... if model is small enough

– automatic verification... but tough modeling

• Works nicely on autonomy models

• Solutions inbetween testing and model checking

• Not short of tough problems:– Real-time, hybrid, AI

– Learning/adaptive systems: after training/including training

Page 33: Verification of Intelligent Softwarepecheur/talks/VerifIntelligentSoft-Sep03.pdf · Intelligent software, how to verify it? •What? A bird's-eye view of model checking •How? Experiences

©Charles Pecheur 2003 33

Pointers

• Pecheur's home pagehttp://ase.arc.nasa.gov/pecheurhttp://ase.arc.nasa.gov/pecheur/publi.htmlhttp://ase.arc.nasa.gov/pecheur/talks.html

• JavaPathFinderhttp://ase.arc.nasa.gov/visser/jpf

• ASE group at NASA Ameshttp://ase.arc.nasa.gov

• Pecheur's home pagehttp://ase.arc.nasa.gov/pecheurhttp://ase.arc.nasa.gov/pecheur/publi.htmlhttp://ase.arc.nasa.gov/pecheur/talks.html

• JavaPathFinderhttp://ase.arc.nasa.gov/visser/jpf

• ASE group at NASA Ameshttp://ase.arc.nasa.gov