Graph Coloring and Machine Proofs in Computer Science, 1977-2017 - - PowerPoint PPT Presentation

graph coloring and
SMART_READER_LITE
LIVE PREVIEW

Graph Coloring and Machine Proofs in Computer Science, 1977-2017 - - PowerPoint PPT Presentation

Graph Coloring and Machine Proofs in Computer Science, 1977-2017 Andrew W. Appel Princeton University 1 Can it really be a proof if you cant check it by machine? 2 Alfred B. Kempe, 1849-1922 Barrister of ecclesiastical law; mathematician


slide-1
SLIDE 1

Graph Coloring and Machine Proofs in Computer Science, 1977-2017

Andrew W. Appel

Princeton University

1

slide-2
SLIDE 2

Can it really be a proof if you can’t check it by machine?

2

slide-3
SLIDE 3

Alfred B. Kempe, 1849-1922

In 1876, Kempe’s Universality Theorem: for an arbitrary algebraic plane curve, a linkage can be constructed that draws the curve.

3 Barrister of ecclesiastical law; mathematician

Oops! There was a bug in the proof. Finally proved in 2002 by Michael Kapovich and John J. Millson

slide-4
SLIDE 4

Alfred B. Kempe, 1849-1922

In 1879, proof of the 4-color theorem: every planar graph can be colored using at most 4 colors. (Any nodes connected by an edge must have different colors.)

4

f e b m c d k j h g

Barrister of ecclesiastical law; mathematician

slide-5
SLIDE 5

Alfred B. Kempe 1879

6-color theorem: Every planar graph is 6-colorable. 5-color theorem: Every planar graph is 5-colorable. 4-color theorem: Every planar graph is 4-colorable.

5

Percy J. Heawood

found a bug in the proof, 1890

slide-6
SLIDE 6

Alfred B. Kempe 1879

6-color theorem: Every planar graph is 6-colorable.

6

Proof:

  • 1. Every planar graph has at least one node of degree <6

(by Euler’s polyhedron formula): V−E+F = 2, average degree < 6

  • 2. If you remove one node from a planar graph,

what remains is a planar graph.

  • 3. This leads to an algorithm for coloring graphs . . .
slide-7
SLIDE 7

Kempe’s graph-coloring algorithm

To 6-color a planar graph:

  • 1. Every planar graph has at least one vertex of

degree ≤ 5.

  • 2. Remove this vertex.
  • 3. Color the rest of the graph with a recursive

call to Kempe’s algorithm.

  • 4. Put the vertex back. It is adjacent to at most

5 vertices, which use up at most 5 colors from your “palette.” Use the 6th color for this vertex.

7

slide-8
SLIDE 8

Example: 6-color this graph

8

f e b m c d k j h g

slide-9
SLIDE 9

Example: 6-color this graph

9

f e b m c d k j h g

This node has degree < 6 ; remove it!

slide-10
SLIDE 10

Example: 6-color this graph

10

f e b m c d k j h g

Now, by induction, suppose we could color the rest of the graph

slide-11
SLIDE 11

Now, color the residual graph

11

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node Now, by induction, suppose we could color the rest of the graph We can surely find a color for c

slide-12
SLIDE 12

Put back the node c, and color it

12

f e b m c d k j h g

Why did this work? Because when we removed each node, at that time it had degree < 6. So when we put it back, it’s adjacent to at most 5 already-colored nodes.

slide-13
SLIDE 13

Kempe’s 4-coloring algorithm

To 4-color a planar graph:

  • 1. Find a vertex of degree ≤ 5 (there must be one)
  • 2. Remove this vertex.
  • 3. Color the rest of the graph with a recursive

call to Kempe’s algorithm.

  • 4. Put the vertex back.

13

These cases: easy; you can find a color not used by an adjacent node. This case: use the method of “Kempe chains” This case . . .

slide-14
SLIDE 14

Kempe chains

14

b d k j g

Suppose you are 4-coloring this graph:

f h k u

?

slide-15
SLIDE 15

