let G be finite chordal _Graph; :: thesis: for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being VertexSeparator of a,b st S is minimal holds
for H being removeVertices of G,S
for a1 being Vertex of H st a = a1 holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) )

let a, b be Vertex of G; :: thesis: ( a <> b & not a,b are_adjacent implies for S being VertexSeparator of a,b st S is minimal holds
for H being removeVertices of G,S
for a1 being Vertex of H st a = a1 holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) ) )

assume that
A1: a <> b and
A2: not a,b are_adjacent ; :: thesis: for S being VertexSeparator of a,b st S is minimal holds
for H being removeVertices of G,S
for a1 being Vertex of H st a = a1 holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) )

let S be VertexSeparator of a,b; :: thesis: ( S is minimal implies for H being removeVertices of G,S
for a1 being Vertex of H st a = a1 holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) ) )

assume A3: S is minimal ; :: thesis: for H being removeVertices of G,S
for a1 being Vertex of H st a = a1 holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) )

let H be removeVertices of G,S; :: thesis: for a1 being Vertex of H st a = a1 holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) )

let a1 be Vertex of H; :: thesis: ( a = a1 implies ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) ) )

assume A4: a = a1 ; :: thesis: ex c being Vertex of G st
( c in H .reachableFrom a1 & ( for x being Vertex of G st x in S holds
c,x are_adjacent ) )

