Download presentation
Presentation is loading. Please wait.
Published byJanice Crawford Modified over 8 years ago
1
1 MSR/Cambridge Formal Verification Overview Byron Cook bycook@microsoft.com Microsoft Research, Cambridge
2
2 Cambridge: Long standing tradition of areas of formal methods research MSR-Cambridge Strong background in programming languages research Recent strength in formal verification Queen Mary, University of London Separation logic is frequent subject of interest Much interaction between Queen Mary and Cambridge area researchers Great deal of joint research in recent years Continuum between academic and industrial research Frequent cross-organization exchange and discussion Cross-organization supervision MSR/Cambridge/London
3
3 Cambridge: long standing tradition of formal verification research MSR-Cambridge Strong background in programming languages research Recent strength in formal verification Queen Mary, University of London Separation logic is frequent subject of interest Much interaction between Queen Mary and Cambridge area researchers Continuum between academic and industrial research Frequent cross-organization exchange and discussion Cross-organization supervision MSR/Cambridge/London
4
4
5
5 Cambridge: long standing tradition of formal verification research MSR-Cambridge Strong background in programming languages research Recent strength in formal verification Queen Mary, University of London Separation logic is frequent subject of interest Much interaction between Queen Mary and Cambridge area researchers Continuum between academic and industrial research Frequent cross-organization exchange and discussion Cross-organization supervision MSR/Cambridge/London
6
6 Projects: Semi-automatic methods of proving correctness of (fine-grained) concurrent programs with data Automatic methods of proving correctness of (course-grained) concurrent programs Automatic methods of proving termination/liveness Shape analysis Security analysis ARM research MSR/Cambridge
7
7 Projects: Semi-automatic methods of proving correctness of (fine-grained) concurrent programs with data Automatic methods of proving correctness of (course-grained) concurrent programs Automatic methods of proving termination/liveness Shape analysis Security analysis ARM research MSR/Cambridge
8
8
9
9 Termination analysis research Byron Cook bycook@microsoft.com Microsoft Research, Cambridge
10
10 Introduction Reactive systems: Operating systems Medical systems Web servers & clients Email servers & clients etc...
11
11 Introduction Reactive systems: Operating systems Medical systems Web servers & clients Email servers & clients etc...
12
12 Introduction
13
13 Introduction
14
14 Introduction
15
15 Introduction
16
16 Introduction
17
17 Introduction
18
18
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
26
27
27 All known program proof/analysis tools support ONLY safety properties: Safety properties ensure that “nothing bad happens” Safety properties are guaranteed to have finite counterexamples: If the code calls KeLeaveCriticalRegion then it has (in some time in the past) it called KeEnterCriticalRegion Safety and liveness properties
28
28 Termination is an example of a liveness property: Liveness properties ensure that “something good will eventually happen” Will the parallel port’s PNP dispatch routine eventually return execution to its caller (i.e. Termination) If the code calls KeEnterCriticalRegion then it will eventually call KeLeaveCriticalRegion Liveness can always be converted into fair termination Safety and liveness properties
29
29 What we need: Tools that automatically prove termination of program fragments Support for large program fragments (>50,000 LOC) Precision & true counterexamples Arbitrarily nested loops, recursive functions, pointers, callbacks, etc Perhaps even tools that attempt to compute code complexity Prospects for automatic/scalable termination provers
30
30 What we need: Tools that automatically prove termination of program fragments Support for large program fragments (>50,000 LOC) Precision & true counterexamples Arbitrarily nested loops, recursive functions Perhaps even tools that attempt to compute code complexity Prospects for automatic/scalable termination provers
31
31 What we need: Tools that automatically prove termination of program fragments Support for large program fragments (>50,000 LOC) Precision & true counterexamples Arbitrarily nested loops, recursive functions Perhaps even tools that attempt to compute code complexity Prospects for automatic/scalable termination provers
32
32 What we need: Tools that automatically prove termination of program fragments Support for large program fragments (>50,000 LOC) Precision & true counterexamples Arbitrarily nested loops, recursive functions Perhaps even tools that attempt to compute code complexity Prospects for automatic/scalable termination provers
33
33 Prospects for automatic/scalable termination provers What we need: Usability/features: User supplied & maintained termination arguments Independently checkable witnesses Bit-vector support Concurrency Fair termination and liveness Mutating heaps Variance analysis
34
34 Prospects for automatic/scalable termination provers What we need: Usability/features: User supplied & maintained termination arguments Independently checkable witnesses Bit-vector support Concurrency Fair termination and liveness Mutating heaps Variance analysis
35
35 Status Papers written using preliminary prototypes Suffering from bit-rot Current plan: re-implement tools on top of SLAyer On the Static driver Verifier product roadmap. New research directions: Termination for fine-grained concurrency Runtime techniques using termination analysis
36
36 Prospects for automatic/scalable termination provers What we need: Usability/features: User supplied & maintained termination arguments Independently checkable witnesses Bit-vector support Concurrency Fair termination and liveness Mutating heaps Variance analysis
37
37 Variance analyses
38
38 Variance analyses
39
39 Variance analyses
40
40 Variance analyses
41
41 Variance analyses
42
42 Variance analyses
43
43 Variance analyses
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.