Kempe’s 4-coloring algorithm

To 4-color a planar graph:

  • 1. Find a vertex of degree ≤ 5 (there must be one)
  • 2. Remove this vertex.
  • 3. Color the rest of the graph with a recursive

call to Kempe’s algorithm.

  • 4. Put the vertex back.

15

These cases: easy This case: use “Kempe chains” This case: use “simultaneous Kempe chains”

slide-16
SLIDE 16

Kempe’s 4-coloring algorithm

To 4-color a planar graph:

  • 1. Find a vertex of degree ≤ 5 (there must be one)
  • 2. Remove this vertex.
  • 3. Color the rest of the graph with a recursive

call to Kempe’s algorithm.

  • 4. Put the vertex back.

16

These cases: easy This case: use “Kempe chains” “simultaneous Kempe chains”

Heawood 1890

slide-17
SLIDE 17

5-color thm

Every planar graph contains at least 1 of these configurations: “reduce”: Replace that configuration with a smaller config., color the remaining graph, put the node back, you can find a color for the node!

6-color thm

Every planar graph contains at least 1 of these configurations: “reduce”: Replace that configuration with a smaller config., color the remaining graph, put the node back, you can find a color for the node!

17

Kempe 1879 Kempe 1879

slide-18
SLIDE 18

Unavoidable sets

18 Illinois Journal of Mathematics 1976 (received 1974)

slide-19
SLIDE 19

Wernicke, Franklin, Lebesgue, Heesch

19

4-color thm

Every planar graph contains at least 1 of these configurations: “reduce”: Replace that configuration with a smaller config., color the remaining graph, put the node back, you can find a color for the node! Heinrich Heesch 1906-1995 “unavoidable set” ~1970: [paraphrase] I estimate that computers will be powerful enough someday, to find an unavoidable set of perhaps 10,000 reducible configurations

  • f “reducible

configurations” would prove the 4-color theorem ? ? ? ? ? ? ? ? ? ?

slide-20
SLIDE 20

Appel and Haken

1972-1974: Let’s use computers to analyze unavoidable sets, and est stimate, (1)how many configurations might be in an unavoidable set of reducible configurations? (2)in what year will future computers be fast enough to calculate this?

20

slide-21
SLIDE 21

21

slide-22
SLIDE 22

Appel and Haken

1974: and the estimate is, (1) about 2000 configurations

22

1974: and the estimate is, (1) about 2000 configurations (2)in the year 1972!

IBM System/370 Model 168, 1972

slide-23
SLIDE 23

Appel and Haken and Koch

1974-1976: Calculate (1) an unavoidable set of 1900 configs (using a version of Heesch’s “discharging” procedure) (2) reducibility proofs for each config., using various reducibility algorithms

(implemented with the assistance of C.S. PhD student John Koch)

23

slide-24
SLIDE 24

Teletype model ASR-33 110 bits per second

24

slide-25
SLIDE 25

Mathematical Games

25

slide-26
SLIDE 26

5-color thm

Every planar graph contains at least 1 of these configurations: “reduce”: Replace that configuration with a smaller config., color the remaining graph, put the node back, you can find a color for the node!

6-color thm

Every planar graph contains at least 1 of these configurations: “reduce”: Replace that configuration with a smaller config., color the remaining graph, put the node back, you can find a color for the node!

26

(a degree 5 node) (degree 4) (degree 1)

4-color thm

Every planar graph contains at least 1 of these configurations: “reduce”: Replace that configuration with a smaller config., color the remaining graph, put the node back, you can find a color for the node!

(and 1900 more)

Kempe 1879 Kempe 1879 Appel and Haken 1976

slide-27
SLIDE 27

Math department postage meter

27

July 22, 1976

slide-28
SLIDE 28

My own contribution to the 4CT proofreading:

“[with] five of their children … Dorothea and Armin Haken, and Laurel, Peter, and Andrew Appel, they set to work [proofreading configurations from computer printouts]”

Robin Wilson, 2002

28 Dorothea Haken Blostein