assume A5: for c being Vertex of G holds
( not c in H .reachableFrom a1 or ex x being Vertex of G st
( x in S & not c,x are_adjacent ) ) ; :: thesis: contradiction
per cases ( S is empty or not S is empty ) ;
suppose S is empty ; :: thesis: contradiction
end;
suppose not S is empty ; :: thesis: contradiction
then reconsider S = S as non empty Subset of (the_Vertices_of G) ;
set A = H .reachableFrom a1;
deffunc H1( set ) -> Element of omega = card ((G .AdjacentSet {$1}) /\ S);
set M = { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } ;
a in H .reachableFrom a1 by A4, GLIB_002:9;
then A6: card ((G .AdjacentSet {a}) /\ S) in { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } ;
A7: H .reachableFrom a1 is finite ;
A8: { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } is finite from FRAENKEL:sch 21(A7);
now
let x be set ; :: thesis: ( x in { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } implies x is natural )
assume A9: x in { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } ; :: thesis: x is natural
consider y being Vertex of G such that
A10: x = card ((G .AdjacentSet {y}) /\ S) and
y in H .reachableFrom a1 by A9;
thus x is natural by A10; :: thesis: verum
end;
then reconsider M = { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } as non empty finite natural-membered set by A6, A8, MEMBERED:def 6;
max M in M by XXREAL_2:def 8;
then consider c being Vertex of G such that
A11: max M = card ((G .AdjacentSet {c}) /\ S) and
A12: c in H .reachableFrom a1 ;
consider y being Vertex of G such that
A13: y in S and
A14: not c,y are_adjacent by A5, A12;
A15: (H .reachableFrom a1) /\ S = {} by A1, A2, A4, Th75;
consider Ga being inducedSubgraph of H,(H .reachableFrom a1);
A16: the_Vertices_of Ga = H .reachableFrom a1 by GLIB_000:def 39;
set tVG = the_Vertices_of G;
the_Vertices_of H c= the_Vertices_of G ;
then reconsider A = H .reachableFrom a1 as non empty Subset of (the_Vertices_of G) by XBOOLE_1:1;
not a in S by A1, A2, Def8;
then A17: (the_Vertices_of G) \ S is non empty Subset of (the_Vertices_of G) by XBOOLE_0:def 5;
then A c= (the_Vertices_of G) \ S by TARSKI:def 3;
then reconsider Ga = Ga as inducedSubgraph of G,A by A17, Th29;
set Ay = A \/ {y};
consider Gay being inducedSubgraph of G,(A \/ {y});
A19: the_Vertices_of Gay = A \/ {y} by GLIB_000:def 39;
y in {y} by TARSKI:def 1;
then ( c in A \/ {y} & y in A \/ {y} ) by A12, XBOOLE_0:def 3;
then reconsider ca = c, ya = y as Vertex of Gay by GLIB_000:def 39;
consider yaa being Vertex of G such that
A20: yaa in A and
A21: y,yaa are_adjacent by A1, A2, A3, A4, A13, Th82;
not y in A by A13, A15, XBOOLE_0:def 4;
then y in G .AdjacentSet (the_Vertices_of Ga) by A16, A20, A21;
then Gay is connected by Th57;
then consider Wa being Walk of Gay such that
A22: Wa is_Walk_from ca,ya by GLIB_002:def 1;
A23: ( Wa .first() = ca & Wa .last() = ya ) by A22, GLIB_001:def 23;
consider P being Path of Gay such that
A24: P is_Walk_from Wa .first() ,Wa .last() and
A25: P is minlength by Th39;
A26: P .first() = ca by A23, A24, GLIB_001:def 23;
A27: P .last() = y by A23, A24, GLIB_001:def 23;
c <> y by A12, A13, A15, XBOOLE_0:def 4;
then not P is trivial by A26, A27, GLIB_001:128;
then A28: len P >= 3 by GLIB_001:126;
A29: now
assume len P < (2 * 2) + 1 ; :: thesis: contradiction
then len P <= 5 - 2 by Th3;
then A30: len P = 3 by A28, XXREAL_0:1;
then (2 * 0 ) + 1 < len P ;
then P . (1 + 1) Joins P . 1,P . (1 + 2),Gay by GLIB_001:def 3;
then P . 2 Joins c,y,G by A26, A27, A30, GLIB_000:75;
hence contradiction by A14, Def3; :: thesis: verum
end;
then 5 + (- 2) <= (len P) + (- 2) by XREAL_1:9;
then reconsider j = (len P) - (2 * 1) as odd Element of NAT by INT_1:16, XXREAL_0:2;
set d = P . j;
A31: j < len P by XREAL_1:46;
then A32: P . j in the_Vertices_of Gay by GLIB_001:8;
then A33: ( P . j in A or P . j in {y} ) by A19, XBOOLE_0:def 3;
A34: now
assume P . j = y ; :: thesis: contradiction
then (len P) - 2 = 1 by A27, A31, GLIB_001:def 28;
then ( len P = 1 + 2 & 3 < 5 ) ;
hence contradiction by A29; :: thesis: verum
end;
reconsider d = P . j as Vertex of G by A32;
P . (j + 1) Joins d,P . (((len P) - 2) + 2),Gay by A31, GLIB_001:def 3;
then A35: P . (j + 1) Joins d,y,G by A27, GLIB_000:75;
then ( d <> y & d,y are_adjacent ) by A34, Def3;
then A36: y in G .AdjacentSet {d} by Th52;
then A37: y in (G .AdjacentSet {d}) /\ S by A13, XBOOLE_0:def 4;
A38: not y in G .AdjacentSet {c} by A14, Th52;
set gds = (G .AdjacentSet {d}) /\ S;
set gcs = (G .AdjacentSet {c}) /\ S;
then consider x being set such that
A41: x in (G .AdjacentSet {c}) /\ S and
A42: not x in (G .AdjacentSet {d}) /\ S by TARSKI:def 3;
A43: x in S by A41, XBOOLE_0:def 4;
then A44: not x in G .AdjacentSet {d} by A42, XBOOLE_0:def 4;
reconsider x = x as Vertex of G by A41;
A45: x <> y by A13, A36, A42, XBOOLE_0:def 4;
consider Gs being inducedSubgraph of G,S;
reconsider xs = x, ys = y as Vertex of Gs by A13, A43, GLIB_000:def 39;
Gs is complete by A1, A2, A3, Th98;
then xs,ys are_adjacent by A45, Def6;
then consider ej being set such that
A46: ej Joins xs,ys,Gs by Def3;
ej Joins x,y,G by A46, GLIB_000:75;
then A47: x,y are_adjacent by Def3;
x in G .AdjacentSet {c} by A41, XBOOLE_0:def 4;
then A48: c,x are_adjacent by Th52;
d <> x by A15, A33, A34, A43, TARSKI:def 1, XBOOLE_0:def 4;
then A49: not d,x are_adjacent by A44, Th52;
defpred S1[ Nat] means ( $1 in dom P & not $1 is even & $1 < len P & ex e being set st e Joins x,P . $1,G );
A50: for k being Nat st S1[k] holds
k <= len P ;
A51: 1 < len P by A29, XXREAL_0:2;
then A52: 1 in dom P by FINSEQ_3:27;
A53: not (2 * 0 ) + 1 is even ;
ex e being set st e Joins x,P . 1,G by A26, A48, Def3;
then A54: ex k being Nat st S1[k] by A51, A52, A53;
consider k being Nat such that
A55: S1[k] and
A56: for i being Nat st S1[i] holds
k >= i from NAT_1:sch 6(A50, A54);
reconsider k = k as odd Element of NAT by A55;
A57: ( k <= j & j < len P ) by A55, Th3, XREAL_1:46;
A58: P . k <> P . j by A49, A55, Def3;
A59: now
assume A60: P . k = P . (len P) ; :: thesis: contradiction
A61: ( (2 * 0 ) + 1 <= k & k <= len P ) by A55, HEYTING3:1;
then A62: P .cut 1,k is_Walk_from P .first() ,P .last() by A60, GLIB_001:38;
(len (P .cut 1,k)) + 1 = k + 1 by A61, GLIB_001:37;
hence contradiction by A25, A55, A62, Def2; :: thesis: verum
end;
set Q1 = P .cut k,j;
A63: P .cut k,j is minlength by A25, A57, Th42;
A64: ( (P .cut k,j) .first() = P . k & (P .cut k,j) .last() = P . j ) by A57, GLIB_001:38;
reconsider Q = P .cut k,j as Path of G by GLIB_001:176;
A65: Q .vertices() = (P .cut k,j) .vertices() by GLIB_001:99;
A66: Q .first() = P . k by A64;
A67: Q .last() = P . j by A64;
A68: Q .first() <> Q .last() by A49, A55, A64, Def3;
A69: not Q is trivial by A58, A66, A67, GLIB_001:128;
then ( Q .length() <> 0 & Q .length() >= 0 ) by GLIB_001:def 26;
then A70: Q .length() >= 0 + 1 by NAT_1:13;
A71: not Q is closed by A68, GLIB_001:def 24;
A72: (len Q) + k = j + 1 by A57, GLIB_001:37;
set cc = Q .first() ;
set dd = Q .last() ;
A73: ( not x in A & not x in {y} ) by A15, A43, A45, TARSKI:def 1, XBOOLE_0:def 4;
Q .last() in (P .cut k,j) .vertices() by A65, GLIB_001:89;
then A74: Q .last() <> x by A19, A73, XBOOLE_0:def 3;
Q .first() in (P .cut k,j) .vertices() by A65, GLIB_001:89;
then A75: Q .first() <> x by A19, A73, XBOOLE_0:def 3;
A76: Q .last() ,y are_adjacent by A35, A64, Def3;
A77: x,Q .first() are_adjacent by A55, A64, Def3;
A78: now
let i be odd Nat; :: thesis: ( i in dom Q & i <> len Q implies for e being set holds not e Joins Q . i,y,G )
assume A79: ( i in dom Q & i <> len Q ) ; :: thesis: for e being set holds not e Joins Q . i,y,G
assume ex e being set st e Joins Q . i,y,G ; :: thesis: contradiction
then consider e being set such that
A80: e Joins Q . i,y,G ;
A81: i <= len Q by A79, FINSEQ_3:27;
1 <= i by A79, FINSEQ_3:27;
then 1 + (- 1) <= i + (- 1) by XREAL_1:9;
then reconsider i1 = i - 1 as even Element of NAT by INT_1:16;
reconsider ki1 = k + i1 as odd Element of NAT ;
A82: i + (- 1) < i + (- 0 ) by XREAL_1:10;
then i1 < len Q by A81, XXREAL_0:2;
then A83: ( Q . (i1 + 1) = P . ki1 & ki1 in dom P ) by A57, GLIB_001:37;
then A84: ki1 <= len P by FINSEQ_3:27;
now
assume A85: ki1 = len P ; :: thesis: contradiction
((len P) - k) + (- 1) < (len P) - k by XREAL_1:32;
hence contradiction by A72, A81, A82, A85, XXREAL_0:2; :: thesis: verum
end;
then ki1 < len P by A84, XXREAL_0:1;
then A86: ki1 + 2 <= len P by Th4;
ki1 + 2 <> len P by A72, A79;
then A87: ki1 + 2 < len P by A86, XXREAL_0:1;
( P . ki1 in A \/ {y} & P . (len P) in A \/ {y} ) by A19, A84, GLIB_001:8;
hence contradiction by A25, A27, A80, A83, A87, Th19, Th40; :: thesis: verum
end;
A88: now
let i be odd Nat; :: thesis: ( i in dom Q & i <> 1 implies for e being set holds not e Joins Q . i,x,G )
assume A89: ( i in dom Q & i <> 1 ) ; :: thesis: for e being set holds not e Joins Q . i,x,G
assume ex e being set st e Joins Q . i,x,G ; :: thesis: contradiction
then consider e being set such that
A90: e Joins Q . i,x,G ;
A91: ( 1 <= i & i <= len Q ) by A89, FINSEQ_3:27;
then 1 + (- 1) <= i + (- 1) by XREAL_1:9;
then reconsider i1 = i - 1 as even Element of NAT by INT_1:16;
reconsider ki1 = k + i1 as odd Element of NAT ;
i + (- 1) < i + (- 0 ) by XREAL_1:10;
then A92: i1 < len Q by A91, XXREAL_0:2;
then A93: ( Q . (i1 + 1) = P . ki1 & ki1 in dom P ) by A57, GLIB_001:37;
A94: i1 + k < (((len P) - 1) - k) + k by A72, A92, XREAL_1:10;
(len P) + (- 1) < (len P) + (- 0 ) by XREAL_1:10;
then ( 1 <= ki1 & ki1 < len P ) by A94, HEYTING3:1, XXREAL_0:2;
then A95: ( ki1 in dom P & ki1 < len P ) by FINSEQ_3:27;
hence contradiction by A89; :: thesis: verum
end;
A96: now
let v be set ; :: thesis: ( v in Q .vertices() implies v in A )
assume A97: v in Q .vertices() ; :: thesis: v in A
Q .vertices() c= P .vertices() by A57, A65, GLIB_001:95;
then A98: v in P .vertices() by A97;
consider n being odd Element of NAT such that
A99: ( n <= len Q & Q . n = v ) by A97, GLIB_001:88;
1 <= n by HEYTING3:1;
then 1 + (- 1) <= n + (- 1) by XREAL_1:9;
then reconsider n1 = n - 1 as even Element of NAT by INT_1:16;
reconsider kn1 = k + n1 as odd Element of NAT ;
n + (- 1) < n + (- 0 ) by XREAL_1:10;
then A100: n1 < len Q by A99, XXREAL_0:2;
then A101: ( Q . (n1 + 1) = P . kn1 & kn1 in dom P ) by A57, GLIB_001:37;
A102: k + n1 < (((len P) - 1) - k) + k by A72, A100, XREAL_1:10;
(len P) + (- 1) < (len P) + (- 0 ) by XREAL_1:10;
then A103: kn1 < len P by A102, XXREAL_0:2;
then not v in {y} by TARSKI:def 1;
hence v in A by A19, A98, XBOOLE_0:def 3; :: thesis: verum
end;
consider R being Path of G such that
A107: ( len R = 7 & R .length() = 3 ) and
A108: R .vertices() = {(Q .last() ),y,x,(Q .first() )} and
A109: ( R . 1 = Q .last() & R . 3 = y & R . 5 = x & R . 7 = Q .first() ) by A27, A34, A45, A47, A59, A64, A74, A75, A76, A77, Th48;
A110: R .first() = Q .last() by A109;
A111: R .last() = Q .first() by A107, A109;
A112: not R is trivial by A107, GLIB_001:127;
A113: not R is closed by A68, A110, A111, GLIB_001:def 24;
A114: Q .edges() misses R .edges()
proof end;
then A123: (Q .vertices() ) /\ (R .vertices() ) c= {(Q .first() ),(Q .last() )} by TARSKI:def 3;
now end;
then {(Q .first() ),(Q .last() )} c= (Q .vertices() ) /\ (R .vertices() ) by TARSKI:def 3;
then A129: (Q .vertices() ) /\ (R .vertices() ) = {(Q .first() ),(Q .last() )} by A123, XBOOLE_0:def 10;
set C = Q .append R;
A130: Q .append R is Cycle-like by A69, A71, A110, A111, A112, A113, A114, A129, Th27;
A131: ((len (Q .append R)) + 1) + (- 1) = ((len Q) + (len R)) + (- 1) by A110, GLIB_001:29;
A132: (Q .append R) . ((len Q) + 6) = R . (6 + 1) by A107, A110, GLIB_001:34;
A133: (Q .append R) . ((len Q) + 4) = R . (4 + 1) by A107, A110, GLIB_001:34;
A134: (Q .append R) . ((len Q) + 2) = R . (2 + 1) by A107, A110, GLIB_001:34;
(Q .append R) .length() = (Q .length() ) + 3 by A107, A110, Th28;
then (Q .append R) .length() >= 1 + 3 by A70, XREAL_1:9;
then (Q .append R) .length() > 3 by NAT_1:13;
then Q .append R is chordal by A130, Def11;
then consider m, n being odd Nat such that
A135: m + 2 < n and
A136: n <= len (Q .append R) and
(Q .append R) . m <> (Q .append R) . n and
A137: ex e being set st e Joins (Q .append R) . m,(Q .append R) . n,G and
A138: ( Q .append R is Cycle-like implies ( ( not m = 1 or not n = len (Q .append R) ) & ( not m = 1 or not n = (len (Q .append R)) - 2 ) & ( not m = 3 or not n = len (Q .append R) ) ) ) by Th84;
A139: 1 <= m by HEYTING3:1;
A140: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
proof
per cases ( n <= len Q or n > len Q ) ;
suppose n <= len Q ; :: thesis: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
hence ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 ) ; :: thesis: verum
end;
suppose n > len Q ; :: thesis: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
then A141: (len Q) + 2 <= n by Th4;
per cases ( (len Q) + 2 = n or (len Q) + 2 < n ) by A141, XXREAL_0:1;
suppose (len Q) + 2 = n ; :: thesis: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
hence ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 ) ; :: thesis: verum
end;
suppose (len Q) + 2 < n ; :: thesis: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
then A142: ((len Q) + 2) + 2 <= n by Th4;
per cases ( (len Q) + 4 = n or (len Q) + (2 * 2) < n ) by A142, XXREAL_0:1;
suppose (len Q) + 4 = n ; :: thesis: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
hence ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 ) ; :: thesis: verum
end;
suppose (len Q) + (2 * 2) < n ; :: thesis: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
then ((len Q) + 4) + 2 <= n by Th4;
hence ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 ) by A107, A131, A136, XXREAL_0:1; :: thesis: verum
end;
end;
end;
end;
end;
end;
end;
consider e being set such that
A143: e Joins (Q .append R) . m,(Q .append R) . n,G by A137;
per cases ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 ) by A140;
suppose A151: n = (len Q) + 6 ; :: thesis: contradiction
end;
end;
end;
end;