✬ ✫ ✩ ✪
An axiom free Coq proof of Kruskal’s tree theorem
Dominique Larchey-Wendling TYPES team LORIA – CNRS Nancy, France http://www.loria.fr/~larchey/Kruskal Dagstuhl Seminar 16031, January 2016
1
An axiom free Coq proof of Kruskals tree theorem Dominique - - PowerPoint PPT Presentation
An axiom free Coq proof of Kruskals tree theorem Dominique Larchey-Wendling TYPES team LORIA CNRS Nancy, France http://www.loria.fr/~larchey/Kruskal Dagstuhl Seminar 16031, January 2016 1 Well Quasi
1
2
3
4
5
6
7
8
9
10
12
13
R : rel2 (list X) defined by 3 rules
R [ ]
R m
R b :: m
R m
R b :: m
R
14
R ti
R xn|t1, . . . , tn
R t1, . . . , sn <× R tn
R y|t1, . . . , tn
R
R) on btree k X 15
R by nested induction
R ti
R xn|t1, . . . , tn
R) [t1, . . . , tj]
R xj|t1, . . . , tj
R and prove the elimination scheme
R
R) 16
17
k−1
R ti
R xn|t1, . . . , tn
R t1, . . . , sn <h R tn
R yn|t1, . . . , tn
R
R) 18
R ↑ t)
R ↑ t1), . . . , af t (<h R ↑ ti)
R ↑ xi|t1, . . . , ti)
19
0 = R0 ↑ x0 is af t, witnessed by w′ 0 = g(x0)
j = Rj and w′ j = wj for 0 < j < k
0 = g(x0) is a sub-wft(X0) of w0 = inr g, hence simpler
0, w1, . . . , wk−1] easier than [w0, w1, . . . , wk−1]
R′) by induction
R′ ⊆ <h R ↑x0|∅ (relatively easy to check)
R ↑x0|∅) 20
R xj|v1, . . . , vj
R ↑ x0|∅ is full (trivial to check)
R ↑ x0|∅) 21
j = Xj and R′ j = Rj for j ∈ {i − 1, i}
i = Xi and R′ i = Ri ↑ xi is af t for w′ i = g(xi) simpler than wi
i−1 = Xi−1 + i−1
i−1 = Ri−1 + i−1
R ↑ tp)
i−1 is af t by Ramsey, obtain w′ i−1
i−1, w′ i, . . .] easier than [. . . , wi−1, wi, . . .]
R′) by induction
R′) implies af t(<h R ↑ xi|t1, . . . , ti) (not easy) 22
i−1 = Xi−1 + i−1 p=0 Xi × T, define an evaluation map
i−1, Xi, . . .) → tree(X0, . . . , Xk−1)
R′) implies af t(<h R ↑ xi|t1, . . . , ti)
23
j and R′ j for j = i as in case wi = inr g
i = ∅ with any R′ i (only one exists) is af t
i = ∅ is simpler than Ri is full on Xi
i = None is simpler than wi = Some(inl ⋆)
R′) by induction
R′) implies af t(<h R ↑ xi|t1, . . . , ti)
24
25
i−1, w′ i, . . .] “easier” than [. . . , wi−1, wi, . . .]
i−1 : wft X′ i−1 and wi−1 : wft Xi−1 not same type !! 26
27
28
29
30
31
32
33
34
i−1 = Xi−1 + i−1 p=0 Xi × tree(X0, . . . , Xk−1) can be
35
36
37
38
39
40
41
∞
k,R ti
k,R xn|t1, . . . , tn
k,R t1, . . . , sn <u k,R tn
k,R yn|t1, . . . , tn
k,R) [t1, . . . , tj]
k,R xj|t1, . . . , tj 42
43
44