(1959-) Professor of C.S. Queens University

Laurel Appel

(1962-2013) Adjunct Assoc. Prof.

  • f Biology

Wesleyan University

None. two

slide-29
SLIDE 29

Which part don’t you believe?

“Haken’s son Armin, by then a graduate student at … Berkeley, gave a lecture on the four-colour problem…. At the end, the audience split into two groups: the over- forties could not be convinced that a proof by computer was correct, while the under-forties could not be convinced that a proof containing 700 pages of hand calculations could be correct.”

29

Princeton University Press 2002

slide-30
SLIDE 30

One history

30

Kempe Guthrie Heawood Birkhoff Wernicke “unavoidable set” “reducible” Heesch Appel, Haken “Every planar map is 4-colorable” “discharging” to

compute unavoidable set

Robertson, Sanders, Seymour, Thomas improved proof,

same basic recipe

Gonthier 1880 1850 1904 1920 1960 1976 1996 2006

slide-31
SLIDE 31

One history

31

Kempe Guthrie Heawood Birkhoff Wernicke Heesch Appel, Haken Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006

Another history

1700 Leibniz 1850 Babbage 1920 Hilbert

Can we mechanize mathematics?

1930 Gödel Turing

Can we mechanize mathematics? Can we mechanize mathematics? Proof checking: yes Proving: not quite In particular, a short theorem statement might have a very long proof. Yes, we noticed!

slide-32
SLIDE 32

One history

32

Kempe Guthrie Heawood Birkhoff Wernicke Heesch Appel, Haken Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006

Another history

1700 Leibniz 1850 Babbage 1920 Hilbert

Can we mechanize mathematics?

1930 Gödel Turing

Can we mechanize mathematics? Can we mechanize mathematics? Proof checking: yes Proving: not quite

1950 von Neumann 1960 IBM

Let’s build those computers! Thank you! Thank you!

slide-33
SLIDE 33

One history

33

Kempe Guthrie Heawood Birkhoff Wernicke Heesch Appel, Haken Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006

Another history

1700 Leibniz 1850 Babbage 1920 Hilbert

Can we mechanize mathematics?

1930 Gödel Turing

Can we mechanize mathematics? Can we mechanize mathematics? Proof checking: yes Proving: not quite

1950 von Neumann 1960 IBM

Let’s build those computers!

John Robin Cocke 1970s Milner

Proof Assistants Optimizing compilers

slide-34
SLIDE 34

One history

34

Kempe Guthrie Heawood Birkhoff Wernicke Heesch Appel, Haken Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006

Another history

1700 Leibniz 1850 Babbage 1920 Hilbert 1930 Gödel Turing 1950 von Neumann 1960 IBM John Cocke 1925-2002

IBM Research

slide-35
SLIDE 35

Register Allocation

35

Procedure P (k, j) g := mem[j+12] h := k-1 f := g∗h e := mem [j+8] m := mem[j+16] b := mem[f] c := e+8 d := c k := m+4 j := b return (d, k, j) r1 r2 r3 r4 registers memory

1 2 3 4 5 6 7 8 9 10 11 12 13 14 . .

g j f e k h m b c d

slide-36
SLIDE 36

One history

36

Kempe Guthrie Heawood Birkhoff Wernicke Heesch Appel, Haken Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006

Another history

1700 Leibniz 1850 Babbage 1920 Hilbert 1930 Gödel Turing 1950 von Neumann 1960 IBM John Cocke 1925-2002

IBM Research

Ashok Chandra

(1948-2014)

Gregory Chaitin

(1947-)

1977: Hmm, this 4-color theorem is interesting. John, ask Gregory to try Kempe’s coloring algorithm in the register allocator

  • f our compiler.
slide-37
SLIDE 37

Gregory Chaitin

I was recruited to do a coloring register allocator by John Cocke, IBM's greatest computer architect, who needed it for his RISC project. He mentioned that Ashok K. Chandra, also at IBM Research at that time, had suggested recursively reducing the graph by eliminating vertices of degree less than the number of available colors, as just one possible component of a coloring algorithm. I certainly remember the spectacular work your father did with Haken ... I heard Haken give a talk on their proof soon after they had done it. But the details of the proof escaped me. That was more Chandra's area of interest; mine is information theory.

