mechanical veri cation of a constructive proof for flp · introduction the flp theorem theorem (v...

47
Mechanical Verification of a Constructive Proof for FLP according to Hagen V¨ olzer Bisping Brodmann Jungnickel Rickmann Seidler St¨ uber Wilhelm-Weidner Peters Nestmann 24 August 2016 Models and Theory of Distributed Systems Bisping et al. FLP Constructive Proof 24 August 2016 1 / 15

Upload: others

Post on 04-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Mechanical Verification of aConstructive Proof for FLP

according to Hagen Volzer

Bisping Brodmann JungnickelRickmann Seidler Stuber Wilhelm-Weidner

Peters Nestmann

24 August 2016

Models and Theory of Distributed Systems

Bisping et al. FLP Constructive Proof 24 August 2016 1 / 15

Page 2: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Consensus – Motivation

Example

• distributed database

• each at different state

• decide whether to apply transaction

• exchange messages

• all have to arrive at same decision

Problem

processes may crash

Bisping et al. FLP Constructive Proof 24 August 2016 2 / 15

Page 3: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Consensus – Motivation

Example

• distributed database

• each at different state

• decide whether to apply transaction

• exchange messages

• all have to arrive at same decision

Problem

processes may crash

Bisping et al. FLP Constructive Proof 24 August 2016 2 / 15

Page 4: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Consensus – Motivation

Example

• distributed database

• each at different state

• decide whether to apply transaction

• exchange messages

• all have to arrive at same decision

Problem

processes may crash

Bisping et al. FLP Constructive Proof 24 August 2016 2 / 15

Page 5: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Fischer, Lynch, Paterson, 1985)

impossible to ensure consensus, if processes may crash

Theorem (Volzer, 2004)

more constructive proof of FLP

Our Work

• based on the more constructive paper of Volzer

• formalizing this proof in Isabelle/HOL

• . . . including “fairness”, which was just stated

Bisping et al. FLP Constructive Proof 24 August 2016 3 / 15

Page 6: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Fischer, Lynch, Paterson, 1985)

impossible to ensure consensus, if processes may crash

Theorem (Volzer, 2004)

more constructive proof of FLP

Our Work

• based on the more constructive paper of Volzer

• formalizing this proof in Isabelle/HOL

• . . . including “fairness”, which was just stated

Bisping et al. FLP Constructive Proof 24 August 2016 3 / 15

Page 7: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Fischer, Lynch, Paterson, 1985)

impossible to ensure consensus, if processes may crash

Theorem (Volzer, 2004)

more constructive proof of FLP

Our Work

• based on the more constructive paper of Volzer

• formalizing this proof in Isabelle/HOL

• . . . including “fairness”, which was just stated

Bisping et al. FLP Constructive Proof 24 August 2016 3 / 15

Page 8: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Consensus

Model

• finite set of sequential processes

• asynchronous communication channels between all pairs

p0

1

p1

0

p2

0

p3

1

Definition: Binary Consensus

Each process gets an input value from {0, 1} andmay irrevocably decide on a final output valuesuch that:

• Agreement: No two processes decidedifferently.

• Validity: The output value is the input valueof some process.

• Termination: Each process eventuallydecides or crashes.

Bisping et al. FLP Constructive Proof 24 August 2016 4 / 15

Page 9: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Consensus

Model

• finite set of sequential processes

• asynchronous communication channels between all pairs

p0

1

p1

0

p2

0

p3

1

Definition: Binary Consensus

Each process gets an input value from {0, 1} andmay irrevocably decide on a final output valuesuch that:

• Agreement: No two processes decidedifferently.

• Validity: The output value is the input valueof some process.

• Termination: Each process eventuallydecides or crashes.

Bisping et al. FLP Constructive Proof 24 August 2016 4 / 15

Page 10: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Consensus

Model

• finite set of sequential processes

• asynchronous communication channels between all pairs

p0

1

p1

0

p2

0

p3

1

Definition: Binary Consensus

