# Graph Colouring The Team : Aymen Dammak Sébastien Jagueneau Florian Lajus Xavier Loubatier Cyril Rayot Mathieu Rey Mentor : Paul-Yves Gloess.

## Presentation on theme: "Graph Colouring The Team : Aymen Dammak Sébastien Jagueneau Florian Lajus Xavier Loubatier Cyril Rayot Mathieu Rey Mentor : Paul-Yves Gloess."— Presentation transcript:

Graph Colouring The Team : Aymen Dammak Sébastien Jagueneau Florian Lajus Xavier Loubatier Cyril Rayot Mathieu Rey Mentor : Paul-Yves Gloess

First Definitions A graph is a set of vertices linked by edges A graph

Neighbours A vertex is a neighbour of another vertex if they are linked by an edge

Colouring Notions A colour is associated to each vertex
A graph is well-coloured if no neighbouring vertices share the same colour A well-coloured graph

Degree Notions The vertex degree is the number of neighbours of this vertex The graph degree is the maximum degree of its vertices

The Theorem Choose randomly a vertex H which has all its neighbours well-coloured Choose randomly a color C unused by the neighbours of H Color H with C and graph is still well-coloured Imagine (with these pictures, it’s easier) that you have a well colored graph (non oriented as we can see). Bla bla And it’s true for a n degree graph if you have n+1 choices of color. It is the interresant fact: A n degree graph can be colored with only n +1 colors

What is PVS ? PVS : Prototype Verification System Proof assistant
SRI international (by the way) A big place for computer science, it was there where the mouse and the first graphic interface was invented ( in 1968 ) So Why a proof assistant? Why do we need an assistant? proving is so hard, so difficult that we need an assistant? In fact, yes. It’s a very fastidious task. Indeed when you prove something manually you can skip many step which seems obvious. But a 100% sure theorem require to be proofed whithout admitting some obvious fact (or at least the minimum). So, this assistant is used to help us to automatically proove some obvious fact (but this has to be done) and divide some theorem to make them easier to prove. Of course we can say, that the proof given by PVS rely on the fact that PVS funcionate well. But how to prove it? With a proof assistant. That’s a bit anoying, but the scientific community agreed pvs is sure.

Divide and Conquer Type Checking -> TCC : Type Correctness Condition Corrections Definition of degree Graph non oriented After correction, 3 TCCs required to be proved Coloring_vertex_TCC1 Coloring_vertex_TCC2 Coloring_TCC5 So to prove it, we have differents lemmas that has to be proved and the typecheking function of pvs has been really helpful to do it. This function split a lemma into different TCCs Type corectness conditon => that is to say: Statements that must hold in order to prove that a term has a given type. So it’s a kind of tiny proof. Most of the TCCs was proved automatically and by the other student last year. But errors has been found in their algorythm: First: the defnition of degree was false. Vertexes was counted twice... (quite anoying) An hypothesis was missing (unless the theorem can’t be proved) : graphs are non-oriented. It means that if a vertex “a” is in relation with a vertex “b”, the vertex “b” is in relation with “a”. : Finally after that some TCCs has been automatically proved and there was only 3 tccs left:

Proof of coloring_vertex_tcc1
Main idea : nonempty (difference (below (1+degree (R)), image (f, neighbours (R) (t))) below (1+degree (R)): N+1 colours of the graph image (f, neighbours (R) (t)): colours of t neighbours The set of colours used to colour the neighbours of vertex T, can not include all the graph colours.

Proof of coloring_vertex_tcc1
Graph colours:

Proof of coloring_vertex_tcc1
Colours of vertex V neighbours: There is always a colour left for vertex V, different from the colours of its neighbours.

Proof of coloring_vertex_tcc1
Proof idea: If a set has more elements than another one, the difference between these two sets is not empty. The notion of cardinality Three new lemmas to prove the tcc1

Proof of coloring_vertex_tcc1
Encountered problems: Not acquainted with the PVS syntax Too strong hypothesis in one of the three lemmas not easy to prove The card_subset_difference_nonempty, the strong hypothesis is: subset?(tsA,tsB)

Proof of coloring_vertex_tcc2
Main idea : a well coloured  graph can be created by adding a coloured vertex to a well coloured graph.

Proof of coloring_vertex_tcc2
A well-coloured graph

Proof of coloring_vertex_tcc2
A vertex is selected

Proof of coloring_vertex_tcc2
An unused colour is selected

Proof of coloring_vertex_tcc2
The coloured vertex is added to the well-coloured graph

Proof of coloring_vertex_tcc2
Two steps : Modification of the colouring function. Modification of the well-coloured graph.

Proof of coloring_tcc5 Main idea :
Set “S” representing the vertices (coloured or not) of a graph Strict subset “s” of the set (coloured vertices) An element “x” not part of the subset (vertex about to be coloured) The number of vertices to be coloured is always decreasing

Proof of coloring_tcc5 A subset, a strict subset and an element
Yellow area : vertices remaining uncoloured X

Proof of coloring_tcc5 Adding the element to the subset
Yellow area becomes the green one X

Proof of coloring_tcc5 Green area strict subset of the yellow area X X

Proof Result In order to compare: last year, at the end of their project, they had 36 proved and 6 unproved lemmas with 11 TCCs for a total of nearly 21 seconds.

Conclusion Proofs are complete Using PVS Finishing the project
Think whether what we are writing is correct and why Step by step correction Mathematical logic Finishing the project