37

One of the most influential papers in all of computer science

slide-38
SLIDE 38

Register Allocation Chaitin et al. 1981

38

Procedure P (k, j) g := mem[j+12] h := k-1 f := g∗h e := mem [j+8] m := mem[j+16] b := mem[f] c := e+8 d := c k := m+4 j := b return (d, k, j) g f h e b m c d k k j j Live ranges Interferences

(some not shown)

Interference Graph

figure 11.1 from Modern Compiler Implementation in ML, Andrew W. Appel, Cambridge University Press 1998

slide-39
SLIDE 39

Heuristic hack of Kempe’s algorithm

To mostly K-color a graph (whether planar or not!)

Is there a vertex of degree < K ? If so:

Remove this vertex. Color the rest of the graph with a recursive call to the algorithm. Put the vertex back. It is adjacent to at most K-1 vertices. They use (among them) at most K-1 colors. That leaves one of your colors for this vertex.

If not:

Remove this vertex. Color the rest of the graph with a recursive call. Put the vertex back. It is adjacent to ≥ K vertices. How many colors do these vertices use among them? If < K : there is an unused color to use for this vertex If ≥ K:

39

Chaitin’s

slide-40
SLIDE 40

Heuristic hack of Kempe’s algorithm

To mostly K-color a graph (whether planar or not!)

Is there a vertex of degree < K ? If so:

Remove this vertex. Color the rest of the graph with a recursive call to the algorithm. Put the vertex back. It is adjacent to at most K-1 vertices. They use (among them) at most K-1 colors. That leaves one of your colors for this vertex.

If not:

Remove this vertex. Color the rest of the graph with a recursive call. Put the vertex back. It is adjacent to ≥ K vertices. How many colors do these vertices use among them? If < K : there is an unused color to use for this vertex If ≥ K: leave this vertex uncolored.

40

What? Are we allowed to do that? Yes! This is an algorithm to “mostly K-color” a graph.

Briggs’s version of Chaitin’s

slide-41
SLIDE 41

Example: 3-color this graph

41

f e b m c d k j h g

Stack:

slide-42
SLIDE 42

Example: 3-color this graph

42

f e b m c d k j h g

Stack: This node has degree < 3 ; remove it!

slide-43
SLIDE 43

Example: 3-color this graph

43

f e b m c d k j h g

Stack: c Push node c on the stack

slide-44
SLIDE 44

Example: 3-color this graph

44

f e b m c d k j h g

Stack: c Removing c lowers the degree

  • f nodes b and m;

that will be helpful later!

slide-45
SLIDE 45

Example: 3-color this graph

45

f e b m d k j h g

Stack: c This node has degree < 3 ; remove it!

slide-46
SLIDE 46

Example: 3-color this graph

46

f e b m d k j h g

Stack: h c This node has degree < 3 ; remove it!

slide-47
SLIDE 47

Example: 3-color this graph

47

f e b m d k j g

Stack: h c This node has degree < 3 ; remove it!

slide-48
SLIDE 48

Example: 3-color this graph

48

f e b m d k j

Stack: g h c No node has degree < 3 Pick a node arbitrarily, remove it, and push it on the stack

slide-49
SLIDE 49

Example: 3-color this graph

49

f e b m d k j

Stack: k g h c

slide-50
SLIDE 50

Example: 3-color this graph

50

f e b m d j

Stack: k g h c This node has degree < 3 ; remove it!

slide-51
SLIDE 51

Example: 3-color this graph

51

f e b m j

Stack: d k g h c This node has degree < 3 ; remove it!

slide-52
SLIDE 52

Example: 3-color this graph

52

f e b m

Stack: j d k g h c This node has degree < 3 ; remove it!

slide-53
SLIDE 53

Example: 3-color this graph

53

e b m

