Title: Proving conditional termination
1 Proving conditional termination Byron Cook,
Sumit Gulwani, Tal Lev-Ami, Andrey Rybalchenko
Mooly Sagiv
TexPoint fonts used in EMF. Read the TexPoint
manual before you delete this box. A
2Motivation
- Automatic termination/liveness proving is now a
reality - Modern tools support
- Concurrency,
- Pointers and heap,
- Recursion,
- Liveness properties (Omega-regular),
- Counterexample-generation.
- Tools
- Terminator (now being productized for the Windows
SDV tool) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna Sipma, supports
phase-change) - T2 (in development for my book and CMU course)
3Motivation
- Automatic termination/liveness proving is now a
reality - Modern tools support
- Concurrency,
- Pointers and heap,
- Recursion,
- Liveness properties (Omega-regular),
- Counterexample-generation.
- Tools
- Terminator (now being productized for the Windows
SDV tool) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna Sipma, supports
phase-change) - T2 (in development for my book and CMU course)
4Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
5Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
6Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
7- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
8- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
9Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
10Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
11Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
12Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
13Motivation
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
14Motivation
15Underapproximating weakest preconditions
16Underapproximating weakest preconditions
17Underapproximating weakest preconditions
18Underapproximating weakest preconditions
19Underapproximating weakest preconditions
20Underapproximating weakest preconditions
21Underapproximating weakest preconditions
22Outline
- Motivation
- Precondition synthesis
- Precondition synthesis for phase-change programs
- Examples
- Remarks
23PreSynth
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
24PreSynth
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
25PreSynth
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
26PreSynth
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
27PreSynth
28PreSynth
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
29PreSynth
- Automatic termination/liveness proving is now a
reality - Advanced termination/liveness tools now
supporting - Concurrency,
- Pointers,
- Heap,
- Recursion,
- Omega-regular properties,
- Counterexample-generation,
- etc
- Tools
- Terminator (currently being transferred into
Windows SDV product) - ARMC (Andreys publicly available version)
- Polyrank (from Bradley, Manna, Sipma)
- T2 (in development for my book and CMU course)
30PreSynth
31PreSynth
32PreSynth
33PreSynth
34PreSynth
35PreSynth
36PreSynth
37PreSynth
38PreSynth
39PreSynth
40PreSynth
41PreSynth
42PreSynth
43PreSynth
44PreSynth
45PreSynth
46PreSynth
47Outline
- Motivation
- Precondition synthesis
- Precondition synthesis for phase-change programs
- Examples
- Remarks
48Phase-change programs
49Phase-change programs
50Phase-change programs
51Phase-change programs
52Phase-change programs
53Phase-change programs
54Phase-change programs
55Phase-change programs
56Phase-change programs
57Phase-change programs
58Phase-change programs
59Phase-change programs
60Phase-change programs
61Phase-change programs
62Outline
- Motivation
- Precondition synthesis
- Precondition synthesis for phase-change programs
- Examples
- Remarks
63Examples
64Examples
65Examples
66Examples
67Examples
68Examples
69Examples
70Examples
71Outline
- Motivation
- Precondition synthesis
- Precondition synthesis for phase-change programs
- Examples
- Remarks
72Remarks
- Are we generating the weakest linear
precondition? - Future work (though, its probably no)
- Concurrent programs
- Environment synthesis is more important
- Working on this problem now based on PLDI07
- Applications
- Interprocedural termination proving, disproving
safety, library analysis, etc