Each process gets an input value from {0, 1} andmay irrevocably decide on a final output valuesuch that:

• Agreement: No two processes decidedifferently.

• Validity: The output value is the input valueof some process.

• Termination: Each process eventuallydecides or crashes.

Bisping et al. FLP Constructive Proof 24 August 2016 4 / 15

Page 11: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Fairness

• easy to obtain undesired behaviour

• “block” process by not processing its messages

Definition: Fair Execution

Each message is processed (as long as receiver not crashed).

• unfair execution practically irrelevant

Bisping et al. FLP Constructive Proof 24 August 2016 5 / 15

Page 12: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Fairness

• easy to obtain undesired behaviour

• “block” process by not processing its messages

Definition: Fair Execution

Each message is processed (as long as receiver not crashed).

• unfair execution practically irrelevant

Bisping et al. FLP Constructive Proof 24 August 2016 5 / 15

Page 13: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

Fairness

• easy to obtain undesired behaviour

• “block” process by not processing its messages

Definition: Fair Execution

Each message is processed (as long as receiver not crashed).

• unfair execution practically irrelevant

Bisping et al. FLP Constructive Proof 24 August 2016 5 / 15

Page 14: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Volzer, 2004)

There is no consensus algorithm such that

• a process may crash

• validity

• agreement

• every fair execution terminates

fundamental result in distributed computing

Bisping et al. FLP Constructive Proof 24 August 2016 6 / 15

Page 15: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Volzer, 2004)

There is no consensus algorithm such that

• a process may crash

• validity

• agreement

• every fair execution terminates

fundamental result in distributed computing

Bisping et al. FLP Constructive Proof 24 August 2016 6 / 15

Page 16: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Volzer, 2004)

Every consensus algorithm such that

• a process may crash

• validity

• agreement

has an infinite fair execution that does not decide.

constructive

Idea of proof

• find invariant that ensures non-decided

• find proper way to extend finite execution, keeping the invariant

• infinite fair run

Bisping et al. FLP Constructive Proof 24 August 2016 7 / 15

Page 17: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Volzer, 2004)

Every consensus algorithm such that

• a process may crash

• validity

• agreement

has an infinite fair execution that does not decide.

constructive

Idea of proof

• find invariant that ensures non-decided

• find proper way to extend finite execution, keeping the invariant

• infinite fair run

Bisping et al. FLP Constructive Proof 24 August 2016 7 / 15

Page 18: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Introduction

The FLP Theorem

Theorem (Volzer, 2004)

Every consensus algorithm such that

• a process may crash

• validity

• agreement

has an infinite fair execution that does not decide.

constructive

Idea of proof

• find invariant that ensures non-decided

• find proper way to extend finite execution, keeping the invariant

• infinite fair run

Bisping et al. FLP Constructive Proof 24 August 2016 7 / 15

Page 19: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Initial Lemma

Non-uniform

There are processes p, q such that

• crash of p allows decision 0

• crash of q allows decision 1

Initial Lemma

There is a non-uniform initial configuration.

Small error in Volzer’s proof

• used same symbol for different configurations

• required adaption in proof

Bisping et al. FLP Constructive Proof 24 August 2016 8 / 15

Page 20: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Initial Lemma

Non-uniform

There are processes p, q such that

• crash of p allows decision 0

• crash of q allows decision 1

Initial Lemma

There is a non-uniform initial configuration.

Small error in Volzer’s proof

• used same symbol for different configurations

• required adaption in proof

Bisping et al. FLP Constructive Proof 24 August 2016 8 / 15

Page 21: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Initial Lemma

Non-uniform

There are processes p, q such that

• crash of p allows decision 0

• crash of q allows decision 1

Initial Lemma

There is a non-uniform initial configuration.

Small error in Volzer’s proof

• used same symbol for different configurations

• required adaption in proof

Bisping et al. FLP Constructive Proof 24 August 2016 8 / 15

Page 22: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Extension Lemma

Extension Lemma - Volzer’s version