Stack: f j d k g h c This node has degree < 3 ; remove it!

slide-54
SLIDE 54

Example: 3-color this graph

54

b m

Stack: e f j d k g h c This node has degree < 3 ; remove it!

slide-55
SLIDE 55

Example: 3-color this graph

55

m

Stack: b e f j d k g h c This node has degree < 3 ; remove it!

slide-56
SLIDE 56

Example: 3-color this graph

56

Stack: m b e f j d k g h c

slide-57
SLIDE 57

Now, color the nodes in stack order

57

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node Find a color for this node that’s not already used in an adjacent node

slide-58
SLIDE 58

Now, color the nodes in stack order

58

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-59
SLIDE 59

Now, color the nodes in stack order

59

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-60
SLIDE 60

Now, color the nodes in stack order

60

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-61
SLIDE 61

Now, color the nodes in stack order

61

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-62
SLIDE 62

Now, color the nodes in stack order

62

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-63
SLIDE 63

Now, color the nodes in stack order

63

Stack: m b e f j d k g h c

f e b m c d k j h g

We’re about to color node k. This was the only one that was degree ≥ 3 when we removed it. Hence, it is not guaranteed that we can find a color for it now. But we got lucky, because b and d have the same color!

slide-64
SLIDE 64

Now, color the nodes in stack order

64

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-65
SLIDE 65

Now, color the nodes in stack order

65

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-66
SLIDE 66

Now, color the nodes in stack order

66

Stack: m b e f j d k g h c

f e b m c d k j h g

Find a color for this node that’s not already used in an adjacent node

slide-67
SLIDE 67

Now, color the nodes in stack order

67

Stack: m b e f j d k g h c

f e b m c d k j h g

Why did this work? Because (usually) when we removed each node, at that time it had degree < 3. So when we put it back, it’s adjacent to at most 2 already-colored nodes.

slide-68
SLIDE 68

Improvements to the Chaitin algorithm

68

Kempe 1879 graph coloring algorithm Chaitin et al. 1981 register allocation by coloring

Chaitin 1982: spilling (“leave some nodes uncolored”) Briggs et al. 1984: coalescing + improved spilling

slide-69
SLIDE 69

Move coalescing

69

Procedure P (k, j) g := mem[j+12] h := k-1 f := g∗h e := mem [j+8] m := mem[j+16] b := mem[f] c := e+8 d := c k := m+4 j := b return (d, k, j) g f h e b m c d k k j j Live ranges Interference Graph

figure 11.1 from Modern Compiler Implementation in ML, Andrew W. Appel, Cambridge University Press 1998

If these nodes can be colored the same color, then you can delete the move instruction

slide-70
SLIDE 70

Improvements to the Chaitin algorithm

70

c e b m d j

“Briggs reduction:” Coalesce a move edge c-d, if (1) no interference edge c-d (2) coalesced node cd has degree <K

Kempe 1879 graph coloring algorithm Chaitin et al. 1981 register allocation by coloring

Chaitin 1982: spilling (“leave some nodes uncolored”) Briggs et al. 1984: coalescing + improved spilling

slide-71
SLIDE 71

Improvements to the Chaitin algorithm

Kempe 1879 graph coloring algorithm Chaitin et al. 1981 register allocation by coloring

71

Chaitin 1982: spilling (“leave some nodes uncolored”) Briggs et al. 1984: coalescing + improved spilling

cd e b m j

“Briggs reduction:” Coalesce a move edge c-d, if (1) no interference edge c-d (2) coalesced node cd has degree <K

slide-72
SLIDE 72

Improvements to the Chaitin algorithm

Kempe 1879 graph coloring algorithm Chaitin 1981 register allocation by coloring

72

Chaitin 1982: spilling

(“leave some nodes uncolored”)

Briggs et al. 1984: coalescing + improved spilling

  • L. George & A.W. Appel 1996: It

Iterated Register Coalescing

c e b m d j

but also: “George reduction:” Coalesce a move edge c-d, if (1) no interference edge c-d (2) neighbors(d) ⊂ neighbors(c) Int Interlea eave Brig riggs red eductio ions with Kem empe e red eductio ions

