2 First DefinitionsA graph is a set of vertices linked by edgesA graph
3 NeighboursA vertex is a neighbour of another vertex if they are linked by an edge
4 Colouring Notions A colour is associated to each vertex A graph is well-coloured if no neighbouring vertices share the same colourA well-coloured graph
5 Degree NotionsThe vertex degree is the number of neighbours of this vertexThe graph degree is the maximum degree of its vertices
6 The TheoremChoose randomly a vertex H which has all its neighbours well-colouredChoose randomly a color C unused by theneighbours of HColor H with C and graph is still well-colouredImagine (with these pictures, it’s easier) that you have a well colored graph (non oriented as we can see).Bla blaAnd 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
7 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.
8 Divide and ConquerType Checking -> TCC : Type Correctness ConditionCorrectionsDefinition of degreeGraph non orientedAfter correction, 3 TCCs required to be provedColoring_vertex_TCC1Coloring_vertex_TCC2Coloring_TCC5So 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 TCCsType 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:
9 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 graphimage (f, neighbours (R) (t)): colours of t neighboursThe set of colours used to colour the neighbours of vertex T, can notinclude all the graph colours.
11 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.
12 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 cardinalityThree new lemmas to prove the tcc1
13 Proof of coloring_vertex_tcc1 Encountered problems:Not acquainted with the PVS syntaxToo strong hypothesis in one of the three lemmasnot easy to proveThe card_subset_difference_nonempty, the strong hypothesis is: subset?(tsA,tsB)
14 Proof of coloring_vertex_tcc2 Main idea :a well coloured graph can be created by adding a coloured vertex to a well coloured graph.
15 Proof of coloring_vertex_tcc2 A well-coloured graph
16 Proof of coloring_vertex_tcc2 A vertex is selected
17 Proof of coloring_vertex_tcc2 An unused colour is selected
18 Proof of coloring_vertex_tcc2 The coloured vertex is added to the well-coloured graph
19 Proof of coloring_vertex_tcc2 Two steps :Modification of the colouring function.Modification of the well-coloured graph.
20 Proof of coloring_tcc5 Main idea : Set “S” representing the vertices (coloured or not) of a graphStrict 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
21 Proof of coloring_tcc5 A subset, a strict subset and an element Yellow area : vertices remaining uncolouredX
22 Proof of coloring_tcc5 Adding the element to the subset Yellow area becomes the green oneX
23 Proof of coloring_tcc5Green area strict subset of the yellow areaXX
24 Proof ResultIn 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.
25 Conclusion Proofs are complete Using PVS Finishing the project Think whether what we are writing is correct and whyStep by step correctionMathematical logicFinishing the project