For each non-uniform configuration c and each process p there is a configurationc ′ such that c ⇒∗ c ′ and crash of p in c ′ allows for both decisions.

Extension Lemma – our version

• choose message (p,m) – receiver p, content m

• apply Extension Lemma for this p

• can safely consume message (keeping invariant)

all put into single extension

Bisping et al. FLP Constructive Proof 24 August 2016 9 / 15

Page 23: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Extension Lemma

Extension Lemma - Volzer’s version

For each non-uniform configuration c and each process p there is a configurationc ′ such that c ⇒∗ c ′ and crash of p in c ′ allows for both decisions.

Extension Lemma – our version

• choose message (p,m) – receiver p, content m

• apply Extension Lemma for this p

• can safely consume message (keeping invariant)

all put into single extension

Bisping et al. FLP Constructive Proof 24 August 2016 9 / 15

Page 24: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Extension – Picture

0

1

•c

Bisping et al. FLP Constructive Proof 24 August 2016 10 / 15

Page 25: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Extension – Picture

0

1

•c •p

Bisping et al. FLP Constructive Proof 24 August 2016 10 / 15

Page 26: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Extension – Picture

0

1

•c •p

c ′

Extension

Bisping et al. FLP Constructive Proof 24 August 2016 10 / 15

Page 27: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Extension – Picture

0

1

•c •c ′

pExtension

Bisping et al. FLP Constructive Proof 24 August 2016 10 / 15

Page 28: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Extension – Picture

0

1

•c •c ′

pExtension

Bisping et al. FLP Constructive Proof 24 August 2016 10 / 15

Page 29: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

FLP-Theorem

FLP-Theorem

Each possible consensus algorithm has a fair infinite execution that does notdecide.

Proof by Volzer

• start with non-uniform initial configuration

• take message with minimal enabling time

• extend execution using Extension Lemma,ending with non-uniform configuration

• repeat this process

Bisping et al. FLP Constructive Proof 24 August 2016 11 / 15

Page 30: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

FLP-Theorem

FLP-Theorem

Each possible consensus algorithm has a fair infinite execution that does notdecide.

Proof by Volzer

• start with non-uniform initial configuration

• take message with minimal enabling time

• extend execution using Extension Lemma,ending with non-uniform configuration

• repeat this process

Bisping et al. FLP Constructive Proof 24 August 2016 11 / 15

Page 31: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 32: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial •

•(p1,m1)

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 33: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial •

•(p1,m1)

Extension

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 34: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial •

•(p1,m1)

Extension

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 35: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial •

•(p1,m1)

Extension •

•(p2,m2)

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 36: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial •

•(p1,m1)

Extension •

•(p2,m2)

Extension

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 37: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial •

•(p1,m1)

Extension •

•(p2,m2)

Extension

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 38: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof Idea

0

1

•Initial •

•(p1,m1)

Extension •

•(p2,m2)

Extension

• . . .

Extension

Bisping et al. FLP Constructive Proof 24 August 2016 12 / 15

Page 39: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Infinite Executions

Problem

• fairness/correctness defined for single (infinite) execution

• construction yields sequence of finite executions

Infinite executions – our model

• as function from natural numbers to finite executions

definition infiniteExecution ::

"(nat ⇒ ((’p, ’v, ’s) configuration list))

⇒ (nat ⇒ ((’p, ’v) message list)) ⇒ bool"

where

"infiniteExecution fe ft ≡∀ n . execution trans sends start (fe n) (ft n) ∧

prefixList (fe n) (fe (n+1)) ∧prefixList (ft n) (ft (n+1))"

Bisping et al. FLP Constructive Proof 24 August 2016 13 / 15

Page 40: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Infinite Executions

Problem

• fairness/correctness defined for single (infinite) execution

• construction yields sequence of finite executions

Infinite executions – our model

• as function from natural numbers to finite executions

definition infiniteExecution ::

"(nat ⇒ ((’p, ’v, ’s) configuration list))