slide-73
SLIDE 73

73

slide-74
SLIDE 74

Histories

74

Kempe Guthrie Heawood Birkhoff Wernicke Heesch

  • K. Appel, Haken

Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006 1700 Leibniz 1850 Babbage 1920 Hilbert 1930 Gödel Turing 1950 von Neumann 1960 IBM Cocke 1980 Chaitin Briggs 4-color theorem computing 1996 L. George & A. Appel

slide-75
SLIDE 75

Histories: Logic

75

Kempe Guthrie Heawood Birkhoff Wernicke Heesch

  • K. Appel, Haken

Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006 1700 Leibniz 1850 Babbage 1920 Hilbert 1930 Gödel Turing 1950 von Neumann 1960 IBM Cocke 1980 Chaitin Briggs 4-color theorem computing Church Milner 1977 1996 L. George & A. Appel 1970 Dijkstra, Floyd, Hoare

slide-76
SLIDE 76

Program verification

76

David Gries

1939-

Tony Hoare

1934-

Robert Floyd

1936-2001

Proofs (written by hand, checked by hand) about programs Edsger Dijkstra

1930-2002

slide-77
SLIDE 77

Edinburgh LCF, the first Proof Ass ssis istant

77

1978 Construct proofs in a “proof language” by hand (like programs). Proof-checker program (“kernel”) checks each step of the proof as you build it. “Tactic” language permits you to write programs to fill in the trivial parts of the proofs. Robin Milner

1934-2010

slide-78
SLIDE 78

Proving in a proof assistant

78

slide-79
SLIDE 79

Proving in a proof assistant

79

slide-80
SLIDE 80

Proving in a proof assistant

80

slide-81
SLIDE 81

Proving in a proof assistant

81

slide-82
SLIDE 82

Proving in a proof assistant

82

slide-83
SLIDE 83

Proving in a proof assistant

83

slide-84
SLIDE 84

Proving in a proof assistant

84

slide-85
SLIDE 85

Proving in a proof assistant

85

slide-86
SLIDE 86

What’s it good for?

Robin Milner’s observation (along with the thousands of

people who have worked in this field after 1978, including me):

Machine-checked proofs (and proof assistants) are really good for theorems about computer programs!

86

slide-87
SLIDE 87

Landmarks of program verification

87

Xavier Leroy 1968-

Co CompCert

  • p
  • ptim

timizin ing C C co compile ler 2006

Zhong Shao 1968-

Cert CertiK iKOS

  • pe

peratin ing system 2015

Gerwin Klein 1975-

seL seL4

  • pe

peratin ing system 2013

Andrew Appel 1960-

Fou

  • undatio

ional Proof

  • of-Carrying Co

Code 2005 Verified Software Toolchain 2014 Veri erifi fied SH SHA/HMAC cry ryptographic auth authenticati tion 2015

a personal selection

slide-88
SLIDE 88

Math

88

Kempe Guthrie Heawood Birkhoff Wernicke Heesch

  • K. Appel, Haken

Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2006 1700 Leibniz 1850 Babbage 1920 Hilbert 1930 Gödel Turing 1950 von Neumann 1960 IBM Cocke 1980 Chaitin Briggs 1996 L. George & A. Appel 4-color theorem computing Church Milner 1977 1990s numerous software verification

Computing Logic

21st century

more numerous!

1970 Dijkstra, Floyd, Hoare

slide-89
SLIDE 89

Which part don’t you believe?

“Haken’s son Armin, by then a graduate student at … Berkeley, gave a lecture on the four-colour problem…. At the end, the audience split into two groups: the

  • ver-forties could not be convinced that

a proof by computer was correct, while the under-forties* could not be convinced that a proof containing 700 pages of hand calculations could be correct.”

89

*By now that would be, “people under 80”

slide-90
SLIDE 90

91

Georges Gonthier

1962-

2005 (see also Notices of the AMS 2008)

slide-91
SLIDE 91