⇒ (nat ⇒ ((’p, ’v) message list)) ⇒ bool"

where

"infiniteExecution fe ft ≡∀ n . execution trans sends start (fe n) (ft n) ∧

prefixList (fe n) (fe (n+1)) ∧prefixList (ft n) (ft (n+1))"

Bisping et al. FLP Constructive Proof 24 August 2016 13 / 15

Page 41: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Infinite Executions

Problem

• fairness/correctness defined for single (infinite) execution

• construction yields sequence of finite executions

Infinite executions – our model

• as function from natural numbers to finite executions

definition infiniteExecution ::

"(nat ⇒ ((’p, ’v, ’s) configuration list))

⇒ (nat ⇒ ((’p, ’v) message list)) ⇒ bool"

where

"infiniteExecution fe ft ≡∀ n . execution trans sends start (fe n) (ft n) ∧

prefixList (fe n) (fe (n+1)) ∧prefixList (ft n) (ft (n+1))"

Bisping et al. FLP Constructive Proof 24 August 2016 13 / 15

Page 42: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof of Fairness

Volzer: “We obtain a fair executionwhere all processes are correctand that is always eventuallynon-uniform and hence does not decide. �”

Bisping et al. FLP Constructive Proof 24 August 2016 14 / 15

Page 43: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof of Fairness

Volzer: “We obtain a fair executionwhere all processes are correctand that is always eventuallynon-uniform and hence does not decide. �”

Bisping et al. FLP Constructive Proof 24 August 2016 14 / 15

Page 44: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Our proof in Isabelle/HOL

Proof of Fairness

Volzer: “We obtain a fair executionwhere all processes are correctand that is always eventuallynon-uniform and hence does not decide. �”

Bisping et al. FLP Constructive Proof 24 August 2016 14 / 15

Page 45: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Conclusions

Conclusions

theorem ConsensusFails:

assumes

Termination:

"∧

fe ft . (fairInfiniteExecution fe ft =⇒ terminationFLP fe ft)" and

Validity: "∀ i c . validity i c" and

Agreement: "∀ i c . agreementInit i c"

shows

"False"

Conclusions

• formalization of Volzer’s proof in Isabelle/HOL

• 2 12 pages → 4000 LOC

• precise list of preconditions for individual proofs

• proof of fairness

• correctness up to correctness of Isabelle/HOL

Thank you very much for your attention.

Bisping et al. FLP Constructive Proof 24 August 2016 15 / 15

Page 46: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Conclusions

Conclusions

theorem ConsensusFails:

assumes

Termination:

"∧

fe ft . (fairInfiniteExecution fe ft =⇒ terminationFLP fe ft)" and

Validity: "∀ i c . validity i c" and

Agreement: "∀ i c . agreementInit i c"

shows

"False"

Conclusions

• formalization of Volzer’s proof in Isabelle/HOL

• 2 12 pages → 4000 LOC

• precise list of preconditions for individual proofs

• proof of fairness

• correctness up to correctness of Isabelle/HOL

Thank you very much for your attention.

Bisping et al. FLP Constructive Proof 24 August 2016 15 / 15

Page 47: Mechanical Veri cation of a Constructive Proof for FLP · Introduction The FLP Theorem Theorem (V olzer, 2004) There is no consensus algorithm such that a process may crash validity

Conclusions

Conclusions

theorem ConsensusFails:

assumes

Termination:

"∧

fe ft . (fairInfiniteExecution fe ft =⇒ terminationFLP fe ft)" and

Validity: "∀ i c . validity i c" and

Agreement: "∀ i c . agreementInit i c"

shows

"False"

Conclusions

• formalization of Volzer’s proof in Isabelle/HOL

• 2 12 pages → 4000 LOC

• precise list of preconditions for individual proofs

• proof of fairness

• correctness up to correctness of Isabelle/HOL

Thank you very much for your attention.

Bisping et al. FLP Constructive Proof 24 August 2016 15 / 15