“Trusted base:” 141 lines

92

Def efin init itio ion rea eal_ l_model := := . . . . 100 lines es of f Coq ax axiomatiz izin ing rea eal l num numbers.. ... Def efin init itio ion map ap : : Typ ype := := Def efin init itio ion simple le_map: Type → Prop := Def efin init itio ion map ap_colorable le: : ℕ → map → Prop := Theo eorem em four_colo lor: : ∀ R : : rea eal_ l_model, , ∀m : : map ap R, simple le_map m m → map ap_colo lorable le 4 m. Proof. . . . 60,0 ,000 lines es of f Coq ... .. Qed. . 40 lines of f elem elementary to topolo logy

slide-92
SLIDE 92

Math

93

Kempe Guthrie Heawood Birkhoff Wernicke Heesch

  • K. Appel, Haken

Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2005 1700 Leibniz 1850 Babbage 1920 Hilbert 1930 Gödel Turing 1950 von Neumann 1960 IBM Cocke 1980 Chaitin Briggs 1996 L. George & A. Appel 4-color theorem computing Church Milner 1977 1990s numerous machine-checked proof

Computing Logic

slide-93
SLIDE 93

94

19th European Symposium on Programming, 2010

slide-94
SLIDE 94

Math

95

Kempe Guthrie Heawood Birkhoff Wernicke Heesch

  • K. Appel, Haken

Robertson, Sanders, Seymour, Thomas Gonthier 1880 1850 1904 1920 1960 1976 1996 2005 1700 Leibniz 1850 Babbage 1920 Hilbert 1930 Gödel Turing 1950 von Neumann 1960 IBM Cocke 1980 Chaitin Briggs 1996 L. George & A. Appel 4-color theorem computing Church Milner 1977 1990s numerous machine-checked proof

Computing Logic

Blazy, Robillard, A. Appel

slide-95
SLIDE 95

In mathematics, as well

96

Kepler conjecture (1611):

Face-centered cubic is densest possible sphere packing

Hales proof (1998):

5000 planar graphs, each with a computerized nonlinear optimization calculation

Referees: we’re 99% sure it’s correct

  • Project Director: Thomas Hales
  • Project Managers: Ta Thi Hoai An, Mark Adams
  • HOL Light libraries and support: John Harrison,
  • Isabelle Tame Graph Classification:

Gertrud Bauer, Tobias Nipkow,

  • Chief Programmer: Alexey Solovyev,
  • Nonlinear inequalities: Victor Magron, Sean

McLaughlin, Roland Zumkeller,

  • Linear Programming: Steven Obua,
  • Microsoft Azure Cloud support: Daron Green, Joe

Pleso, Dan Synek, Wenming Ye,

  • Chief Formalizer: Hoang Le Truong,
  • Text formalization: Jason Rute, Dang Tat Dat, Nguyen

Tat Thang, Nguyen Quang Truong, Tran Nam Trung, Trieu Thi Diep, Vu Khac Ky, Vuong Anh Quyen,

  • Student Projects: Catalin Anghel, Matthew Wampler-Doty,

Nicholas Volker, Nguyen Duc Tam, Nguyen Duc Thinh, Vu Quang Thanh,

  • Proof Automation: Cezary Kaliszyk, Josef Urban,
  • Editing: Erin Susick, Laurel Martin, Mary Johnston,
  • External Advisors and Design: Freek Wiedijk, Georges Gonthier,

Jeremy Avigad, Christian Marchal,

  • Institutional Support: NSF, Microsoft Azure Research, William

Benter Foundation, University of Pittsburgh, Radboud University, Institute of Math (VAST), VIASM.

Hales et al. 2004-2014: Flyspec project- Formal verification in HOL Light proof assistant Thomas Hales

1958-

slide-96
SLIDE 96

Conclusions

  • Graph coloring, with or without proofs, is

widespread in Computer Science

  • Computer-checked proofs are widespread, and

important, in Computer Science

  • Computer-checked proofs are even becoming

important in Mathematics

98