:: CHORD semantic presentation
begin
theorem Th1: :: CHORD:1
for n being non zero Nat holds
( n - 1 is Nat & 1 <= n )
proof
let n be non zero Nat; ::_thesis: ( n - 1 is Nat & 1 <= n )
A1: 0 + 1 <= n by NAT_1:13;
then (0 + 1) - 1 <= n - 1 by XREAL_1:9;
then n - 1 in NAT by INT_1:3;
hence n - 1 is Nat ; ::_thesis: 1 <= n
thus 1 <= n by A1; ::_thesis: verum
end;
theorem Th2: :: CHORD:2
for n being odd Nat holds
( n - 1 is Nat & 1 <= n ) by Th1;
Lm1: for a, b, c being Integer st a + 2 < b holds
((c - b) + 1) + 2 < (c - a) + 1
proof
let a, b, c be Integer; ::_thesis: ( a + 2 < b implies ((c - b) + 1) + 2 < (c - a) + 1 )
assume A1: a + 2 < b ; ::_thesis: ((c - b) + 1) + 2 < (c - a) + 1
assume ((c - b) + 1) + 2 >= (c - a) + 1 ; ::_thesis: contradiction
then ((c - b) + 3) - 3 >= ((c - a) + 1) - 3 by XREAL_1:9;
then c - b >= c - (a + 2) ;
hence contradiction by A1, XREAL_1:10; ::_thesis: verum
end;
theorem Th3: :: CHORD:3
for n, m being odd Integer st n < m holds
n <= m - 2
proof
let n, m be odd Integer; ::_thesis: ( n < m implies n <= m - 2 )
assume n < m ; ::_thesis: n <= m - 2
then n + 1 <= m by INT_1:7;
then (n + 1) + (- 1) <= m + (- 1) by XREAL_1:7;
then n < m - 1 by XXREAL_0:1;
then n + 1 <= m - 1 by INT_1:7;
then (n + 1) + (- 1) <= (m - 1) + (- 1) by XREAL_1:7;
hence n <= m - 2 ; ::_thesis: verum
end;
theorem Th4: :: CHORD:4
for n, m being odd Integer st m < n holds
m + 2 <= n
proof
let n, m be odd Integer; ::_thesis: ( m < n implies m + 2 <= n )
assume m < n ; ::_thesis: m + 2 <= n
then m + 1 <= n by INT_1:7;
then m + 1 < n by XXREAL_0:1;
then (m + 1) + 1 <= n by INT_1:7;
hence m + 2 <= n ; ::_thesis: verum
end;
theorem Th5: :: CHORD:5
for n being odd Nat st 1 <> n holds
ex m being odd Nat st m + 2 = n
proof
let n be odd Nat; ::_thesis: ( 1 <> n implies ex m being odd Nat st m + 2 = n )
A1: 1 <= n by ABIAN:12;
assume 1 <> n ; ::_thesis: ex m being odd Nat st m + 2 = n
then (2 * 0) + 1 < n by A1, XXREAL_0:1;
then 1 + 2 <= n by Th4;
then (1 + 2) - 2 <= n - 2 by XREAL_1:9;
then n - (2 * 1) in NAT by INT_1:3;
then reconsider m = n - 2 as odd Nat ;
take m ; ::_thesis: m + 2 = n
thus m + 2 = n ; ::_thesis: verum
end;
theorem Th6: :: CHORD:6
for n being odd Nat st n <= 2 holds
n = 1
proof
let n be odd Nat; ::_thesis: ( n <= 2 implies n = 1 )
assume A1: n <= 2 ; ::_thesis: n = 1
n <> 2 * 1 ;
then n < 1 + 1 by A1, XXREAL_0:1;
then A2: n <= 1 by NAT_1:13;
n >= 1 by ABIAN:12;
hence n = 1 by A2, XXREAL_0:1; ::_thesis: verum
end;
theorem Th7: :: CHORD:7
for n being odd Nat holds
( not n <= 4 or n = 1 or n = 3 )
proof
let n be odd Nat; ::_thesis: ( not n <= 4 or n = 1 or n = 3 )
assume A1: n <= 4 ; ::_thesis: ( n = 1 or n = 3 )
n <> 2 * 2 ;
then n < 3 + 1 by A1, XXREAL_0:1;
then A2: n <= 3 by NAT_1:13;
percases ( n = 3 or n < 2 + 1 ) by A2, XXREAL_0:1;
suppose n = 3 ; ::_thesis: ( n = 1 or n = 3 )
hence ( n = 1 or n = 3 ) ; ::_thesis: verum
end;
suppose n < 2 + 1 ; ::_thesis: ( n = 1 or n = 3 )
then n <= 2 by NAT_1:13;
hence ( n = 1 or n = 3 ) by Th6; ::_thesis: verum
end;
end;
end;
theorem Th8: :: CHORD:8
for n being odd Nat holds
( not n <= 6 or n = 1 or n = 3 or n = 5 )
proof
let n be odd Nat; ::_thesis: ( not n <= 6 or n = 1 or n = 3 or n = 5 )
assume A1: n <= 6 ; ::_thesis: ( n = 1 or n = 3 or n = 5 )
n <> 2 * 3 ;
then n < 5 + 1 by A1, XXREAL_0:1;
then A2: n <= 5 by NAT_1:13;
percases ( n = 5 or n < 4 + 1 ) by A2, XXREAL_0:1;
suppose n = 5 ; ::_thesis: ( n = 1 or n = 3 or n = 5 )
hence ( n = 1 or n = 3 or n = 5 ) ; ::_thesis: verum
end;
suppose n < 4 + 1 ; ::_thesis: ( n = 1 or n = 3 or n = 5 )
then n <= 4 by NAT_1:13;
hence ( n = 1 or n = 3 or n = 5 ) by Th7; ::_thesis: verum
end;
end;
end;
theorem :: CHORD:9
for n being odd Nat holds
( not n <= 8 or n = 1 or n = 3 or n = 5 or n = 7 )
proof
let n be odd Nat; ::_thesis: ( not n <= 8 or n = 1 or n = 3 or n = 5 or n = 7 )
assume A1: n <= 8 ; ::_thesis: ( n = 1 or n = 3 or n = 5 or n = 7 )
n <> 2 * 4 ;
then n < 7 + 1 by A1, XXREAL_0:1;
then A2: n <= 7 by NAT_1:13;
percases ( n = 7 or n < 6 + 1 ) by A2, XXREAL_0:1;
suppose n = 7 ; ::_thesis: ( n = 1 or n = 3 or n = 5 or n = 7 )
hence ( n = 1 or n = 3 or n = 5 or n = 7 ) ; ::_thesis: verum
end;
suppose n < 6 + 1 ; ::_thesis: ( n = 1 or n = 3 or n = 5 or n = 7 )
then n <= 6 by NAT_1:13;
hence ( n = 1 or n = 3 or n = 5 or n = 7 ) by Th8; ::_thesis: verum
end;
end;
end;
theorem Th10: :: CHORD:10
for n being even Nat st n <= 1 holds
n = 0
proof
let n be even Nat; ::_thesis: ( n <= 1 implies n = 0 )
assume A1: n <= 1 ; ::_thesis: n = 0
n <> (2 * 0) + 1 ;
then n < 0 + 1 by A1, XXREAL_0:1;
hence n = 0 by NAT_1:13; ::_thesis: verum
end;
theorem Th11: :: CHORD:11
for n being even Nat holds
( not n <= 3 or n = 0 or n = 2 )
proof
let n be even Nat; ::_thesis: ( not n <= 3 or n = 0 or n = 2 )
assume A1: n <= 3 ; ::_thesis: ( n = 0 or n = 2 )
n <> (2 * 1) + 1 ;
then n < 2 + 1 by A1, XXREAL_0:1;
then A2: n <= 2 by NAT_1:13;
percases ( n = 2 or n < 1 + 1 ) by A2, XXREAL_0:1;
suppose n = 2 ; ::_thesis: ( n = 0 or n = 2 )
hence ( n = 0 or n = 2 ) ; ::_thesis: verum
end;
suppose n < 1 + 1 ; ::_thesis: ( n = 0 or n = 2 )
then n <= 1 by NAT_1:13;
hence ( n = 0 or n = 2 ) by Th10; ::_thesis: verum
end;
end;
end;
theorem Th12: :: CHORD:12
for n being even Nat holds
( not n <= 5 or n = 0 or n = 2 or n = 4 )
proof
let n be even Nat; ::_thesis: ( not n <= 5 or n = 0 or n = 2 or n = 4 )
assume A1: n <= 5 ; ::_thesis: ( n = 0 or n = 2 or n = 4 )
n <> (2 * 2) + 1 ;
then n < 4 + 1 by A1, XXREAL_0:1;
then A2: n <= 4 by NAT_1:13;
percases ( n = 4 or n < 3 + 1 ) by A2, XXREAL_0:1;
suppose n = 4 ; ::_thesis: ( n = 0 or n = 2 or n = 4 )
hence ( n = 0 or n = 2 or n = 4 ) ; ::_thesis: verum
end;
suppose n < 3 + 1 ; ::_thesis: ( n = 0 or n = 2 or n = 4 )
then n <= 3 by NAT_1:13;
hence ( n = 0 or n = 2 or n = 4 ) by Th11; ::_thesis: verum
end;
end;
end;
theorem Th13: :: CHORD:13
for n being even Nat holds
( not n <= 7 or n = 0 or n = 2 or n = 4 or n = 6 )
proof
let n be even Nat; ::_thesis: ( not n <= 7 or n = 0 or n = 2 or n = 4 or n = 6 )
assume A1: n <= 7 ; ::_thesis: ( n = 0 or n = 2 or n = 4 or n = 6 )
n <> (2 * 3) + 1 ;
then n < 6 + 1 by A1, XXREAL_0:1;
then A2: n <= 6 by NAT_1:13;
percases ( n = 6 or n < 5 + 1 ) by A2, XXREAL_0:1;
suppose n = 6 ; ::_thesis: ( n = 0 or n = 2 or n = 4 or n = 6 )
hence ( n = 0 or n = 2 or n = 4 or n = 6 ) ; ::_thesis: verum
end;
suppose n < 5 + 1 ; ::_thesis: ( n = 0 or n = 2 or n = 4 or n = 6 )
then n <= 5 by NAT_1:13;
hence ( n = 0 or n = 2 or n = 4 or n = 6 ) by Th12; ::_thesis: verum
end;
end;
end;
Lm2: for i, j being odd Nat st i <= j holds
ex k being Nat st i + (2 * k) = j
proof
let i, j be odd Nat; ::_thesis: ( i <= j implies ex k being Nat st i + (2 * k) = j )
assume i <= j ; ::_thesis: ex k being Nat st i + (2 * k) = j
then consider jjj being Nat such that
A1: j = i + jjj by NAT_1:10;
A2: jjj in NAT by ORDINAL1:def_12;
jjj is even by A1;
then consider jj being Element of NAT such that
A3: 2 * jj = jjj by A2, ABIAN:def_2;
reconsider jj = jj as Nat ;
take jj ; ::_thesis: i + (2 * jj) = j
thus i + (2 * jj) = j by A1, A3; ::_thesis: verum
end;
theorem :: CHORD:14
for p being FinSequence
for n being non zero Nat st p is one-to-one & n <= len p holds
(p . n) .. p = n
proof
let S be FinSequence; ::_thesis: for n being non zero Nat st S is one-to-one & n <= len S holds
(S . n) .. S = n
let n be non zero Nat; ::_thesis: ( S is one-to-one & n <= len S implies (S . n) .. S = n )
assume that
A1: S is one-to-one and
A2: n <= len S ; ::_thesis: (S . n) .. S = n
set m = (S . n) .. S;
0 + 1 <= n by NAT_1:14;
then A3: n in dom S by A2, FINSEQ_3:25;
then A4: S . n in rng S by FUNCT_1:3;
then A5: S . ((S . n) .. S) = S . n by FINSEQ_4:19;
(S . n) .. S in dom S by A4, FINSEQ_4:20;
hence (S . n) .. S = n by A1, A3, A5, FUNCT_1:def_4; ::_thesis: verum
end;
theorem Th15: :: CHORD:15
for p being non empty FinSequence
for T being non empty Subset of (rng p) ex x being set st
( x in T & ( for y being set st y in T holds
x .. p <= y .. p ) )
proof
let S be non empty FinSequence; ::_thesis: for T being non empty Subset of (rng S) ex x being set st
( x in T & ( for y being set st y in T holds
x .. S <= y .. S ) )
let T be non empty Subset of (rng S); ::_thesis: ex x being set st
( x in T & ( for y being set st y in T holds
x .. S <= y .. S ) )
deffunc H1( set ) -> Element of NAT = $1 .. S;
consider m being Element of T such that
A1: for y being Element of T holds H1(m) <= H1(y) from GRAPH_5:sch_2();
take m ; ::_thesis: ( m in T & ( for y being set st y in T holds
m .. S <= y .. S ) )
thus m in T ; ::_thesis: for y being set st y in T holds
m .. S <= y .. S
let y be set ; ::_thesis: ( y in T implies m .. S <= y .. S )
assume y in T ; ::_thesis: m .. S <= y .. S
hence m .. S <= y .. S by A1; ::_thesis: verum
end;
definition
let p be FinSequence;
let n be Nat;
funcp .followSet n -> finite set equals :: CHORD:def 1
rng ((n,(len p)) -cut p);
correctness
coherence
rng ((n,(len p)) -cut p) is finite set ;
;
end;
:: deftheorem defines .followSet CHORD:def_1_:_
for p being FinSequence
for n being Nat holds p .followSet n = rng ((n,(len p)) -cut p);
theorem Th16: :: CHORD:16
for p being FinSequence
for x being set
for n being Nat st x in rng p & n in dom p & p is one-to-one holds
( x in p .followSet n iff x .. p >= n )
proof
let p be FinSequence; ::_thesis: for x being set
for n being Nat st x in rng p & n in dom p & p is one-to-one holds
( x in p .followSet n iff x .. p >= n )
let x be set ; ::_thesis: for n being Nat st x in rng p & n in dom p & p is one-to-one holds
( x in p .followSet n iff x .. p >= n )
let n be Nat; ::_thesis: ( x in rng p & n in dom p & p is one-to-one implies ( x in p .followSet n iff x .. p >= n ) )
assume that
A1: x in rng p and
A2: n in dom p and
A3: p is one-to-one ; ::_thesis: ( x in p .followSet n iff x .. p >= n )
A4: n <= len p by A2, FINSEQ_3:25;
hereby ::_thesis: ( x .. p >= n implies x in p .followSet n )
A5: p . (x .. p) = x by A1, FINSEQ_4:19;
assume x in p .followSet n ; ::_thesis: x .. p >= n
then consider a being Nat such that
A6: a in dom ((n,(len p)) -cut p) and
A7: ((n,(len p)) -cut p) . a = x by FINSEQ_2:10;
A8: x .. p in dom p by A1, FINSEQ_4:20;
n in NAT by ORDINAL1:def_12;
then ex k being Element of NAT st
( k in dom p & p . k = ((n,(len p)) -cut p) . a & k + 1 = n + a & n <= k & k <= len p ) by A6, GRAPH_3:2;
hence x .. p >= n by A3, A7, A8, A5, FUNCT_1:def_4; ::_thesis: verum
end;
assume x .. p >= n ; ::_thesis: x in p .followSet n
then consider k being Nat such that
A9: x .. p = n + k by NAT_1:10;
A10: 1 <= n by A2, FINSEQ_3:25;
then A11: (len ((n,(len p)) -cut p)) + n = (len p) + 1 by A4, GRAPH_2:def_1;
x .. p in dom p by A1, FINSEQ_4:20;
then k + n <= len p by A9, FINSEQ_3:25;
then (k + n) + (- n) <= (len p) + (- n) by XREAL_1:7;
then A12: k + 1 <= ((len p) - n) + 1 by XREAL_1:7;
then k < len ((n,(len p)) -cut p) by A11, NAT_1:13;
then A13: ((n,(len p)) -cut p) . (k + 1) = p . (x .. p) by A9, A10, A4, GRAPH_2:def_1;
A14: p . (x .. p) = x by A1, FINSEQ_4:19;
0 + 1 <= k + 1 by XREAL_1:7;
then k + 1 in dom ((n,(len p)) -cut p) by A11, A12, FINSEQ_3:25;
hence x in p .followSet n by A14, A13, FUNCT_1:3; ::_thesis: verum
end;
theorem Th17: :: CHORD:17
for p, q being FinSequence
for x being set st p = <*x*> ^ q holds
for n being non zero Nat holds p .followSet (n + 1) = q .followSet n
proof
let p, q be FinSequence; ::_thesis: for x being set st p = <*x*> ^ q holds
for n being non zero Nat holds p .followSet (n + 1) = q .followSet n
let x be set ; ::_thesis: ( p = <*x*> ^ q implies for n being non zero Nat holds p .followSet (n + 1) = q .followSet n )
assume A1: p = <*x*> ^ q ; ::_thesis: for n being non zero Nat holds p .followSet (n + 1) = q .followSet n
let n be non zero Nat; ::_thesis: p .followSet (n + 1) = q .followSet n
len <*x*> = 1 by FINSEQ_1:40;
then A2: len p = 1 + (len q) by A1, FINSEQ_1:22;
percases ( n > len q or n <= len q ) ;
supposeA3: n > len q ; ::_thesis: p .followSet (n + 1) = q .followSet n
then n + 1 > len p by A2, XREAL_1:8;
then ((n + 1),(len p)) -cut p = {} by GRAPH_2:def_1;
hence p .followSet (n + 1) = q .followSet n by A3, GRAPH_2:def_1; ::_thesis: verum
end;
supposeA4: n <= len q ; ::_thesis: p .followSet (n + 1) = q .followSet n
then A5: n + 1 <= len p by A2, XREAL_1:7;
A6: 0 + 1 <= n by NAT_1:13;
then A7: 1 <= n + 1 by XREAL_1:7;
then A8: (len (((n + 1),(len p)) -cut p)) + (n + 1) = (len p) + 1 by A5, GRAPH_2:def_1;
A9: (len ((n,(len q)) -cut q)) + n = (len q) + 1 by A4, A6, GRAPH_2:def_1;
then dom (((n + 1),(len p)) -cut p) = Seg (len ((n,(len q)) -cut q)) by A2, A8, FINSEQ_1:def_3;
then A10: dom (((n + 1),(len p)) -cut p) = dom ((n,(len q)) -cut q) by FINSEQ_1:def_3;
A11: now__::_thesis:_for_i_being_Nat_st_i_in_dom_q_holds_
p_._(i_+_1)_=_q_._i
let i be Nat; ::_thesis: ( i in dom q implies p . (i + 1) = q . i )
assume i in dom q ; ::_thesis: p . (i + 1) = q . i
then p . ((len <*x*>) + i) = q . i by A1, FINSEQ_1:def_7;
hence p . (i + 1) = q . i by FINSEQ_1:40; ::_thesis: verum
end;
A12: now__::_thesis:_for_k_being_Nat_st_k_in_dom_((n,(len_q))_-cut_q)_holds_
(((n_+_1),(len_p))_-cut_p)_._k_=_((n,(len_q))_-cut_q)_._k
let k be Nat; ::_thesis: ( k in dom ((n,(len q)) -cut q) implies (((n + 1),(len p)) -cut p) . k = ((n,(len q)) -cut q) . k )
assume A13: k in dom ((n,(len q)) -cut q) ; ::_thesis: (((n + 1),(len p)) -cut p) . k = ((n,(len q)) -cut q) . k
A14: k <= (len p) - n by A8, A10, A13, FINSEQ_3:25;
then A15: (- 1) + k < 0 + ((len p) - n) by XREAL_1:8;
1 <= k by A13, FINSEQ_3:25;
then 1 + (- 1) <= k + (- 1) by XREAL_1:7;
then k - 1 in NAT by INT_1:3;
then reconsider k1 = k - 1 as Nat ;
n + k <= n + ((len p) - n) by A14, XREAL_1:7;
then A16: ((k1 + n) + 1) + (- 1) <= ((len q) + 1) + (- 1) by A2, XREAL_1:7;
1 + 0 <= n + k1 by NAT_1:13;
then A17: n + k1 in dom q by A16, FINSEQ_3:25;
thus (((n + 1),(len p)) -cut p) . k = (((n + 1),(len p)) -cut p) . (k1 + 1)
.= p . ((n + 1) + k1) by A7, A5, A8, A15, GRAPH_2:def_1
.= p . ((n + k1) + 1)
.= q . (n + k1) by A11, A17
.= ((n,(len q)) -cut q) . (k1 + 1) by A2, A4, A6, A9, A15, GRAPH_2:def_1
.= ((n,(len q)) -cut q) . k ; ::_thesis: verum
end;
now__::_thesis:_for_y_being_set_holds_
(_(_y_in_rng_(((n_+_1),(len_p))_-cut_p)_implies_y_in_rng_((n,(len_q))_-cut_q)_)_&_(_y_in_rng_((n,(len_q))_-cut_q)_implies_y_in_rng_(((n_+_1),(len_p))_-cut_p)_)_)
let y be set ; ::_thesis: ( ( y in rng (((n + 1),(len p)) -cut p) implies y in rng ((n,(len q)) -cut q) ) & ( y in rng ((n,(len q)) -cut q) implies y in rng (((n + 1),(len p)) -cut p) ) )
hereby ::_thesis: ( y in rng ((n,(len q)) -cut q) implies y in rng (((n + 1),(len p)) -cut p) )
assume y in rng (((n + 1),(len p)) -cut p) ; ::_thesis: y in rng ((n,(len q)) -cut q)
then consider k being Nat such that
A18: k in dom (((n + 1),(len p)) -cut p) and
A19: (((n + 1),(len p)) -cut p) . k = y by FINSEQ_2:10;
(((n + 1),(len p)) -cut p) . k = ((n,(len q)) -cut q) . k by A10, A12, A18;
hence y in rng ((n,(len q)) -cut q) by A10, A18, A19, FUNCT_1:3; ::_thesis: verum
end;
assume y in rng ((n,(len q)) -cut q) ; ::_thesis: y in rng (((n + 1),(len p)) -cut p)
then consider k being Nat such that
A20: k in dom ((n,(len q)) -cut q) and
A21: ((n,(len q)) -cut q) . k = y by FINSEQ_2:10;
(((n + 1),(len p)) -cut p) . k = ((n,(len q)) -cut q) . k by A12, A20;
hence y in rng (((n + 1),(len p)) -cut p) by A10, A20, A21, FUNCT_1:3; ::_thesis: verum
end;
hence p .followSet (n + 1) = q .followSet n by TARSKI:1; ::_thesis: verum
end;
end;
end;
theorem Th18: :: CHORD:18
for X being set
for f being FinSequence of X
for g being Subset of f st len (Seq g) = len f holds
Seq g = f
proof
let X be set ; ::_thesis: for f being FinSequence of X
for g being Subset of f st len (Seq g) = len f holds
Seq g = f
let f be FinSequence of X; ::_thesis: for g being Subset of f st len (Seq g) = len f holds
Seq g = f
let g be Subset of f; ::_thesis: ( len (Seq g) = len f implies Seq g = f )
assume A1: len (Seq g) = len f ; ::_thesis: Seq g = f
A2: len (Seq g) = card g by GLIB_001:5;
now__::_thesis:_not_g_<>_f
assume g <> f ; ::_thesis: contradiction
then g c< f by XBOOLE_0:def_8;
hence contradiction by A1, A2, CARD_2:48; ::_thesis: verum
end;
hence Seq g = f by FINSEQ_3:116; ::_thesis: verum
end;
begin
theorem Th19: :: CHORD:19
for G being _Graph
for S being Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u, v being set st u in S & v in S holds
for e being set st e Joins u,v,G holds
e Joins u,v,H
proof
let G be _Graph; ::_thesis: for S being Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u, v being set st u in S & v in S holds
for e being set st e Joins u,v,G holds
e Joins u,v,H
let S be Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for u, v being set st u in S & v in S holds
for e being set st e Joins u,v,G holds
e Joins u,v,H
let H be inducedSubgraph of G,S; ::_thesis: for u, v being set st u in S & v in S holds
for e being set st e Joins u,v,G holds
e Joins u,v,H
let u, v be set ; ::_thesis: ( u in S & v in S implies for e being set st e Joins u,v,G holds
e Joins u,v,H )
assume that
A1: u in S and
A2: v in S ; ::_thesis: for e being set st e Joins u,v,G holds
e Joins u,v,H
reconsider S = S as non empty Subset of (the_Vertices_of G) by A1;
let e be set ; ::_thesis: ( e Joins u,v,G implies e Joins u,v,H )
assume A3: e Joins u,v,G ; ::_thesis: e Joins u,v,H
e in G .edgesBetween S by A1, A2, A3, GLIB_000:32;
then A4: e in the_Edges_of H by GLIB_000:def_37;
the_Target_of H = (the_Target_of G) | (the_Edges_of H) by GLIB_000:45;
then A5: (the_Target_of H) . e = (the_Target_of G) . e by A4, FUNCT_1:49;
A6: ( ( (the_Source_of G) . e = u & (the_Target_of G) . e = v ) or ( (the_Source_of G) . e = v & (the_Target_of G) . e = u ) ) by A3, GLIB_000:def_13;
the_Source_of H = (the_Source_of G) | (the_Edges_of H) by GLIB_000:45;
then (the_Source_of H) . e = (the_Source_of G) . e by A4, FUNCT_1:49;
hence e Joins u,v,H by A4, A6, A5, GLIB_000:def_13; ::_thesis: verum
end;
theorem :: CHORD:20
for G being _Graph
for W being Walk of G holds
( W is Trail-like iff len W = (2 * (card (W .edges()))) + 1 )
proof
let G be _Graph; ::_thesis: for W being Walk of G holds
( W is Trail-like iff len W = (2 * (card (W .edges()))) + 1 )
let W be Walk of G; ::_thesis: ( W is Trail-like iff len W = (2 * (card (W .edges()))) + 1 )
set WE = W .edges() ;
set WES = W .edgeSeq() ;
( W is Trail-like iff W .edgeSeq() is one-to-one ) by GLIB_001:def_27;
then ( W is Trail-like iff (2 * (card (W .edges()))) + 1 = (2 * (len (W .edgeSeq()))) + 1 ) by FINSEQ_4:62;
hence ( W is Trail-like iff len W = (2 * (card (W .edges()))) + 1 ) by GLIB_001:def_15; ::_thesis: verum
end;
theorem Th21: :: CHORD:21
for G being _Graph
for S being Subset of (the_Vertices_of G)
for H being removeVertices of G,S
for W being Walk of G st ( for n being odd Nat st n <= len W holds
not W . n in S ) holds
W is Walk of H
proof
let G be _Graph; ::_thesis: for S being Subset of (the_Vertices_of G)
for H being removeVertices of G,S
for W being Walk of G st ( for n being odd Nat st n <= len W holds
not W . n in S ) holds
W is Walk of H
let S be Subset of (the_Vertices_of G); ::_thesis: for H being removeVertices of G,S
for W being Walk of G st ( for n being odd Nat st n <= len W holds
not W . n in S ) holds
W is Walk of H
let H be removeVertices of G,S; ::_thesis: for W being Walk of G st ( for n being odd Nat st n <= len W holds
not W . n in S ) holds
W is Walk of H
let W be Walk of G; ::_thesis: ( ( for n being odd Nat st n <= len W holds
not W . n in S ) implies W is Walk of H )
assume A1: for n being odd Nat st n <= len W holds
not W . n in S ; ::_thesis: W is Walk of H
A2: now__::_thesis:_not_(the_Vertices_of_G)_\_S_=_{}
assume (the_Vertices_of G) \ S = {} ; ::_thesis: contradiction
then A3: the_Vertices_of G c= S by XBOOLE_1:37;
W .last() in the_Vertices_of G ;
hence contradiction by A1, A3; ::_thesis: verum
end;
then A4: the_Edges_of H = G .edgesBetween ((the_Vertices_of G) \ S) by GLIB_000:def_37;
A5: W .edges() c= G .edgesBetween (W .vertices()) by GLIB_001:109;
A6: the_Vertices_of H = (the_Vertices_of G) \ S by A2, GLIB_000:def_37;
now__::_thesis:_for_x_being_set_st_x_in_W_.vertices()_holds_
x_in_the_Vertices_of_H
let x be set ; ::_thesis: ( x in W .vertices() implies x in the_Vertices_of H )
assume A7: x in W .vertices() ; ::_thesis: x in the_Vertices_of H
ex n being odd Element of NAT st
( n <= len W & W . n = x ) by A7, GLIB_001:87;
then not x in S by A1;
hence x in the_Vertices_of H by A6, A7, XBOOLE_0:def_5; ::_thesis: verum
end;
then A8: W .vertices() c= the_Vertices_of H by TARSKI:def_3;
then G .edgesBetween (W .vertices()) c= G .edgesBetween (the_Vertices_of H) by GLIB_000:36;
then W .edges() c= G .edgesBetween (the_Vertices_of H) by A5, XBOOLE_1:1;
hence W is Walk of H by A6, A4, A8, GLIB_001:170; ::_thesis: verum
end;
theorem Th22: :: CHORD:22
for G being _Graph
for a, b being set st a <> b holds
for W being Walk of G st W .vertices() = {a,b} holds
ex e being set st e Joins a,b,G
proof
let G be _Graph; ::_thesis: for a, b being set st a <> b holds
for W being Walk of G st W .vertices() = {a,b} holds
ex e being set st e Joins a,b,G
let a, b be set ; ::_thesis: ( a <> b implies for W being Walk of G st W .vertices() = {a,b} holds
ex e being set st e Joins a,b,G )
assume A1: a <> b ; ::_thesis: for W being Walk of G st W .vertices() = {a,b} holds
ex e being set st e Joins a,b,G
let W be Walk of G; ::_thesis: ( W .vertices() = {a,b} implies ex e being set st e Joins a,b,G )
assume A2: W .vertices() = {a,b} ; ::_thesis: ex e being set st e Joins a,b,G
A3: W .first() in W .vertices() by GLIB_001:88;
A4: now__::_thesis:_for_x_being_set_st_W_.first()_=_x_holds_
for_y_being_set_st_y_in_{a,b}_\_{x}_holds_
ex_e_being_set_st_e_Joins_x,y,G
let x be set ; ::_thesis: ( W .first() = x implies for y being set st y in {a,b} \ {x} holds
ex e being set st e Joins x,y,G )
assume A5: W .first() = x ; ::_thesis: for y being set st y in {a,b} \ {x} holds
ex e being set st e Joins x,y,G
A6: ( x = a or x = b ) by A2, A3, A5, TARSKI:def_2;
A7: x in {x} by TARSKI:def_1;
let y be set ; ::_thesis: ( y in {a,b} \ {x} implies ex e being set st e Joins x,y,G )
assume A8: y in {a,b} \ {x} ; ::_thesis: ex e being set st e Joins x,y,G
A9: ( y = a or y = b ) by A8, TARSKI:def_2;
set k = W .find y;
A10: W . (W .find y) = y by A2, A8, GLIB_001:def_19;
then W .find y <> 1 by A5, A8, A7, XBOOLE_0:def_5;
then consider m being odd Nat such that
A11: m + 2 = W .find y by Th5;
A12: m < W .find y by A11, NAT_1:16;
W .find y <= len W by A2, A8, GLIB_001:def_19;
then A13: m < len W by A11, NAT_1:16, XXREAL_0:2;
A14: m in NAT by ORDINAL1:def_12;
then W . m in {a,b} by A2, A13, GLIB_001:87;
then A15: ( W . m = a or W . m = b ) by TARSKI:def_2;
W . (m + 1) Joins W . m,W . (W .find y),G by A11, A13, A14, GLIB_001:def_3;
hence ex e being set st e Joins x,y,G by A2, A8, A7, A6, A10, A12, A13, A15, A9, GLIB_001:def_19, XBOOLE_0:def_5; ::_thesis: verum
end;
percases ( W .first() = a or W .first() = b ) by A2, A3, TARSKI:def_2;
supposeA16: W .first() = a ; ::_thesis: ex e being set st e Joins a,b,G
b in {b} by TARSKI:def_1;
then b in {a,b} \ {a} by A1, ZFMISC_1:17;
hence ex e being set st e Joins a,b,G by A4, A16; ::_thesis: verum
end;
supposeA17: W .first() = b ; ::_thesis: ex e being set st e Joins a,b,G
a in {a} by TARSKI:def_1;
then a in {a,b} \ {b} by A1, ZFMISC_1:17;
then ex e being set st e Joins b,a,G by A4, A17;
hence ex e being set st e Joins a,b,G by GLIB_000:14; ::_thesis: verum
end;
end;
end;
theorem Th23: :: CHORD:23
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W being Walk of G st W .vertices() c= S holds
W is Walk of H
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W being Walk of G st W .vertices() c= S holds
W is Walk of H
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for W being Walk of G st W .vertices() c= S holds
W is Walk of H
let H be inducedSubgraph of G,S; ::_thesis: for W being Walk of G st W .vertices() c= S holds
W is Walk of H
A1: the_Vertices_of H = S by GLIB_000:def_37;
A2: the_Edges_of H = G .edgesBetween S by GLIB_000:def_37;
let W be Walk of G; ::_thesis: ( W .vertices() c= S implies W is Walk of H )
assume W .vertices() c= S ; ::_thesis: W is Walk of H
then A3: W .vertices() c= the_Vertices_of H by GLIB_000:def_37;
A4: W .edges() c= G .edgesBetween (W .vertices()) by GLIB_001:109;
G .edgesBetween (W .vertices()) c= G .edgesBetween (the_Vertices_of H) by A3, GLIB_000:36;
then W .edges() c= the_Edges_of H by A1, A2, A4, XBOOLE_1:1;
hence W is Walk of H by A3, GLIB_001:170; ::_thesis: verum
end;
theorem Th24: :: CHORD:24
for G1, G2 being _Graph st G1 == G2 holds
for W1 being Walk of G1
for W2 being Walk of G2 st W1 = W2 & W1 is Cycle-like holds
W2 is Cycle-like
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 implies for W1 being Walk of G1
for W2 being Walk of G2 st W1 = W2 & W1 is Cycle-like holds
W2 is Cycle-like )
assume A1: G1 == G2 ; ::_thesis: for W1 being Walk of G1
for W2 being Walk of G2 st W1 = W2 & W1 is Cycle-like holds
W2 is Cycle-like
let W1 be Walk of G1; ::_thesis: for W2 being Walk of G2 st W1 = W2 & W1 is Cycle-like holds
W2 is Cycle-like
let W2 be Walk of G2; ::_thesis: ( W1 = W2 & W1 is Cycle-like implies W2 is Cycle-like )
assume A2: W1 = W2 ; ::_thesis: ( not W1 is Cycle-like or W2 is Cycle-like )
assume A3: W1 is Cycle-like ; ::_thesis: W2 is Cycle-like
then len W2 <> 1 by A2, GLIB_001:126;
then A4: not W2 is trivial by GLIB_001:126;
W1 .first() = W1 .last() by A3, GLIB_001:def_24;
then W2 .first() = W2 .last() by A2;
then A5: W2 is closed by GLIB_001:def_24;
W2 is Path-like by A1, A2, A3, GLIB_001:181;
hence W2 is Cycle-like by A4, A5, GLIB_001:def_31; ::_thesis: verum
end;
theorem Th25: :: CHORD:25
for G being _Graph
for P being Path of G
for m, n being odd Nat st m <= len P & n <= len P & P . m = P . n & not m = n & not ( m = 1 & n = len P ) holds
( m = len P & n = 1 )
proof
let G be _Graph; ::_thesis: for P being Path of G
for m, n being odd Nat st m <= len P & n <= len P & P . m = P . n & not m = n & not ( m = 1 & n = len P ) holds
( m = len P & n = 1 )
let P be Path of G; ::_thesis: for m, n being odd Nat st m <= len P & n <= len P & P . m = P . n & not m = n & not ( m = 1 & n = len P ) holds
( m = len P & n = 1 )
let m, n be odd Nat; ::_thesis: ( m <= len P & n <= len P & P . m = P . n & not m = n & not ( m = 1 & n = len P ) implies ( m = len P & n = 1 ) )
assume that
A1: m <= len P and
A2: n <= len P and
A3: P . m = P . n ; ::_thesis: ( m = n or ( m = 1 & n = len P ) or ( m = len P & n = 1 ) )
A4: m in NAT by ORDINAL1:def_12;
A5: n in NAT by ORDINAL1:def_12;
( m = n or m < n or n < m ) by XXREAL_0:1;
hence ( m = n or ( m = 1 & n = len P ) or ( m = len P & n = 1 ) ) by A1, A2, A3, A4, A5, GLIB_001:def_28; ::_thesis: verum
end;
theorem :: CHORD:26
for G being _Graph
for P being Path of G st P is open holds
for a, e, b being set st not a in P .vertices() & b = P .first() & e Joins a,b,G holds
(G .walkOf (a,e,b)) .append P is Path-like
proof
let G be _Graph; ::_thesis: for P being Path of G st P is open holds
for a, e, b being set st not a in P .vertices() & b = P .first() & e Joins a,b,G holds
(G .walkOf (a,e,b)) .append P is Path-like
let P be Path of G; ::_thesis: ( P is open implies for a, e, b being set st not a in P .vertices() & b = P .first() & e Joins a,b,G holds
(G .walkOf (a,e,b)) .append P is Path-like )
assume A1: P is open ; ::_thesis: for a, e, b being set st not a in P .vertices() & b = P .first() & e Joins a,b,G holds
(G .walkOf (a,e,b)) .append P is Path-like
let a, e, b be set ; ::_thesis: ( not a in P .vertices() & b = P .first() & e Joins a,b,G implies (G .walkOf (a,e,b)) .append P is Path-like )
assume that
A2: not a in P .vertices() and
A3: b = P .first() and
A4: e Joins a,b,G ; ::_thesis: (G .walkOf (a,e,b)) .append P is Path-like
set T = G .walkOf (a,e,b);
A5: (G .walkOf (a,e,b)) .last() = P .first() by A3, A4, GLIB_001:15;
set J = (G .walkOf (a,e,b)) .append P;
3 in Seg 3 by FINSEQ_1:3;
then 3 in Seg (len (G .walkOf (a,e,b))) by A4, GLIB_001:14;
then 3 in dom (G .walkOf (a,e,b)) by FINSEQ_1:def_3;
then ((G .walkOf (a,e,b)) .append P) . 3 = (G .walkOf (a,e,b)) . 3 by GLIB_001:32;
then A6: ((G .walkOf (a,e,b)) .append P) . 3 = (G .walkOf (a,e,b)) .last() by A4, GLIB_001:14;
then A7: ((G .walkOf (a,e,b)) .append P) . 3 = b by A4, GLIB_001:15;
A8: now__::_thesis:_for_m,_n_being_odd_Nat_st_m_<_n_&_n_<=_len_((G_.walkOf_(a,e,b))_.append_P)_holds_
not_((G_.walkOf_(a,e,b))_.append_P)_._m_=_((G_.walkOf_(a,e,b))_.append_P)_._n
let m, n be odd Nat; ::_thesis: ( m < n & n <= len ((G .walkOf (a,e,b)) .append P) implies not ((G .walkOf (a,e,b)) .append P) . m = ((G .walkOf (a,e,b)) .append P) . n )
assume that
A9: m < n and
A10: n <= len ((G .walkOf (a,e,b)) .append P) ; ::_thesis: not ((G .walkOf (a,e,b)) .append P) . m = ((G .walkOf (a,e,b)) .append P) . n
assume A11: ((G .walkOf (a,e,b)) .append P) . m = ((G .walkOf (a,e,b)) .append P) . n ; ::_thesis: contradiction
A12: 1 <= m by ABIAN:12;
then (2 * 0) + 1 < n by A9, XXREAL_0:2;
then A13: 1 + 2 <= n by Th4;
now__::_thesis:_not_m_=_1
assume m = 1 ; ::_thesis: contradiction
then ((G .walkOf (a,e,b)) .append P) . m = ((G .walkOf (a,e,b)) .append P) .first() ;
then ((G .walkOf (a,e,b)) .append P) . m = (G .walkOf (a,e,b)) .first() by A5, GLIB_001:30;
then A14: not ((G .walkOf (a,e,b)) .append P) . m in P .vertices() by A2, A4, GLIB_001:15;
percases ( n = 3 or n > 3 ) by A13, XXREAL_0:1;
suppose n = 3 ; ::_thesis: contradiction
hence contradiction by A3, A7, A11, A14, GLIB_001:88; ::_thesis: verum
end;
supposeA15: n > 3 ; ::_thesis: contradiction
then not n in Seg 3 by FINSEQ_1:1;
then not n in Seg (len (G .walkOf (a,e,b))) by A4, GLIB_001:14;
then A16: not n in dom (G .walkOf (a,e,b)) by FINSEQ_1:def_3;
1 <= n by A15, XXREAL_0:2;
then n in dom ((G .walkOf (a,e,b)) .append P) by A10, FINSEQ_3:25;
then consider j being Element of NAT such that
A17: j < len P and
A18: n = (len (G .walkOf (a,e,b))) + j by A16, GLIB_001:34;
reconsider jj = j as even Nat by A18;
reconsider j1 = jj + 1 as odd Nat ;
j + 1 <= len P by A17, NAT_1:13;
then P . j1 in P .vertices() by GLIB_001:87;
hence contradiction by A5, A11, A14, A17, A18, GLIB_001:33; ::_thesis: verum
end;
end;
end;
then (2 * 0) + 1 < m by A12, XXREAL_0:1;
then A19: 1 + 2 <= m by Th4;
then 3 <= n by A9, XXREAL_0:2;
then 1 <= n by XXREAL_0:2;
then n in Seg (len ((G .walkOf (a,e,b)) .append P)) by A10, FINSEQ_1:1;
then A20: n in dom ((G .walkOf (a,e,b)) .append P) by FINSEQ_1:def_3;
3 < n by A9, A19, XXREAL_0:2;
then not n in Seg 3 by FINSEQ_1:1;
then not n in Seg (len (G .walkOf (a,e,b))) by A4, GLIB_001:14;
then not n in dom (G .walkOf (a,e,b)) by FINSEQ_1:def_3;
then consider j being Element of NAT such that
A21: j < len P and
A22: n = (len (G .walkOf (a,e,b))) + j by A20, GLIB_001:34;
reconsider jj = j as even Nat by A22;
reconsider j1 = jj + 1 as odd Nat ;
A23: j1 <= len P by A21, NAT_1:13;
m < len ((G .walkOf (a,e,b)) .append P) by A9, A10, XXREAL_0:2;
then A24: m in dom ((G .walkOf (a,e,b)) .append P) by A12, FINSEQ_3:25;
A25: ((G .walkOf (a,e,b)) .append P) . n = P . (j + 1) by A5, A21, A22, GLIB_001:33;
now__::_thesis:_not_m_=_3
assume m = 3 ; ::_thesis: contradiction
then A26: ((G .walkOf (a,e,b)) .append P) . m = P . 1 by A3, A4, A6, GLIB_001:15;
0 <> j by A4, A9, A19, A22, GLIB_001:14;
then (2 * 0) + 1 < j1 by XREAL_1:8;
hence contradiction by A1, A11, A25, A23, A26, GLIB_001:147; ::_thesis: verum
end;
then 3 < m by A19, XXREAL_0:1;
then not m in Seg 3 by FINSEQ_1:1;
then not m in Seg (len (G .walkOf (a,e,b))) by A4, GLIB_001:14;
then not m in dom (G .walkOf (a,e,b)) by FINSEQ_1:def_3;
then consider k being Element of NAT such that
A27: k < len P and
A28: m = (len (G .walkOf (a,e,b))) + k by A24, GLIB_001:34;
reconsider kk = k as even Nat by A28;
reconsider k1 = kk + 1 as odd Nat ;
k < j by A9, A22, A28, XREAL_1:7;
then A29: k1 < j1 by XREAL_1:8;
((G .walkOf (a,e,b)) .append P) . m = P . (k + 1) by A5, A27, A28, GLIB_001:33;
hence contradiction by A1, A11, A25, A23, A29, GLIB_001:147; ::_thesis: verum
end;
now__::_thesis:_for_m,_n_being_odd_Element_of_NAT_st_m_<=_len_((G_.walkOf_(a,e,b))_.append_P)_&_n_<=_len_((G_.walkOf_(a,e,b))_.append_P)_&_((G_.walkOf_(a,e,b))_.append_P)_._m_=_((G_.walkOf_(a,e,b))_.append_P)_._n_holds_
n_=_m
let m, n be odd Element of NAT ; ::_thesis: ( m <= len ((G .walkOf (a,e,b)) .append P) & n <= len ((G .walkOf (a,e,b)) .append P) & ((G .walkOf (a,e,b)) .append P) . m = ((G .walkOf (a,e,b)) .append P) . n implies n = m )
assume that
A30: m <= len ((G .walkOf (a,e,b)) .append P) and
A31: n <= len ((G .walkOf (a,e,b)) .append P) ; ::_thesis: ( ((G .walkOf (a,e,b)) .append P) . m = ((G .walkOf (a,e,b)) .append P) . n implies n = m )
assume A32: ((G .walkOf (a,e,b)) .append P) . m = ((G .walkOf (a,e,b)) .append P) . n ; ::_thesis: n = m
then A33: not n < m by A8, A30;
m >= n by A8, A31, A32;
hence n = m by A33, XXREAL_0:1; ::_thesis: verum
end;
hence (G .walkOf (a,e,b)) .append P is Path-like by GLIB_001:146; ::_thesis: verum
end;
theorem Th27: :: CHORD:27
for G being _Graph
for P, H being Path of G st P .edges() misses H .edges() & P is open & not H is trivial & H is open & (P .vertices()) /\ (H .vertices()) = {(P .first()),(P .last())} & H .first() = P .last() & H .last() = P .first() holds
P .append H is Cycle-like
proof
let G be _Graph; ::_thesis: for P, H being Path of G st P .edges() misses H .edges() & P is open & not H is trivial & H is open & (P .vertices()) /\ (H .vertices()) = {(P .first()),(P .last())} & H .first() = P .last() & H .last() = P .first() holds
P .append H is Cycle-like
let P, H be Path of G; ::_thesis: ( P .edges() misses H .edges() & P is open & not H is trivial & H is open & (P .vertices()) /\ (H .vertices()) = {(P .first()),(P .last())} & H .first() = P .last() & H .last() = P .first() implies P .append H is Cycle-like )
assume that
A1: P .edges() misses H .edges() and
A2: P is open and
A3: not H is trivial and
A4: H is open and
A5: (P .vertices()) /\ (H .vertices()) = {(P .first()),(P .last())} and
A6: H .first() = P .last() and
A7: H .last() = P .first() ; ::_thesis: P .append H is Cycle-like
set J = P .append H;
A8: (P .append H) .first() = P .first() by A6, GLIB_001:30;
A9: now__::_thesis:_for_m_being_odd_Nat_st_m_<=_len_P_holds_
(P_.append_H)_._m_=_P_._m
let m be odd Nat; ::_thesis: ( m <= len P implies (P .append H) . m = P . m )
A10: 1 <= m by ABIAN:12;
assume m <= len P ; ::_thesis: (P .append H) . m = P . m
then m in dom P by A10, FINSEQ_3:25;
hence (P .append H) . m = P . m by GLIB_001:32; ::_thesis: verum
end;
A11: for m being odd Nat st m > len P & m <= len (P .append H) holds
( m in dom (P .append H) & not m in dom P )
proof
let m be odd Nat; ::_thesis: ( m > len P & m <= len (P .append H) implies ( m in dom (P .append H) & not m in dom P ) )
assume that
A12: m > len P and
A13: m <= len (P .append H) ; ::_thesis: ( m in dom (P .append H) & not m in dom P )
1 <= m by ABIAN:12;
hence ( m in dom (P .append H) & not m in dom P ) by A12, A13, FINSEQ_3:25; ::_thesis: verum
end;
A14: ((len (P .append H)) + 1) + (- 1) = ((len P) + (len H)) + (- 1) by A6, GLIB_001:28;
A15: now__::_thesis:_for_m,_n_being_odd_Element_of_NAT_st_m_<_n_&_n_<=_len_(P_.append_H)_&_(P_.append_H)_._m_=_(P_.append_H)_._n_holds_
(_m_=_1_&_n_=_len_(P_.append_H)_)
let m, n be odd Element of NAT ; ::_thesis: ( m < n & n <= len (P .append H) & (P .append H) . b1 = (P .append H) . b2 implies ( b1 = 1 & b2 = len (P .append H) ) )
assume that
A16: m < n and
A17: n <= len (P .append H) ; ::_thesis: ( (P .append H) . b1 = (P .append H) . b2 implies ( b1 = 1 & b2 = len (P .append H) ) )
A18: m <= len (P .append H) by A16, A17, XXREAL_0:2;
A19: 1 <= m by ABIAN:12;
percases ( ( m <= len P & n <= len P ) or ( m <= len P & n > len P ) or ( m > len P & n <= len P ) or ( m > len P & n > len P ) ) ;
supposeA20: ( m <= len P & n <= len P ) ; ::_thesis: ( (P .append H) . b1 = (P .append H) . b2 implies ( b1 = 1 & b2 = len (P .append H) ) )
then A21: P . m = (P .append H) . m by A9;
P . m <> P . n by A2, A16, A20, GLIB_001:147;
hence ( (P .append H) . m = (P .append H) . n implies ( m = 1 & n = len (P .append H) ) ) by A9, A20, A21; ::_thesis: verum
end;
supposeA22: ( m <= len P & n > len P ) ; ::_thesis: ( (P .append H) . b1 = (P .append H) . b2 implies ( b1 = 1 & b2 = len (P .append H) ) )
then A23: (P .append H) . m = P . m by A9;
A24: not n in dom P by A11, A17, A22;
n in dom (P .append H) by A11, A17, A22;
then consider j being Element of NAT such that
A25: j < len H and
A26: n = (len P) + j by A24, GLIB_001:34;
reconsider jj = j as even Nat by A26;
reconsider j1 = jj + 1 as odd Nat ;
A27: j1 <= len H by A25, NAT_1:13;
A28: (P .append H) . n = H . (j + 1) by A6, A25, A26, GLIB_001:33;
now__::_thesis:_(_(P_.append_H)_._m_=_(P_.append_H)_._n_implies_(_m_=_1_&_n_=_len_(P_.append_H)_)_)
assume A29: (P .append H) . m = (P .append H) . n ; ::_thesis: ( m = 1 & n = len (P .append H) )
A30: now__::_thesis:_not_(P_.append_H)_._m_=_P_.last()
j <> 0 by A22, A26;
then 0 + 1 < j1 by XREAL_1:8;
then A31: H . ((2 * 0) + 1) <> H . j1 by A4, A27, GLIB_001:147;
assume (P .append H) . m = P .last() ; ::_thesis: contradiction
hence contradiction by A6, A25, A26, A29, A31, GLIB_001:33; ::_thesis: verum
end;
A32: (P .append H) . m in P .vertices() by A22, A23, GLIB_001:87;
(P .append H) . m in H .vertices() by A28, A27, A29, GLIB_001:87;
then A33: (P .append H) . m in (P .vertices()) /\ (H .vertices()) by A32, XBOOLE_0:def_4;
then A34: (P .append H) . n = H .last() by A5, A7, A29, A30, TARSKI:def_2;
A35: now__::_thesis:_not_n_<_len_(P_.append_H)
assume n < len (P .append H) ; ::_thesis: contradiction
then j1 <> len H by A14, A26;
then A36: j1 < len H by A27, XXREAL_0:1;
H . j1 = H . (len H) by A6, A25, A26, A34, GLIB_001:33;
hence contradiction by A4, A36, GLIB_001:147; ::_thesis: verum
end;
A37: (P .append H) . m = P .first() by A5, A33, A30, TARSKI:def_2;
now__::_thesis:_not_1_<_m
assume 1 < m ; ::_thesis: contradiction
then P . m <> P . ((2 * 0) + 1) by A2, A22, GLIB_001:147;
hence contradiction by A9, A22, A37; ::_thesis: verum
end;
hence ( m = 1 & n = len (P .append H) ) by A17, A19, A35, XXREAL_0:1; ::_thesis: verum
end;
hence ( (P .append H) . m = (P .append H) . n implies ( m = 1 & n = len (P .append H) ) ) ; ::_thesis: verum
end;
suppose ( m > len P & n <= len P ) ; ::_thesis: ( (P .append H) . b1 = (P .append H) . b2 implies ( b1 = 1 & b2 = len (P .append H) ) )
hence ( (P .append H) . m = (P .append H) . n implies ( m = 1 & n = len (P .append H) ) ) by A16, XXREAL_0:2; ::_thesis: verum
end;
supposeA38: ( m > len P & n > len P ) ; ::_thesis: ( (P .append H) . b1 = (P .append H) . b2 implies ( b1 = 1 & b2 = len (P .append H) ) )
then A39: not n in dom P by A11, A17;
n in dom (P .append H) by A11, A17, A38;
then consider j being Element of NAT such that
A40: j < len H and
A41: n = (len P) + j by A39, GLIB_001:34;
reconsider jj = j as even Nat by A41;
reconsider j1 = jj + 1 as odd Element of NAT ;
A42: j1 <= len H by A40, NAT_1:13;
A43: not m in dom P by A11, A18, A38;
m in dom (P .append H) by A11, A18, A38;
then consider k being Element of NAT such that
A44: k < len H and
A45: m = (len P) + k by A43, GLIB_001:34;
reconsider kk = k as even Nat by A45;
reconsider k1 = kk + 1 as odd Nat ;
k < j by A16, A45, A41, XREAL_1:7;
then A46: k1 < j1 by XREAL_1:8;
A47: (P .append H) . ((len P) + j) = H . (j + 1) by A6, A40, GLIB_001:33;
(P .append H) . ((len P) + k) = H . (k + 1) by A6, A44, GLIB_001:33;
hence ( (P .append H) . m = (P .append H) . n implies ( m = 1 & n = len (P .append H) ) ) by A4, A45, A41, A47, A46, A42, GLIB_001:147; ::_thesis: verum
end;
end;
end;
A48: H .edgeSeq() is one-to-one by GLIB_001:def_27;
now__::_thesis:_not_len_(P_.append_H)_=_1
assume len (P .append H) = 1 ; ::_thesis: contradiction
then A49: 1 + 1 = (len P) + (len H) by A6, GLIB_001:28;
now__::_thesis:_not_len_P_<>_1
assume A50: len P <> 1 ; ::_thesis: contradiction
1 <= len P by Th2;
then 1 < len P by A50, XXREAL_0:1;
then (len P) + (len H) <= len P by A49, NAT_1:13;
then ((len P) + (len H)) + (- (len P)) <= (len P) + (- (len P)) by XREAL_1:7;
then len H <= 0 ;
hence contradiction ; ::_thesis: verum
end;
hence contradiction by A3, A49, GLIB_001:126; ::_thesis: verum
end;
then A51: not P .append H is trivial by GLIB_001:126;
(P .append H) .last() = P .first() by A6, A7, GLIB_001:30;
then A52: P .append H is closed by A8, GLIB_001:def_24;
P .edgeSeq() is one-to-one by GLIB_001:def_27;
then (P .edgeSeq()) ^ (H .edgeSeq()) is one-to-one by A1, A48, FINSEQ_3:91;
then (P .append H) .edgeSeq() is one-to-one by A6, GLIB_001:85;
then P .append H is Trail-like by GLIB_001:def_27;
then P .append H is Path-like by A15, GLIB_001:def_28;
hence P .append H is Cycle-like by A52, A51, GLIB_001:def_31; ::_thesis: verum
end;
theorem Th28: :: CHORD:28
for G being _Graph
for W1, W2 being Walk of G st W1 .last() = W2 .first() holds
(W1 .append W2) .length() = (W1 .length()) + (W2 .length())
proof
let G be _Graph; ::_thesis: for W1, W2 being Walk of G st W1 .last() = W2 .first() holds
(W1 .append W2) .length() = (W1 .length()) + (W2 .length())
let P, H be Walk of G; ::_thesis: ( P .last() = H .first() implies (P .append H) .length() = (P .length()) + (H .length()) )
assume H .first() = P .last() ; ::_thesis: (P .append H) .length() = (P .length()) + (H .length())
hence (P .append H) .length() = len ((P .edgeSeq()) ^ (H .edgeSeq())) by GLIB_001:85
.= (P .length()) + (H .length()) by FINSEQ_1:22 ;
::_thesis: verum
end;
theorem Th29: :: CHORD:29
for G being _Graph
for A, B being non empty Subset of (the_Vertices_of G) st B c= A holds
for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of H1,B holds H2 is inducedSubgraph of G,B
proof
let G be _Graph; ::_thesis: for A, B being non empty Subset of (the_Vertices_of G) st B c= A holds
for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of H1,B holds H2 is inducedSubgraph of G,B
let A, B be non empty Subset of (the_Vertices_of G); ::_thesis: ( B c= A implies for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of H1,B holds H2 is inducedSubgraph of G,B )
assume A1: B c= A ; ::_thesis: for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of H1,B holds H2 is inducedSubgraph of G,B
let H1 be inducedSubgraph of G,A; ::_thesis: for H2 being inducedSubgraph of H1,B holds H2 is inducedSubgraph of G,B
let H2 be inducedSubgraph of H1,B; ::_thesis: H2 is inducedSubgraph of G,B
A2: the_Vertices_of H1 = A by GLIB_000:def_37;
then A3: the_Vertices_of H2 = B by A1, GLIB_000:def_37;
A4: now__::_thesis:_for_e_being_set_st_e_in_G_.edgesBetween_B_holds_
e_in_the_Edges_of_H2
let e be set ; ::_thesis: ( e in G .edgesBetween B implies e in the_Edges_of H2 )
assume A5: e in G .edgesBetween B ; ::_thesis: e in the_Edges_of H2
A6: (the_Target_of G) . e in B by A5, GLIB_000:31;
A7: (the_Source_of G) . e in B by A5, GLIB_000:31;
then e in G .edgesBetween A by A1, A5, A6, GLIB_000:31;
then A8: e in the_Edges_of H1 by GLIB_000:def_37;
then A9: (the_Target_of H1) . e = (the_Target_of G) . e by GLIB_000:def_32;
(the_Source_of H1) . e = (the_Source_of G) . e by A8, GLIB_000:def_32;
then e in H1 .edgesBetween B by A7, A6, A8, A9, GLIB_000:31;
hence e in the_Edges_of H2 by A1, A2, GLIB_000:def_37; ::_thesis: verum
end;
H1 .edgesBetween B c= G .edgesBetween B by GLIB_000:76;
then the_Edges_of H2 c= G .edgesBetween B by A1, A2, GLIB_000:def_37;
then for x being set holds
( x in the_Edges_of H2 iff x in G .edgesBetween B ) by A4;
then A10: the_Edges_of H2 = G .edgesBetween B by TARSKI:1;
A11: now__::_thesis:_for_e_being_set_st_e_in_the_Edges_of_H2_holds_
(_(the_Source_of_H2)_._e_=_(the_Source_of_G)_._e_&_(the_Target_of_H2)_._e_=_(the_Target_of_G)_._e_)
let e be set ; ::_thesis: ( e in the_Edges_of H2 implies ( (the_Source_of H2) . e = (the_Source_of G) . e & (the_Target_of H2) . e = (the_Target_of G) . e ) )
assume A12: e in the_Edges_of H2 ; ::_thesis: ( (the_Source_of H2) . e = (the_Source_of G) . e & (the_Target_of H2) . e = (the_Target_of G) . e )
A13: (the_Target_of H2) . e = (the_Target_of H1) . e by A12, GLIB_000:def_32;
(the_Source_of H2) . e = (the_Source_of H1) . e by A12, GLIB_000:def_32;
hence ( (the_Source_of H2) . e = (the_Source_of G) . e & (the_Target_of H2) . e = (the_Target_of G) . e ) by A12, A13, GLIB_000:def_32; ::_thesis: verum
end;
the_Edges_of H2 c= the_Edges_of H1 ;
then the_Edges_of H2 c= the_Edges_of G by XBOOLE_1:1;
then H2 is Subgraph of G by A3, A11, GLIB_000:def_32;
hence H2 is inducedSubgraph of G,B by A3, A10, GLIB_000:def_37; ::_thesis: verum
end;
theorem Th30: :: CHORD:30
for G being _Graph
for A, B being non empty Subset of (the_Vertices_of G) st B c= A holds
for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of G,B holds H2 is inducedSubgraph of H1,B
proof
let G be _Graph; ::_thesis: for A, B being non empty Subset of (the_Vertices_of G) st B c= A holds
for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of G,B holds H2 is inducedSubgraph of H1,B
let A, B be non empty Subset of (the_Vertices_of G); ::_thesis: ( B c= A implies for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of G,B holds H2 is inducedSubgraph of H1,B )
assume A1: B c= A ; ::_thesis: for H1 being inducedSubgraph of G,A
for H2 being inducedSubgraph of G,B holds H2 is inducedSubgraph of H1,B
let H1 be inducedSubgraph of G,A; ::_thesis: for H2 being inducedSubgraph of G,B holds H2 is inducedSubgraph of H1,B
let H2 be inducedSubgraph of G,B; ::_thesis: H2 is inducedSubgraph of H1,B
A2: the_Edges_of H2 = G .edgesBetween B by GLIB_000:def_37;
the_Edges_of H1 = G .edgesBetween A by GLIB_000:def_37;
then A3: the_Edges_of H2 c= the_Edges_of H1 by A1, A2, GLIB_000:36;
A4: now__::_thesis:_for_e_being_set_st_e_in_the_Edges_of_H2_holds_
e_in_H1_.edgesBetween_B
let e be set ; ::_thesis: ( e in the_Edges_of H2 implies e in H1 .edgesBetween B )
assume A5: e in the_Edges_of H2 ; ::_thesis: e in H1 .edgesBetween B
A6: (the_Target_of G) . e = (the_Target_of H1) . e by A3, A5, GLIB_000:def_32;
A7: (the_Target_of G) . e in B by A2, A5, GLIB_000:31;
A8: (the_Source_of G) . e in B by A2, A5, GLIB_000:31;
(the_Source_of G) . e = (the_Source_of H1) . e by A3, A5, GLIB_000:def_32;
hence e in H1 .edgesBetween B by A3, A5, A6, A8, A7, GLIB_000:31; ::_thesis: verum
end;
H1 .edgesBetween B c= the_Edges_of H2 by A2, GLIB_000:76;
then for x being set holds
( x in the_Edges_of H2 iff x in H1 .edgesBetween B ) by A4;
then A9: the_Edges_of H2 = H1 .edgesBetween B by TARSKI:1;
A10: the_Vertices_of H1 = A by GLIB_000:def_37;
A11: the_Vertices_of H2 = B by GLIB_000:def_37;
now__::_thesis:_for_e_being_set_st_e_in_the_Edges_of_H2_holds_
(_(the_Source_of_H2)_._e_=_(the_Source_of_H1)_._e_&_(the_Target_of_H2)_._e_=_(the_Target_of_H1)_._e_)
let e be set ; ::_thesis: ( e in the_Edges_of H2 implies ( (the_Source_of H2) . e = (the_Source_of H1) . e & (the_Target_of H2) . e = (the_Target_of H1) . e ) )
assume A12: e in the_Edges_of H2 ; ::_thesis: ( (the_Source_of H2) . e = (the_Source_of H1) . e & (the_Target_of H2) . e = (the_Target_of H1) . e )
thus (the_Source_of H2) . e = (the_Source_of G) . e by A12, GLIB_000:def_32
.= (the_Source_of H1) . e by A3, A12, GLIB_000:def_32 ; ::_thesis: (the_Target_of H2) . e = (the_Target_of H1) . e
thus (the_Target_of H2) . e = (the_Target_of G) . e by A12, GLIB_000:def_32
.= (the_Target_of H1) . e by A3, A12, GLIB_000:def_32 ; ::_thesis: verum
end;
then H2 is Subgraph of H1 by A1, A10, A11, A3, GLIB_000:def_32;
hence H2 is inducedSubgraph of H1,B by A1, A10, A11, A9, GLIB_000:def_37; ::_thesis: verum
end;
theorem Th31: :: CHORD:31
for G being _Graph
for S, T being non empty Subset of (the_Vertices_of G) st T c= S holds
for G2 being inducedSubgraph of G,S holds G2 .edgesBetween T = G .edgesBetween T
proof
let G be _Graph; ::_thesis: for S, T being non empty Subset of (the_Vertices_of G) st T c= S holds
for G2 being inducedSubgraph of G,S holds G2 .edgesBetween T = G .edgesBetween T
let S, T be non empty Subset of (the_Vertices_of G); ::_thesis: ( T c= S implies for G2 being inducedSubgraph of G,S holds G2 .edgesBetween T = G .edgesBetween T )
assume A1: T c= S ; ::_thesis: for G2 being inducedSubgraph of G,S holds G2 .edgesBetween T = G .edgesBetween T
let G2 be inducedSubgraph of G,S; ::_thesis: G2 .edgesBetween T = G .edgesBetween T
A2: the_Edges_of G2 = G .edgesBetween S by GLIB_000:def_37;
now__::_thesis:_for_e_being_set_holds_
(_(_e_in_G_.edgesBetween_T_implies_e_in_G2_.edgesBetween_T_)_&_(_e_in_G2_.edgesBetween_T_implies_e_in_G_.edgesBetween_T_)_)
let e be set ; ::_thesis: ( ( e in G .edgesBetween T implies e in G2 .edgesBetween T ) & ( e in G2 .edgesBetween T implies e in G .edgesBetween T ) )
hereby ::_thesis: ( e in G2 .edgesBetween T implies e in G .edgesBetween T )
assume A3: e in G .edgesBetween T ; ::_thesis: e in G2 .edgesBetween T
then A4: (the_Source_of G) . e in T by GLIB_000:31;
A5: (the_Target_of G) . e in T by A3, GLIB_000:31;
A6: G .edgesBetween T c= G .edgesBetween S by A1, GLIB_000:36;
then A7: (the_Target_of G2) . e = (the_Target_of G) . e by A2, A3, GLIB_000:def_32;
(the_Source_of G2) . e = (the_Source_of G) . e by A2, A3, A6, GLIB_000:def_32;
hence e in G2 .edgesBetween T by A2, A3, A6, A4, A5, A7, GLIB_000:31; ::_thesis: verum
end;
assume A8: e in G2 .edgesBetween T ; ::_thesis: e in G .edgesBetween T
then (the_Source_of G2) . e in T by GLIB_000:31;
then A9: (the_Source_of G) . e in T by A8, GLIB_000:def_32;
(the_Target_of G2) . e in T by A8, GLIB_000:31;
then A10: (the_Target_of G) . e in T by A8, GLIB_000:def_32;
e in the_Edges_of G2 by A8;
hence e in G .edgesBetween T by A9, A10, GLIB_000:31; ::_thesis: verum
end;
hence G2 .edgesBetween T = G .edgesBetween T by TARSKI:1; ::_thesis: verum
end;
scheme :: CHORD:sch 1
FinGraphOrderCompInd{ P1[ set ] } :
for G being finite _Graph holds P1[G]
provided
A1: for k being non zero Nat st ( for Gk being finite _Graph st Gk .order() < k holds
P1[Gk] ) holds
for Gk1 being finite _Graph st Gk1 .order() = k holds
P1[Gk1]
proof
let G be finite _Graph; ::_thesis: P1[G]
defpred S1[ non zero Nat] means for Gk being finite _Graph st Gk .order() < $1 holds
P1[Gk];
A2: for n being non zero Nat st S1[n] holds
S1[n + 1]
proof
let n be non zero Nat; ::_thesis: ( S1[n] implies S1[n + 1] )
assume A3: S1[n] ; ::_thesis: S1[n + 1]
now__::_thesis:_for_Gk_being_finite__Graph_st_Gk_.order()_<_n_+_1_holds_
P1[Gk]
let Gk be finite _Graph; ::_thesis: ( Gk .order() < n + 1 implies P1[Gk] )
assume Gk .order() < n + 1 ; ::_thesis: P1[Gk]
then Gk .order() <= n by NAT_1:13;
then ( Gk .order() < n or Gk .order() = n ) by XXREAL_0:1;
hence P1[Gk] by A1, A3; ::_thesis: verum
end;
hence S1[n + 1] ; ::_thesis: verum
end;
A4: S1[1] by NAT_1:14;
for k being non zero Nat holds S1[k] from NAT_1:sch_10(A4, A2);
then for Gk being finite _Graph st Gk .order() < G .order() holds
P1[Gk] ;
hence P1[G] by A1; ::_thesis: verum
end;
theorem Th32: :: CHORD:32
for G being _Graph
for W being Walk of G st W is open & W is Path-like holds
W is vertex-distinct
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is open & W is Path-like holds
W is vertex-distinct
let W be Walk of G; ::_thesis: ( W is open & W is Path-like implies W is vertex-distinct )
assume that
A1: W is open and
A2: W is Path-like ; ::_thesis: W is vertex-distinct
now__::_thesis:_for_m,_n_being_odd_Element_of_NAT_st_m_<=_len_W_&_n_<=_len_W_&_W_._m_=_W_._n_holds_
not_m_<>_n
let m, n be odd Element of NAT ; ::_thesis: ( m <= len W & n <= len W & W . m = W . n implies not m <> n )
assume that
A3: m <= len W and
A4: n <= len W and
A5: W . m = W . n ; ::_thesis: not m <> n
assume A6: m <> n ; ::_thesis: contradiction
percases ( m < n or m > n ) by A6, XXREAL_0:1;
supposeA7: m < n ; ::_thesis: contradiction
then A8: W . n = W .last() by A2, A4, A5, GLIB_001:def_28;
W . m = W .first() by A2, A4, A5, A7, GLIB_001:def_28;
hence contradiction by A1, A5, A8, GLIB_001:def_24; ::_thesis: verum
end;
supposeA9: m > n ; ::_thesis: contradiction
then A10: W . n = W .first() by A2, A3, A5, GLIB_001:def_28;
W . m = W .last() by A2, A3, A5, A9, GLIB_001:def_28;
hence contradiction by A1, A5, A10, GLIB_001:def_24; ::_thesis: verum
end;
end;
end;
hence W is vertex-distinct by GLIB_001:def_29; ::_thesis: verum
end;
theorem Th33: :: CHORD:33
for G being _Graph
for P being Path of G st P is open & len P > 3 holds
for e being set st e Joins P .last() ,P .first() ,G holds
P .addEdge e is Cycle-like
proof
let G be _Graph; ::_thesis: for P being Path of G st P is open & len P > 3 holds
for e being set st e Joins P .last() ,P .first() ,G holds
P .addEdge e is Cycle-like
let W be Path of G; ::_thesis: ( W is open & len W > 3 implies for e being set st e Joins W .last() ,W .first() ,G holds
W .addEdge e is Cycle-like )
assume that
A1: W is open and
A2: len W > 3 ; ::_thesis: for e being set st e Joins W .last() ,W .first() ,G holds
W .addEdge e is Cycle-like
let e be set ; ::_thesis: ( e Joins W .last() ,W .first() ,G implies W .addEdge e is Cycle-like )
assume A3: e Joins W .last() ,W .first() ,G ; ::_thesis: W .addEdge e is Cycle-like
A4: now__::_thesis:_not_e_in_W_.edges()
assume e in W .edges() ; ::_thesis: contradiction
then consider v1, v2 being Vertex of G, n being odd Element of NAT such that
A5: n + 2 <= len W and
A6: v1 = W . n and
e = W . (n + 1) and
A7: v2 = W . (n + 2) and
A8: e Joins v1,v2,G by GLIB_001:103;
A9: n < len W by A5, XREAL_1:39;
percases ( ( v1 = W .first() & v2 = W .last() ) or ( v1 = W .last() & v2 = W .first() ) ) by A3, A8, GLIB_000:15;
supposeA10: ( v1 = W .first() & v2 = W .last() ) ; ::_thesis: contradiction
now__::_thesis:_not_1_<>_n
assume A11: 1 <> n ; ::_thesis: contradiction
1 <= n by Th2;
then (2 * 0) + 1 < n by A11, XXREAL_0:1;
hence contradiction by A1, A6, A9, A10, GLIB_001:147; ::_thesis: verum
end;
hence contradiction by A1, A2, A7, A10, GLIB_001:147; ::_thesis: verum
end;
suppose ( v1 = W .last() & v2 = W .first() ) ; ::_thesis: contradiction
hence contradiction by A1, A6, A9, GLIB_001:147; ::_thesis: verum
end;
end;
end;
set P = W .addEdge e;
A12: (W .addEdge e) .last() = W .first() by A3, GLIB_001:63;
A13: len (W .addEdge e) = (len W) + (2 * 1) by A3, GLIB_001:64;
A14: now__::_thesis:_for_m,_n_being_odd_Element_of_NAT_st_m_<_n_&_n_<=_len_(W_.addEdge_e)_&_(W_.addEdge_e)_._m_=_(W_.addEdge_e)_._n_holds_
(_m_=_1_&_n_=_len_(W_.addEdge_e)_)
let m, n be odd Element of NAT ; ::_thesis: ( m < n & n <= len (W .addEdge e) & (W .addEdge e) . m = (W .addEdge e) . n implies ( m = 1 & n = len (W .addEdge e) ) )
assume that
A15: m < n and
A16: n <= len (W .addEdge e) ; ::_thesis: ( (W .addEdge e) . m = (W .addEdge e) . n implies ( m = 1 & n = len (W .addEdge e) ) )
m < (len W) + (2 * 1) by A13, A15, A16, XXREAL_0:2;
then A17: m <= ((len W) + 2) - 2 by Th3;
assume A18: (W .addEdge e) . m = (W .addEdge e) . n ; ::_thesis: ( m = 1 & n = len (W .addEdge e) )
1 <= m by Th2;
then A19: m in dom W by A17, FINSEQ_3:25;
then A20: W . m = (W .addEdge e) . m by A3, GLIB_001:65;
A21: now__::_thesis:_not_n_<_len_(W_.addEdge_e)
assume n < len (W .addEdge e) ; ::_thesis: contradiction
then n < (len W) + (2 * 1) by A3, GLIB_001:64;
then A22: n <= ((len W) + 2) - 2 by Th3;
1 <= n by Th2;
then A23: n in dom W by A22, FINSEQ_3:25;
W . n <> W . m by A1, A15, A22, GLIB_001:147;
hence contradiction by A3, A18, A20, A23, GLIB_001:65; ::_thesis: verum
end;
then A24: (W .addEdge e) . n = W . 1 by A12, A16, XXREAL_0:1;
now__::_thesis:_not_m_<>_1
assume A25: m <> 1 ; ::_thesis: contradiction
1 <= m by Th2;
then (2 * 0) + 1 < m by A25, XXREAL_0:1;
then W . 1 <> W . m by A1, A17, GLIB_001:147;
hence contradiction by A3, A18, A19, A24, GLIB_001:65; ::_thesis: verum
end;
hence ( m = 1 & n = len (W .addEdge e) ) by A16, A21, XXREAL_0:1; ::_thesis: verum
end;
e in (W .last()) .edgesInOut() by A3, GLIB_000:62;
then W .addEdge e is Trail-like by A4, GLIB_001:142;
then A26: W .addEdge e is Path-like by A14, GLIB_001:def_28;
(W .addEdge e) .first() = W .first() by A3, GLIB_001:63;
then A27: W .addEdge e is closed by A12, GLIB_001:def_24;
not W .addEdge e is trivial by A3, GLIB_001:132;
hence W .addEdge e is Cycle-like by A27, A26, GLIB_001:def_31; ::_thesis: verum
end;
begin
definition
let G be _Graph;
let W be Walk of G;
attrW is minlength means :Def2: :: CHORD:def 2
for W2 being Walk of G st W2 is_Walk_from W .first() ,W .last() holds
len W2 >= len W;
end;
:: deftheorem Def2 defines minlength CHORD:def_2_:_
for G being _Graph
for W being Walk of G holds
( W is minlength iff for W2 being Walk of G st W2 is_Walk_from W .first() ,W .last() holds
len W2 >= len W );
theorem Th34: :: CHORD:34
for G being _Graph
for W being Walk of G
for S being Subwalk of W st S .first() = W .first() & S .edgeSeq() = W .edgeSeq() holds
S = W
proof
let G be _Graph; ::_thesis: for W being Walk of G
for S being Subwalk of W st S .first() = W .first() & S .edgeSeq() = W .edgeSeq() holds
S = W
let W be Walk of G; ::_thesis: for S being Subwalk of W st S .first() = W .first() & S .edgeSeq() = W .edgeSeq() holds
S = W
let S be Subwalk of W; ::_thesis: ( S .first() = W .first() & S .edgeSeq() = W .edgeSeq() implies S = W )
assume that
A1: S .first() = W .first() and
A2: S .edgeSeq() = W .edgeSeq() ; ::_thesis: S = W
defpred S1[ Nat] means ( $1 in dom S implies S . $1 = W . $1 );
len S = (2 * (len (W .edgeSeq()))) + 1 by A2, GLIB_001:def_15;
then A3: len S = len W by GLIB_001:def_15;
A4: now__::_thesis:_for_k_being_Nat_st_(_for_n_being_Nat_st_n_<_k_holds_
S1[n]_)_holds_
S1[k]
let k be Nat; ::_thesis: ( ( for n being Nat st n < k holds
S1[n] ) implies S1[b1] )
assume A5: for n being Nat st n < k holds
S1[n] ; ::_thesis: S1[b1]
A6: k in NAT by ORDINAL1:def_12;
percases ( k in dom S or not k in dom S ) ;
supposeA7: k in dom S ; ::_thesis: S1[b1]
then A8: 1 <= k by FINSEQ_3:25;
A9: k <= len S by A7, FINSEQ_3:25;
percases ( k is even or k is odd ) ;
supposeA10: k is even ; ::_thesis: S1[b1]
then S . k = (S .edgeSeq()) . (k div 2) by A6, A8, A9, GLIB_001:77;
hence S1[k] by A2, A3, A8, A9, A10, GLIB_001:77; ::_thesis: verum
end;
suppose k is odd ; ::_thesis: S1[b1]
then reconsider kk = k as odd Nat ;
percases ( k = 1 or k > (2 * 0) + 1 ) by A8, XXREAL_0:1;
suppose k = 1 ; ::_thesis: S1[b1]
hence S1[k] by A1; ::_thesis: verum
end;
suppose k > (2 * 0) + 1 ; ::_thesis: S1[b1]
then A11: 1 + 2 <= kk by Th4;
then A12: 3 + (- 2) <= k + (- 2) by XREAL_1:7;
A13: 0 <= 2 ;
3 + (- 1) <= k + (- 1) by A11, XREAL_1:7;
then reconsider k1 = k - 1 as Element of NAT by A13, INT_1:3;
k1 < k by XREAL_1:44;
then A14: k1 <= len S by A9, XXREAL_0:2;
3 + (- 1) <= k + (- 1) by A11, XREAL_1:7;
then 1 <= k1 by XXREAL_0:2;
then k1 in dom S by A14, FINSEQ_3:25;
then A15: S . k1 = W . k1 by A5, XREAL_1:44;
3 + (- 2) <= k + (- 2) by A11, XREAL_1:7;
then reconsider k2 = kk - (2 * 1) as odd Element of NAT by INT_1:3;
A16: k2 < k by XREAL_1:44;
then k2 < len S by A9, XXREAL_0:2;
then A17: S . (k2 + 1) Joins S . k2,S . (k2 + 2),G by GLIB_001:def_3;
k2 <= len S by A9, A16, XXREAL_0:2;
then k2 in dom S by A12, FINSEQ_3:25;
then A18: S . k2 = W . k2 by A5, XREAL_1:44;
k2 < len W by A3, A9, A16, XXREAL_0:2;
then W . (k2 + 1) Joins W . k2,W . (k2 + 2),G by GLIB_001:def_3;
then ( ( S . k2 = S . k2 & S . k = W . k ) or ( S . k2 = W . k & S . k = S . k2 ) ) by A15, A18, A17, GLIB_000:15;
hence S1[k] ; ::_thesis: verum
end;
end;
end;
end;
end;
suppose not k in dom S ; ::_thesis: S1[b1]
hence S1[k] ; ::_thesis: verum
end;
end;
end;
A19: for n being Nat holds S1[n] from NAT_1:sch_4(A4);
now__::_thesis:_for_k_being_Nat_st_1_<=_k_&_k_<=_len_S_holds_
S_._k_=_W_._k
let k be Nat; ::_thesis: ( 1 <= k & k <= len S implies S . k = W . k )
assume that
A20: 1 <= k and
A21: k <= len S ; ::_thesis: S . k = W . k
k in dom S by A20, A21, FINSEQ_3:25;
hence S . k = W . k by A19; ::_thesis: verum
end;
hence S = W by A3, FINSEQ_1:14; ::_thesis: verum
end;
theorem Th35: :: CHORD:35
for G being _Graph
for W being Walk of G
for S being Subwalk of W st len S = len W holds
S = W
proof
let G be _Graph; ::_thesis: for W being Walk of G
for S being Subwalk of W st len S = len W holds
S = W
let W be Walk of G; ::_thesis: for S being Subwalk of W st len S = len W holds
S = W
let S be Subwalk of W; ::_thesis: ( len S = len W implies S = W )
assume A1: len S = len W ; ::_thesis: S = W
A2: len S = (2 * (len (S .edgeSeq()))) + 1 by GLIB_001:def_15;
A3: S .first() = W .first() by GLIB_001:161;
A4: len W = (2 * (len (W .edgeSeq()))) + 1 by GLIB_001:def_15;
ex es being Subset of (W .edgeSeq()) st S .edgeSeq() = Seq es by GLIB_001:def_32;
hence S = W by A1, A2, A4, A3, Th18, Th34; ::_thesis: verum
end;
theorem :: CHORD:36
for G being _Graph
for W being Walk of G st W is minlength holds
W is Path-like
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is minlength holds
W is Path-like
let W be Walk of G; ::_thesis: ( W is minlength implies W is Path-like )
assume that
A1: W is minlength and
A2: not W is Path-like ; ::_thesis: contradiction
set s = the Path-like Subwalk of W;
the Path-like Subwalk of W is_Walk_from W .first() ,W .last() by GLIB_001:def_32;
then A3: len W <= len the Path-like Subwalk of W by A1, Def2;
len the Path-like Subwalk of W <= len W by GLIB_001:162;
hence contradiction by A2, A3, Th35, XXREAL_0:1; ::_thesis: verum
end;
theorem :: CHORD:37
for G being _Graph
for W being Walk of G st W is minlength holds
W is Path-like
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is minlength holds
W is Path-like
let W be Walk of G; ::_thesis: ( W is minlength implies W is Path-like )
assume A1: W is minlength ; ::_thesis: W is Path-like
assume not W is Path-like ; ::_thesis: contradiction
then consider m, n being odd Element of NAT such that
A2: m <= len W and
A3: n <= len W and
A4: W . m = W . n and
A5: m <> n by GLIB_001:146;
percases ( m < n or n < m ) by A5, XXREAL_0:1;
supposeA6: m < n ; ::_thesis: contradiction
set R = W .cut (1,m);
set S = W .cut (n,(len W));
set P = (W .cut (1,m)) .append (W .cut (n,(len W)));
A7: ((len (W .cut (n,(len W)))) + n) - n = ((len W) + 1) - n by A3, GLIB_001:36;
A8: (2 * 0) + 1 <= m by ABIAN:12;
then A9: ((len (W .cut (1,m))) + 1) - 1 = (m + 1) - 1 by A2, GLIB_001:36;
A10: (W .cut (n,(len W))) .first() = W . m by A3, A4, GLIB_001:37;
A11: (W .cut (1,m)) .last() = W . m by A2, A8, GLIB_001:37;
then (len ((W .cut (1,m)) .append (W .cut (n,(len W))))) + 1 = (len (W .cut (1,m))) + (len (W .cut (n,(len W)))) by A10, GLIB_001:28;
then len ((W .cut (1,m)) .append (W .cut (n,(len W)))) = ((len W) - n) + m by A9, A7;
then A12: len ((W .cut (1,m)) .append (W .cut (n,(len W)))) < ((len W) - n) + n by A6, XREAL_1:8;
A13: (W .cut (n,(len W))) .last() = W . (len W) by A3, GLIB_001:37;
(W .cut (1,m)) .first() = W . ((2 * 0) + 1) by A2, A8, GLIB_001:37;
then (W .cut (1,m)) .append (W .cut (n,(len W))) is_Walk_from W .first() ,W .last() by A11, A10, A13, GLIB_001:30;
hence contradiction by A1, A12, Def2; ::_thesis: verum
end;
supposeA14: n < m ; ::_thesis: contradiction
set R = W .cut (1,n);
set S = W .cut (m,(len W));
set P = (W .cut (1,n)) .append (W .cut (m,(len W)));
A15: ((len (W .cut (m,(len W)))) + m) - m = ((len W) + 1) - m by A2, GLIB_001:36;
A16: (2 * 0) + 1 <= n by ABIAN:12;
then A17: ((len (W .cut (1,n))) + 1) - 1 = (n + 1) - 1 by A3, GLIB_001:36;
A18: (W .cut (m,(len W))) .first() = W . n by A2, A4, GLIB_001:37;
A19: (W .cut (1,n)) .last() = W . n by A3, A16, GLIB_001:37;
then (len ((W .cut (1,n)) .append (W .cut (m,(len W))))) + 1 = (len (W .cut (1,n))) + (len (W .cut (m,(len W)))) by A18, GLIB_001:28;
then len ((W .cut (1,n)) .append (W .cut (m,(len W)))) = ((len W) - m) + n by A17, A15;
then A20: len ((W .cut (1,n)) .append (W .cut (m,(len W)))) < ((len W) - m) + m by A14, XREAL_1:8;
A21: (W .cut (m,(len W))) .last() = W . (len W) by A2, GLIB_001:37;
(W .cut (1,n)) .first() = W . ((2 * 0) + 1) by A3, A16, GLIB_001:37;
then (W .cut (1,n)) .append (W .cut (m,(len W))) is_Walk_from W .first() ,W .last() by A19, A18, A21, GLIB_001:30;
hence contradiction by A1, A20, Def2; ::_thesis: verum
end;
end;
end;
theorem Th38: :: CHORD:38
for G being _Graph
for W being Walk of G st ( for P being Path of G st P is_Walk_from W .first() ,W .last() holds
len P >= len W ) holds
W is minlength
proof
let G be _Graph; ::_thesis: for W being Walk of G st ( for P being Path of G st P is_Walk_from W .first() ,W .last() holds
len P >= len W ) holds
W is minlength
let W be Walk of G; ::_thesis: ( ( for P being Path of G st P is_Walk_from W .first() ,W .last() holds
len P >= len W ) implies W is minlength )
assume A1: for P2 being Path of G st P2 is_Walk_from W .first() ,W .last() holds
len P2 >= len W ; ::_thesis: W is minlength
now__::_thesis:_for_V_being_Walk_of_G_st_V_is_Walk_from_W_.first()_,W_.last()_holds_
len_V_>=_len_W
let V be Walk of G; ::_thesis: ( V is_Walk_from W .first() ,W .last() implies len V >= len W )
assume A2: V is_Walk_from W .first() ,W .last() ; ::_thesis: len V >= len W
set P3 = the Path-like Subwalk of V;
V .last() = W .last() by A2, GLIB_001:def_23;
then A3: the Path-like Subwalk of V .last() = W .last() by GLIB_001:161;
V .first() = W .first() by A2, GLIB_001:def_23;
then the Path-like Subwalk of V .first() = W .first() by GLIB_001:161;
then the Path-like Subwalk of V is_Walk_from W .first() ,W .last() by A3, GLIB_001:def_23;
then A4: len W <= len the Path-like Subwalk of V by A1;
len the Path-like Subwalk of V <= len V by GLIB_001:162;
hence len V >= len W by A4, XXREAL_0:2; ::_thesis: verum
end;
hence W is minlength by Def2; ::_thesis: verum
end;
theorem Th39: :: CHORD:39
for G being _Graph
for W being Walk of G ex P being Path of G st
( P is_Walk_from W .first() ,W .last() & P is minlength )
proof
let G be _Graph; ::_thesis: for W being Walk of G ex P being Path of G st
( P is_Walk_from W .first() ,W .last() & P is minlength )
let W be Walk of G; ::_thesis: ex P being Path of G st
( P is_Walk_from W .first() ,W .last() & P is minlength )
set X = { (len P) where P is Path of G : P is_Walk_from W .first() ,W .last() } ;
set T = the Path-like Subwalk of W;
A1: the Path-like Subwalk of W .last() = W .last() by GLIB_001:161;
the Path-like Subwalk of W .first() = W .first() by GLIB_001:161;
then the Path-like Subwalk of W is_Walk_from W .first() ,W .last() by A1, GLIB_001:def_23;
then A2: len the Path-like Subwalk of W in { (len P) where P is Path of G : P is_Walk_from W .first() ,W .last() } ;
{ (len P) where P is Path of G : P is_Walk_from W .first() ,W .last() } c= NAT
proof
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in { (len P) where P is Path of G : P is_Walk_from W .first() ,W .last() } or x in NAT )
assume x in { (len P) where P is Path of G : P is_Walk_from W .first() ,W .last() } ; ::_thesis: x in NAT
then ex P being Path of G st
( x = len P & P is_Walk_from W .first() ,W .last() ) ;
hence x in NAT ; ::_thesis: verum
end;
then reconsider X = { (len P) where P is Path of G : P is_Walk_from W .first() ,W .last() } as non empty Subset of NAT by A2;
min X in X by XXREAL_2:def_7;
then consider P being Path of G such that
A3: len P = min X and
A4: P is_Walk_from W .first() ,W .last() ;
A5: P .first() = W .first() by A4, GLIB_001:def_23;
take P ; ::_thesis: ( P is_Walk_from W .first() ,W .last() & P is minlength )
thus P is_Walk_from W .first() ,W .last() by A4; ::_thesis: P is minlength
let W2 be Walk of G; :: according to CHORD:def_2 ::_thesis: ( W2 is_Walk_from P .first() ,P .last() implies len W2 >= len P )
assume A6: W2 is_Walk_from P .first() ,P .last() ; ::_thesis: len W2 >= len P
A7: P .last() = W2 .last() by A6, GLIB_001:def_23;
set T = the Path-like Subwalk of W2;
A8: the Path-like Subwalk of W2 .first() = W2 .first() by GLIB_001:161;
A9: the Path-like Subwalk of W2 .last() = W2 .last() by GLIB_001:161;
A10: P .last() = W .last() by A4, GLIB_001:def_23;
P .first() = W2 .first() by A6, GLIB_001:def_23;
then the Path-like Subwalk of W2 is_Walk_from W .first() ,W .last() by A7, A5, A10, A8, A9, GLIB_001:def_23;
then len the Path-like Subwalk of W2 in X ;
then A11: len P <= len the Path-like Subwalk of W2 by A3, XXREAL_2:def_7;
len the Path-like Subwalk of W2 <= len W2 by GLIB_001:162;
hence len W2 >= len P by A11, XXREAL_0:2; ::_thesis: verum
end;
theorem Th40: :: CHORD:40
for G being _Graph
for W being Walk of G st W is minlength holds
for m, n being odd Nat st m + 2 < n & n <= len W holds
for e being set holds not e Joins W . m,W . n,G
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is minlength holds
for m, n being odd Nat st m + 2 < n & n <= len W holds
for e being set holds not e Joins W . m,W . n,G
let P be Walk of G; ::_thesis: ( P is minlength implies for m, n being odd Nat st m + 2 < n & n <= len P holds
for e being set holds not e Joins P . m,P . n,G )
assume A1: P is minlength ; ::_thesis: for m, n being odd Nat st m + 2 < n & n <= len P holds
for e being set holds not e Joins P . m,P . n,G
let m, n be odd Nat; ::_thesis: ( m + 2 < n & n <= len P implies for e being set holds not e Joins P . m,P . n,G )
assume that
A2: m + 2 < n and
A3: n <= len P ; ::_thesis: for e being set holds not e Joins P . m,P . n,G
A4: ((len P) - n) + (m + 2) < ((len P) - n) + n by A2, XREAL_1:8;
m + 0 <= m + 2 by XREAL_1:7;
then m <= n by A2, XXREAL_0:2;
then A5: m <= len P by A3, XXREAL_0:2;
set P3 = P .cut (n,(len P));
A6: n in NAT by ORDINAL1:def_12;
then A7: (P .cut (n,(len P))) .last() = P .last() by A3, GLIB_001:37;
set P1 = P .cut (1,m);
let e be set ; ::_thesis: not e Joins P . m,P . n,G
assume A8: e Joins P . m,P . n,G ; ::_thesis: contradiction
set P2 = (P .cut (1,m)) .addEdge e;
set P4 = ((P .cut (1,m)) .addEdge e) .append (P .cut (n,(len P)));
A9: (2 * 0) + 1 <= m by ABIAN:12;
A10: m in NAT by ORDINAL1:def_12;
then A11: (len (P .cut (1,m))) + 1 = m + 1 by A9, A5, GLIB_001:36;
A12: (P .cut (1,m)) .last() = P . m by A10, A9, A5, GLIB_001:37;
then A13: ((P .cut (1,m)) .addEdge e) .last() = P . n by A8, GLIB_001:63;
(P .cut (1,m)) .first() = P .first() by A10, A9, A5, GLIB_001:37;
then A14: ((P .cut (1,m)) .addEdge e) .first() = P .first() by A8, A12, GLIB_001:63;
(P .cut (n,(len P))) .first() = P . n by A3, A6, GLIB_001:37;
then A15: ((P .cut (1,m)) .addEdge e) .append (P .cut (n,(len P))) is_Walk_from P .first() ,P .last() by A14, A13, A7, GLIB_001:30;
(P .cut (n,(len P))) .first() = P . n by A3, A6, GLIB_001:37;
then A16: (len (((P .cut (1,m)) .addEdge e) .append (P .cut (n,(len P))))) + 1 = (len ((P .cut (1,m)) .addEdge e)) + (len (P .cut (n,(len P)))) by A13, GLIB_001:28;
(P .cut (1,m)) .last() = P . m by A10, A9, A5, GLIB_001:37;
then A17: len ((P .cut (1,m)) .addEdge e) = m + 2 by A8, A11, GLIB_001:64;
(len (P .cut (n,(len P)))) + n = (len P) + 1 by A3, A6, GLIB_001:36;
hence contradiction by A1, A17, A15, A16, A4, Def2; ::_thesis: verum
end;
theorem Th41: :: CHORD:41
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W being Walk of H st W is minlength holds
for m, n being odd Nat st m + 2 < n & n <= len W holds
for e being set holds not e Joins W . m,W . n,G
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W being Walk of H st W is minlength holds
for m, n being odd Nat st m + 2 < n & n <= len W holds
for e being set holds not e Joins W . m,W . n,G
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for W being Walk of H st W is minlength holds
for m, n being odd Nat st m + 2 < n & n <= len W holds
for e being set holds not e Joins W . m,W . n,G
let GA be inducedSubgraph of G,S; ::_thesis: for W being Walk of GA st W is minlength holds
for m, n being odd Nat st m + 2 < n & n <= len W holds
for e being set holds not e Joins W . m,W . n,G
let P be Walk of GA; ::_thesis: ( P is minlength implies for m, n being odd Nat st m + 2 < n & n <= len P holds
for e being set holds not e Joins P . m,P . n,G )
A1: S = the_Vertices_of GA by GLIB_000:def_37;
assume A2: P is minlength ; ::_thesis: for m, n being odd Nat st m + 2 < n & n <= len P holds
for e being set holds not e Joins P . m,P . n,G
now__::_thesis:_for_m,_n_being_odd_Nat_st_m_+_2_<_n_&_n_<=_len_P_holds_
for_e_being_set_holds_not_e_Joins_P_._m,P_._n,G
let m, n be odd Nat; ::_thesis: ( m + 2 < n & n <= len P implies for e being set holds not e Joins P . m,P . n,G )
assume that
A3: m + 2 < n and
A4: n <= len P ; ::_thesis: for e being set holds not e Joins P . m,P . n,G
m + 0 <= m + 2 by XREAL_1:7;
then A5: m <= n by A3, XXREAL_0:2;
n in NAT by ORDINAL1:def_12;
then A6: P . n in the_Vertices_of GA by A4, GLIB_001:7;
m in NAT by ORDINAL1:def_12;
then A7: P . m in the_Vertices_of GA by A4, A5, GLIB_001:7, XXREAL_0:2;
let e be set ; ::_thesis: not e Joins P . m,P . n,G
assume e Joins P . m,P . n,G ; ::_thesis: contradiction
hence contradiction by A2, A1, A3, A4, A7, A6, Th19, Th40; ::_thesis: verum
end;
hence for m, n being odd Nat st m + 2 < n & n <= len P holds
for e being set holds not e Joins P . m,P . n,G ; ::_thesis: verum
end;
theorem Th42: :: CHORD:42
for G being _Graph
for W being Walk of G st W is minlength holds
for m, n being odd Nat st m <= n & n <= len W holds
W .cut (m,n) is minlength
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is minlength holds
for m, n being odd Nat st m <= n & n <= len W holds
W .cut (m,n) is minlength
let W be Walk of G; ::_thesis: ( W is minlength implies for m, n being odd Nat st m <= n & n <= len W holds
W .cut (m,n) is minlength )
assume A1: W is minlength ; ::_thesis: for m, n being odd Nat st m <= n & n <= len W holds
W .cut (m,n) is minlength
let m, n be odd Nat; ::_thesis: ( m <= n & n <= len W implies W .cut (m,n) is minlength )
assume that
A2: m <= n and
A3: n <= len W ; ::_thesis: W .cut (m,n) is minlength
set S = W .cut (m,n);
assume not W .cut (m,n) is minlength ; ::_thesis: contradiction
then consider M being Walk of G such that
A4: M is_Walk_from (W .cut (m,n)) .first() ,(W .cut (m,n)) .last() and
A5: len M < len (W .cut (m,n)) by Def2;
set R = W .cut (1,m);
A6: (2 * 0) + 1 <= m by ABIAN:12;
set T = W .cut (n,(len W));
A7: n in NAT by ORDINAL1:def_12;
then A8: (W .cut (n,(len W))) .first() = W . n by A3, GLIB_001:37;
set A = (W .cut (1,m)) .append M;
A9: m in NAT by ORDINAL1:def_12;
A10: m <= len W by A2, A3, XXREAL_0:2;
then A11: (W .cut (1,m)) .last() = W . m by A6, A9, GLIB_001:37;
(W .cut (m,n)) .first() = W . m by A2, A3, A9, A7, GLIB_001:37;
then A12: M .first() = W . m by A4, GLIB_001:def_23;
then (len ((W .cut (1,m)) .append M)) + 1 = (len (W .cut (1,m))) + (len M) by A11, GLIB_001:28;
then A13: (len ((W .cut (1,m)) .append M)) + 1 < (len (W .cut (1,m))) + (len (W .cut (m,n))) by A5, XREAL_1:8;
set B = ((W .cut (1,m)) .append M) .append (W .cut (n,(len W)));
(W .cut (m,n)) .last() = W . n by A2, A3, A9, A7, GLIB_001:37;
then M .last() = W . n by A4, GLIB_001:def_23;
then A14: ((W .cut (1,m)) .append M) .last() = W . n by A11, A12, GLIB_001:30;
then A15: (len (((W .cut (1,m)) .append M) .append (W .cut (n,(len W))))) + 1 = (len ((W .cut (1,m)) .append M)) + (len (W .cut (n,(len W)))) by A8, GLIB_001:28;
A16: (len (W .cut (1,m))) + 1 = m + 1 by A6, A10, A9, GLIB_001:36;
(len (W .cut (m,n))) + m = n + 1 by A2, A3, A9, A7, GLIB_001:36;
then ((len ((W .cut (1,m)) .append M)) + 1) - 1 < (n + 1) - 1 by A16, A13, XREAL_1:14;
then A17: (len (((W .cut (1,m)) .append M) .append (W .cut (n,(len W))))) + 1 < (len (W .cut (n,(len W)))) + n by A15, XREAL_1:8;
(len (W .cut (n,(len W)))) + n = (len W) + 1 by A3, A7, GLIB_001:36;
then A18: ((len (((W .cut (1,m)) .append M) .append (W .cut (n,(len W))))) + 1) - 1 < ((len W) + 1) - 1 by A17, XREAL_1:14;
(W .cut (n,(len W))) .last() = W . (len W) by A3, A7, GLIB_001:37;
then A19: (((W .cut (1,m)) .append M) .append (W .cut (n,(len W)))) .last() = W .last() by A8, A14, GLIB_001:30;
(W .cut (1,m)) .first() = W . 1 by A6, A10, A9, GLIB_001:37;
then ((W .cut (1,m)) .append M) .first() = W . 1 by A11, A12, GLIB_001:30;
then (((W .cut (1,m)) .append M) .append (W .cut (n,(len W)))) .first() = W .first() by A8, A14, GLIB_001:30;
then ((W .cut (1,m)) .append M) .append (W .cut (n,(len W))) is_Walk_from W .first() ,W .last() by A19, GLIB_001:def_23;
hence contradiction by A1, A18, Def2; ::_thesis: verum
end;
theorem :: CHORD:43
for G being _Graph st G is connected holds
for A, B being non empty Subset of (the_Vertices_of G) st A misses B holds
ex P being Path of G st
( P is minlength & not P is trivial & P .first() in A & P .last() in B & ( for n being odd Nat st 1 < n & n < len P holds
( not P . n in A & not P . n in B ) ) )
proof
let G be _Graph; ::_thesis: ( G is connected implies for A, B being non empty Subset of (the_Vertices_of G) st A misses B holds
ex P being Path of G st
( P is minlength & not P is trivial & P .first() in A & P .last() in B & ( for n being odd Nat st 1 < n & n < len P holds
( not P . n in A & not P . n in B ) ) ) )
assume A1: G is connected ; ::_thesis: for A, B being non empty Subset of (the_Vertices_of G) st A misses B holds
ex P being Path of G st
( P is minlength & not P is trivial & P .first() in A & P .last() in B & ( for n being odd Nat st 1 < n & n < len P holds
( not P . n in A & not P . n in B ) ) )
let A, B be non empty Subset of (the_Vertices_of G); ::_thesis: ( A misses B implies ex P being Path of G st
( P is minlength & not P is trivial & P .first() in A & P .last() in B & ( for n being odd Nat st 1 < n & n < len P holds
( not P . n in A & not P . n in B ) ) ) )
assume A2: A misses B ; ::_thesis: ex P being Path of G st
( P is minlength & not P is trivial & P .first() in A & P .last() in B & ( for n being odd Nat st 1 < n & n < len P holds
( not P . n in A & not P . n in B ) ) )
set X = { (len P) where P is Path of G : ( P .first() in A & P .last() in B ) } ;
A3: { (len P) where P is Path of G : ( P .first() in A & P .last() in B ) } c= NAT
proof
let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in { (len P) where P is Path of G : ( P .first() in A & P .last() in B ) } or x in NAT )
assume x in { (len P) where P is Path of G : ( P .first() in A & P .last() in B ) } ; ::_thesis: x in NAT
then ex P being Path of G st
( x = len P & P .first() in A & P .last() in B ) ;
hence x in NAT ; ::_thesis: verum
end;
consider b being set such that
A4: b in B by XBOOLE_0:def_1;
reconsider b = b as Vertex of G by A4;
consider a being set such that
A5: a in A by XBOOLE_0:def_1;
reconsider a = a as Vertex of G by A5;
consider W being Walk of G such that
A6: W is_Walk_from a,b by A1, GLIB_002:def_1;
consider W2 being Path of G such that
A7: W2 is_Walk_from W .first() ,W .last() and
W2 is minlength by Th39;
W .last() = b by A6, GLIB_001:def_23;
then A8: W2 .last() in B by A4, A7, GLIB_001:def_23;
W .first() = a by A6, GLIB_001:def_23;
then W2 .first() in A by A5, A7, GLIB_001:def_23;
then len W2 in { (len P) where P is Path of G : ( P .first() in A & P .last() in B ) } by A8;
then reconsider X = { (len P) where P is Path of G : ( P .first() in A & P .last() in B ) } as non empty Subset of NAT by A3;
min X in X by XXREAL_2:def_7;
then consider M being Path of G such that
A9: len M = min X and
A10: M .first() in A and
A11: M .last() in B ;
now__::_thesis:_for_P2_being_Path_of_G_st_P2_is_Walk_from_M_.first()_,M_.last()_holds_
len_P2_>=_len_M
let P2 be Path of G; ::_thesis: ( P2 is_Walk_from M .first() ,M .last() implies len P2 >= len M )
assume A12: P2 is_Walk_from M .first() ,M .last() ; ::_thesis: len P2 >= len M
A13: P2 .last() in B by A11, A12, GLIB_001:def_23;
P2 .first() in A by A10, A12, GLIB_001:def_23;
then len P2 in X by A13;
hence len P2 >= len M by A9, XXREAL_2:def_7; ::_thesis: verum
end;
then A14: M is minlength by Th38;
A15: now__::_thesis:_for_n_being_odd_Nat_st_1_<_n_&_n_<_len_M_holds_
(_not_M_._n_in_A_&_not_M_._n_in_B_)
let n be odd Nat; ::_thesis: ( 1 < n & n < len M implies ( not M . n in A & not M . n in B ) )
assume that
A16: 1 < n and
A17: n < len M ; ::_thesis: ( not M . n in A & not M . n in B )
reconsider nn = n as Element of NAT by ORDINAL1:def_12;
assume A18: ( M . n in A or M . n in B ) ; ::_thesis: contradiction
percases ( M . n in A or M . n in B ) by A18;
supposeA19: M . n in A ; ::_thesis: contradiction
reconsider T = M .cut (nn,(len M)) as Path of G ;
A20: T .last() in B by A11, A17, GLIB_001:37;
(len T) + nn = (len M) + 1 by A17, GLIB_001:36;
then A21: (len T) + 0 < (((len M) + 1) + (- n)) + (n + (- 1)) by A16, XREAL_1:8;
T .first() in A by A17, A19, GLIB_001:37;
then len T in X by A20;
hence contradiction by A9, A21, XXREAL_2:def_7; ::_thesis: verum
end;
supposeA22: M . n in B ; ::_thesis: contradiction
reconsider T = M .cut (1,nn) as Path of G ;
A23: (2 * 0) + 1 <= n by A16;
then A24: T .last() = M . nn by A17, GLIB_001:37;
(2 * 0) + 1 <= n by A16;
then A25: (len T) + 1 = nn + 1 by A17, GLIB_001:36;
T .first() = M . 1 by A17, A23, GLIB_001:37;
then len T in X by A10, A22, A24;
hence contradiction by A9, A17, A25, XXREAL_2:def_7; ::_thesis: verum
end;
end;
end;
now__::_thesis:_not_M_.first()_=_M_.last()
assume M .first() = M .last() ; ::_thesis: contradiction
then M .first() in A /\ B by A10, A11, XBOOLE_0:def_4;
hence contradiction by A2, XBOOLE_0:def_7; ::_thesis: verum
end;
then not M is trivial by GLIB_001:127;
hence ex P being Path of G st
( P is minlength & not P is trivial & P .first() in A & P .last() in B & ( for n being odd Nat st 1 < n & n < len P holds
( not P . n in A & not P . n in B ) ) ) by A10, A11, A14, A15; ::_thesis: verum
end;
begin
definition
let G be _Graph;
let a, b be Vertex of G;
preda,b are_adjacent means :Def3: :: CHORD:def 3
ex e being set st e Joins a,b,G;
symmetry
for a, b being Vertex of G st ex e being set st e Joins a,b,G holds
ex e being set st e Joins b,a,G by GLIB_000:14;
end;
:: deftheorem Def3 defines are_adjacent CHORD:def_3_:_
for G being _Graph
for a, b being Vertex of G holds
( a,b are_adjacent iff ex e being set st e Joins a,b,G );
theorem Th44: :: CHORD:44
for G1, G2 being _Graph st G1 == G2 holds
for u1, v1 being Vertex of G1 st u1,v1 are_adjacent holds
for u2, v2 being Vertex of G2 st u1 = u2 & v1 = v2 holds
u2,v2 are_adjacent
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 implies for u1, v1 being Vertex of G1 st u1,v1 are_adjacent holds
for u2, v2 being Vertex of G2 st u1 = u2 & v1 = v2 holds
u2,v2 are_adjacent )
assume A1: G1 == G2 ; ::_thesis: for u1, v1 being Vertex of G1 st u1,v1 are_adjacent holds
for u2, v2 being Vertex of G2 st u1 = u2 & v1 = v2 holds
u2,v2 are_adjacent
let u1, v1 be Vertex of G1; ::_thesis: ( u1,v1 are_adjacent implies for u2, v2 being Vertex of G2 st u1 = u2 & v1 = v2 holds
u2,v2 are_adjacent )
assume u1,v1 are_adjacent ; ::_thesis: for u2, v2 being Vertex of G2 st u1 = u2 & v1 = v2 holds
u2,v2 are_adjacent
then consider e being set such that
A2: e Joins u1,v1,G1 by Def3;
let u2, v2 be Vertex of G2; ::_thesis: ( u1 = u2 & v1 = v2 implies u2,v2 are_adjacent )
assume that
A3: u1 = u2 and
A4: v1 = v2 ; ::_thesis: u2,v2 are_adjacent
e Joins u2,v2,G2 by A1, A3, A4, A2, GLIB_000:88;
hence u2,v2 are_adjacent by Def3; ::_thesis: verum
end;
theorem Th45: :: CHORD:45
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u, v being Vertex of G
for t, w being Vertex of H st u = t & v = w holds
( u,v are_adjacent iff t,w are_adjacent )
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u, v being Vertex of G
for t, w being Vertex of H st u = t & v = w holds
( u,v are_adjacent iff t,w are_adjacent )
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for u, v being Vertex of G
for t, w being Vertex of H st u = t & v = w holds
( u,v are_adjacent iff t,w are_adjacent )
let H be inducedSubgraph of G,S; ::_thesis: for u, v being Vertex of G
for t, w being Vertex of H st u = t & v = w holds
( u,v are_adjacent iff t,w are_adjacent )
let u, v be Vertex of G; ::_thesis: for t, w being Vertex of H st u = t & v = w holds
( u,v are_adjacent iff t,w are_adjacent )
let t, w be Vertex of H; ::_thesis: ( u = t & v = w implies ( u,v are_adjacent iff t,w are_adjacent ) )
assume that
A1: u = t and
A2: v = w ; ::_thesis: ( u,v are_adjacent iff t,w are_adjacent )
A3: S = the_Vertices_of H by GLIB_000:def_37;
hereby ::_thesis: ( t,w are_adjacent implies u,v are_adjacent )
assume u,v are_adjacent ; ::_thesis: t,w are_adjacent
then consider e being set such that
A4: e Joins u,v,G by Def3;
e Joins t,w,H by A1, A2, A3, A4, Th19;
hence t,w are_adjacent by Def3; ::_thesis: verum
end;
assume t,w are_adjacent ; ::_thesis: u,v are_adjacent
then consider e being set such that
A5: e Joins t,w,H by Def3;
e Joins u,v,G by A1, A2, A5, GLIB_000:72;
hence u,v are_adjacent by Def3; ::_thesis: verum
end;
theorem Th46: :: CHORD:46
for G being _Graph
for W being Walk of G st W .first() <> W .last() & not W .first() ,W .last() are_adjacent holds
W .length() >= 2
proof
let G be _Graph; ::_thesis: for W being Walk of G st W .first() <> W .last() & not W .first() ,W .last() are_adjacent holds
W .length() >= 2
let W be Walk of G; ::_thesis: ( W .first() <> W .last() & not W .first() ,W .last() are_adjacent implies W .length() >= 2 )
assume that
A1: W .first() <> W .last() and
A2: not W .first() ,W .last() are_adjacent ; ::_thesis: W .length() >= 2
set l = W .length() ;
assume W .length() < 2 ; ::_thesis: contradiction
then W .length() < 1 + 1 ;
then A3: W .length() <= 1 by NAT_1:13;
percases ( W .length() = 0 or W .length() = 1 ) by A3, NAT_1:25;
suppose W .length() = 0 ; ::_thesis: contradiction
then W is trivial by GLIB_001:def_26;
hence contradiction by A1, GLIB_001:127; ::_thesis: verum
end;
suppose W .length() = 1 ; ::_thesis: contradiction
then A4: len W = (2 * 1) + 1 by GLIB_001:112
.= 3 ;
1 = (2 * 0) + 1 ;
then W . (1 + 1) Joins W . 1,W . (1 + 2),G by A4, GLIB_001:def_3;
hence contradiction by A2, A4, Def3; ::_thesis: verum
end;
end;
end;
theorem Th47: :: CHORD:47
for G being _Graph
for v1, v2, v3 being Vertex of G st v1 <> v2 & v1 <> v3 & v2 <> v3 & v1,v2 are_adjacent & v2,v3 are_adjacent holds
ex P being Path of G ex e1, e2 being set st
( P is open & len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
proof
let G be _Graph; ::_thesis: for v1, v2, v3 being Vertex of G st v1 <> v2 & v1 <> v3 & v2 <> v3 & v1,v2 are_adjacent & v2,v3 are_adjacent holds
ex P being Path of G ex e1, e2 being set st
( P is open & len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
let v1, v2, v3 be Vertex of G; ::_thesis: ( v1 <> v2 & v1 <> v3 & v2 <> v3 & v1,v2 are_adjacent & v2,v3 are_adjacent implies ex P being Path of G ex e1, e2 being set st
( P is open & len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 ) )
assume that
A1: v1 <> v2 and
A2: v1 <> v3 and
A3: v2 <> v3 and
A4: v1,v2 are_adjacent and
A5: v2,v3 are_adjacent ; ::_thesis: ex P being Path of G ex e1, e2 being set st
( P is open & len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
consider e1 being set such that
A6: e1 Joins v1,v2,G by A4, Def3;
set P1 = G .walkOf (v1,e1,v2);
A7: (G .walkOf (v1,e1,v2)) .vertices() = {v1,v2} by A6, GLIB_001:91;
then A8: not v3 in (G .walkOf (v1,e1,v2)) .vertices() by A2, A3, TARSKI:def_2;
consider e2 being set such that
A9: e2 Joins v2,v3,G by A5, Def3;
set P = (G .walkOf (v1,e1,v2)) .addEdge e2;
A10: (G .walkOf (v1,e1,v2)) .last() = v2 by A6, GLIB_001:15;
then A11: ((G .walkOf (v1,e1,v2)) .addEdge e2) .last() = v3 by A9, GLIB_001:63;
A12: (G .walkOf (v1,e1,v2)) .first() = v1 by A6, GLIB_001:15;
then A13: ((G .walkOf (v1,e1,v2)) .addEdge e2) .first() = v1 by A9, A10, GLIB_001:63;
G .walkOf (v1,e1,v2) is open by A1, A12, A10, GLIB_001:def_24;
then reconsider P = (G .walkOf (v1,e1,v2)) .addEdge e2 as Path of G by A9, A10, A8, GLIB_001:151;
take P ; ::_thesis: ex e1, e2 being set st
( P is open & len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
take e1 ; ::_thesis: ex e2 being set st
( P is open & len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
take e2 ; ::_thesis: ( P is open & len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
thus P is open by A2, A13, A11, GLIB_001:def_24; ::_thesis: ( len P = 5 & P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
A14: len (G .walkOf (v1,e1,v2)) = 3 by A6, GLIB_001:14;
then A15: len P = 3 + 2 by A9, A10, GLIB_001:64;
hence len P = 5 ; ::_thesis: ( P .length() = 2 & e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
5 = (2 * (P .length())) + 1 by A15, GLIB_001:112;
hence P .length() = 2 ; ::_thesis: ( e1 Joins v1,v2,G & e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
thus e1 Joins v1,v2,G by A6; ::_thesis: ( e2 Joins v2,v3,G & P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
thus e2 Joins v2,v3,G by A9; ::_thesis: ( P .edges() = {e1,e2} & P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
(G .walkOf (v1,e1,v2)) .edges() = {e1} by A6, GLIB_001:108;
then P .edges() = {e1} \/ {e2} by A9, A10, GLIB_001:111;
hence P .edges() = {e1,e2} by ENUMSET1:1; ::_thesis: ( P .vertices() = {v1,v2,v3} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
P .vertices() = {v1,v2} \/ {v3} by A9, A10, A7, GLIB_001:95;
hence P .vertices() = {v1,v2,v3} by ENUMSET1:3; ::_thesis: ( P . 1 = v1 & P . 3 = v2 & P . 5 = v3 )
thus P . 1 = v1 by A13; ::_thesis: ( P . 3 = v2 & P . 5 = v3 )
3 in dom (G .walkOf (v1,e1,v2)) by A14, FINSEQ_3:25;
hence P . 3 = (G .walkOf (v1,e1,v2)) . 3 by A9, A10, GLIB_001:65
.= v2 by A6, A10, GLIB_001:14 ;
::_thesis: P . 5 = v3
thus P . 5 = v3 by A11, A15; ::_thesis: verum
end;
theorem Th48: :: CHORD:48
for G being _Graph
for v1, v2, v3, v4 being Vertex of G st v1 <> v2 & v1 <> v3 & v2 <> v3 & v2 <> v4 & v3 <> v4 & v1,v2 are_adjacent & v2,v3 are_adjacent & v3,v4 are_adjacent holds
ex P being Path of G st
( len P = 7 & P .length() = 3 & P .vertices() = {v1,v2,v3,v4} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
proof
let G be _Graph; ::_thesis: for v1, v2, v3, v4 being Vertex of G st v1 <> v2 & v1 <> v3 & v2 <> v3 & v2 <> v4 & v3 <> v4 & v1,v2 are_adjacent & v2,v3 are_adjacent & v3,v4 are_adjacent holds
ex P being Path of G st
( len P = 7 & P .length() = 3 & P .vertices() = {v1,v2,v3,v4} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
let v1, v2, v3, v4 be Vertex of G; ::_thesis: ( v1 <> v2 & v1 <> v3 & v2 <> v3 & v2 <> v4 & v3 <> v4 & v1,v2 are_adjacent & v2,v3 are_adjacent & v3,v4 are_adjacent implies ex P being Path of G st
( len P = 7 & P .length() = 3 & P .vertices() = {v1,v2,v3,v4} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 ) )
assume that
A1: v1 <> v2 and
A2: v1 <> v3 and
A3: v2 <> v3 and
A4: v2 <> v4 and
A5: v3 <> v4 and
A6: v1,v2 are_adjacent and
A7: v2,v3 are_adjacent and
A8: v3,v4 are_adjacent ; ::_thesis: ex P being Path of G st
( len P = 7 & P .length() = 3 & P .vertices() = {v1,v2,v3,v4} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
consider R being Path of G, e1, e2 being set such that
A9: R is open and
A10: len R = 5 and
R .length() = 2 and
A11: e1 Joins v1,v2,G and
A12: e2 Joins v2,v3,G and
A13: R .edges() = {e1,e2} and
A14: R .vertices() = {v1,v2,v3} and
A15: R . 1 = v1 and
A16: R . 3 = v2 and
A17: R . 5 = v3 by A1, A2, A3, A6, A7, Th47;
consider e3 being set such that
A18: e3 Joins v3,v4,G by A8, Def3;
A19: for n being odd Element of NAT st 1 < n & n <= len R holds
R . n <> v4
proof
let n be odd Element of NAT ; ::_thesis: ( 1 < n & n <= len R implies R . n <> v4 )
assume that
A20: 1 < n and
A21: n <= len R ; ::_thesis: R . n <> v4
percases ( n = 3 or n = 5 ) by A10, A20, A21, Th8, XXREAL_0:2;
suppose n = 3 ; ::_thesis: R . n <> v4
hence R . n <> v4 by A4, A16; ::_thesis: verum
end;
suppose n = 5 ; ::_thesis: R . n <> v4
hence R . n <> v4 by A5, A17; ::_thesis: verum
end;
end;
end;
A22: e2 <> e3 by A3, A4, A18, A12, GLIB_000:15;
set P = R .addEdge e3;
e1 <> e3 by A2, A3, A18, A11, GLIB_000:15;
then not e3 in R .edges() by A13, A22, TARSKI:def_2;
then reconsider P = R .addEdge e3 as Path of G by A18, A9, A10, A17, A19, GLIB_001:150;
take P ; ::_thesis: ( len P = 7 & P .length() = 3 & P .vertices() = {v1,v2,v3,v4} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
A23: len P = 5 + 2 by A18, A10, A17, GLIB_001:64;
hence len P = 7 ; ::_thesis: ( P .length() = 3 & P .vertices() = {v1,v2,v3,v4} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
7 = (2 * (P .length())) + 1 by A23, GLIB_001:112;
hence P .length() = 3 ; ::_thesis: ( P .vertices() = {v1,v2,v3,v4} & P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
P .vertices() = {v1,v2,v3} \/ {v4} by A18, A10, A14, A17, GLIB_001:95;
hence P .vertices() = {v1,v2,v3,v4} by ENUMSET1:6; ::_thesis: ( P . 1 = v1 & P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
1 in dom R by A10, FINSEQ_3:25;
hence P . 1 = v1 by A18, A10, A15, A17, GLIB_001:65; ::_thesis: ( P . 3 = v2 & P . 5 = v3 & P . 7 = v4 )
3 in dom R by A10, FINSEQ_3:25;
hence P . 3 = v2 by A18, A10, A16, A17, GLIB_001:65; ::_thesis: ( P . 5 = v3 & P . 7 = v4 )
5 in dom R by A10, FINSEQ_3:25;
hence P . 5 = v3 by A18, A10, A17, GLIB_001:65; ::_thesis: P . 7 = v4
P .last() = v4 by A18, A10, A17, GLIB_001:63;
hence P . 7 = v4 by A23; ::_thesis: verum
end;
definition
let G be _Graph;
let S be set ;
funcG .AdjacentSet S -> Subset of (the_Vertices_of G) equals :: CHORD:def 4
{ u where u is Vertex of G : ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) } ;
coherence
{ u where u is Vertex of G : ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) } is Subset of (the_Vertices_of G)
proof
set X = { u where u is Vertex of G : ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) } ;
now__::_thesis:_for_x_being_set_st_x_in__{__u_where_u_is_Vertex_of_G_:_(_not_u_in_S_&_ex_v_being_Vertex_of_G_st_
(_v_in_S_&_u,v_are_adjacent_)_)__}__holds_
x_in_the_Vertices_of_G
let x be set ; ::_thesis: ( x in { u where u is Vertex of G : ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) } implies x in the_Vertices_of G )
assume x in { u where u is Vertex of G : ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) } ; ::_thesis: x in the_Vertices_of G
then ex u being Vertex of G st
( u = x & not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) ;
hence x in the_Vertices_of G ; ::_thesis: verum
end;
hence { u where u is Vertex of G : ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) } is Subset of (the_Vertices_of G) by TARSKI:def_3; ::_thesis: verum
end;
end;
:: deftheorem defines .AdjacentSet CHORD:def_4_:_
for G being _Graph
for S being set holds G .AdjacentSet S = { u where u is Vertex of G : ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) } ;
theorem :: CHORD:49
for G being _Graph
for S, x being set st x in G .AdjacentSet S holds
not x in S
proof
let G be _Graph; ::_thesis: for S, x being set st x in G .AdjacentSet S holds
not x in S
let S, x be set ; ::_thesis: ( x in G .AdjacentSet S implies not x in S )
assume x in G .AdjacentSet S ; ::_thesis: not x in S
then ex t being Vertex of G st
( t = x & not t in S & ex v being Vertex of G st
( v in S & t,v are_adjacent ) ) ;
hence not x in S ; ::_thesis: verum
end;
theorem Th50: :: CHORD:50
for G being _Graph
for S being set
for u being Vertex of G holds
( u in G .AdjacentSet S iff ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) )
proof
let G be _Graph; ::_thesis: for S being set
for u being Vertex of G holds
( u in G .AdjacentSet S iff ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) )
let S be set ; ::_thesis: for u being Vertex of G holds
( u in G .AdjacentSet S iff ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) )
let u be Vertex of G; ::_thesis: ( u in G .AdjacentSet S iff ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) )
hereby ::_thesis: ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) implies u in G .AdjacentSet S )
assume u in G .AdjacentSet S ; ::_thesis: ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) )
then ex t being Vertex of G st
( u = t & not t in S & ex v being Vertex of G st
( v in S & t,v are_adjacent ) ) ;
hence ( not u in S & ex v being Vertex of G st
( v in S & u,v are_adjacent ) ) ; ::_thesis: verum
end;
assume that
A1: not u in S and
A2: ex v being Vertex of G st
( v in S & u,v are_adjacent ) ; ::_thesis: u in G .AdjacentSet S
thus u in G .AdjacentSet S by A1, A2; ::_thesis: verum
end;
theorem Th51: :: CHORD:51
for G1, G2 being _Graph st G1 == G2 holds
for S being set holds G1 .AdjacentSet S = G2 .AdjacentSet S
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 implies for S being set holds G1 .AdjacentSet S = G2 .AdjacentSet S )
assume A1: G1 == G2 ; ::_thesis: for S being set holds G1 .AdjacentSet S = G2 .AdjacentSet S
let S be set ; ::_thesis: G1 .AdjacentSet S = G2 .AdjacentSet S
A2: now__::_thesis:_for_x_being_set_st_x_in_G2_.AdjacentSet_S_holds_
x_in_G1_.AdjacentSet_S
let x be set ; ::_thesis: ( x in G2 .AdjacentSet S implies x in G1 .AdjacentSet S )
assume A3: x in G2 .AdjacentSet S ; ::_thesis: x in G1 .AdjacentSet S
reconsider t2 = x as Vertex of G2 by A3;
A4: not t2 in S by A3, Th50;
consider v2 being Vertex of G2 such that
A5: v2 in S and
A6: t2,v2 are_adjacent by A3, Th50;
reconsider t1 = t2, v1 = v2 as Vertex of G1 by A1, GLIB_000:def_34;
t1,v1 are_adjacent by A1, A6, Th44;
hence x in G1 .AdjacentSet S by A4, A5; ::_thesis: verum
end;
now__::_thesis:_for_x_being_set_st_x_in_G1_.AdjacentSet_S_holds_
x_in_G2_.AdjacentSet_S
let x be set ; ::_thesis: ( x in G1 .AdjacentSet S implies x in G2 .AdjacentSet S )
assume A7: x in G1 .AdjacentSet S ; ::_thesis: x in G2 .AdjacentSet S
reconsider t1 = x as Vertex of G1 by A7;
A8: not t1 in S by A7, Th50;
consider v1 being Vertex of G1 such that
A9: v1 in S and
A10: t1,v1 are_adjacent by A7, Th50;
reconsider t2 = t1, v2 = v1 as Vertex of G2 by A1, GLIB_000:def_34;
t2,v2 are_adjacent by A1, A10, Th44;
hence x in G2 .AdjacentSet S by A8, A9; ::_thesis: verum
end;
hence G1 .AdjacentSet S = G2 .AdjacentSet S by A2, TARSKI:1; ::_thesis: verum
end;
theorem Th52: :: CHORD:52
for G being _Graph
for u, v being Vertex of G holds
( u in G .AdjacentSet {v} iff ( u <> v & v,u are_adjacent ) )
proof
let G be _Graph; ::_thesis: for u, v being Vertex of G holds
( u in G .AdjacentSet {v} iff ( u <> v & v,u are_adjacent ) )
let u, v be Vertex of G; ::_thesis: ( u in G .AdjacentSet {v} iff ( u <> v & v,u are_adjacent ) )
A1: v in {v} by TARSKI:def_1;
hereby ::_thesis: ( u <> v & v,u are_adjacent implies u in G .AdjacentSet {v} )
assume A2: u in G .AdjacentSet {v} ; ::_thesis: ( u <> v & v,u are_adjacent )
then consider x being Vertex of G such that
A3: x in {v} and
A4: u,x are_adjacent by Th50;
x = v by A3, TARSKI:def_1;
hence ( u <> v & v,u are_adjacent ) by A2, A3, A4, Th50; ::_thesis: verum
end;
assume that
A5: u <> v and
A6: v,u are_adjacent ; ::_thesis: u in G .AdjacentSet {v}
not u in {v} by A5, TARSKI:def_1;
hence u in G .AdjacentSet {v} by A6, A1; ::_thesis: verum
end;
theorem :: CHORD:53
for G being _Graph
for x, y being set holds
( x in G .AdjacentSet {y} iff y in G .AdjacentSet {x} )
proof
let G be _Graph; ::_thesis: for x, y being set holds
( x in G .AdjacentSet {y} iff y in G .AdjacentSet {x} )
let x, y be set ; ::_thesis: ( x in G .AdjacentSet {y} iff y in G .AdjacentSet {x} )
hereby ::_thesis: ( y in G .AdjacentSet {x} implies x in G .AdjacentSet {y} )
assume A1: x in G .AdjacentSet {y} ; ::_thesis: y in G .AdjacentSet {x}
then reconsider xg = x as Vertex of G ;
now__::_thesis:_y_in_the_Vertices_of_G
consider vy being Vertex of G such that
A2: vy in {y} and
vy,xg are_adjacent by A1, Th50;
assume A3: not y in the_Vertices_of G ; ::_thesis: contradiction
vy = y by A2, TARSKI:def_1;
hence contradiction by A3; ::_thesis: verum
end;
then reconsider yg = y as Vertex of G ;
A4: xg,yg are_adjacent by A1, Th52;
xg <> yg by A1, Th52;
hence y in G .AdjacentSet {x} by A4, Th52; ::_thesis: verum
end;
assume A5: y in G .AdjacentSet {x} ; ::_thesis: x in G .AdjacentSet {y}
then reconsider yg = y as Vertex of G ;
now__::_thesis:_x_in_the_Vertices_of_G
consider vx being Vertex of G such that
A6: vx in {x} and
vx,yg are_adjacent by A5, Th50;
assume A7: not x in the_Vertices_of G ; ::_thesis: contradiction
vx = x by A6, TARSKI:def_1;
hence contradiction by A7; ::_thesis: verum
end;
then reconsider xg = x as Vertex of G ;
A8: xg,yg are_adjacent by A5, Th52;
xg <> yg by A5, Th52;
hence x in G .AdjacentSet {y} by A8, Th52; ::_thesis: verum
end;
theorem :: CHORD:54
for G being _Graph
for C being Path of G st C is Cycle-like & C .length() > 3 holds
for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
proof
let G be _Graph; ::_thesis: for C being Path of G st C is Cycle-like & C .length() > 3 holds
for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
let C be Path of G; ::_thesis: ( C is Cycle-like & C .length() > 3 implies for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} ) )
assume that
A1: C is Cycle-like and
A2: C .length() > 3 ; ::_thesis: for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
C .length() >= 3 + 1 by A2, NAT_1:13;
then 2 * (C .length()) >= 2 * 4 by XREAL_1:64;
then (2 * (C .length())) + 1 >= 8 + 1 by XREAL_1:7;
then A3: len C >= 9 by GLIB_001:112;
let x be Vertex of G; ::_thesis: ( x in C .vertices() implies ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} ) )
assume x in C .vertices() ; ::_thesis: ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
then consider n being odd Element of NAT such that
A4: n <= len C and
A5: C . n = x by GLIB_001:87;
A6: 0 + 1 <= n by ABIAN:12;
percases ( n = 1 or n = len C or ( not n = 1 & not n = len C ) ) ;
supposeA7: ( n = 1 or n = len C ) ; ::_thesis: ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
reconsider i = (2 * 1) + 1 as odd Nat ;
reconsider k = (2 * 0) + 1 as odd Nat ;
A8: (len C) + 0 > 9 + (- 6) by A3, XREAL_1:8;
then reconsider Ci = C . i as Vertex of G by GLIB_001:7;
A9: now__::_thesis:_x_=_C_._k
percases ( n = 1 or n = len C ) by A7;
suppose n = 1 ; ::_thesis: x = C . k
hence x = C . k by A5; ::_thesis: verum
end;
suppose n = len C ; ::_thesis: x = C . k
then x = C .last() by A5;
then x = C .first() by A1, GLIB_001:def_24;
hence x = C . k ; ::_thesis: verum
end;
end;
end;
then A10: x <> Ci by A8, GLIB_001:def_28;
(len C) + (- 2) >= 9 + (- 2) by A3, XREAL_1:7;
then (len C) - (2 * 1) >= 0 by XXREAL_0:2;
then (len C) - 2 is odd Element of NAT by INT_1:3;
then reconsider j = (len C) - 2 as odd Nat ;
take i ; ::_thesis: ex n being odd Nat st
( i + 2 < n & n <= len C & ( not i = 1 or not n = len C ) & ( not i = 1 or not n = (len C) - 2 ) & ( not i = 3 or not n = len C ) & C . i <> C . n & C . i in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
take j ; ::_thesis: ( i + 2 < j & j <= len C & ( not i = 1 or not j = len C ) & ( not i = 1 or not j = (len C) - 2 ) & ( not i = 3 or not j = len C ) & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
A11: (len C) + (- 2) >= 9 + (- 2) by A3, XREAL_1:7;
hence i + 2 < j by XXREAL_0:2; ::_thesis: ( j <= len C & ( not i = 1 or not j = len C ) & ( not i = 1 or not j = (len C) - 2 ) & ( not i = 3 or not j = len C ) & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
A12: (len C) + 0 > (len C) + (- 2) by XREAL_1:8;
hence j <= len C ; ::_thesis: ( ( not i = 1 or not j = len C ) & ( not i = 1 or not j = (len C) - 2 ) & ( not i = 3 or not j = len C ) & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
thus ( ( not i = 1 or not j = len C ) & ( not i = 1 or not j = (len C) - 2 ) & ( not i = 3 or not j = len C ) ) ; ::_thesis: ( C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
hereby ::_thesis: ( C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
assume A13: C . i = C . j ; ::_thesis: contradiction
(i + 2) + (- 2) < j + 0 by A11, XXREAL_0:2;
hence contradiction by A12, A13, GLIB_001:def_28; ::_thesis: verum
end;
(len C) + 0 > 9 + (- 8) by A3, XREAL_1:8;
then C . (k + 1) Joins C . k,C . i,G by GLIB_001:def_3;
then x,Ci are_adjacent by A9, Def3;
hence C . i in G .AdjacentSet {x} by A10, Th52; ::_thesis: C . j in G .AdjacentSet {x}
A14: j in NAT by ORDINAL1:def_12;
then reconsider Cj = C . j as Vertex of G by A12, GLIB_001:7;
A15: now__::_thesis:_x_=_C_._(j_+_2)
percases ( n = 1 or n = len C ) by A7;
suppose n = 1 ; ::_thesis: x = C . (j + 2)
then x = C .first() by A5;
then x = C .last() by A1, GLIB_001:def_24;
hence x = C . (j + 2) ; ::_thesis: verum
end;
suppose n = len C ; ::_thesis: x = C . (j + 2)
hence x = C . (j + 2) by A5; ::_thesis: verum
end;
end;
end;
A16: now__::_thesis:_not_x_=_Cj
assume x = Cj ; ::_thesis: contradiction
then A17: j = 1 by A14, A12, A15, GLIB_001:def_28;
j + 2 = len C ;
hence contradiction by A3, A17; ::_thesis: verum
end;
C . (j + 1) Joins Cj,x,G by A14, A12, A15, GLIB_001:def_3;
then x,Cj are_adjacent by Def3;
hence C . j in G .AdjacentSet {x} by A16, Th52; ::_thesis: verum
end;
supposeA18: ( not n = 1 & not n = len C ) ; ::_thesis: ex m, n being odd Nat st
( m + 2 < n & n <= len C & ( not m = 1 or not n = len C ) & ( not m = 1 or not n = (len C) - 2 ) & ( not m = 3 or not n = len C ) & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
then (2 * 0) + 1 < n by A6, XXREAL_0:1;
then 1 + 2 <= n by Th4;
then 3 + (- 2) <= n + (- 2) by XREAL_1:7;
then 0 <= n - (2 * 1) ;
then n - 2 is odd Element of NAT by INT_1:3;
then reconsider i = n - 2 as odd Nat ;
A19: i + 0 < i + 2 by XREAL_1:8;
then reconsider Ci = C . i as Vertex of G by A4, GLIB_001:7, XXREAL_0:2;
reconsider j = n + 2 as odd Nat ;
A20: n < len C by A4, A18, XXREAL_0:1;
then A21: n + 2 <= ((len C) - 2) + 2 by Th4;
then reconsider Cj = C . j as Vertex of G by GLIB_001:7;
A22: now__::_thesis:_not_Cj_=_x
A23: n + 2 > n + 0 by XREAL_1:8;
assume Cj = x ; ::_thesis: contradiction
hence contradiction by A5, A18, A21, A23, GLIB_001:def_28; ::_thesis: verum
end;
take i ; ::_thesis: ex n being odd Nat st
( i + 2 < n & n <= len C & ( not i = 1 or not n = len C ) & ( not i = 1 or not n = (len C) - 2 ) & ( not i = 3 or not n = len C ) & C . i <> C . n & C . i in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} )
take j ; ::_thesis: ( i + 2 < j & j <= len C & ( not i = 1 or not j = len C ) & ( not i = 1 or not j = (len C) - 2 ) & ( not i = 3 or not j = len C ) & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
n + 0 < n + 2 by XREAL_1:8;
hence ( i + 2 < j & j <= len C ) by A20, Th4; ::_thesis: ( ( not i = 1 or not j = len C ) & ( not i = 1 or not j = (len C) - 2 ) & ( not i = 3 or not j = len C ) & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
A24: now__::_thesis:_(_i_=_1_implies_not_j_=_len_C_)
assume that
A25: i = 1 and
A26: j = len C ; ::_thesis: contradiction
j = i + 4 ;
hence contradiction by A3, A25, A26; ::_thesis: verum
end;
hence ( not i = 1 or not j = len C ) ; ::_thesis: ( ( not i = 1 or not j = (len C) - 2 ) & ( not i = 3 or not j = len C ) & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
hereby ::_thesis: ( ( not i = 3 or not j = len C ) & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
assume that
A27: i = 1 and
A28: j = (len C) - 2 ; ::_thesis: contradiction
(len C) + (- 2) >= 9 + (- 3) by A3, XREAL_1:7;
hence contradiction by A27, A28; ::_thesis: verum
end;
hereby ::_thesis: ( C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
assume that
A29: i = 3 and
A30: j = len C ; ::_thesis: contradiction
j = i + 4 ;
hence contradiction by A3, A29, A30; ::_thesis: verum
end;
A31: i in NAT by ORDINAL1:def_12;
A32: now__::_thesis:_not_Ci_=_x
A33: n + 0 > n + (- 2) by XREAL_1:8;
assume Ci = x ; ::_thesis: contradiction
hence contradiction by A4, A5, A18, A31, A33, GLIB_001:def_28; ::_thesis: verum
end;
A34: n + 2 <= ((len C) - 2) + 2 by A20, Th4;
hereby ::_thesis: ( C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} )
A35: (i + 2) + (- 2) < j + 0 by XREAL_1:8;
assume C . i = C . j ; ::_thesis: contradiction
hence contradiction by A31, A34, A24, A35, GLIB_001:def_28; ::_thesis: verum
end;
i < len C by A4, A19, XXREAL_0:2;
then C . (i + 1) Joins C . i,C . (i + 2),G by A31, GLIB_001:def_3;
then x,Ci are_adjacent by A5, Def3;
hence C . i in G .AdjacentSet {x} by A32, Th52; ::_thesis: C . j in G .AdjacentSet {x}
C . (n + 1) Joins C . n,C . j,G by A20, GLIB_001:def_3;
then x,Cj are_adjacent by A5, Def3;
hence C . j in G .AdjacentSet {x} by A22, Th52; ::_thesis: verum
end;
end;
end;
theorem Th55: :: CHORD:55
for G being _Graph
for C being Path of G st C is Cycle-like & C .length() > 3 holds
for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) )
proof
let G be _Graph; ::_thesis: for C being Path of G st C is Cycle-like & C .length() > 3 holds
for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) )
let C be Path of G; ::_thesis: ( C is Cycle-like & C .length() > 3 implies for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) ) )
assume that
A1: C is Cycle-like and
A2: C .length() > 3 ; ::_thesis: for x being Vertex of G st x in C .vertices() holds
ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) )
C .length() >= 3 + 1 by A2, NAT_1:13;
then 2 * (C .length()) >= 2 * 4 by XREAL_1:64;
then (2 * (C .length())) + 1 >= 8 + 1 by XREAL_1:7;
then A3: len C >= 9 by GLIB_001:112;
let x be Vertex of G; ::_thesis: ( x in C .vertices() implies ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) ) )
assume x in C .vertices() ; ::_thesis: ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) )
then consider n being odd Element of NAT such that
A4: n <= len C and
A5: C . n = x by GLIB_001:87;
A6: 0 + 1 <= n by ABIAN:12;
percases ( n = 1 or n = len C or ( not n = 1 & not n = len C ) ) ;
supposeA7: ( n = 1 or n = len C ) ; ::_thesis: ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) )
reconsider k = (2 * 0) + 1 as odd Nat ;
A8: now__::_thesis:_x_=_C_._k
percases ( n = 1 or n = len C ) by A7;
suppose n = 1 ; ::_thesis: x = C . k
hence x = C . k by A5; ::_thesis: verum
end;
suppose n = len C ; ::_thesis: x = C . k
then x = C .last() by A5;
then x = C .first() by A1, GLIB_001:def_24;
hence x = C . k ; ::_thesis: verum
end;
end;
end;
(len C) + (- 2) >= 9 + (- 2) by A3, XREAL_1:7;
then (len C) - (2 * 1) >= 0 by XXREAL_0:2;
then (len C) - 2 is odd Element of NAT by INT_1:3;
then reconsider j = (len C) - 2 as odd Nat ;
reconsider i = (2 * 1) + 1 as odd Nat ;
take i ; ::_thesis: ex n being odd Nat st
( i + 2 < n & n <= len C & C . i <> C . n & C . i in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . n,G ) )
take j ; ::_thesis: ( i + 2 < j & j <= len C & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
A9: (len C) + (- 2) >= 9 + (- 2) by A3, XREAL_1:7;
hence i + 2 < j by XXREAL_0:2; ::_thesis: ( j <= len C & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
A10: (len C) + 0 > (len C) + (- 2) by XREAL_1:8;
hence j <= len C ; ::_thesis: ( C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
i < j by A9, XXREAL_0:2;
then A11: i < len C by A10, XXREAL_0:2;
hereby ::_thesis: ( C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
assume A12: C . i = C . j ; ::_thesis: contradiction
(i + 2) + (- 2) < j + 0 by A9, XXREAL_0:2;
hence contradiction by A10, A12, GLIB_001:def_28; ::_thesis: verum
end;
A13: (len C) + 0 > 9 + (- 6) by A3, XREAL_1:8;
then reconsider Ci = C . i as Vertex of G by GLIB_001:7;
(len C) + 0 > 9 + (- 8) by A3, XREAL_1:8;
then C . (k + 1) Joins C . k,C . i,G by GLIB_001:def_3;
then A14: x,Ci are_adjacent by A8, Def3;
x <> Ci by A13, A8, GLIB_001:def_28;
hence C . i in G .AdjacentSet {x} by A14, Th52; ::_thesis: ( C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
A15: j <> 1 by A9;
A16: j in NAT by ORDINAL1:def_12;
then reconsider Cj = C . j as Vertex of G by A10, GLIB_001:7;
A17: now__::_thesis:_x_=_C_._(j_+_2)
percases ( n = 1 or n = len C ) by A7;
suppose n = 1 ; ::_thesis: x = C . (j + 2)
then x = C .first() by A5;
then x = C .last() by A1, GLIB_001:def_24;
hence x = C . (j + 2) ; ::_thesis: verum
end;
suppose n = len C ; ::_thesis: x = C . (j + 2)
hence x = C . (j + 2) by A5; ::_thesis: verum
end;
end;
end;
A18: now__::_thesis:_not_x_=_Cj
assume x = Cj ; ::_thesis: contradiction
then A19: j = 1 by A16, A10, A17, GLIB_001:def_28;
j + 2 = len C ;
hence contradiction by A3, A19; ::_thesis: verum
end;
C . (j + 1) Joins C . j,C . (j + 2),G by A16, A10, GLIB_001:def_3;
then x,Cj are_adjacent by A17, Def3;
hence C . j in G .AdjacentSet {x} by A18, Th52; ::_thesis: for e being set st e in C .edges() holds
not e Joins C . i,C . j,G
let e be set ; ::_thesis: ( e in C .edges() implies not e Joins C . i,C . j,G )
assume that
A20: e in C .edges() and
A21: e Joins C . i,C . j,G ; ::_thesis: contradiction
consider k being even Element of NAT such that
A22: 1 <= k and
A23: k <= len C and
A24: C . k = e by A20, GLIB_001:99;
A25: ( ( (the_Source_of G) . e = C . i & (the_Target_of G) . e = C . j ) or ( (the_Source_of G) . e = C . j & (the_Target_of G) . e = C . i ) ) by A21, GLIB_000:def_13;
k in dom C by A22, A23, FINSEQ_3:25;
then consider ku1 being odd Element of NAT such that
A26: ku1 = k - 1 and
A27: k - 1 in dom C and
A28: k + 1 in dom C and
A29: C . k Joins C . ku1,C . (k + 1),G by GLIB_001:9;
A30: ku1 <= len C by A26, A27, FINSEQ_3:25;
A31: k + 1 <= len C by A28, FINSEQ_3:25;
percases ( ( C . i = C . ku1 & C . j = C . (k + 1) ) or ( C . i = C . (k + 1) & C . j = C . ku1 ) ) by A24, A29, A25, GLIB_000:def_13;
supposeA32: ( C . i = C . ku1 & C . j = C . (k + 1) ) ; ::_thesis: contradiction
then i + 2 = (k - 1) + (1 + 1) by A26, A30, A11, Th25
.= j by A10, A31, A15, A32, Th25 ;
hence contradiction by A9; ::_thesis: verum
end;
supposeA33: ( C . i = C . (k + 1) & C . j = C . ku1 ) ; ::_thesis: contradiction
then i = k + 1 by A31, A11, Th25;
hence contradiction by A10, A26, A30, A15, A33, Th25; ::_thesis: verum
end;
end;
end;
supposeA34: ( not n = 1 & not n = len C ) ; ::_thesis: ex m, n being odd Nat st
( m + 2 < n & n <= len C & C . m <> C . n & C . m in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . m,C . n,G ) )
then (2 * 0) + 1 < n by A6, XXREAL_0:1;
then 1 + 2 <= n by Th4;
then 3 + (- 2) <= n + (- 2) by XREAL_1:7;
then n - (2 * 1) is odd Element of NAT by INT_1:3;
then reconsider i = n - (2 * 1) as odd Nat ;
A35: i + 0 < i + 2 by XREAL_1:8;
then reconsider Ci = C . i as Vertex of G by A4, GLIB_001:7, XXREAL_0:2;
reconsider j = n + 2 as odd Nat ;
take i ; ::_thesis: ex n being odd Nat st
( i + 2 < n & n <= len C & C . i <> C . n & C . i in G .AdjacentSet {x} & C . n in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . n,G ) )
take j ; ::_thesis: ( i + 2 < j & j <= len C & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
n + 0 < n + 2 by XREAL_1:8;
hence i + 2 < j ; ::_thesis: ( j <= len C & C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
A36: n < len C by A4, A34, XXREAL_0:1;
hence A37: j <= len C by Th4; ::_thesis: ( C . i <> C . j & C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
then reconsider Cj = C . j as Vertex of G by GLIB_001:7;
A38: i in NAT by ORDINAL1:def_12;
A39: now__::_thesis:_not_Ci_=_x
A40: n + 0 > n + (- 2) by XREAL_1:8;
assume Ci = x ; ::_thesis: contradiction
hence contradiction by A4, A5, A34, A38, A40, GLIB_001:def_28; ::_thesis: verum
end;
A41: now__::_thesis:_(_i_=_1_implies_not_j_=_len_C_)
assume that
A42: i = 1 and
A43: j = len C ; ::_thesis: contradiction
j = i + 4 ;
hence contradiction by A3, A42, A43; ::_thesis: verum
end;
hereby ::_thesis: ( C . i in G .AdjacentSet {x} & C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
A44: (i + 2) + (- 2) < j + 0 by XREAL_1:8;
assume C . i = C . j ; ::_thesis: contradiction
hence contradiction by A38, A37, A41, A44, GLIB_001:def_28; ::_thesis: verum
end;
A45: i < len C by A4, A35, XXREAL_0:2;
then C . (i + 1) Joins C . i,C . (i + 2),G by A38, GLIB_001:def_3;
then x,Ci are_adjacent by A5, Def3;
hence C . i in G .AdjacentSet {x} by A39, Th52; ::_thesis: ( C . j in G .AdjacentSet {x} & ( for e being set st e in C .edges() holds
not e Joins C . i,C . j,G ) )
1 + 2 <= j by A6, XREAL_1:7;
then A46: j <> 1 ;
A47: n + 2 <= ((len C) - 2) + 2 by A36, Th4;
A48: now__::_thesis:_not_Cj_=_x
A49: n + 2 > n + 0 by XREAL_1:8;
assume Cj = x ; ::_thesis: contradiction
hence contradiction by A5, A34, A47, A49, GLIB_001:def_28; ::_thesis: verum
end;
C . (n + 1) Joins C . n,C . j,G by A36, GLIB_001:def_3;
then x,Cj are_adjacent by A5, Def3;
hence C . j in G .AdjacentSet {x} by A48, Th52; ::_thesis: for e being set st e in C .edges() holds
not e Joins C . i,C . j,G
let e be set ; ::_thesis: ( e in C .edges() implies not e Joins C . i,C . j,G )
assume that
A50: e in C .edges() and
A51: e Joins C . i,C . j,G ; ::_thesis: contradiction
consider k being even Element of NAT such that
A52: 1 <= k and
A53: k <= len C and
A54: C . k = e by A50, GLIB_001:99;
A55: ( ( (the_Source_of G) . e = C . i & (the_Target_of G) . e = C . j ) or ( (the_Source_of G) . e = C . j & (the_Target_of G) . e = C . i ) ) by A51, GLIB_000:def_13;
1 + 1 <= k + 1 by A52, XREAL_1:7;
then A56: k + 1 <> 1 ;
A57: k - 1 < len C by A53, XREAL_1:146, XXREAL_0:2;
k in dom C by A52, A53, FINSEQ_3:25;
then consider ku1 being odd Element of NAT such that
A58: ku1 = k - 1 and
k - 1 in dom C and
A59: k + 1 in dom C and
A60: C . k Joins C . ku1,C . (k + 1),G by GLIB_001:9;
A61: k + 1 <= len C by A59, FINSEQ_3:25;
percases ( ( C . i = C . ku1 & C . j = C . (k + 1) ) or ( C . i = C . (k + 1) & C . j = C . ku1 ) ) by A54, A60, A55, GLIB_000:def_13;
supposeA62: ( C . i = C . ku1 & C . j = C . (k + 1) ) ; ::_thesis: contradiction
then i + 2 = (k - 1) + (1 + 1) by A45, A58, A57, Th25
.= j by A37, A61, A46, A56, A62, Th25 ;
hence contradiction ; ::_thesis: verum
end;
supposeA63: ( C . i = C . (k + 1) & C . j = C . ku1 ) ; ::_thesis: contradiction
percases ( ( i = k + 1 & j = k - 1 ) or ( i = k + 1 & k - 1 = 1 & j = len C ) or ( i = 1 & k + 1 = len C & j = k - 1 ) or ( i = 1 & k + 1 = len C & k - 1 = 1 & j = len C ) ) by A37, A45, A58, A57, A61, A63, Th25;
suppose ( i = k + 1 & j = k - 1 ) ; ::_thesis: contradiction
hence contradiction ; ::_thesis: verum
end;
supposeA64: ( i = k + 1 & k - 1 = 1 & j = len C ) ; ::_thesis: contradiction
j = i + 4 ;
hence contradiction by A3, A64; ::_thesis: verum
end;
supposeA65: ( i = 1 & k + 1 = len C & j = k - 1 ) ; ::_thesis: contradiction
then k + 1 = 7 ;
hence contradiction by A3, A65; ::_thesis: verum
end;
suppose ( i = 1 & k + 1 = len C & k - 1 = 1 & j = len C ) ; ::_thesis: contradiction
hence contradiction ; ::_thesis: verum
end;
end;
end;
end;
end;
end;
end;
theorem :: CHORD:56
for G being loopless _Graph
for u being Vertex of G holds
( G .AdjacentSet {u} = {} iff u is isolated )
proof
let G be loopless _Graph; ::_thesis: for u being Vertex of G holds
( G .AdjacentSet {u} = {} iff u is isolated )
let u be Vertex of G; ::_thesis: ( G .AdjacentSet {u} = {} iff u is isolated )
hereby ::_thesis: ( u is isolated implies G .AdjacentSet {u} = {} )
assume A1: G .AdjacentSet {u} = {} ; ::_thesis: u is isolated
now__::_thesis:_not_u_.edgesInOut()_<>_{}
assume u .edgesInOut() <> {} ; ::_thesis: contradiction
then consider e being set such that
A2: e in u .edgesInOut() by XBOOLE_0:def_1;
consider v being Vertex of G such that
A3: e Joins u,v,G by A2, GLIB_000:64;
A4: now__::_thesis:_not_u_=_v
A5: e in the_Edges_of G by A3, GLIB_000:def_13;
assume A6: u = v ; ::_thesis: contradiction
then A7: (the_Target_of G) . e = u by A3, GLIB_000:def_13;
(the_Source_of G) . e = u by A3, A6, GLIB_000:def_13;
hence contradiction by A5, A7, GLIB_000:def_18; ::_thesis: verum
end;
v,u are_adjacent by A3, Def3;
hence contradiction by A1, A4, Th52; ::_thesis: verum
end;
hence u is isolated by GLIB_000:def_49; ::_thesis: verum
end;
assume u is isolated ; ::_thesis: G .AdjacentSet {u} = {}
then A8: u .edgesInOut() = {} by GLIB_000:def_49;
now__::_thesis:_for_v_being_set_holds_not_v_in_G_.AdjacentSet_{u}
let v be set ; ::_thesis: not v in G .AdjacentSet {u}
assume A9: v in G .AdjacentSet {u} ; ::_thesis: contradiction
reconsider v = v as Vertex of G by A9;
v,u are_adjacent by A9, Th52;
then ex e being set st e Joins v,u,G by Def3;
hence contradiction by A8, GLIB_000:14, GLIB_000:62; ::_thesis: verum
end;
hence G .AdjacentSet {u} = {} by XBOOLE_0:def_1; ::_thesis: verum
end;
theorem Th57: :: CHORD:57
for G being _Graph
for G0 being Subgraph of G
for S being non empty Subset of (the_Vertices_of G)
for x being Vertex of G
for G1 being inducedSubgraph of G,S
for G2 being inducedSubgraph of G,(S \/ {x}) st G1 is connected & x in G .AdjacentSet (the_Vertices_of G1) holds
G2 is connected
proof
let G be _Graph; ::_thesis: for G0 being Subgraph of G
for S being non empty Subset of (the_Vertices_of G)
for x being Vertex of G
for G1 being inducedSubgraph of G,S
for G2 being inducedSubgraph of G,(S \/ {x}) st G1 is connected & x in G .AdjacentSet (the_Vertices_of G1) holds
G2 is connected
let G0 be Subgraph of G; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for x being Vertex of G
for G1 being inducedSubgraph of G,S
for G2 being inducedSubgraph of G,(S \/ {x}) st G1 is connected & x in G .AdjacentSet (the_Vertices_of G1) holds
G2 is connected
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for x being Vertex of G
for G1 being inducedSubgraph of G,S
for G2 being inducedSubgraph of G,(S \/ {x}) st G1 is connected & x in G .AdjacentSet (the_Vertices_of G1) holds
G2 is connected
let x be Vertex of G; ::_thesis: for G1 being inducedSubgraph of G,S
for G2 being inducedSubgraph of G,(S \/ {x}) st G1 is connected & x in G .AdjacentSet (the_Vertices_of G1) holds
G2 is connected
let G1 be inducedSubgraph of G,S; ::_thesis: for G2 being inducedSubgraph of G,(S \/ {x}) st G1 is connected & x in G .AdjacentSet (the_Vertices_of G1) holds
G2 is connected
let G2 be inducedSubgraph of G,(S \/ {x}); ::_thesis: ( G1 is connected & x in G .AdjacentSet (the_Vertices_of G1) implies G2 is connected )
assume that
A1: G1 is connected and
A2: x in G .AdjacentSet (the_Vertices_of G1) ; ::_thesis: G2 is connected
A3: the_Vertices_of G1 = S by GLIB_000:def_37;
then consider xs being Vertex of G such that
A4: xs in S and
A5: x,xs are_adjacent by A2, Th50;
consider e being set such that
A6: e Joins x,xs,G by A5, Def3;
reconsider Sx = S \/ {x} as Subset of (the_Vertices_of G) ;
let u, v be Vertex of G2; :: according to GLIB_002:def_1 ::_thesis: ex b1 being Walk of G2 st b1 is_Walk_from u,v
A7: the_Vertices_of G2 = Sx by GLIB_000:def_37;
then A8: ( u in S or u in {x} ) by XBOOLE_0:def_3;
x in {x} by TARSKI:def_1;
then A9: x in Sx by XBOOLE_0:def_3;
A10: xs in Sx by A4, XBOOLE_0:def_3;
e Joins xs,x,G by A6, GLIB_000:14;
then A11: e Joins xs,x,G2 by A9, A10, Th19;
then A12: e Joins x,xs,G2 by GLIB_000:14;
A13: ( v in S or v in {x} ) by A7, XBOOLE_0:def_3;
A14: G1 is inducedSubgraph of G2,S by Th30, XBOOLE_1:7;
percases ( ( u in S & v in S ) or ( u in S & v = x ) or ( u = x & v in S ) or ( u = x & v = x ) ) by A8, A13, TARSKI:def_1;
supposeA15: ( u in S & v in S ) ; ::_thesis: ex b1 being Walk of G2 st b1 is_Walk_from u,v
the_Vertices_of G1 = S by GLIB_000:def_37;
then consider W being Walk of G1 such that
A16: W is_Walk_from u,v by A1, A15, GLIB_002:def_1;
reconsider W = W as Walk of G2 by A14, GLIB_001:167;
take W ; ::_thesis: W is_Walk_from u,v
thus W is_Walk_from u,v by A16, GLIB_001:19; ::_thesis: verum
end;
supposeA17: ( u in S & v = x ) ; ::_thesis: ex b1 being Walk of G2 st b1 is_Walk_from u,v
then consider W being Walk of G1 such that
A18: W is_Walk_from u,xs by A1, A3, A4, GLIB_002:def_1;
reconsider W = W as Walk of G2 by A14, GLIB_001:167;
take W .append (G2 .walkOf (xs,e,x)) ; ::_thesis: W .append (G2 .walkOf (xs,e,x)) is_Walk_from u,v
A19: G2 .walkOf (xs,e,x) is_Walk_from xs,x by A11, GLIB_001:15;
W is_Walk_from u,xs by A18, GLIB_001:19;
hence W .append (G2 .walkOf (xs,e,x)) is_Walk_from u,v by A17, A19, GLIB_001:31; ::_thesis: verum
end;
supposeA20: ( u = x & v in S ) ; ::_thesis: ex b1 being Walk of G2 st b1 is_Walk_from u,v
then consider W being Walk of G1 such that
A21: W is_Walk_from xs,v by A1, A3, A4, GLIB_002:def_1;
reconsider W = W as Walk of G2 by A14, GLIB_001:167;
take (G2 .walkOf (x,e,xs)) .append W ; ::_thesis: (G2 .walkOf (x,e,xs)) .append W is_Walk_from u,v
A22: G2 .walkOf (x,e,xs) is_Walk_from x,xs by A12, GLIB_001:15;
W is_Walk_from xs,v by A21, GLIB_001:19;
hence (G2 .walkOf (x,e,xs)) .append W is_Walk_from u,v by A20, A22, GLIB_001:31; ::_thesis: verum
end;
suppose ( u = x & v = x ) ; ::_thesis: ex b1 being Walk of G2 st b1 is_Walk_from u,v
then G2 .walkOf u is_Walk_from u,v by GLIB_001:13;
hence ex b1 being Walk of G2 st b1 is_Walk_from u,v ; ::_thesis: verum
end;
end;
end;
theorem Th58: :: CHORD:58
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of H st u = v holds
G .AdjacentSet {u} = H .AdjacentSet {v}
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of H st u = v holds
G .AdjacentSet {u} = H .AdjacentSet {v}
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of H st u = v holds
G .AdjacentSet {u} = H .AdjacentSet {v}
let G2 be inducedSubgraph of G,S; ::_thesis: for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of G2 st u = v holds
G .AdjacentSet {u} = G2 .AdjacentSet {v}
let u be Vertex of G; ::_thesis: ( u in S & G .AdjacentSet {u} c= S implies for v being Vertex of G2 st u = v holds
G .AdjacentSet {u} = G2 .AdjacentSet {v} )
assume that
A1: u in S and
A2: G .AdjacentSet {u} c= S ; ::_thesis: for v being Vertex of G2 st u = v holds
G .AdjacentSet {u} = G2 .AdjacentSet {v}
let v be Vertex of G2; ::_thesis: ( u = v implies G .AdjacentSet {u} = G2 .AdjacentSet {v} )
assume A3: u = v ; ::_thesis: G .AdjacentSet {u} = G2 .AdjacentSet {v}
now__::_thesis:_for_x_being_set_holds_
(_(_x_in_G_.AdjacentSet_{u}_implies_x_in_G2_.AdjacentSet_{v}_)_&_(_x_in_G2_.AdjacentSet_{v}_implies_x_in_G_.AdjacentSet_{u}_)_)
let x be set ; ::_thesis: ( ( x in G .AdjacentSet {u} implies x in G2 .AdjacentSet {v} ) & ( x in G2 .AdjacentSet {v} implies x in G .AdjacentSet {u} ) )
hereby ::_thesis: ( x in G2 .AdjacentSet {v} implies x in G .AdjacentSet {u} )
assume A4: x in G .AdjacentSet {u} ; ::_thesis: x in G2 .AdjacentSet {v}
then reconsider y = x as Vertex of G ;
reconsider w = x as Vertex of G2 by A2, A4, GLIB_000:def_37;
y,u are_adjacent by A4, Th52;
then consider e being set such that
A5: e Joins y,u,G by Def3;
e Joins y,u,G2 by A1, A2, A4, A5, Th19;
then A6: w,v are_adjacent by A3, Def3;
w <> v by A3, A4, Th52;
hence x in G2 .AdjacentSet {v} by A6, Th52; ::_thesis: verum
end;
assume A7: x in G2 .AdjacentSet {v} ; ::_thesis: x in G .AdjacentSet {u}
then reconsider y = x as Vertex of G2 ;
x in the_Vertices_of G2 by A7;
then reconsider w = x as Vertex of G ;
y,v are_adjacent by A7, Th52;
then consider e being set such that
A8: e Joins y,v,G2 by Def3;
e Joins y,v,G by A8, GLIB_000:72;
then A9: w,u are_adjacent by A3, Def3;
w <> u by A3, A7, Th52;
hence x in G .AdjacentSet {u} by A9, Th52; ::_thesis: verum
end;
hence G .AdjacentSet {u} = G2 .AdjacentSet {v} by TARSKI:1; ::_thesis: verum
end;
definition
let G be _Graph;
let S be set ;
mode AdjGraph of G,S -> Subgraph of G means :Def5: :: CHORD:def 5
it is inducedSubgraph of G,(G .AdjacentSet S) if S is Subset of (the_Vertices_of G)
;
existence
( S is Subset of (the_Vertices_of G) implies ex b1 being Subgraph of G st b1 is inducedSubgraph of G,(G .AdjacentSet S) )
proof
set T = the inducedSubgraph of G,(G .AdjacentSet S);
the inducedSubgraph of G,(G .AdjacentSet S) is Subgraph of G ;
hence ( S is Subset of (the_Vertices_of G) implies ex b1 being Subgraph of G st b1 is inducedSubgraph of G,(G .AdjacentSet S) ) ; ::_thesis: verum
end;
consistency
for b1 being Subgraph of G holds verum ;
end;
:: deftheorem Def5 defines AdjGraph CHORD:def_5_:_
for G being _Graph
for S being set
for b3 being Subgraph of G st S is Subset of (the_Vertices_of G) holds
( b3 is AdjGraph of G,S iff b3 is inducedSubgraph of G,(G .AdjacentSet S) );
theorem Th59: :: CHORD:59
for G1, G2 being _Graph st G1 == G2 holds
for u1 being Vertex of G1
for u2 being Vertex of G2 st u1 = u2 holds
for H1 being AdjGraph of G1,{u1}
for H2 being AdjGraph of G2,{u2} holds H1 == H2
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 implies for u1 being Vertex of G1
for u2 being Vertex of G2 st u1 = u2 holds
for H1 being AdjGraph of G1,{u1}
for H2 being AdjGraph of G2,{u2} holds H1 == H2 )
assume A1: G1 == G2 ; ::_thesis: for u1 being Vertex of G1
for u2 being Vertex of G2 st u1 = u2 holds
for H1 being AdjGraph of G1,{u1}
for H2 being AdjGraph of G2,{u2} holds H1 == H2
let u1 be Vertex of G1; ::_thesis: for u2 being Vertex of G2 st u1 = u2 holds
for H1 being AdjGraph of G1,{u1}
for H2 being AdjGraph of G2,{u2} holds H1 == H2
let u2 be Vertex of G2; ::_thesis: ( u1 = u2 implies for H1 being AdjGraph of G1,{u1}
for H2 being AdjGraph of G2,{u2} holds H1 == H2 )
assume A2: u1 = u2 ; ::_thesis: for H1 being AdjGraph of G1,{u1}
for H2 being AdjGraph of G2,{u2} holds H1 == H2
set G2Adj = G2 .AdjacentSet {u2};
set G1Adj = G1 .AdjacentSet {u1};
A3: G1 .AdjacentSet {u1} = G2 .AdjacentSet {u2} by A1, A2, Th51;
let H1 be AdjGraph of G1,{u1}; ::_thesis: for H2 being AdjGraph of G2,{u2} holds H1 == H2
let H2 be AdjGraph of G2,{u2}; ::_thesis: H1 == H2
A4: H1 is inducedSubgraph of G1,(G1 .AdjacentSet {u1}) by Def5;
A5: H2 is inducedSubgraph of G2,(G2 .AdjacentSet {u2}) by Def5;
percases ( not G1 .AdjacentSet {u1} is non empty Subset of (the_Vertices_of G1) or G1 .AdjacentSet {u1} is non empty Subset of (the_Vertices_of G1) ) ;
supposeA6: G1 .AdjacentSet {u1} is not non empty Subset of (the_Vertices_of G1) ; ::_thesis: H1 == H2
then H1 == G1 by A4, GLIB_000:def_37;
then A7: H1 == G2 by A1, GLIB_000:85;
H2 == G2 by A5, A3, A6, GLIB_000:def_37;
hence H1 == H2 by A7, GLIB_000:85; ::_thesis: verum
end;
supposeA8: G1 .AdjacentSet {u1} is non empty Subset of (the_Vertices_of G1) ; ::_thesis: H1 == H2
then the_Vertices_of H1 = G1 .AdjacentSet {u1} by A4, GLIB_000:def_37;
then A9: the_Vertices_of H1 = the_Vertices_of H2 by A5, A3, GLIB_000:def_37;
G1 is Subgraph of G2 by A1, GLIB_000:87;
then A10: G1 .edgesBetween (G1 .AdjacentSet {u1}) c= G2 .edgesBetween (G1 .AdjacentSet {u1}) by GLIB_000:76;
A11: the_Edges_of H1 = G1 .edgesBetween (G1 .AdjacentSet {u1}) by A4, A8, GLIB_000:def_37;
G2 is Subgraph of G1 by A1, GLIB_000:87;
then A12: G2 .edgesBetween (G1 .AdjacentSet {u1}) c= G1 .edgesBetween (G1 .AdjacentSet {u1}) by GLIB_000:76;
G2 is Subgraph of G1 by A1, GLIB_000:87;
then A13: H2 is Subgraph of G1 by GLIB_000:43;
the_Edges_of H2 = G2 .edgesBetween (G2 .AdjacentSet {u2}) by A5, A3, A8, GLIB_000:def_37;
then the_Edges_of H1 = the_Edges_of H2 by A3, A11, A10, A12, XBOOLE_0:def_10;
hence H1 == H2 by A9, A13, GLIB_000:86; ::_thesis: verum
end;
end;
end;
theorem Th60: :: CHORD:60
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S & G .AdjacentSet {u} <> {} holds
for v being Vertex of H st u = v holds
for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S & G .AdjacentSet {u} <> {} holds
for v being Vertex of H st u = v holds
for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S & G .AdjacentSet {u} <> {} holds
for v being Vertex of H st u = v holds
for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha
let H be inducedSubgraph of G,S; ::_thesis: for u being Vertex of G st u in S & G .AdjacentSet {u} c= S & G .AdjacentSet {u} <> {} holds
for v being Vertex of H st u = v holds
for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha
let u be Vertex of G; ::_thesis: ( u in S & G .AdjacentSet {u} c= S & G .AdjacentSet {u} <> {} implies for v being Vertex of H st u = v holds
for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha )
assume that
A1: u in S and
A2: G .AdjacentSet {u} c= S and
A3: G .AdjacentSet {u} <> {} ; ::_thesis: for v being Vertex of H st u = v holds
for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha
let v be Vertex of H; ::_thesis: ( u = v implies for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha )
assume u = v ; ::_thesis: for Ga being AdjGraph of G,{u}
for Ha being AdjGraph of H,{v} holds Ga == Ha
then A4: G .AdjacentSet {u} = H .AdjacentSet {v} by A1, A2, Th58;
let Ga be AdjGraph of G,{u}; ::_thesis: for Ha being AdjGraph of H,{v} holds Ga == Ha
let Ha be AdjGraph of H,{v}; ::_thesis: Ga == Ha
A5: Ha is inducedSubgraph of H,(H .AdjacentSet {v}) by Def5;
A6: Ga is inducedSubgraph of G,(G .AdjacentSet {u}) by Def5;
then A7: the_Edges_of Ga = G .edgesBetween (G .AdjacentSet {u}) by A3, GLIB_000:def_37;
the_Vertices_of Ga = G .AdjacentSet {u} by A3, A6, GLIB_000:def_37;
hence the_Vertices_of Ga = the_Vertices_of Ha by A4, A5, GLIB_000:def_37; :: according to GLIB_000:def_34 ::_thesis: ( the_Edges_of Ga = the_Edges_of Ha & the_Source_of Ga = the_Source_of Ha & the_Target_of Ga = the_Target_of Ha )
the_Edges_of Ha = H .edgesBetween (H .AdjacentSet {v}) by A3, A4, A5, GLIB_000:def_37;
hence A8: the_Edges_of Ga = the_Edges_of Ha by A2, A3, A4, A7, Th31; ::_thesis: ( the_Source_of Ga = the_Source_of Ha & the_Target_of Ga = the_Target_of Ha )
A9: the_Target_of Ga = (the_Target_of G) | (the_Edges_of Ga) by GLIB_000:45;
Ha is inducedSubgraph of H,(G .AdjacentSet {u}) by A4, Def5;
then A10: Ha is inducedSubgraph of G,(G .AdjacentSet {u}) by A2, A3, Th29;
the_Source_of Ga = (the_Source_of G) | (the_Edges_of Ga) by GLIB_000:45;
hence ( the_Source_of Ha = the_Source_of Ga & the_Target_of Ha = the_Target_of Ga ) by A8, A9, A10, GLIB_000:45; ::_thesis: verum
end;
definition
let G be _Graph;
attrG is complete means :Def6: :: CHORD:def 6
for u, v being Vertex of G st u <> v holds
u,v are_adjacent ;
end;
:: deftheorem Def6 defines complete CHORD:def_6_:_
for G being _Graph holds
( G is complete iff for u, v being Vertex of G st u <> v holds
u,v are_adjacent );
theorem Th61: :: CHORD:61
for G being _Graph st G is trivial holds
G is complete
proof
let G be _Graph; ::_thesis: ( G is trivial implies G is complete )
assume G is trivial ; ::_thesis: G is complete
then consider x being Vertex of G such that
A1: the_Vertices_of G = {x} by GLIB_000:22;
let u, v be Vertex of G; :: according to CHORD:def_6 ::_thesis: ( u <> v implies u,v are_adjacent )
assume that
A2: u <> v and
not u,v are_adjacent ; ::_thesis: contradiction
u = x by A1, TARSKI:def_1;
hence contradiction by A1, A2, TARSKI:def_1; ::_thesis: verum
end;
registration
cluster Relation-like NAT -defined Function-like finite [Graph-like] trivial -> complete for set ;
coherence
for b1 being _Graph st b1 is trivial holds
b1 is complete by Th61;
end;
registration
cluster Relation-like NAT -defined Function-like finite [Graph-like] trivial simple complete for set ;
existence
ex b1 being _Graph st
( b1 is trivial & b1 is simple & b1 is complete )
proof
set G = the trivial simple _Graph;
take the trivial simple _Graph ; ::_thesis: ( the trivial simple _Graph is trivial & the trivial simple _Graph is simple & the trivial simple _Graph is complete )
thus ( the trivial simple _Graph is trivial & the trivial simple _Graph is simple & the trivial simple _Graph is complete ) ; ::_thesis: verum
end;
cluster Relation-like NAT -defined Function-like finite [Graph-like] finite non trivial simple complete for set ;
existence
ex b1 being _Graph st
( not b1 is trivial & b1 is finite & b1 is simple & b1 is complete )
proof
set V = {0,1};
set E = {0};
set S = 0 .--> 0;
set T = 0 .--> 1;
A1: dom (0 .--> 1) = {0} by FUNCOP_1:13;
A2: now__::_thesis:_for_x_being_set_st_x_in_{0}_holds_
(0_.-->_1)_._x_in_{0,1}
let x be set ; ::_thesis: ( x in {0} implies (0 .--> 1) . x in {0,1} )
assume x in {0} ; ::_thesis: (0 .--> 1) . x in {0,1}
then x = 0 by TARSKI:def_1;
then (0 .--> 1) . x = 1 by FUNCOP_1:72;
hence (0 .--> 1) . x in {0,1} by TARSKI:def_2; ::_thesis: verum
end;
A3: now__::_thesis:_for_x_being_set_st_x_in_{0}_holds_
(0_.-->_0)_._x_in_{0,1}
let x be set ; ::_thesis: ( x in {0} implies (0 .--> 0) . x in {0,1} )
assume x in {0} ; ::_thesis: (0 .--> 0) . x in {0,1}
then x = 0 by TARSKI:def_1;
then (0 .--> 0) . x = 0 by FUNCOP_1:72;
hence (0 .--> 0) . x in {0,1} by TARSKI:def_2; ::_thesis: verum
end;
reconsider T = 0 .--> 1 as Function of {0},{0,1} by A1, A2, FUNCT_2:3;
dom (0 .--> 0) = {0} by FUNCOP_1:13;
then reconsider S = 0 .--> 0 as Function of {0},{0,1} by A3, FUNCT_2:3;
set G = createGraph ({0,1},{0},S,T);
take createGraph ({0,1},{0},S,T) ; ::_thesis: ( not createGraph ({0,1},{0},S,T) is trivial & createGraph ({0,1},{0},S,T) is finite & createGraph ({0,1},{0},S,T) is simple & createGraph ({0,1},{0},S,T) is complete )
the_Source_of (createGraph ({0,1},{0},S,T)) = S by GLIB_000:6;
then A4: (the_Source_of (createGraph ({0,1},{0},S,T))) . 0 = 0 by FUNCOP_1:72;
A5: the_Edges_of (createGraph ({0,1},{0},S,T)) = {0} by GLIB_000:6;
now__::_thesis:_for_e1,_e2,_v1,_v2_being_set_st_e1_Joins_v1,v2,_createGraph_({0,1},{0},S,T)_&_e2_Joins_v1,v2,_createGraph_({0,1},{0},S,T)_holds_
not_e1_<>_e2
let e1, e2, v1, v2 be set ; ::_thesis: ( e1 Joins v1,v2, createGraph ({0,1},{0},S,T) & e2 Joins v1,v2, createGraph ({0,1},{0},S,T) implies not e1 <> e2 )
assume that
A6: e1 Joins v1,v2, createGraph ({0,1},{0},S,T) and
A7: e2 Joins v1,v2, createGraph ({0,1},{0},S,T) ; ::_thesis: not e1 <> e2
e1 in {0} by A5, A6, GLIB_000:def_13;
then A8: e1 = 0 by TARSKI:def_1;
assume A9: e1 <> e2 ; ::_thesis: contradiction
e2 in {0} by A5, A7, GLIB_000:def_13;
hence contradiction by A9, A8, TARSKI:def_1; ::_thesis: verum
end;
then A10: createGraph ({0,1},{0},S,T) is non-multi by GLIB_000:def_20;
A11: the_Vertices_of (createGraph ({0,1},{0},S,T)) = {0,1} by GLIB_000:6;
now__::_thesis:_not_card_(the_Vertices_of_(createGraph_({0,1},{0},S,T)))_=_1
assume card (the_Vertices_of (createGraph ({0,1},{0},S,T))) = 1 ; ::_thesis: contradiction
then ex x being set st the_Vertices_of (createGraph ({0,1},{0},S,T)) = {x} by CARD_2:42;
hence contradiction by A11, ZFMISC_1:5; ::_thesis: verum
end;
hence ( not createGraph ({0,1},{0},S,T) is trivial & createGraph ({0,1},{0},S,T) is finite ) by GLIB_000:def_19; ::_thesis: ( createGraph ({0,1},{0},S,T) is simple & createGraph ({0,1},{0},S,T) is complete )
the_Target_of (createGraph ({0,1},{0},S,T)) = T by GLIB_000:6;
then A12: (the_Target_of (createGraph ({0,1},{0},S,T))) . 0 = 1 by FUNCOP_1:72;
0 in the_Edges_of (createGraph ({0,1},{0},S,T)) by A5, TARSKI:def_1;
then A13: 0 Joins 0 ,1, createGraph ({0,1},{0},S,T) by A4, A12, GLIB_000:def_13;
now__::_thesis:_for_v,_e_being_set_holds_not_e_Joins_v,v,_createGraph_({0,1},{0},S,T)
let v, e be set ; ::_thesis: not e Joins v,v, createGraph ({0,1},{0},S,T)
assume A14: e Joins v,v, createGraph ({0,1},{0},S,T) ; ::_thesis: contradiction
reconsider v = v as Vertex of (createGraph ({0,1},{0},S,T)) by A14, GLIB_000:13;
e in the_Edges_of (createGraph ({0,1},{0},S,T)) by A14, GLIB_000:def_13;
then e Joins 0 ,1, createGraph ({0,1},{0},S,T) by A5, A13, TARSKI:def_1;
then ( ( 0 = v & 1 = v ) or ( 0 = v & 1 = v ) ) by A14, GLIB_000:15;
hence contradiction ; ::_thesis: verum
end;
then createGraph ({0,1},{0},S,T) is loopless by GLIB_000:18;
hence createGraph ({0,1},{0},S,T) is simple by A10; ::_thesis: createGraph ({0,1},{0},S,T) is complete
now__::_thesis:_for_u,_v_being_Vertex_of_(createGraph_({0,1},{0},S,T))_st_u_<>_v_holds_
u,v_are_adjacent
let u, v be Vertex of (createGraph ({0,1},{0},S,T)); ::_thesis: ( u <> v implies b1,b2 are_adjacent )
assume A15: u <> v ; ::_thesis: b1,b2 are_adjacent
percases ( u = 0 or u = 1 ) by A11, TARSKI:def_2;
supposeA16: u = 0 ; ::_thesis: b1,b2 are_adjacent
A17: 0 in the_Edges_of (createGraph ({0,1},{0},S,T)) by A5, TARSKI:def_1;
v = 1 by A11, A15, A16, TARSKI:def_2;
then 0 Joins u,v, createGraph ({0,1},{0},S,T) by A4, A12, A16, A17, GLIB_000:def_13;
hence u,v are_adjacent by Def3; ::_thesis: verum
end;
supposeA18: u = 1 ; ::_thesis: b1,b2 are_adjacent
A19: 0 in the_Edges_of (createGraph ({0,1},{0},S,T)) by A5, TARSKI:def_1;
v = 0 by A11, A15, A18, TARSKI:def_2;
then 0 Joins v,u, createGraph ({0,1},{0},S,T) by A4, A12, A18, A19, GLIB_000:def_13;
hence u,v are_adjacent by Def3; ::_thesis: verum
end;
end;
end;
hence createGraph ({0,1},{0},S,T) is complete by Def6; ::_thesis: verum
end;
end;
theorem Th62: :: CHORD:62
for G1, G2 being _Graph st G1 == G2 & G1 is complete holds
G2 is complete
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 & G1 is complete implies G2 is complete )
assume A1: G1 == G2 ; ::_thesis: ( not G1 is complete or G2 is complete )
assume A2: G1 is complete ; ::_thesis: G2 is complete
now__::_thesis:_for_u,_v_being_Vertex_of_G2_st_u_<>_v_holds_
u,v_are_adjacent
let u, v be Vertex of G2; ::_thesis: ( u <> v implies u,v are_adjacent )
assume A3: u <> v ; ::_thesis: u,v are_adjacent
reconsider v2 = v as Vertex of G1 by A1, GLIB_000:def_34;
reconsider u2 = u as Vertex of G1 by A1, GLIB_000:def_34;
u2,v2 are_adjacent by A2, A3, Def6;
hence u,v are_adjacent by A1, Th44; ::_thesis: verum
end;
hence G2 is complete by Def6; ::_thesis: verum
end;
theorem Th63: :: CHORD:63
for G being complete _Graph
for S being Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S holds H is complete
proof
let G be complete _Graph; ::_thesis: for S being Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S holds H is complete
let S be Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S holds H is complete
let H be inducedSubgraph of G,S; ::_thesis: H is complete
percases ( S = {} or S <> {} ) ;
suppose S = {} ; ::_thesis: H is complete
then H == G by GLIB_000:def_37;
hence H is complete by Th62; ::_thesis: verum
end;
suppose S <> {} ; ::_thesis: H is complete
then A1: the_Vertices_of H = S by GLIB_000:def_37;
now__::_thesis:_for_u,_v_being_Vertex_of_H_st_u_<>_v_holds_
u,v_are_adjacent
let u, v be Vertex of H; ::_thesis: ( u <> v implies u,v are_adjacent )
assume A2: u <> v ; ::_thesis: u,v are_adjacent
reconsider v2 = v as Vertex of G by A1, TARSKI:def_3;
reconsider u2 = u as Vertex of G by A1, TARSKI:def_3;
u2,v2 are_adjacent by A2, Def6;
then consider e being set such that
A3: e Joins u2,v2,G by Def3;
e Joins u,v,H by A1, A3, Th19;
hence u,v are_adjacent by Def3; ::_thesis: verum
end;
hence H is complete by Def6; ::_thesis: verum
end;
end;
end;
begin
definition
let G be _Graph;
let v be Vertex of G;
attrv is simplicial means :Def7: :: CHORD:def 7
( G .AdjacentSet {v} <> {} implies for G2 being AdjGraph of G,{v} holds G2 is complete );
end;
:: deftheorem Def7 defines simplicial CHORD:def_7_:_
for G being _Graph
for v being Vertex of G holds
( v is simplicial iff ( G .AdjacentSet {v} <> {} implies for G2 being AdjGraph of G,{v} holds G2 is complete ) );
theorem Th64: :: CHORD:64
for G being complete _Graph
for v being Vertex of G holds v is simplicial
proof
let G be complete _Graph; ::_thesis: for v being Vertex of G holds v is simplicial
let v be Vertex of G; ::_thesis: v is simplicial
now__::_thesis:_for_G2_being_AdjGraph_of_G,{v}_holds_G2_is_complete
let G2 be AdjGraph of G,{v}; ::_thesis: G2 is complete
G2 is inducedSubgraph of G,(G .AdjacentSet {v}) by Def5;
hence G2 is complete by Th63; ::_thesis: verum
end;
hence v is simplicial by Def7; ::_thesis: verum
end;
theorem Th65: :: CHORD:65
for G being trivial _Graph
for v being Vertex of G holds v is simplicial
proof
let G be trivial _Graph; ::_thesis: for v being Vertex of G holds v is simplicial
let v be Vertex of G; ::_thesis: v is simplicial
now__::_thesis:_not_G_.AdjacentSet_{v}_<>_{}
assume G .AdjacentSet {v} <> {} ; ::_thesis: contradiction
then consider x being set such that
A1: x in G .AdjacentSet {v} by XBOOLE_0:def_1;
A2: ex u being Vertex of G st
( x = u & not u in {v} & ex v1 being Vertex of G st
( v1 in {v} & u,v1 are_adjacent ) ) by A1;
consider w being Vertex of G such that
A3: the_Vertices_of G = {w} by GLIB_000:22;
v = w by A3, TARSKI:def_1;
hence contradiction by A2, A3; ::_thesis: verum
end;
hence v is simplicial by Def7; ::_thesis: verum
end;
theorem Th66: :: CHORD:66
for G1, G2 being _Graph st G1 == G2 holds
for u1 being Vertex of G1
for u2 being Vertex of G2 st u1 = u2 & u1 is simplicial holds
u2 is simplicial
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 implies for u1 being Vertex of G1
for u2 being Vertex of G2 st u1 = u2 & u1 is simplicial holds
u2 is simplicial )
assume A1: G1 == G2 ; ::_thesis: for u1 being Vertex of G1
for u2 being Vertex of G2 st u1 = u2 & u1 is simplicial holds
u2 is simplicial
let u1 be Vertex of G1; ::_thesis: for u2 being Vertex of G2 st u1 = u2 & u1 is simplicial holds
u2 is simplicial
let u2 be Vertex of G2; ::_thesis: ( u1 = u2 & u1 is simplicial implies u2 is simplicial )
assume A2: u1 = u2 ; ::_thesis: ( not u1 is simplicial or u2 is simplicial )
assume A3: u1 is simplicial ; ::_thesis: u2 is simplicial
now__::_thesis:_u2_is_simplicial
percases ( G1 .AdjacentSet {u1} = {} or G1 .AdjacentSet {u1} <> {} ) ;
suppose G1 .AdjacentSet {u1} = {} ; ::_thesis: u2 is simplicial
then G2 .AdjacentSet {u2} = {} by A1, A2, Th51;
hence u2 is simplicial by Def7; ::_thesis: verum
end;
supposeA4: G1 .AdjacentSet {u1} <> {} ; ::_thesis: u2 is simplicial
set H1 = the AdjGraph of G1,{u1};
the AdjGraph of G1,{u1} is complete by A3, A4, Def7;
then for H2 being AdjGraph of G2,{u2} holds H2 is complete by A1, A2, Th59, Th62;
hence u2 is simplicial by Def7; ::_thesis: verum
end;
end;
end;
hence u2 is simplicial ; ::_thesis: verum
end;
theorem Th67: :: CHORD:67
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of H st u = v holds
( u is simplicial iff v is simplicial )
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of H st u = v holds
( u is simplicial iff v is simplicial )
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of H st u = v holds
( u is simplicial iff v is simplicial )
let G2 be inducedSubgraph of G,S; ::_thesis: for u being Vertex of G st u in S & G .AdjacentSet {u} c= S holds
for v being Vertex of G2 st u = v holds
( u is simplicial iff v is simplicial )
let u be Vertex of G; ::_thesis: ( u in S & G .AdjacentSet {u} c= S implies for v being Vertex of G2 st u = v holds
( u is simplicial iff v is simplicial ) )
assume that
A1: u in S and
A2: G .AdjacentSet {u} c= S ; ::_thesis: for v being Vertex of G2 st u = v holds
( u is simplicial iff v is simplicial )
let v be Vertex of G2; ::_thesis: ( u = v implies ( u is simplicial iff v is simplicial ) )
assume A3: u = v ; ::_thesis: ( u is simplicial iff v is simplicial )
A4: ( G .AdjacentSet {u} = {} iff G2 .AdjacentSet {v} = {} ) by A1, A2, A3, Th58;
percases ( G .AdjacentSet {u} = {} or G .AdjacentSet {u} <> {} ) ;
suppose G .AdjacentSet {u} = {} ; ::_thesis: ( u is simplicial iff v is simplicial )
hence ( u is simplicial iff v is simplicial ) by A4, Def7; ::_thesis: verum
end;
supposeA5: G .AdjacentSet {u} <> {} ; ::_thesis: ( u is simplicial iff v is simplicial )
hereby ::_thesis: ( v is simplicial implies u is simplicial )
set Ga = the AdjGraph of G,{u};
assume u is simplicial ; ::_thesis: v is simplicial
then A6: the AdjGraph of G,{u} is complete by A5, Def7;
thus v is simplicial ::_thesis: verum
proof
assume G2 .AdjacentSet {v} <> {} ; :: according to CHORD:def_7 ::_thesis: for G2 being AdjGraph of G2,{v} holds G2 is complete
let Ha be AdjGraph of G2,{v}; ::_thesis: Ha is complete
thus Ha is complete by A1, A2, A3, A5, A6, Th60, Th62; ::_thesis: verum
end;
end;
set Ha = the AdjGraph of G2,{v};
assume A7: v is simplicial ; ::_thesis: u is simplicial
G2 .AdjacentSet {v} <> {} by A1, A2, A3, A5, Th58;
then A8: the AdjGraph of G2,{v} is complete by A7, Def7;
thus u is simplicial ::_thesis: verum
proof
assume G .AdjacentSet {u} <> {} ; :: according to CHORD:def_7 ::_thesis: for G2 being AdjGraph of G,{u} holds G2 is complete
let Ga be AdjGraph of G,{u}; ::_thesis: Ga is complete
Ga == the AdjGraph of G2,{v} by A1, A2, A3, A5, Th60;
hence Ga is complete by A8, Th62; ::_thesis: verum
end;
end;
end;
end;
theorem Th68: :: CHORD:68
for G being _Graph
for v being Vertex of G st v is simplicial holds
for a, b being set st a <> b & a in G .AdjacentSet {v} & b in G .AdjacentSet {v} holds
ex e being set st e Joins a,b,G
proof
let G be _Graph; ::_thesis: for v being Vertex of G st v is simplicial holds
for a, b being set st a <> b & a in G .AdjacentSet {v} & b in G .AdjacentSet {v} holds
ex e being set st e Joins a,b,G
let x be Vertex of G; ::_thesis: ( x is simplicial implies for a, b being set st a <> b & a in G .AdjacentSet {x} & b in G .AdjacentSet {x} holds
ex e being set st e Joins a,b,G )
assume A1: x is simplicial ; ::_thesis: for a, b being set st a <> b & a in G .AdjacentSet {x} & b in G .AdjacentSet {x} holds
ex e being set st e Joins a,b,G
set H = the AdjGraph of G,{x};
let a, b be set ; ::_thesis: ( a <> b & a in G .AdjacentSet {x} & b in G .AdjacentSet {x} implies ex e being set st e Joins a,b,G )
assume that
A2: a <> b and
A3: a in G .AdjacentSet {x} and
A4: b in G .AdjacentSet {x} ; ::_thesis: ex e being set st e Joins a,b,G
A5: the AdjGraph of G,{x} is inducedSubgraph of G,(G .AdjacentSet {x}) by Def5;
then reconsider u = a as Vertex of the AdjGraph of G,{x} by A3, GLIB_000:def_37;
reconsider v = b as Vertex of the AdjGraph of G,{x} by A4, A5, GLIB_000:def_37;
the AdjGraph of G,{x} is complete by A1, A3, Def7;
then u,v are_adjacent by A2, Def6;
then consider e being set such that
A6: e Joins u,v, the AdjGraph of G,{x} by Def3;
e Joins a,b,G by A6, GLIB_000:72;
hence ex e being set st e Joins a,b,G ; ::_thesis: verum
end;
theorem Th69: :: CHORD:69
for G being _Graph
for v being Vertex of G st not v is simplicial holds
ex a, b being Vertex of G st
( a <> b & v <> a & v <> b & v,a are_adjacent & v,b are_adjacent & not a,b are_adjacent )
proof
let G be _Graph; ::_thesis: for v being Vertex of G st not v is simplicial holds
ex a, b being Vertex of G st
( a <> b & v <> a & v <> b & v,a are_adjacent & v,b are_adjacent & not a,b are_adjacent )
let v be Vertex of G; ::_thesis: ( not v is simplicial implies ex a, b being Vertex of G st
( a <> b & v <> a & v <> b & v,a are_adjacent & v,b are_adjacent & not a,b are_adjacent ) )
assume A1: not v is simplicial ; ::_thesis: ex a, b being Vertex of G st
( a <> b & v <> a & v <> b & v,a are_adjacent & v,b are_adjacent & not a,b are_adjacent )
assume A2: for a, b being Vertex of G holds
( not a <> b or not v <> a or not v <> b or not v,a are_adjacent or not v,b are_adjacent or a,b are_adjacent ) ; ::_thesis: contradiction
percases ( G .AdjacentSet {v} = {} or G .AdjacentSet {v} <> {} ) ;
suppose G .AdjacentSet {v} = {} ; ::_thesis: contradiction
hence contradiction by A1, Def7; ::_thesis: verum
end;
supposeA3: G .AdjacentSet {v} <> {} ; ::_thesis: contradiction
now__::_thesis:_for_H_being_AdjGraph_of_G,{v}_holds_H_is_complete
let H be AdjGraph of G,{v}; ::_thesis: H is complete
A4: H is inducedSubgraph of G,(G .AdjacentSet {v}) by Def5;
now__::_thesis:_for_a,_b_being_Vertex_of_H_st_a_<>_b_holds_
a,b_are_adjacent
let a, b be Vertex of H; ::_thesis: ( a <> b implies a,b are_adjacent )
assume A5: a <> b ; ::_thesis: a,b are_adjacent
A6: the_Vertices_of H = G .AdjacentSet {v} by A3, A4, GLIB_000:def_37;
then A7: b in G .AdjacentSet {v} ;
a in G .AdjacentSet {v} by A6;
then reconsider vv = v, aa = a, bb = b as Vertex of G by A7;
A8: aa,vv are_adjacent by A6, Th52;
A9: bb,vv are_adjacent by A6, Th52;
aa <> vv by A6, Th52;
then aa,bb are_adjacent by A2, A5, A8, A9;
hence a,b are_adjacent by A3, A4, Th45; ::_thesis: verum
end;
hence H is complete by Def6; ::_thesis: verum
end;
hence contradiction by A1, Def7; ::_thesis: verum
end;
end;
end;
begin
definition
let G be _Graph;
let a, b be Vertex of G;
assume that
A1: a <> b and
A2: not a,b are_adjacent ;
mode VertexSeparator of a,b -> Subset of (the_Vertices_of G) means :Def8: :: CHORD:def 8
( not a in it & not b in it & ( for G2 being removeVertices of G,it
for W being Walk of G2 holds not W is_Walk_from a,b ) );
existence
ex b1 being Subset of (the_Vertices_of G) st
( not a in b1 & not b in b1 & ( for G2 being removeVertices of G,b1
for W being Walk of G2 holds not W is_Walk_from a,b ) )
proof
set S = (the_Vertices_of G) \ {a,b};
a in {a,b} by TARSKI:def_2;
then A3: not a in (the_Vertices_of G) \ {a,b} by XBOOLE_0:def_5;
A4: for e being set holds not e Joins a,b,G by A2, Def3;
A5: for G2 being removeVertices of G,((the_Vertices_of G) \ {a,b})
for W being Walk of G2 holds not W is_Walk_from a,b
proof
let G2 be removeVertices of G,((the_Vertices_of G) \ {a,b}); ::_thesis: for W being Walk of G2 holds not W is_Walk_from a,b
let W be Walk of G2; ::_thesis: not W is_Walk_from a,b
assume A6: W is_Walk_from a,b ; ::_thesis: contradiction
A7: now__::_thesis:_for_x_being_set_st_x_in_{a,b}_holds_
x_in_W_.vertices()
let x be set ; ::_thesis: ( x in {a,b} implies x in W .vertices() )
assume A8: x in {a,b} ; ::_thesis: x in W .vertices()
now__::_thesis:_x_in_W_.vertices()
percases ( x = a or x = b ) by A8, TARSKI:def_2;
suppose x = a ; ::_thesis: x in W .vertices()
then x = W .first() by A6, GLIB_001:def_23;
hence x in W .vertices() by GLIB_001:88; ::_thesis: verum
end;
suppose x = b ; ::_thesis: x in W .vertices()
then x = W .last() by A6, GLIB_001:def_23;
hence x in W .vertices() by GLIB_001:88; ::_thesis: verum
end;
end;
end;
hence x in W .vertices() ; ::_thesis: verum
end;
reconsider W2 = W as Walk of G by GLIB_001:167;
A9: now__::_thesis:_for_x_being_set_holds_
(_(_x_in_W2_.vertices()_implies_x_in_W_.vertices()_)_&_(_x_in_W_.vertices()_implies_x_in_W2_.vertices()_)_)
let x be set ; ::_thesis: ( ( x in W2 .vertices() implies x in W .vertices() ) & ( x in W .vertices() implies x in W2 .vertices() ) )
hereby ::_thesis: ( x in W .vertices() implies x in W2 .vertices() )
assume x in W2 .vertices() ; ::_thesis: x in W .vertices()
then ex n being odd Element of NAT st
( n <= len W & W . n = x ) by GLIB_001:87;
hence x in W .vertices() by GLIB_001:87; ::_thesis: verum
end;
assume x in W .vertices() ; ::_thesis: x in W2 .vertices()
then ex n being odd Element of NAT st
( n <= len W2 & W2 . n = x ) by GLIB_001:87;
hence x in W2 .vertices() by GLIB_001:87; ::_thesis: verum
end;
not (the_Vertices_of G) \ ((the_Vertices_of G) \ {a,b}) is empty by A3, XBOOLE_0:def_5;
then the_Vertices_of G2 = (the_Vertices_of G) \ ((the_Vertices_of G) \ {a,b}) by GLIB_000:def_37;
then the_Vertices_of G2 = (the_Vertices_of G) /\ {a,b} by XBOOLE_1:48;
then the_Vertices_of G2 = {a,b} by XBOOLE_1:28;
then for x being set holds
( x in W .vertices() iff x in {a,b} ) by A7;
then W .vertices() = {a,b} by TARSKI:1;
then W2 .vertices() = {a,b} by A9, TARSKI:1;
hence contradiction by A1, A4, Th22; ::_thesis: verum
end;
b in {a,b} by TARSKI:def_2;
then not b in (the_Vertices_of G) \ {a,b} by XBOOLE_0:def_5;
hence ex b1 being Subset of (the_Vertices_of G) st
( not a in b1 & not b in b1 & ( for G2 being removeVertices of G,b1
for W being Walk of G2 holds not W is_Walk_from a,b ) ) by A3, A5; ::_thesis: verum
end;
end;
:: deftheorem Def8 defines VertexSeparator CHORD:def_8_:_
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for b4 being Subset of (the_Vertices_of G) holds
( b4 is VertexSeparator of a,b iff ( not a in b4 & not b in b4 & ( for G2 being removeVertices of G,b4
for W being Walk of G2 holds not W is_Walk_from a,b ) ) );
theorem Th70: :: CHORD:70
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being VertexSeparator of a,b holds S is VertexSeparator of b,a
proof
let G be _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 holds S is VertexSeparator of b,a
let a, b be Vertex of G; ::_thesis: ( a <> b & not a,b are_adjacent implies for S being VertexSeparator of a,b holds S is VertexSeparator of b,a )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being VertexSeparator of a,b holds S is VertexSeparator of b,a
let S be VertexSeparator of a,b; ::_thesis: S is VertexSeparator of b,a
A3: not b in S by A1, A2, Def8;
A4: for G2 being removeVertices of G,S
for W being Walk of G2 holds not W is_Walk_from b,a
proof
let G2 be removeVertices of G,S; ::_thesis: for W being Walk of G2 holds not W is_Walk_from b,a
let W be Walk of G2; ::_thesis: not W is_Walk_from b,a
assume W is_Walk_from b,a ; ::_thesis: contradiction
then W .reverse() is_Walk_from a,b by GLIB_001:23;
hence contradiction by A1, A2, Def8; ::_thesis: verum
end;
not a in S by A1, A2, Def8;
hence S is VertexSeparator of b,a by A1, A2, A3, A4, Def8; ::_thesis: verum
end;
theorem Th71: :: CHORD:71
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being Subset of (the_Vertices_of G) holds
( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) )
proof
let G be _Graph; ::_thesis: for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being Subset of (the_Vertices_of G) holds
( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) )
let a, b be Vertex of G; ::_thesis: ( a <> b & not a,b are_adjacent implies for S being Subset of (the_Vertices_of G) holds
( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) ) )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being Subset of (the_Vertices_of G) holds
( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) )
let S be Subset of (the_Vertices_of G); ::_thesis: ( S is VertexSeparator of a,b iff ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) ) )
hereby ::_thesis: ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) implies S is VertexSeparator of a,b )
assume A3: S is VertexSeparator of a,b ; ::_thesis: ( not a in S & not b in S & ( for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ) )
hence ( not a in S & not b in S ) by A1, A2, Def8; ::_thesis: for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() )
then A4: not (the_Vertices_of G) \ S is empty by XBOOLE_0:def_5;
let W be Walk of G; ::_thesis: ( W is_Walk_from a,b implies ex x being Vertex of G st
( x in S & x in W .vertices() ) )
assume A5: W is_Walk_from a,b ; ::_thesis: ex x being Vertex of G st
( x in S & x in W .vertices() )
now__::_thesis:_(_(_for_x_being_Vertex_of_G_holds_
(_not_x_in_S_or_not_x_in_W_.vertices()_)_)_implies_for_G2_being_removeVertices_of_G,S_holds_contradiction_)
assume A6: for x being Vertex of G holds
( not x in S or not x in W .vertices() ) ; ::_thesis: for G2 being removeVertices of G,S holds contradiction
let G2 be removeVertices of G,S; ::_thesis: contradiction
A7: the_Vertices_of G2 = (the_Vertices_of G) \ S by A4, GLIB_000:def_37;
then A8: the_Edges_of G2 = G .edgesBetween (the_Vertices_of G2) by GLIB_000:def_37;
A9: W .edges() c= G .edgesBetween (W .vertices()) by GLIB_001:109;
now__::_thesis:_for_x_being_set_st_x_in_W_.vertices()_holds_
x_in_the_Vertices_of_G2
let x be set ; ::_thesis: ( x in W .vertices() implies x in the_Vertices_of G2 )
assume A10: x in W .vertices() ; ::_thesis: x in the_Vertices_of G2
not x in S by A6, A10;
hence x in the_Vertices_of G2 by A7, A10, XBOOLE_0:def_5; ::_thesis: verum
end;
then A11: W .vertices() c= the_Vertices_of G2 by TARSKI:def_3;
then G .edgesBetween (W .vertices()) c= G .edgesBetween (the_Vertices_of G2) by GLIB_000:36;
then W .edges() c= the_Edges_of G2 by A8, A9, XBOOLE_1:1;
then reconsider W2 = W as Walk of G2 by A11, GLIB_001:170;
W .last() = b by A5, GLIB_001:def_23;
then A12: W2 .last() = b ;
W .first() = a by A5, GLIB_001:def_23;
then W2 .first() = a ;
then W2 is_Walk_from a,b by A12, GLIB_001:def_23;
hence contradiction by A1, A2, A3, Def8; ::_thesis: verum
end;
hence ex x being Vertex of G st
( x in S & x in W .vertices() ) ; ::_thesis: verum
end;
assume that
A13: not a in S and
A14: not b in S and
A15: for W being Walk of G st W is_Walk_from a,b holds
ex x being Vertex of G st
( x in S & x in W .vertices() ) ; ::_thesis: S is VertexSeparator of a,b
now__::_thesis:_for_G2_being_removeVertices_of_G,S
for_W_being_Walk_of_G2_holds_not_W_is_Walk_from_a,b
let G2 be removeVertices of G,S; ::_thesis: for W being Walk of G2 holds not W is_Walk_from a,b
given W being Walk of G2 such that A16: W is_Walk_from a,b ; ::_thesis: contradiction
reconsider W2 = W as Walk of G by GLIB_001:167;
W .last() = b by A16, GLIB_001:def_23;
then A17: W2 .last() = b ;
now__::_thesis:_for_x_being_set_holds_
(_(_x_in_W2_.vertices()_implies_x_in_W_.vertices()_)_&_(_x_in_W_.vertices()_implies_x_in_W2_.vertices()_)_)
let x be set ; ::_thesis: ( ( x in W2 .vertices() implies x in W .vertices() ) & ( x in W .vertices() implies x in W2 .vertices() ) )
hereby ::_thesis: ( x in W .vertices() implies x in W2 .vertices() )
assume x in W2 .vertices() ; ::_thesis: x in W .vertices()
then ex n being odd Element of NAT st
( n <= len W & W . n = x ) by GLIB_001:87;
hence x in W .vertices() by GLIB_001:87; ::_thesis: verum
end;
assume x in W .vertices() ; ::_thesis: x in W2 .vertices()
then ex n being odd Element of NAT st
( n <= len W2 & W2 . n = x ) by GLIB_001:87;
hence x in W2 .vertices() by GLIB_001:87; ::_thesis: verum
end;
then A18: W2 .vertices() = W .vertices() by TARSKI:1;
not (the_Vertices_of G) \ S is empty by A13, XBOOLE_0:def_5;
then the_Vertices_of G2 = (the_Vertices_of G) \ S by GLIB_000:def_37;
then A19: for x being Vertex of G holds
( not x in S or not x in W2 .vertices() ) by A18, XBOOLE_0:def_5;
W .first() = a by A16, GLIB_001:def_23;
then W2 .first() = a ;
then W2 is_Walk_from a,b by A17, GLIB_001:def_23;
hence contradiction by A15, A19; ::_thesis: verum
end;
hence S is VertexSeparator of a,b by A1, A2, A13, A14, Def8; ::_thesis: verum
end;
theorem Th72: :: CHORD:72
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being VertexSeparator of a,b
for W being Walk of G st W is_Walk_from a,b holds
ex k being odd Nat st
( 1 < k & k < len W & W . k in S )
proof
let G be _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
for W being Walk of G st W is_Walk_from a,b holds
ex k being odd Nat st
( 1 < k & k < len W & W . k in S )
let a, b be Vertex of G; ::_thesis: ( a <> b & not a,b are_adjacent implies for S being VertexSeparator of a,b
for W being Walk of G st W is_Walk_from a,b holds
ex k being odd Nat st
( 1 < k & k < len W & W . k in S ) )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being VertexSeparator of a,b
for W being Walk of G st W is_Walk_from a,b holds
ex k being odd Nat st
( 1 < k & k < len W & W . k in S )
let S be VertexSeparator of a,b; ::_thesis: for W being Walk of G st W is_Walk_from a,b holds
ex k being odd Nat st
( 1 < k & k < len W & W . k in S )
let W be Walk of G; ::_thesis: ( W is_Walk_from a,b implies ex k being odd Nat st
( 1 < k & k < len W & W . k in S ) )
assume A3: W is_Walk_from a,b ; ::_thesis: ex k being odd Nat st
( 1 < k & k < len W & W . k in S )
consider x being Vertex of G such that
A4: x in S and
A5: x in W .vertices() by A1, A2, A3, Th71;
consider n being odd Element of NAT such that
A6: n <= len W and
A7: W . n = x by A5, GLIB_001:87;
A8: not a in S by A1, A2, Th71;
A9: now__::_thesis:_not_1_=_n
assume 1 = n ; ::_thesis: contradiction
then W . n = W .first() ;
hence contradiction by A3, A8, A4, A7, GLIB_001:def_23; ::_thesis: verum
end;
A10: not b in S by A1, A2, Th71;
now__::_thesis:_not_n_=_len_W
assume n = len W ; ::_thesis: contradiction
then W . n = W .last() ;
hence contradiction by A3, A10, A4, A7, GLIB_001:def_23; ::_thesis: verum
end;
then A11: n < len W by A6, XXREAL_0:1;
1 <= n by ABIAN:12;
then 1 < n by A9, XXREAL_0:1;
hence ex k being odd Nat st
( 1 < k & k < len W & W . k in S ) by A4, A7, A11; ::_thesis: verum
end;
theorem Th73: :: CHORD:73
for G being _Graph
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 = {} holds
for W being Walk of G holds not W is_Walk_from a,b
proof
let G be _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 = {} holds
for W being Walk of G holds not W is_Walk_from a,b
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 = {} holds
for W being Walk of G holds not W is_Walk_from a,b )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being VertexSeparator of a,b st S = {} holds
for W being Walk of G holds not W is_Walk_from a,b
let S be VertexSeparator of a,b; ::_thesis: ( S = {} implies for W being Walk of G holds not W is_Walk_from a,b )
assume A3: S = {} ; ::_thesis: for W being Walk of G holds not W is_Walk_from a,b
A4: the_Edges_of G c= G .edgesBetween (the_Vertices_of G) by GLIB_000:34;
A5: the_Vertices_of G c= the_Vertices_of G ;
set G2 = the removeVertices of G,S;
given W being Walk of G such that A6: W is_Walk_from a,b ; ::_thesis: contradiction
the_Vertices_of the removeVertices of G,S = the_Vertices_of G by A3, GLIB_000:def_37;
then A7: W .vertices() c= the_Vertices_of the removeVertices of G,S ;
the removeVertices of G,S is inducedSubgraph of G, the_Vertices_of G, the_Edges_of G by A3, GLIB_000:34;
then the_Edges_of the removeVertices of G,S = the_Edges_of G by A5, A4, GLIB_000:def_37;
then W .edges() c= the_Edges_of the removeVertices of G,S ;
then reconsider W2 = W as Walk of the removeVertices of G,S by A7, GLIB_001:170;
W .last() = b by A6, GLIB_001:def_23;
then A8: W2 .last() = b ;
W .first() = a by A6, GLIB_001:def_23;
then W2 .first() = a ;
then W2 is_Walk_from a,b by A8, GLIB_001:def_23;
hence contradiction by A1, A2, Def8; ::_thesis: verum
end;
theorem :: CHORD:74
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent & ( for W being Walk of G holds not W is_Walk_from a,b ) holds
{} is VertexSeparator of a,b
proof
let G be _Graph; ::_thesis: for a, b being Vertex of G st a <> b & not a,b are_adjacent & ( for W being Walk of G holds not W is_Walk_from a,b ) holds
{} is VertexSeparator of a,b
let a, b be Vertex of G; ::_thesis: ( a <> b & not a,b are_adjacent & ( for W being Walk of G holds not W is_Walk_from a,b ) implies {} is VertexSeparator of a,b )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: ( ex W being Walk of G st W is_Walk_from a,b or {} is VertexSeparator of a,b )
assume A3: for W being Walk of G holds not W is_Walk_from a,b ; ::_thesis: {} is VertexSeparator of a,b
A4: now__::_thesis:_for_G2_being_removeVertices_of_G,{}
for_W_being_Walk_of_G2_holds_
(_not_W_is_Walk_from_a,b_&_not_W_is_Walk_from_b,a_)
let G2 be removeVertices of G,{}; ::_thesis: for W being Walk of G2 holds
( not W is_Walk_from a,b & not W is_Walk_from b,a )
given W being Walk of G2 such that A5: ( W is_Walk_from a,b or W is_Walk_from b,a ) ; ::_thesis: contradiction
percases ( W is_Walk_from a,b or W is_Walk_from b,a ) by A5;
supposeA6: W is_Walk_from a,b ; ::_thesis: contradiction
reconsider W2 = W as Walk of G by GLIB_001:167;
W .last() = b by A6, GLIB_001:def_23;
then A7: W2 .last() = b ;
W .first() = a by A6, GLIB_001:def_23;
then W2 .first() = a ;
then W2 is_Walk_from a,b by A7, GLIB_001:def_23;
hence contradiction by A3; ::_thesis: verum
end;
supposeA8: W is_Walk_from b,a ; ::_thesis: contradiction
set P = W .reverse() ;
reconsider W2 = W .reverse() as Walk of G by GLIB_001:167;
A9: W .reverse() is_Walk_from a,b by A8, GLIB_001:23;
then (W .reverse()) .last() = b by GLIB_001:def_23;
then A10: W2 .last() = b ;
(W .reverse()) .first() = a by A9, GLIB_001:def_23;
then W2 .first() = a ;
then W2 is_Walk_from a,b by A10, GLIB_001:def_23;
hence contradiction by A3; ::_thesis: verum
end;
end;
end;
{} is Subset of (the_Vertices_of G) by XBOOLE_1:2;
hence {} is VertexSeparator of a,b by A1, A2, A4, Def8; ::_thesis: verum
end;
theorem Th75: :: CHORD:75
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being VertexSeparator of a,b
for G2 being removeVertices of G,S
for a2 being Vertex of G2 holds (G2 .reachableFrom a2) /\ S = {}
proof
let G be _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
for G2 being removeVertices of G,S
for a2 being Vertex of G2 holds (G2 .reachableFrom a2) /\ S = {}
let a, b be Vertex of G; ::_thesis: ( a <> b & not a,b are_adjacent implies for S being VertexSeparator of a,b
for G2 being removeVertices of G,S
for a2 being Vertex of G2 holds (G2 .reachableFrom a2) /\ S = {} )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being VertexSeparator of a,b
for G2 being removeVertices of G,S
for a2 being Vertex of G2 holds (G2 .reachableFrom a2) /\ S = {}
let S be VertexSeparator of a,b; ::_thesis: for G2 being removeVertices of G,S
for a2 being Vertex of G2 holds (G2 .reachableFrom a2) /\ S = {}
let G2 be removeVertices of G,S; ::_thesis: for a2 being Vertex of G2 holds (G2 .reachableFrom a2) /\ S = {}
let a2 be Vertex of G2; ::_thesis: (G2 .reachableFrom a2) /\ S = {}
set A = G2 .reachableFrom a2;
not a in S by A1, A2, Def8;
then a in (the_Vertices_of G) \ S by XBOOLE_0:def_5;
then A3: the_Vertices_of G2 = (the_Vertices_of G) \ S by GLIB_000:def_37;
now__::_thesis:_for_x_being_set_holds_not_x_in_(G2_.reachableFrom_a2)_/\_S
let x be set ; ::_thesis: not x in (G2 .reachableFrom a2) /\ S
assume A4: x in (G2 .reachableFrom a2) /\ S ; ::_thesis: contradiction
A5: x in S by A4, XBOOLE_0:def_4;
x in G2 .reachableFrom a2 by A4, XBOOLE_0:def_4;
hence contradiction by A3, A5, XBOOLE_0:def_5; ::_thesis: verum
end;
hence (G2 .reachableFrom a2) /\ S = {} by XBOOLE_0:def_1; ::_thesis: verum
end;
theorem Th76: :: CHORD:76
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being VertexSeparator of a,b
for G2 being removeVertices of G,S
for a2, b2 being Vertex of G2 st a2 = a & b2 = b holds
(G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {}
proof
let G be _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
for G2 being removeVertices of G,S
for a2, b2 being Vertex of G2 st a2 = a & b2 = b holds
(G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {}
let a, b be Vertex of G; ::_thesis: ( a <> b & not a,b are_adjacent implies for S being VertexSeparator of a,b
for G2 being removeVertices of G,S
for a2, b2 being Vertex of G2 st a2 = a & b2 = b holds
(G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {} )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being VertexSeparator of a,b
for G2 being removeVertices of G,S
for a2, b2 being Vertex of G2 st a2 = a & b2 = b holds
(G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {}
let S be VertexSeparator of a,b; ::_thesis: for G2 being removeVertices of G,S
for a2, b2 being Vertex of G2 st a2 = a & b2 = b holds
(G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {}
let G2 be removeVertices of G,S; ::_thesis: for a2, b2 being Vertex of G2 st a2 = a & b2 = b holds
(G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {}
let a2, b2 be Vertex of G2; ::_thesis: ( a2 = a & b2 = b implies (G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {} )
assume that
A3: a2 = a and
A4: b2 = b ; ::_thesis: (G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {}
set A = G2 .reachableFrom a2;
set B = G2 .reachableFrom b2;
now__::_thesis:_for_x_being_set_holds_not_x_in_(G2_.reachableFrom_a2)_/\_(G2_.reachableFrom_b2)
let x be set ; ::_thesis: not x in (G2 .reachableFrom a2) /\ (G2 .reachableFrom b2)
assume A5: x in (G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) ; ::_thesis: contradiction
x in G2 .reachableFrom a2 by A5, XBOOLE_0:def_4;
then consider W1 being Walk of G2 such that
A6: W1 is_Walk_from a2,x by GLIB_002:def_5;
x in G2 .reachableFrom b2 by A5, XBOOLE_0:def_4;
then consider rW2 being Walk of G2 such that
A7: rW2 is_Walk_from b2,x by GLIB_002:def_5;
set W2 = rW2 .reverse() ;
set W = W1 .append (rW2 .reverse());
rW2 .reverse() is_Walk_from x,b2 by A7, GLIB_001:23;
then W1 .append (rW2 .reverse()) is_Walk_from a2,b2 by A6, GLIB_001:31;
hence contradiction by A1, A2, A3, A4, Def8; ::_thesis: verum
end;
hence (G2 .reachableFrom a2) /\ (G2 .reachableFrom b2) = {} by XBOOLE_0:def_1; ::_thesis: verum
end;
theorem Th77: :: CHORD:77
for G being _Graph
for a, b being Vertex of G st a <> b & not a,b are_adjacent holds
for S being VertexSeparator of a,b
for G2 being removeVertices of G,S holds
( a is Vertex of G2 & b is Vertex of G2 )
proof
let G be _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
for G2 being removeVertices of G,S holds
( a is Vertex of G2 & b is Vertex of G2 )
let a, b be Vertex of G; ::_thesis: ( a <> b & not a,b are_adjacent implies for S being VertexSeparator of a,b
for G2 being removeVertices of G,S holds
( a is Vertex of G2 & b is Vertex of G2 ) )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being VertexSeparator of a,b
for G2 being removeVertices of G,S holds
( a is Vertex of G2 & b is Vertex of G2 )
let S be VertexSeparator of a,b; ::_thesis: for G2 being removeVertices of G,S holds
( a is Vertex of G2 & b is Vertex of G2 )
let G2 be removeVertices of G,S; ::_thesis: ( a is Vertex of G2 & b is Vertex of G2 )
not b in S by A1, A2, Def8;
then A3: b in (the_Vertices_of G) \ S by XBOOLE_0:def_5;
not a in S by A1, A2, Def8;
then a in (the_Vertices_of G) \ S by XBOOLE_0:def_5;
hence ( a is Vertex of G2 & b is Vertex of G2 ) by A3, GLIB_000:def_37; ::_thesis: verum
end;
definition
let G be _Graph;
let a, b be Vertex of G;
let S be VertexSeparator of a,b;
attrS is minimal means :Def9: :: CHORD:def 9
for T being Subset of S st T <> S holds
not T is VertexSeparator of a,b;
end;
:: deftheorem Def9 defines minimal CHORD:def_9_:_
for G being _Graph
for a, b being Vertex of G
for S being VertexSeparator of a,b holds
( S is minimal iff for T being Subset of S st T <> S holds
not T is VertexSeparator of a,b );
theorem :: CHORD:78
for G being _Graph
for a, b being Vertex of G
for S being VertexSeparator of a,b st S = {} holds
S is minimal
proof
let G be _Graph; ::_thesis: for a, b being Vertex of G
for S being VertexSeparator of a,b st S = {} holds
S is minimal
let a, b be Vertex of G; ::_thesis: for S being VertexSeparator of a,b st S = {} holds
S is minimal
let S be VertexSeparator of a,b; ::_thesis: ( S = {} implies S is minimal )
assume A1: S = {} ; ::_thesis: S is minimal
now__::_thesis:_S_is_minimal
assume not S is minimal ; ::_thesis: contradiction
then ex T being Subset of S st
( T <> S & T is VertexSeparator of a,b ) by Def9;
hence contradiction by A1; ::_thesis: verum
end;
hence S is minimal ; ::_thesis: verum
end;
theorem Th79: :: CHORD:79
for G being finite _Graph
for a, b being Vertex of G ex S being VertexSeparator of a,b st S is minimal
proof
let G be finite _Graph; ::_thesis: for a, b being Vertex of G ex S being VertexSeparator of a,b st S is minimal
let a, b be Vertex of G; ::_thesis: ex S being VertexSeparator of a,b st S is minimal
set X = { S where S is VertexSeparator of a,b : verum } ;
set s = the VertexSeparator of a,b;
A1: the VertexSeparator of a,b in { S where S is VertexSeparator of a,b : verum } ;
now__::_thesis:_for_x_being_set_st_x_in__{__S_where_S_is_VertexSeparator_of_a,b_:_verum__}__holds_
x_in_bool_(the_Vertices_of_G)
let x be set ; ::_thesis: ( x in { S where S is VertexSeparator of a,b : verum } implies x in bool (the_Vertices_of G) )
assume x in { S where S is VertexSeparator of a,b : verum } ; ::_thesis: x in bool (the_Vertices_of G)
then ex y being VertexSeparator of a,b st x = y ;
hence x in bool (the_Vertices_of G) ; ::_thesis: verum
end;
then { S where S is VertexSeparator of a,b : verum } c= bool (the_Vertices_of G) by TARSKI:def_3;
then reconsider X = { S where S is VertexSeparator of a,b : verum } as non empty finite set by A1;
defpred S1[ set , set ] means ex p being VertexSeparator of a,b st
( $1 = p & $2 = card p );
A2: now__::_thesis:_for_x_being_set_st_x_in_X_holds_
ex_y_being_set_st_
(_y_in_REAL_&_S1[x,y]_)
let x be set ; ::_thesis: ( x in X implies ex y being set st
( y in REAL & S1[x,y] ) )
assume x in X ; ::_thesis: ex y being set st
( y in REAL & S1[x,y] )
then consider Y being VertexSeparator of a,b such that
A3: Y = x ;
card Y is Element of NAT ;
hence ex y being set st
( y in REAL & S1[x,y] ) by A3; ::_thesis: verum
end;
consider F being Function of X,REAL such that
A4: for x being set st x in X holds
S1[x,F . x] from FUNCT_2:sch_1(A2);
deffunc H1( Element of X) -> Element of REAL = F /. $1;
consider Min being Element of X such that
A5: for N being Element of X holds H1(Min) <= H1(N) from GRAPH_5:sch_2();
consider M being VertexSeparator of a,b such that
M = Min and
A6: card M = F . Min by A4;
A7: dom F = X by FUNCT_2:def_1;
now__::_thesis:_M_is_minimal
assume not M is minimal ; ::_thesis: contradiction
then consider T being Subset of M such that
A8: T <> M and
A9: T is VertexSeparator of a,b by Def9;
T in X by A9;
then reconsider T2 = T as Element of X ;
consider Tp being VertexSeparator of a,b such that
A10: Tp = T2 and
A11: card Tp = F . T2 by A4;
Tp in dom F by A7;
then F /. Tp = F . Tp by PARTFUN1:def_6;
then A12: card M <= card T by A5, A6, A10, A11;
card T <= card M by NAT_1:43;
hence contradiction by A8, A12, PRE_POLY:8, XXREAL_0:1; ::_thesis: verum
end;
hence ex S being VertexSeparator of a,b st S is minimal ; ::_thesis: verum
end;
theorem Th80: :: CHORD:80
for G being _Graph
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 T being VertexSeparator of b,a st S = T holds
T is minimal
proof
let G be _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 T being VertexSeparator of b,a st S = T holds
T is minimal
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 T being VertexSeparator of b,a st S = T holds
T is minimal )
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 T being VertexSeparator of b,a st S = T holds
T is minimal
let S be VertexSeparator of a,b; ::_thesis: ( S is minimal implies for T being VertexSeparator of b,a st S = T holds
T is minimal )
assume A3: S is minimal ; ::_thesis: for T being VertexSeparator of b,a st S = T holds
T is minimal
let T be VertexSeparator of b,a; ::_thesis: ( S = T implies T is minimal )
assume A4: S = T ; ::_thesis: T is minimal
assume not T is minimal ; ::_thesis: contradiction
then consider H being Subset of T such that
A5: H <> T and
A6: H is VertexSeparator of b,a by Def9;
H is VertexSeparator of a,b by A1, A2, A6, Th70;
hence contradiction by A3, A4, A5, Def9; ::_thesis: verum
end;
theorem :: CHORD:81
for G being _Graph
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 x being Vertex of G st x in S holds
ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() )
proof
let G be _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 x being Vertex of G st x in S holds
ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() )
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 x being Vertex of G st x in S holds
ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() ) )
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 x being Vertex of G st x in S holds
ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() )
let S be VertexSeparator of a,b; ::_thesis: ( S is minimal implies for x being Vertex of G st x in S holds
ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() ) )
assume A3: S is minimal ; ::_thesis: for x being Vertex of G st x in S holds
ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() )
let x be Vertex of G; ::_thesis: ( x in S implies ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() ) )
assume A4: x in S ; ::_thesis: ex W being Walk of G st
( W is_Walk_from a,b & x in W .vertices() )
set T = S \ {x};
A5: S \ {x} c= S by XBOOLE_1:36;
then A6: not b in S \ {x} by A1, A2, Def8;
assume A7: for W being Walk of G holds
( not W is_Walk_from a,b or not x in W .vertices() ) ; ::_thesis: contradiction
A8: now__::_thesis:_for_W_being_Walk_of_G_st_W_is_Walk_from_a,b_holds_
ex_y_being_Vertex_of_G_st_
(_y_in_S_\_{x}_&_y_in_W_.vertices()_)
let W be Walk of G; ::_thesis: ( W is_Walk_from a,b implies ex y being Vertex of G st
( y in S \ {x} & y in W .vertices() ) )
assume A9: W is_Walk_from a,b ; ::_thesis: ex y being Vertex of G st
( y in S \ {x} & y in W .vertices() )
consider y being Vertex of G such that
A10: y in S and
A11: y in W .vertices() by A1, A2, A9, Th71;
take y = y; ::_thesis: ( y in S \ {x} & y in W .vertices() )
y <> x by A7, A9, A11;
then not y in {x} by TARSKI:def_1;
hence y in S \ {x} by A10, XBOOLE_0:def_5; ::_thesis: y in W .vertices()
thus y in W .vertices() by A11; ::_thesis: verum
end;
x in {x} by TARSKI:def_1;
then A12: S \ {x} <> S by A4, XBOOLE_0:def_5;
not a in S \ {x} by A1, A2, A5, Def8;
then S \ {x} is VertexSeparator of a,b by A1, A2, A6, A8, Th71;
hence contradiction by A3, A12, A5, Def9; ::_thesis: verum
end;
theorem Th82: :: CHORD:82
for G being _Graph
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 aa being Vertex of H st aa = a holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
proof
let G be _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 aa being Vertex of H st aa = a holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y 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 aa being Vertex of H st aa = a holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y 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 aa being Vertex of H st aa = a holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
let S be VertexSeparator of a,b; ::_thesis: ( S is minimal implies for H being removeVertices of G,S
for aa being Vertex of H st aa = a holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent ) )
assume A3: S is minimal ; ::_thesis: for H being removeVertices of G,S
for aa being Vertex of H st aa = a holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
let H be removeVertices of G,S; ::_thesis: for aa being Vertex of H st aa = a holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
let aa be Vertex of H; ::_thesis: ( aa = a implies for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent ) )
assume A4: aa = a ; ::_thesis: for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
set A = H .reachableFrom aa;
let x be Vertex of G; ::_thesis: ( x in S implies ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent ) )
assume A5: x in S ; ::_thesis: ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
set T = S \ {x};
A6: S \ {x} c= S by XBOOLE_1:36;
then A7: not b in S \ {x} by A1, A2, Def8;
assume A8: for y being Vertex of G holds
( not y in H .reachableFrom aa or not x,y are_adjacent ) ; ::_thesis: contradiction
A9: for W being Walk of G st W is_Walk_from a,b & x in W .vertices() holds
ex y being Vertex of G st
( y in S \ {x} & y in W .vertices() )
proof
let W be Walk of G; ::_thesis: ( W is_Walk_from a,b & x in W .vertices() implies ex y being Vertex of G st
( y in S \ {x} & y in W .vertices() ) )
assume that
A10: W is_Walk_from a,b and
A11: x in W .vertices() ; ::_thesis: ex y being Vertex of G st
( y in S \ {x} & y in W .vertices() )
A12: now__::_thesis:_not_W_.find_x_=_1
assume W .find x = 1 ; ::_thesis: contradiction
then W . (W .find x) = W .first() ;
then W . (W .find x) = a by A10, GLIB_001:def_23;
then not W . (W .find x) in S by A1, A2, Def8;
hence contradiction by A5, A11, GLIB_001:def_19; ::_thesis: verum
end;
consider k being odd Element of NAT such that
A13: k <= len W and
A14: W . k = x by A11, GLIB_001:87;
W .find (W . k) <= k by A13, GLIB_001:115;
then A15: W .find x <= len W by A13, A14, XXREAL_0:2;
then A16: (W .find x) + (- 2) <= (len W) + 0 by XREAL_1:7;
0 + 1 <= W .find x by ABIAN:12;
then (2 * 0) + 1 < W .find x by A12, XXREAL_0:1;
then (2 * 1) + 1 <= W .find x by Th4;
then A17: 3 + (- 2) <= (W .find x) + (- 2) by XREAL_1:7;
then A18: (W .find x) - 2 is Element of NAT by INT_1:3;
then reconsider j = (W .find x) - (2 * 1) as odd Nat ;
set P = W .cut (1,j);
A19: (2 * 0) + 1 <= j by A17;
then A20: ((len (W .cut (1,j))) + 1) + (- 1) = (j + 1) + (- 1) by A18, A16, GLIB_001:36;
assume A21: for y being Vertex of G holds
( not y in S \ {x} or not y in W .vertices() ) ; ::_thesis: contradiction
A22: for n being odd Nat st n <= j holds
( not (W .cut (1,j)) . n in S & (W .cut (1,j)) . n = W . n )
proof
let n be odd Nat; ::_thesis: ( n <= j implies ( not (W .cut (1,j)) . n in S & (W .cut (1,j)) . n = W . n ) )
assume A23: n <= j ; ::_thesis: ( not (W .cut (1,j)) . n in S & (W .cut (1,j)) . n = W . n )
1 <= n by ABIAN:12;
then 1 + (- 1) <= n + (- 1) by XREAL_1:7;
then A24: n - 1 is Element of NAT by INT_1:3;
then reconsider nu1 = n - 1 as Nat ;
n < j + 1 by A23, NAT_1:13;
then n + (- 1) < (j + 1) + (- 1) by XREAL_1:8;
then A25: (W .cut (1,j)) . (nu1 + 1) = W . (1 + nu1) by A16, A19, A20, A24, GLIB_001:36;
now__::_thesis:_not_(W_.cut_(1,j))_._n_in_S
A26: (W .cut (1,j)) .vertices() c= W .vertices() by A18, A16, A19, GLIB_001:94;
A27: n in NAT by ORDINAL1:def_12;
then (W .cut (1,j)) . n in (W .cut (1,j)) .vertices() by A20, A23, GLIB_001:87;
then A28: not (W .cut (1,j)) . n in S \ {x} by A21, A26;
n < j + 1 by A23, NAT_1:13;
then A29: n + 0 < (j + 1) + 1 by XREAL_1:8;
A30: S \/ {x} = {x} \/ (S \ {x}) by XBOOLE_1:39;
{x} c= S by A5, ZFMISC_1:31;
then A31: S = {x} \/ (S \ {x}) by A30, XBOOLE_1:12;
A32: n <= len W by A16, A23, XXREAL_0:2;
assume (W .cut (1,j)) . n in S ; ::_thesis: contradiction
then (W .cut (1,j)) . n in {x} by A28, A31, XBOOLE_0:def_3;
then n < W .find (W . n) by A25, A29, TARSKI:def_1;
hence contradiction by A27, A32, GLIB_001:115; ::_thesis: verum
end;
hence ( not (W .cut (1,j)) . n in S & (W .cut (1,j)) . n = W . n ) by A25; ::_thesis: verum
end;
then for n being odd Nat st n <= j holds
not (W .cut (1,j)) . n in S ;
then reconsider HP = W .cut (1,j) as Walk of H by A20, Th21;
W .first() = a by A10, GLIB_001:def_23;
then (W .cut (1,j)) . ((2 * 0) + 1) = a by A17, A22;
then aa in HP .vertices() by A4, A17, A20, GLIB_001:87;
then A33: HP .vertices() c= H .reachableFrom aa by GLIB_002:13;
W .find x < (len W) + 1 by A15, NAT_1:13;
then A34: (W .find x) + (- 2) < ((len W) + 1) + (- 2) by XREAL_1:8;
(W .cut (1,j)) . j is Vertex of G by A20, GLIB_001:7;
then reconsider Wj = W . j as Vertex of G by A22;
(len W) + (- 1) < (len W) + 0 by XREAL_1:8;
then j < len W by A34, XXREAL_0:2;
then W . (j + 1) Joins Wj,W . (j + 2),G by A18, GLIB_001:def_3;
then W . (j + 1) Joins Wj,x,G by A11, GLIB_001:def_19;
then A35: Wj,x are_adjacent by Def3;
(W .cut (1,j)) . j in HP .vertices() by A20, GLIB_001:87;
then W . j in HP .vertices() by A22;
hence contradiction by A8, A33, A35; ::_thesis: verum
end;
A36: now__::_thesis:_for_W_being_Walk_of_G_st_W_is_Walk_from_a,b_holds_
ex_y_being_Vertex_of_G_st_
(_y_in_S_\_{x}_&_y_in_W_.vertices()_)
let W be Walk of G; ::_thesis: ( W is_Walk_from a,b implies ex y being Vertex of G st
( b2 in S \ {x} & b2 in y .vertices() ) )
assume A37: W is_Walk_from a,b ; ::_thesis: ex y being Vertex of G st
( b2 in S \ {x} & b2 in y .vertices() )
consider y being Vertex of G such that
A38: y in S and
A39: y in W .vertices() by A1, A2, A37, Th71;
percases ( y = x or y <> x ) ;
suppose y = x ; ::_thesis: ex y being Vertex of G st
( b2 in S \ {x} & b2 in y .vertices() )
hence ex y being Vertex of G st
( y in S \ {x} & y in W .vertices() ) by A9, A37, A39; ::_thesis: verum
end;
supposeA40: y <> x ; ::_thesis: ex y being Vertex of G st
( b2 in S \ {x} & b2 in y .vertices() )
take y = y; ::_thesis: ( y in S \ {x} & y in W .vertices() )
not y in {x} by A40, TARSKI:def_1;
hence y in S \ {x} by A38, XBOOLE_0:def_5; ::_thesis: y in W .vertices()
thus y in W .vertices() by A39; ::_thesis: verum
end;
end;
end;
x in {x} by TARSKI:def_1;
then A41: S \ {x} <> S by A5, XBOOLE_0:def_5;
not a in S \ {x} by A1, A2, A6, Def8;
then S \ {x} is VertexSeparator of a,b by A1, A2, A7, A36, Th71;
hence contradiction by A3, A41, A6, Def9; ::_thesis: verum
end;
theorem Th83: :: CHORD:83
for G being _Graph
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 aa being Vertex of H st aa = b holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
proof
let G be _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 aa being Vertex of H st aa = b holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y 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 aa being Vertex of H st aa = b holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y 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 aa being Vertex of H st aa = b holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
let S be VertexSeparator of a,b; ::_thesis: ( S is minimal implies for H being removeVertices of G,S
for aa being Vertex of H st aa = b holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent ) )
assume A3: S is minimal ; ::_thesis: for H being removeVertices of G,S
for aa being Vertex of H st aa = b holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
reconsider S1 = S as VertexSeparator of b,a by A1, A2, Th70;
A4: S1 is minimal by A1, A2, A3, Th80;
let H be removeVertices of G,S; ::_thesis: for aa being Vertex of H st aa = b holds
for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
let aa be Vertex of H; ::_thesis: ( aa = b implies for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent ) )
assume A5: aa = b ; ::_thesis: for x being Vertex of G st x in S holds
ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
let x be Vertex of G; ::_thesis: ( x in S implies ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent ) )
assume x in S ; ::_thesis: ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent )
hence ex y being Vertex of G st
( y in H .reachableFrom aa & x,y are_adjacent ) by A1, A2, A5, A4, Th82; ::_thesis: verum
end;
begin
definition
let G be _Graph;
let W be Walk of G;
attrW is chordal means :Def10: :: CHORD:def 10
ex m, n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( for f being set st f in W .edges() holds
not f Joins W . m,W . n,G ) );
end;
:: deftheorem Def10 defines chordal CHORD:def_10_:_
for G being _Graph
for W being Walk of G holds
( W is chordal iff ex m, n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( for f being set st f in W .edges() holds
not f Joins W . m,W . n,G ) ) );
notation
let G be _Graph;
let W be Walk of G;
antonym chordless W for chordal ;
end;
theorem Th84: :: CHORD:84
for G being _Graph
for W being Walk of G st W is chordal holds
ex m, n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is chordal holds
ex m, n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
let W be Walk of G; ::_thesis: ( W is chordal implies ex m, n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) ) )
given m, n being odd Nat such that A1: m + 2 < n and
A2: n <= len W and
A3: W . m <> W . n and
A4: ex e being set st e Joins W . m,W . n,G and
A5: for f being set st f in W .edges() holds
not f Joins W . m,W . n,G ; :: according to CHORD:def_10 ::_thesis: ex m, n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
take m ; ::_thesis: ex n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
take n ; ::_thesis: ( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
thus m + 2 < n by A1; ::_thesis: ( n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
thus n <= len W by A2; ::_thesis: ( W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
thus W . m <> W . n by A3; ::_thesis: ( ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) )
thus ex e being set st e Joins W . m,W . n,G by A4; ::_thesis: ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) )
A6: W .last() = W . (len W) ;
assume A7: W is Cycle-like ; ::_thesis: ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) )
then A8: 3 <= len W by GLIB_001:125;
then reconsider lW2 = (len W) - (2 * 1) as odd Element of NAT by INT_1:5, XXREAL_0:2;
A9: W .first() = W . 1 ;
then A10: W . 1 = W . (len W) by A7, A6, GLIB_001:def_24;
reconsider lW2 = lW2 as odd Nat ;
reconsider le = lW2 + 1 as even Nat ;
A11: 1 <= le by NAT_1:12;
A12: lW2 < len W by XREAL_1:44;
then A13: le <= len W by NAT_1:13;
then le div 2 in dom (W .edgeSeq()) by A11, GLIB_001:77;
then (W .edgeSeq()) . (le div 2) in rng (W .edgeSeq()) by FUNCT_1:3;
then A14: W . (((len W) - 2) + 1) in W .edges() by A11, A13, GLIB_001:77;
thus ( not m = 1 or not n = len W ) by A3, A7, A9, A6, GLIB_001:def_24; ::_thesis: ( ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) )
W . (lW2 + 1) Joins W . lW2,W . (lW2 + 2),G by A12, GLIB_001:def_3;
hence ( not m = 1 or not n = (len W) - 2 ) by A5, A10, A14, GLIB_000:14; ::_thesis: ( not m = 3 or not n = len W )
A15: (2 * 0) + 1 is odd Nat ;
A16: (2 * 1) div 2 = 1 by NAT_D:18;
A17: 1 + 1 <= len W by A8, XXREAL_0:2;
then 1 in dom (W .edgeSeq()) by A16, GLIB_001:77;
then (W .edgeSeq()) . 1 in rng (W .edgeSeq()) by FUNCT_1:3;
then A18: W . (1 + 1) in rng (W .edgeSeq()) by A16, A17, GLIB_001:77;
1 < len W by A8, XXREAL_0:2;
then W . (1 + 1) Joins W . 1,W . (1 + 2),G by A15, GLIB_001:def_3;
hence ( not m = 3 or not n = len W ) by A5, A10, A18, GLIB_000:14; ::_thesis: verum
end;
theorem Th85: :: CHORD:85
for G being _Graph
for P being Path of G st ex m, n being odd Nat st
( m + 2 < n & n <= len P & ex e being set st e Joins P . m,P . n,G & ( P is Cycle-like implies ( ( not m = 1 or not n = len P ) & ( not m = 1 or not n = (len P) - 2 ) & ( not m = 3 or not n = len P ) ) ) ) holds
P is chordal
proof
let G be _Graph; ::_thesis: for P being Path of G st ex m, n being odd Nat st
( m + 2 < n & n <= len P & ex e being set st e Joins P . m,P . n,G & ( P is Cycle-like implies ( ( not m = 1 or not n = len P ) & ( not m = 1 or not n = (len P) - 2 ) & ( not m = 3 or not n = len P ) ) ) ) holds
P is chordal
let P be Path of G; ::_thesis: ( ex m, n being odd Nat st
( m + 2 < n & n <= len P & ex e being set st e Joins P . m,P . n,G & ( P is Cycle-like implies ( ( not m = 1 or not n = len P ) & ( not m = 1 or not n = (len P) - 2 ) & ( not m = 3 or not n = len P ) ) ) ) implies P is chordal )
given m, n being odd Nat such that A1: m + 2 < n and
A2: n <= len P and
A3: ex e being set st e Joins P . m,P . n,G and
A4: ( P is Cycle-like implies ( ( not m = 1 or not n = len P ) & ( not m = 1 or not n = (len P) - 2 ) & ( not m = 3 or not n = len P ) ) ) ; ::_thesis: P is chordal
A5: n in NAT by ORDINAL1:def_12;
take m ; :: according to CHORD:def_10 ::_thesis: ex n being odd Nat st
( m + 2 < n & n <= len P & P . m <> P . n & ex e being set st e Joins P . m,P . n,G & ( for f being set st f in P .edges() holds
not f Joins P . m,P . n,G ) )
take n ; ::_thesis: ( m + 2 < n & n <= len P & P . m <> P . n & ex e being set st e Joins P . m,P . n,G & ( for f being set st f in P .edges() holds
not f Joins P . m,P . n,G ) )
thus m + 2 < n by A1; ::_thesis: ( n <= len P & P . m <> P . n & ex e being set st e Joins P . m,P . n,G & ( for f being set st f in P .edges() holds
not f Joins P . m,P . n,G ) )
thus n <= len P by A2; ::_thesis: ( P . m <> P . n & ex e being set st e Joins P . m,P . n,G & ( for f being set st f in P .edges() holds
not f Joins P . m,P . n,G ) )
A6: m in NAT by ORDINAL1:def_12;
A7: m < n by A1, NAT_1:12;
then A8: m < len P by A2, XXREAL_0:2;
now__::_thesis:_not_len_P_=_1
assume len P = 1 ; ::_thesis: contradiction
then m + 2 < 1 by A1, A2, XXREAL_0:2;
hence contradiction by NAT_1:12; ::_thesis: verum
end;
then A9: not P is trivial by GLIB_001:126;
hereby ::_thesis: ( ex e being set st e Joins P . m,P . n,G & ( for f being set st f in P .edges() holds
not f Joins P . m,P . n,G ) )
A10: P .last() = P . (len P) ;
A11: P .first() = P . 1 ;
assume A12: P . m = P . n ; ::_thesis: contradiction
then A13: n = len P by A2, A6, A5, A7, GLIB_001:def_28;
m = 1 by A2, A6, A5, A7, A12, GLIB_001:def_28;
then P is closed by A12, A13, A11, A10, GLIB_001:def_24;
hence contradiction by A2, A4, A6, A5, A7, A9, A12, GLIB_001:def_28, GLIB_001:def_31; ::_thesis: verum
end;
thus ex e being set st e Joins P . m,P . n,G by A3; ::_thesis: for f being set st f in P .edges() holds
not f Joins P . m,P . n,G
let f be set ; ::_thesis: ( f in P .edges() implies not f Joins P . m,P . n,G )
assume that
A14: f in P .edges() and
A15: f Joins P . m,P . n,G ; ::_thesis: contradiction
consider i being Nat such that
A16: i in dom (P .edgeSeq()) and
A17: (P .edgeSeq()) . i = f by A14, FINSEQ_2:10;
reconsider i = i as Element of NAT by ORDINAL1:def_12;
set k = (2 * i) - 1;
A18: 1 <= i by A16, FINSEQ_3:25;
then 2 * 1 <= 2 * i by XREAL_1:64;
then 2 - 1 <= (2 * i) - 1 by XREAL_1:9;
then A19: (2 * i) - 1 is Element of NAT by INT_1:3;
i <= len (P .edgeSeq()) by A16, FINSEQ_3:25;
then A20: (P .edgeSeq()) . i = P . (2 * i) by A18, GLIB_001:def_15;
reconsider k = (2 * i) - 1 as odd Nat by A19;
2 * i in dom P by A16, GLIB_001:78;
then A21: 2 * i <= len P by FINSEQ_3:25;
k + 1 = 2 * i ;
then A22: k < len P by A21, NAT_1:13;
then A23: k + 2 <= len P by Th4;
A24: k in NAT by ORDINAL1:def_12;
then A25: P . (k + 1) Joins P . k,P . (k + 2),G by A22, GLIB_001:def_3;
percases ( ( P . k = P . m & P . (k + 2) = P . n ) or ( P . k = P . n & P . (k + 2) = P . m ) ) by A15, A17, A20, A25, GLIB_000:15;
supposeA26: ( P . k = P . m & P . (k + 2) = P . n ) ; ::_thesis: contradiction
percases ( k < m or k = m or k > m ) by XXREAL_0:1;
suppose k < m ; ::_thesis: contradiction
hence contradiction by A6, A8, A24, A26, GLIB_001:def_28; ::_thesis: verum
end;
supposeA27: k = m ; ::_thesis: contradiction
percases ( k + 2 < n or k + 2 = n or k + 2 > n ) by XXREAL_0:1;
supposeA28: k + 2 < n ; ::_thesis: contradiction
A29: 1 <= k by ABIAN:12;
k + 2 = 1 by A2, A5, A26, A28, GLIB_001:def_28;
then k + 2 < k + 1 by A29, NAT_1:13;
hence contradiction by XREAL_1:6; ::_thesis: verum
end;
suppose k + 2 = n ; ::_thesis: contradiction
hence contradiction by A1, A27; ::_thesis: verum
end;
supposeA30: k + 2 > n ; ::_thesis: contradiction
k + 2 <= len P by A22, Th4;
then n = 1 by A5, A26, A30, GLIB_001:def_28;
hence contradiction by A1, ABIAN:12; ::_thesis: verum
end;
end;
end;
suppose k > m ; ::_thesis: contradiction
hence contradiction by A6, A24, A22, A26, GLIB_001:def_28; ::_thesis: verum
end;
end;
end;
supposeA31: ( P . k = P . n & P . (k + 2) = P . m ) ; ::_thesis: contradiction
percases ( k < n or k = n or k > n ) by XXREAL_0:1;
supposeA32: k < n ; ::_thesis: contradiction
then A33: n = len P by A2, A5, A24, A31, GLIB_001:def_28;
A34: k = 1 by A2, A5, A24, A31, A32, GLIB_001:def_28;
percases ( k + 2 < m or k + 2 = m or k + 2 > m ) by XXREAL_0:1;
suppose k + 2 < m ; ::_thesis: contradiction
hence contradiction by A6, A8, A31, GLIB_001:def_28; ::_thesis: verum
end;
supposeA35: k + 2 = m ; ::_thesis: contradiction
A36: P .last() = P . (len P) ;
P .first() = P . 1 ;
then P is closed by A31, A34, A33, A36, GLIB_001:def_24;
hence contradiction by A2, A4, A5, A9, A31, A32, A34, A35, GLIB_001:def_28, GLIB_001:def_31; ::_thesis: verum
end;
supposeA37: k + 2 > m ; ::_thesis: contradiction
A38: P .last() = P . (len P) ;
A39: k + 2 <= n by A32, Th4;
A40: P .first() = P . 1 ;
A41: k + 2 = len P by A6, A23, A31, A37, GLIB_001:def_28;
m = 1 by A6, A23, A31, A37, GLIB_001:def_28;
then P is closed by A31, A41, A40, A38, GLIB_001:def_24;
hence contradiction by A2, A4, A6, A9, A31, A37, A41, A39, GLIB_001:def_28, GLIB_001:def_31, XXREAL_0:1; ::_thesis: verum
end;
end;
end;
supposeA42: k = n ; ::_thesis: contradiction
percases ( k + 2 < m or k + 2 = m or k + 2 > m ) by XXREAL_0:1;
suppose k + 2 < m ; ::_thesis: contradiction
hence contradiction by A7, A42, NAT_1:12; ::_thesis: verum
end;
suppose k + 2 = m ; ::_thesis: contradiction
hence contradiction by A7, A42, NAT_1:12; ::_thesis: verum
end;
supposeA43: k + 2 > m ; ::_thesis: contradiction
A44: P .last() = P . (len P) ;
A45: P .first() = P . 1 ;
A46: k + 2 = len P by A6, A23, A31, A43, GLIB_001:def_28;
m = 1 by A6, A23, A31, A43, GLIB_001:def_28;
then P is closed by A31, A46, A45, A44, GLIB_001:def_24;
hence contradiction by A4, A6, A9, A31, A42, A43, A46, GLIB_001:def_28, GLIB_001:def_31; ::_thesis: verum
end;
end;
end;
suppose k > n ; ::_thesis: contradiction
hence contradiction by A5, A24, A22, A31, GLIB_001:def_28; ::_thesis: verum
end;
end;
end;
end;
end;
theorem Th86: :: CHORD:86
for G1, G2 being _Graph st G1 == G2 holds
for W1 being Walk of G1
for W2 being Walk of G2 st W1 = W2 & W1 is chordal holds
W2 is chordal
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 implies for W1 being Walk of G1
for W2 being Walk of G2 st W1 = W2 & W1 is chordal holds
W2 is chordal )
assume A1: G1 == G2 ; ::_thesis: for W1 being Walk of G1
for W2 being Walk of G2 st W1 = W2 & W1 is chordal holds
W2 is chordal
let W1 be Walk of G1; ::_thesis: for W2 being Walk of G2 st W1 = W2 & W1 is chordal holds
W2 is chordal
let W2 be Walk of G2; ::_thesis: ( W1 = W2 & W1 is chordal implies W2 is chordal )
assume A2: W1 = W2 ; ::_thesis: ( not W1 is chordal or W2 is chordal )
given m, n being odd Nat such that A3: m + 2 < n and
A4: n <= len W1 and
A5: W1 . m <> W1 . n and
A6: ex e being set st e Joins W1 . m,W1 . n,G1 and
A7: for f being set st f in W1 .edges() holds
not f Joins W1 . m,W1 . n,G1 ; :: according to CHORD:def_10 ::_thesis: W2 is chordal
take m ; :: according to CHORD:def_10 ::_thesis: ex n being odd Nat st
( m + 2 < n & n <= len W2 & W2 . m <> W2 . n & ex e being set st e Joins W2 . m,W2 . n,G2 & ( for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,G2 ) )
take n ; ::_thesis: ( m + 2 < n & n <= len W2 & W2 . m <> W2 . n & ex e being set st e Joins W2 . m,W2 . n,G2 & ( for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,G2 ) )
thus ( m + 2 < n & n <= len W2 & W2 . m <> W2 . n ) by A2, A3, A4, A5; ::_thesis: ( ex e being set st e Joins W2 . m,W2 . n,G2 & ( for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,G2 ) )
consider e being set such that
A8: e Joins W1 . m,W1 . n,G1 by A6;
e Joins W2 . m,W2 . n,G2 by A1, A2, A8, GLIB_000:88;
hence ex e being set st e Joins W2 . m,W2 . n,G2 ; ::_thesis: for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,G2
let f be set ; ::_thesis: ( f in W2 .edges() implies not f Joins W2 . m,W2 . n,G2 )
assume f in W2 .edges() ; ::_thesis: not f Joins W2 . m,W2 . n,G2
then f in W1 .edges() by A2, GLIB_001:110;
then not f Joins W1 . m,W1 . n,G1 by A7;
hence not f Joins W2 . m,W2 . n,G2 by A1, A2, GLIB_000:88; ::_thesis: verum
end;
theorem Th87: :: CHORD:87
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W1 being Walk of G
for W2 being Walk of H st W1 = W2 holds
( W2 is chordal iff W1 is chordal )
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W1 being Walk of G
for W2 being Walk of H st W1 = W2 holds
( W2 is chordal iff W1 is chordal )
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for W1 being Walk of G
for W2 being Walk of H st W1 = W2 holds
( W2 is chordal iff W1 is chordal )
let H be inducedSubgraph of G,S; ::_thesis: for W1 being Walk of G
for W2 being Walk of H st W1 = W2 holds
( W2 is chordal iff W1 is chordal )
let W1 be Walk of G; ::_thesis: for W2 being Walk of H st W1 = W2 holds
( W2 is chordal iff W1 is chordal )
let W2 be Walk of H; ::_thesis: ( W1 = W2 implies ( W2 is chordal iff W1 is chordal ) )
assume A1: W1 = W2 ; ::_thesis: ( W2 is chordal iff W1 is chordal )
thus ( W2 is chordal implies W1 is chordal ) ::_thesis: ( W1 is chordal implies W2 is chordal )
proof
given m, n being odd Nat such that A2: m + 2 < n and
A3: n <= len W2 and
A4: W2 . m <> W2 . n and
A5: ex e being set st e Joins W2 . m,W2 . n,H and
A6: for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,H ; :: according to CHORD:def_10 ::_thesis: W1 is chordal
take m ; :: according to CHORD:def_10 ::_thesis: ex n being odd Nat st
( m + 2 < n & n <= len W1 & W1 . m <> W1 . n & ex e being set st e Joins W1 . m,W1 . n,G & ( for f being set st f in W1 .edges() holds
not f Joins W1 . m,W1 . n,G ) )
take n ; ::_thesis: ( m + 2 < n & n <= len W1 & W1 . m <> W1 . n & ex e being set st e Joins W1 . m,W1 . n,G & ( for f being set st f in W1 .edges() holds
not f Joins W1 . m,W1 . n,G ) )
thus ( m + 2 < n & n <= len W1 & W1 . m <> W1 . n ) by A1, A2, A3, A4; ::_thesis: ( ex e being set st e Joins W1 . m,W1 . n,G & ( for f being set st f in W1 .edges() holds
not f Joins W1 . m,W1 . n,G ) )
consider e being set such that
A7: e Joins W2 . m,W2 . n,H by A5;
e Joins W1 . m,W1 . n,G by A1, A7, GLIB_000:72;
hence ex e being set st e Joins W1 . m,W1 . n,G ; ::_thesis: for f being set st f in W1 .edges() holds
not f Joins W1 . m,W1 . n,G
let f be set ; ::_thesis: ( f in W1 .edges() implies not f Joins W1 . m,W1 . n,G )
assume f in W1 .edges() ; ::_thesis: not f Joins W1 . m,W1 . n,G
then A8: f in W2 .edges() by A1, GLIB_001:110;
then not f Joins W1 . m,W1 . n,H by A1, A6;
hence not f Joins W1 . m,W1 . n,G by A8, GLIB_000:73; ::_thesis: verum
end;
A9: S = the_Vertices_of H by GLIB_000:def_37;
thus ( W1 is chordal implies W2 is chordal ) ::_thesis: verum
proof
given m, n being odd Nat such that A10: m + 2 < n and
A11: n <= len W1 and
A12: W1 . m <> W1 . n and
A13: ex e being set st e Joins W1 . m,W1 . n,G and
A14: for f being set st f in W1 .edges() holds
not f Joins W1 . m,W1 . n,G ; :: according to CHORD:def_10 ::_thesis: W2 is chordal
take m ; :: according to CHORD:def_10 ::_thesis: ex n being odd Nat st
( m + 2 < n & n <= len W2 & W2 . m <> W2 . n & ex e being set st e Joins W2 . m,W2 . n,H & ( for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,H ) )
take n ; ::_thesis: ( m + 2 < n & n <= len W2 & W2 . m <> W2 . n & ex e being set st e Joins W2 . m,W2 . n,H & ( for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,H ) )
thus ( m + 2 < n & n <= len W2 & W2 . m <> W2 . n ) by A1, A10, A11, A12; ::_thesis: ( ex e being set st e Joins W2 . m,W2 . n,H & ( for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,H ) )
A15: m in NAT by ORDINAL1:def_12;
n in NAT by ORDINAL1:def_12;
then A16: W1 . n in the_Vertices_of H by A1, A11, GLIB_001:7;
m < n by A10, NAT_1:12;
then W1 . m in the_Vertices_of H by A1, A11, A15, GLIB_001:7, XXREAL_0:2;
hence ex e being set st e Joins W2 . m,W2 . n,H by A1, A9, A13, A16, Th19; ::_thesis: for f being set st f in W2 .edges() holds
not f Joins W2 . m,W2 . n,H
let f be set ; ::_thesis: ( f in W2 .edges() implies not f Joins W2 . m,W2 . n,H )
assume f in W2 .edges() ; ::_thesis: not f Joins W2 . m,W2 . n,H
then f in W1 .edges() by A1, GLIB_001:110;
then not f Joins W2 . m,W2 . n,G by A1, A14;
hence not f Joins W2 . m,W2 . n,H by GLIB_000:72; ::_thesis: verum
end;
end;
theorem :: CHORD:88
for G being _Graph
for W being Walk of G st W is Cycle-like & W is chordal & W .length() = 4 holds
ex e being set st
( e Joins W . 1,W . 5,G or e Joins W . 3,W . 7,G )
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is Cycle-like & W is chordal & W .length() = 4 holds
ex e being set st
( e Joins W . 1,W . 5,G or e Joins W . 3,W . 7,G )
let W be Walk of G; ::_thesis: ( W is Cycle-like & W is chordal & W .length() = 4 implies ex e being set st
( e Joins W . 1,W . 5,G or e Joins W . 3,W . 7,G ) )
assume that
A1: W is Cycle-like and
A2: W is chordal and
A3: W .length() = 4 ; ::_thesis: ex e being set st
( e Joins W . 1,W . 5,G or e Joins W . 3,W . 7,G )
A4: len W = (2 * 4) + 1 by A3, GLIB_001:112;
consider m, n being odd Nat such that
A5: m + 2 < n and
A6: n <= len W and
W . m <> W . n and
A7: ex e being set st e Joins W . m,W . n,G and
A8: ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) by A2, Th84;
consider e being set such that
A9: e Joins W . m,W . n,G by A7;
assume A10: for e being set holds
( not e Joins W . 1,W . 5,G & not e Joins W . 3,W . 7,G ) ; ::_thesis: contradiction
A11: now__::_thesis:_not_m_=_3
assume A12: m = 3 ; ::_thesis: contradiction
then n < len W by A1, A6, A8, XXREAL_0:1;
then A13: n <= 9 - 2 by A4, Th3;
n <> 7 by A10, A9, A12;
then n < (2 * 3) + 1 by A13, XXREAL_0:1;
then n <= 7 - 2 by Th3;
hence contradiction by A5, A12; ::_thesis: verum
end;
A14: now__::_thesis:_not_m_=_1
reconsider jj = (2 * 3) + 1 as odd Nat ;
assume A15: m = 1 ; ::_thesis: contradiction
then n < len W by A1, A6, A8, XXREAL_0:1;
then n <= 9 - 2 by A4, Th3;
then n < jj by A1, A4, A8, A15, XXREAL_0:1;
then A16: n <= jj - 2 by Th3;
n <> 5 by A10, A9, A15;
then n < (2 * 2) + 1 by A16, XXREAL_0:1;
then n <= 5 - 2 by Th3;
hence contradiction by A5, A15; ::_thesis: verum
end;
A17: W .first() = W .last() by A1, GLIB_001:def_24;
A18: now__::_thesis:_not_m_=_5
assume A19: m = 5 ; ::_thesis: contradiction
now__::_thesis:_not_n_=_9
assume n = 9 ; ::_thesis: contradiction
then e Joins W . 1,W . 5,G by A17, A4, A9, A19, GLIB_000:14;
hence contradiction by A10; ::_thesis: verum
end;
then n < len W by A4, A6, XXREAL_0:1;
then n <= (len W) - 2 by Th3;
hence contradiction by A4, A5, A19; ::_thesis: verum
end;
0 + 1 <= m by ABIAN:12;
then (2 * 0) + 1 < m by A14, XXREAL_0:1;
then 1 + 2 <= m by Th4;
then (2 * 1) + 1 < m by A11, XXREAL_0:1;
then 3 + 2 <= m by Th4;
then (2 * 2) + 1 < m by A18, XXREAL_0:1;
then 5 + 2 <= m by Th4;
then 7 + 2 <= m + 2 by XREAL_1:7;
hence contradiction by A4, A5, A6, XXREAL_0:2; ::_thesis: verum
end;
theorem Th89: :: CHORD:89
for G being _Graph
for W being Walk of G st W is minlength holds
W is chordless
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is minlength holds
W is chordless
let W be Walk of G; ::_thesis: ( W is minlength implies W is chordless )
assume A1: W is minlength ; ::_thesis: W is chordless
assume W is chordal ; ::_thesis: contradiction
then ex m, n being odd Nat st
( m + 2 < n & n <= len W & W . m <> W . n & ex e being set st e Joins W . m,W . n,G & ( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) ) by Th84;
hence contradiction by A1, Th40; ::_thesis: verum
end;
theorem :: CHORD:90
for G being _Graph
for W being Walk of G st len W = 5 & not W .first() ,W .last() are_adjacent holds
W is chordless
proof
let G be _Graph; ::_thesis: for W being Walk of G st len W = 5 & not W .first() ,W .last() are_adjacent holds
W is chordless
let W be Walk of G; ::_thesis: ( len W = 5 & not W .first() ,W .last() are_adjacent implies W is chordless )
assume that
A1: len W = 5 and
A2: not W .first() ,W .last() are_adjacent ; ::_thesis: W is chordless
assume W is chordal ; ::_thesis: contradiction
then consider m, n being odd Nat such that
A3: m + 2 < n and
A4: n <= len W and
W . m <> W . n and
A5: ex e being set st e Joins W . m,W . n,G and
( W is Cycle-like implies ( ( not m = 1 or not n = len W ) & ( not m = 1 or not n = (len W) - 2 ) & ( not m = 3 or not n = len W ) ) ) by Th84;
A6: now__::_thesis:_not_m_<>_1
assume A7: m <> 1 ; ::_thesis: contradiction
1 <= m by Th2;
then (2 * 0) + 1 < m by A7, XXREAL_0:1;
then 1 + 2 <= m by Th4;
then 3 + 2 <= m + 2 by XREAL_1:7;
hence contradiction by A1, A3, A4, XXREAL_0:2; ::_thesis: verum
end;
then 3 + 2 <= n by A3, Th4;
then W . n = W .last() by A1, A4, XXREAL_0:1;
hence contradiction by A2, A5, A6, Def3; ::_thesis: verum
end;
Lm3: for G being _Graph
for W being Walk of G st W is chordal holds
W .reverse() is chordal
proof
let G be _Graph; ::_thesis: for W being Walk of G st W is chordal holds
W .reverse() is chordal
let W be Walk of G; ::_thesis: ( W is chordal implies W .reverse() is chordal )
set U = W .reverse() ;
assume W is chordal ; ::_thesis: W .reverse() is chordal
then consider m, n being odd Nat such that
A1: m + 2 < n and
A2: n <= len W and
A3: W . m <> W . n and
A4: ex e being set st e Joins W . m,W . n,G and
A5: for f being set st f in W .edges() holds
not f Joins W . m,W . n,G by Def10;
consider e being set such that
A6: e Joins W . m,W . n,G by A4;
set um = ((len W) - m) + 1;
set un = ((len W) - n) + 1;
m < m + 2 by XREAL_1:29;
then A7: m < n by A1, XXREAL_0:2;
then reconsider um = ((len W) - m) + 1, un = ((len W) - n) + 1 as odd Element of NAT by A2, FINSEQ_5:1, XXREAL_0:2;
reconsider um = um, un = un as odd Nat ;
A8: un + 2 < um by A1, Lm1;
1 <= n by Th2;
then n in dom W by A2, FINSEQ_3:25;
then A9: W . n = (W .reverse()) . un by GLIB_001:24;
A10: 1 <= m by Th2;
((len W) - m) + 1 <= len W by INT_1:7, XREAL_1:44;
then A11: um <= len (W .reverse()) by GLIB_001:21;
m <= len W by A2, A7, XXREAL_0:2;
then m in dom W by A10, FINSEQ_3:25;
then A12: W . m = (W .reverse()) . um by GLIB_001:24;
then A13: e Joins (W .reverse()) . un,(W .reverse()) . um,G by A6, A9, GLIB_000:14;
W .edges() = (W .reverse()) .edges() by GLIB_001:107;
then for f being set st f in (W .reverse()) .edges() holds
not f Joins (W .reverse()) . un,(W .reverse()) . um,G by A5, A12, A9, GLIB_000:14;
hence W .reverse() is chordal by A3, A8, A11, A12, A9, A13, Def10; ::_thesis: verum
end;
theorem :: CHORD:91
for G being _Graph
for W being Walk of G holds
( W is chordal iff W .reverse() is chordal )
proof
let G be _Graph; ::_thesis: for W being Walk of G holds
( W is chordal iff W .reverse() is chordal )
let W be Walk of G; ::_thesis: ( W is chordal iff W .reverse() is chordal )
thus ( W is chordal implies W .reverse() is chordal ) by Lm3; ::_thesis: ( W .reverse() is chordal implies W is chordal )
assume W .reverse() is chordal ; ::_thesis: W is chordal
then (W .reverse()) .reverse() is chordal by Lm3;
hence W is chordal ; ::_thesis: verum
end;
theorem Th92: :: CHORD:92
for G being _Graph
for P being Path of G st P is open & P is chordless holds
for m, n being odd Nat st m < n & n <= len P holds
( ex e being set st e Joins P . m,P . n,G iff m + 2 = n )
proof
let G be _Graph; ::_thesis: for P being Path of G st P is open & P is chordless holds
for m, n being odd Nat st m < n & n <= len P holds
( ex e being set st e Joins P . m,P . n,G iff m + 2 = n )
let P be Path of G; ::_thesis: ( P is open & P is chordless implies for m, n being odd Nat st m < n & n <= len P holds
( ex e being set st e Joins P . m,P . n,G iff m + 2 = n ) )
assume that
A1: P is open and
A2: P is chordless ; ::_thesis: for m, n being odd Nat st m < n & n <= len P holds
( ex e being set st e Joins P . m,P . n,G iff m + 2 = n )
A3: P is vertex-distinct by A1, Th32;
let m, n be odd Nat; ::_thesis: ( m < n & n <= len P implies ( ex e being set st e Joins P . m,P . n,G iff m + 2 = n ) )
assume that
A4: m < n and
A5: n <= len P ; ::_thesis: ( ex e being set st e Joins P . m,P . n,G iff m + 2 = n )
A6: m <= len P by A4, A5, XXREAL_0:2;
A7: m in NAT by ORDINAL1:def_12;
A8: n in NAT by ORDINAL1:def_12;
then A9: P . m <> P . n by A1, A4, A5, A7, GLIB_001:147;
hereby ::_thesis: ( m + 2 = n implies ex e being set st e Joins P . m,P . n,G )
assume A10: ex e being set st e Joins P . m,P . n,G ; ::_thesis: m + 2 = n
A11: now__::_thesis:_not_m_+_2_<_n
assume A12: m + 2 < n ; ::_thesis: contradiction
now__::_thesis:_for_f_being_set_st_f_in_P_.edges()_holds_
not_f_Joins_P_._m,P_._n,G
let f be set ; ::_thesis: ( f in P .edges() implies not f Joins P . m,P . n,G )
assume f in P .edges() ; ::_thesis: not f Joins P . m,P . n,G
then consider k being odd Element of NAT such that
A13: k < len P and
A14: P . (k + 1) = f by GLIB_001:100;
A15: f Joins P . k,P . (k + 2),G by A13, A14, GLIB_001:def_3;
A16: k + 2 <= len P by A13, Th4;
assume A17: f Joins P . m,P . n,G ; ::_thesis: contradiction
percases ( ( P . m = P . k & P . n = P . (k + 2) ) or ( P . m = P . (k + 2) & P . n = P . k ) ) by A15, A17, GLIB_000:15;
supposeA18: ( P . m = P . k & P . n = P . (k + 2) ) ; ::_thesis: contradiction
then m = k by A7, A3, A6, A13, GLIB_001:def_29;
hence contradiction by A5, A8, A3, A12, A16, A18, GLIB_001:def_29; ::_thesis: verum
end;
supposeA19: ( P . m = P . (k + 2) & P . n = P . k ) ; ::_thesis: contradiction
then A20: n = k by A5, A8, A3, A13, GLIB_001:def_29;
m = k + (2 * 1) by A7, A3, A6, A16, A19, GLIB_001:def_29;
then A21: m > n by A20, XREAL_1:29;
m + 2 > m by XREAL_1:29;
hence contradiction by A12, A21, XXREAL_0:2; ::_thesis: verum
end;
end;
end;
hence contradiction by A2, A5, A9, A10, A12, Def10; ::_thesis: verum
end;
m + 2 <= n by A4, Th4;
hence m + 2 = n by A11, XXREAL_0:1; ::_thesis: verum
end;
assume A22: m + 2 = n ; ::_thesis: ex e being set st e Joins P . m,P . n,G
take P . (m + 1) ; ::_thesis: P . (m + 1) Joins P . m,P . n,G
m < len P by A4, A5, XXREAL_0:2;
hence P . (m + 1) Joins P . m,P . n,G by A7, A22, GLIB_001:def_3; ::_thesis: verum
end;
theorem :: CHORD:93
for G being _Graph
for P being Path of G st P is open & P is chordless holds
for m, n being odd Nat st m < n & n <= len P holds
( P .cut (m,n) is chordless & P .cut (m,n) is open )
proof
let G be _Graph; ::_thesis: for P being Path of G st P is open & P is chordless holds
for m, n being odd Nat st m < n & n <= len P holds
( P .cut (m,n) is chordless & P .cut (m,n) is open )
let P be Path of G; ::_thesis: ( P is open & P is chordless implies for m, n being odd Nat st m < n & n <= len P holds
( P .cut (m,n) is chordless & P .cut (m,n) is open ) )
assume that
A1: P is open and
A2: P is chordless ; ::_thesis: for m, n being odd Nat st m < n & n <= len P holds
( P .cut (m,n) is chordless & P .cut (m,n) is open )
let m, n be odd Nat; ::_thesis: ( m < n & n <= len P implies ( P .cut (m,n) is chordless & P .cut (m,n) is open ) )
assume that
A3: m < n and
A4: n <= len P ; ::_thesis: ( P .cut (m,n) is chordless & P .cut (m,n) is open )
set Q = P .cut (m,n);
A5: n in NAT by ORDINAL1:def_12;
A6: m in NAT by ORDINAL1:def_12;
now__::_thesis:_not_P_.cut_(m,n)_is_chordal
assume P .cut (m,n) is chordal ; ::_thesis: contradiction
then consider i, j being odd Nat such that
A7: i + 2 < j and
A8: j <= len (P .cut (m,n)) and
(P .cut (m,n)) . i <> (P .cut (m,n)) . j and
A9: ex e being set st e Joins (P .cut (m,n)) . i,(P .cut (m,n)) . j,G and
for f being set st f in (P .cut (m,n)) .edges() holds
not f Joins (P .cut (m,n)) . i,(P .cut (m,n)) . j,G by Def10;
consider e being set such that
A10: e Joins (P .cut (m,n)) . i,(P .cut (m,n)) . j,G by A9;
set mi = (m + i) - 1;
set mj = (m + j) - 1;
1 <= j by Th2;
then A11: j in dom (P .cut (m,n)) by A8, FINSEQ_3:25;
then A12: (P .cut (m,n)) . j = P . ((m + j) - 1) by A3, A4, A6, A5, GLIB_001:47;
A13: (m + j) - 1 in dom P by A3, A4, A6, A5, A11, GLIB_001:47;
i + 0 < i + 2 by XREAL_1:8;
then i < j by A7, XXREAL_0:2;
then A14: i < len (P .cut (m,n)) by A8, XXREAL_0:2;
1 <= i by Th2;
then A15: i in dom (P .cut (m,n)) by A14, FINSEQ_3:25;
then A16: (m + i) - 1 in dom P by A3, A4, A6, A5, GLIB_001:47;
reconsider mj = (m + j) - 1 as odd Element of NAT by A13;
reconsider mj = mj as odd Nat ;
A17: mj <= len P by A13, FINSEQ_3:25;
reconsider mi = (m + i) - 1 as odd Element of NAT by A16;
reconsider mi = mi as odd Nat ;
(i + 2) + m < j + m by A7, XREAL_1:8;
then A18: ((m + i) + 2) - 1 < (m + j) - 1 by XREAL_1:9;
then A19: mi + 2 < mj ;
mi + 0 < mi + 2 by XREAL_1:8;
then A20: mi < mj by A18, XXREAL_0:2;
e Joins P . mi,P . mj,G by A3, A4, A6, A5, A10, A15, A12, GLIB_001:47;
hence contradiction by A1, A2, A19, A20, A17, Th92; ::_thesis: verum
end;
hence P .cut (m,n) is chordless ; ::_thesis: P .cut (m,n) is open
now__::_thesis:_not_P_.cut_(m,n)_is_closed
assume P .cut (m,n) is closed ; ::_thesis: contradiction
then A21: (P .cut (m,n)) .first() = (P .cut (m,n)) .last() by GLIB_001:def_24;
A22: P . n = (P .cut (m,n)) .last() by A3, A4, A6, A5, GLIB_001:37;
P . m = (P .cut (m,n)) .first() by A3, A4, A6, A5, GLIB_001:37;
hence contradiction by A1, A3, A4, A6, A5, A21, A22, GLIB_001:147; ::_thesis: verum
end;
hence P .cut (m,n) is open ; ::_thesis: verum
end;
theorem :: CHORD:94
for G being _Graph
for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W being Walk of G
for V being Walk of H st W = V holds
( W is chordless iff V is chordless )
proof
let G be _Graph; ::_thesis: for S being non empty Subset of (the_Vertices_of G)
for H being inducedSubgraph of G,S
for W being Walk of G
for V being Walk of H st W = V holds
( W is chordless iff V is chordless )
let S be non empty Subset of (the_Vertices_of G); ::_thesis: for H being inducedSubgraph of G,S
for W being Walk of G
for V being Walk of H st W = V holds
( W is chordless iff V is chordless )
let H be inducedSubgraph of G,S; ::_thesis: for W being Walk of G
for V being Walk of H st W = V holds
( W is chordless iff V is chordless )
let W be Walk of G; ::_thesis: for V being Walk of H st W = V holds
( W is chordless iff V is chordless )
let V be Walk of H; ::_thesis: ( W = V implies ( W is chordless iff V is chordless ) )
assume A1: W = V ; ::_thesis: ( W is chordless iff V is chordless )
hereby ::_thesis: ( V is chordless implies W is chordless )
assume A2: W is chordless ; ::_thesis: not V is chordal
assume V is chordal ; ::_thesis: contradiction
then consider m, n being odd Nat such that
A3: m + 2 < n and
A4: n <= len V and
A5: V . m <> V . n and
A6: ex e being set st e Joins V . m,V . n,H and
A7: for f being set st f in V .edges() holds
not f Joins V . m,V . n,H by Def10;
consider e being set such that
A8: e Joins V . m,V . n,H by A6;
n in NAT by ORDINAL1:def_12;
then V . n in V .vertices() by A4, GLIB_001:87;
then V . n in the_Vertices_of H ;
then A9: V . n in S by GLIB_000:def_37;
m + 0 <= m + 2 by XREAL_1:7;
then m <= n by A3, XXREAL_0:2;
then A10: m <= len V by A4, XXREAL_0:2;
m in NAT by ORDINAL1:def_12;
then V . m in V .vertices() by A10, GLIB_001:87;
then V . m in the_Vertices_of H ;
then A11: V . m in S by GLIB_000:def_37;
A12: for f being set st f in W .edges() holds
not f Joins W . m,W . n,G
proof
let f be set ; ::_thesis: ( f in W .edges() implies not f Joins W . m,W . n,G )
assume f in W .edges() ; ::_thesis: not f Joins W . m,W . n,G
then A13: f in V .edges() by A1, GLIB_001:110;
assume f Joins W . m,W . n,G ; ::_thesis: contradiction
hence contradiction by A1, A7, A9, A11, A13, Th19; ::_thesis: verum
end;
e Joins W . m,W . n,G by A1, A8, GLIB_000:72;
hence contradiction by A1, A2, A3, A4, A5, A12, Def10; ::_thesis: verum
end;
assume A14: V is chordless ; ::_thesis: W is chordless
assume W is chordal ; ::_thesis: contradiction
then consider m, n being odd Nat such that
A15: m + 2 < n and
A16: n <= len W and
A17: W . m <> W . n and
A18: ex e being set st e Joins W . m,W . n,G and
A19: for f being set st f in W .edges() holds
not f Joins W . m,W . n,G by Def10;
consider e being set such that
A20: e Joins W . m,W . n,G by A18;
A21: for f being set st f in V .edges() holds
not f Joins V . m,V . n,H
proof
let f be set ; ::_thesis: ( f in V .edges() implies not f Joins V . m,V . n,H )
assume f in V .edges() ; ::_thesis: not f Joins V . m,V . n,H
then A22: f in W .edges() by A1, GLIB_001:110;
assume f Joins V . m,V . n,H ; ::_thesis: contradiction
then f Joins W . m,W . n,G by A1, GLIB_000:72;
hence contradiction by A19, A22; ::_thesis: verum
end;
n in NAT by ORDINAL1:def_12;
then W . n in V .vertices() by A1, A16, GLIB_001:87;
then W . n in the_Vertices_of H ;
then A23: W . n in S by GLIB_000:def_37;
m + 0 <= m + 2 by XREAL_1:7;
then m <= n by A15, XXREAL_0:2;
then A24: m <= len W by A16, XXREAL_0:2;
m in NAT by ORDINAL1:def_12;
then W . m in V .vertices() by A1, A24, GLIB_001:87;
then W . m in the_Vertices_of H ;
then W . m in S by GLIB_000:def_37;
then e Joins V . m,V . n,H by A1, A20, A23, Th19;
hence contradiction by A1, A14, A15, A16, A17, A21, Def10; ::_thesis: verum
end;
definition
let G be _Graph;
attrG is chordal means :Def11: :: CHORD:def 11
for P being Walk of G st P .length() > 3 & P is Cycle-like holds
P is chordal ;
end;
:: deftheorem Def11 defines chordal CHORD:def_11_:_
for G being _Graph holds
( G is chordal iff for P being Walk of G st P .length() > 3 & P is Cycle-like holds
P is chordal );
theorem Th95: :: CHORD:95
for G1, G2 being _Graph st G1 == G2 & G1 is chordal holds
G2 is chordal
proof
let G1, G2 be _Graph; ::_thesis: ( G1 == G2 & G1 is chordal implies G2 is chordal )
assume A1: G1 == G2 ; ::_thesis: ( not G1 is chordal or G2 is chordal )
assume A2: G1 is chordal ; ::_thesis: G2 is chordal
now__::_thesis:_for_W_being_Walk_of_G2_st_W_.length()_>_3_&_W_is_Cycle-like_holds_
W_is_chordal
let W be Walk of G2; ::_thesis: ( W .length() > 3 & W is Cycle-like implies W is chordal )
assume that
A3: W .length() > 3 and
A4: W is Cycle-like ; ::_thesis: W is chordal
reconsider W2 = W as Walk of G1 by A1, GLIB_001:179;
(2 * (W2 .length())) + 1 = len W by GLIB_001:112;
then A5: (2 * (W2 .length())) + 1 = (2 * (W .length())) + 1 by GLIB_001:112;
W2 is Cycle-like by A1, A4, Th24;
then W2 is chordal by A2, A3, A5, Def11;
hence W is chordal by A1, Th86; ::_thesis: verum
end;
hence G2 is chordal by Def11; ::_thesis: verum
end;
theorem Th96: :: CHORD:96
for G being finite _Graph st card (the_Vertices_of G) <= 3 holds
G is chordal
proof
let G be finite _Graph; ::_thesis: ( card (the_Vertices_of G) <= 3 implies G is chordal )
assume A1: card (the_Vertices_of G) <= 3 ; ::_thesis: G is chordal
now__::_thesis:_for_W_being_Walk_of_G_st_W_.length()_>_3_holds_
not_W_is_Cycle-like
reconsider n4 = (2 * 3) + 1 as odd Nat ;
reconsider n3 = (2 * 2) + 1 as odd Nat ;
reconsider n2 = (2 * 1) + 1 as odd Nat ;
reconsider n1 = (2 * 0) + 1 as odd Nat ;
let W be Walk of G; ::_thesis: ( W .length() > 3 implies not W is Cycle-like )
assume that
A2: W .length() > 3 and
A3: W is Cycle-like ; ::_thesis: contradiction
set x3 = W . n3;
set x2 = W . n2;
set x4 = W . n4;
set x1 = W . n1;
W .length() >= 3 + 1 by A2, NAT_1:13;
then 2 * (W .length()) >= 2 * 4 by XREAL_1:64;
then (2 * (W .length())) + 1 >= 8 + 1 by XREAL_1:7;
then A4: len W >= 9 by GLIB_001:112;
then A5: n4 < len W by XXREAL_0:2;
then A6: W . n1 <> W . n4 by A3, GLIB_001:def_28;
n2 < len W by A4, XXREAL_0:2;
then A7: W . n1 <> W . n2 by A3, GLIB_001:def_28;
A8: n3 < len W by A4, XXREAL_0:2;
then A9: W . n2 <> W . n3 by A3, GLIB_001:def_28;
A10: W . n3 <> W . n4 by A3, A5, GLIB_001:def_28;
A11: W . n2 <> W . n4 by A3, A5, GLIB_001:def_28;
now__::_thesis:_for_x_being_set_st_x_in_{(W_._n1),(W_._n2),(W_._n3),(W_._n4)}_holds_
x_in_the_Vertices_of_G
let x be set ; ::_thesis: ( x in {(W . n1),(W . n2),(W . n3),(W . n4)} implies x in the_Vertices_of G )
assume A12: x in {(W . n1),(W . n2),(W . n3),(W . n4)} ; ::_thesis: x in the_Vertices_of G
now__::_thesis:_x_in_the_Vertices_of_G
percases ( x = W . n1 or x = W . n2 or x = W . n3 or x = W . n4 ) by A12, ENUMSET1:def_2;
suppose x = W . n1 ; ::_thesis: x in the_Vertices_of G
hence x in the_Vertices_of G by A4, GLIB_001:7, XXREAL_0:2; ::_thesis: verum
end;
suppose x = W . n2 ; ::_thesis: x in the_Vertices_of G
hence x in the_Vertices_of G by A4, GLIB_001:7, XXREAL_0:2; ::_thesis: verum
end;
suppose x = W . n3 ; ::_thesis: x in the_Vertices_of G
hence x in the_Vertices_of G by A4, GLIB_001:7, XXREAL_0:2; ::_thesis: verum
end;
suppose x = W . n4 ; ::_thesis: x in the_Vertices_of G
hence x in the_Vertices_of G by A4, GLIB_001:7, XXREAL_0:2; ::_thesis: verum
end;
end;
end;
hence x in the_Vertices_of G ; ::_thesis: verum
end;
then A13: {(W . n1),(W . n2),(W . n3),(W . n4)} c= the_Vertices_of G by TARSKI:def_3;
W . n1 <> W . n3 by A3, A8, GLIB_001:def_28;
then card {(W . n1),(W . n2),(W . n3),(W . n4)} = 4 by A7, A6, A9, A11, A10, CARD_2:59;
then 4 <= card (the_Vertices_of G) by A13, NAT_1:43;
hence contradiction by A1, XXREAL_0:2; ::_thesis: verum
end;
then for W being Walk of G st W .length() > 3 & W is Cycle-like holds
W is chordal ;
hence G is chordal by Def11; ::_thesis: verum
end;
registration
cluster Relation-like NAT -defined Function-like finite [Graph-like] finite trivial chordal for set ;
existence
ex b1 being _Graph st
( b1 is trivial & b1 is finite & b1 is chordal )
proof
set G = the finite trivial _Graph;
consider v being Vertex of the finite trivial _Graph such that
A1: the_Vertices_of the finite trivial _Graph = {v} by GLIB_000:22;
now__::_thesis:_for_W_being_Walk_of_the_finite_trivial__Graph_st_W_.length()_>_3_holds_
not_W_is_Cycle-like
reconsider j5 = (2 * 2) + 1 as odd Nat ;
reconsider j3 = (2 * 1) + 1 as odd Nat ;
let W be Walk of the finite trivial _Graph; ::_thesis: ( W .length() > 3 implies not W is Cycle-like )
assume that
A2: W .length() > 3 and
A3: W is Cycle-like ; ::_thesis: contradiction
2 * (W .length()) > 2 * 3 by A2, XREAL_1:68;
then (2 * (W .length())) + 1 > 6 + 1 by XREAL_1:8;
then A4: len W > 7 by GLIB_001:112;
then j3 <= len W by XXREAL_0:2;
then W . j3 in W .vertices() by GLIB_001:87;
then A5: W . j3 = v by A1, TARSKI:def_1;
A6: j5 <= len W by A4, XXREAL_0:2;
then W . j5 in W .vertices() by GLIB_001:87;
then W . j5 = v by A1, TARSKI:def_1;
hence contradiction by A3, A6, A5, GLIB_001:def_28; ::_thesis: verum
end;
then for W being Walk of the finite trivial _Graph st W .length() > 3 & W is Cycle-like holds
W is chordal ;
then the finite trivial _Graph is chordal by Def11;
hence ex b1 being _Graph st
( b1 is trivial & b1 is finite & b1 is chordal ) ; ::_thesis: verum
end;
cluster Relation-like NAT -defined Function-like finite [Graph-like] finite non trivial simple chordal for set ;
existence
ex b1 being _Graph st
( not b1 is trivial & b1 is finite & b1 is simple & b1 is chordal )
proof
set V = {0,1};
set E = {0};
set S = 0 .--> 0;
set T = 0 .--> 1;
A7: dom (0 .--> 1) = {0} by FUNCOP_1:13;
A8: now__::_thesis:_for_x_being_set_st_x_in_{0}_holds_
(0_.-->_1)_._x_in_{0,1}
let x be set ; ::_thesis: ( x in {0} implies (0 .--> 1) . x in {0,1} )
assume x in {0} ; ::_thesis: (0 .--> 1) . x in {0,1}
then x = 0 by TARSKI:def_1;
then (0 .--> 1) . x = 1 by FUNCOP_1:72;
hence (0 .--> 1) . x in {0,1} by TARSKI:def_2; ::_thesis: verum
end;
A9: now__::_thesis:_for_x_being_set_st_x_in_{0}_holds_
(0_.-->_0)_._x_in_{0,1}
let x be set ; ::_thesis: ( x in {0} implies (0 .--> 0) . x in {0,1} )
assume x in {0} ; ::_thesis: (0 .--> 0) . x in {0,1}
then x = 0 by TARSKI:def_1;
then (0 .--> 0) . x = 0 by FUNCOP_1:72;
hence (0 .--> 0) . x in {0,1} by TARSKI:def_2; ::_thesis: verum
end;
reconsider T = 0 .--> 1 as Function of {0},{0,1} by A7, A8, FUNCT_2:3;
dom (0 .--> 0) = {0} by FUNCOP_1:13;
then reconsider S = 0 .--> 0 as Function of {0},{0,1} by A9, FUNCT_2:3;
set G = createGraph ({0,1},{0},S,T);
take createGraph ({0,1},{0},S,T) ; ::_thesis: ( not createGraph ({0,1},{0},S,T) is trivial & createGraph ({0,1},{0},S,T) is finite & createGraph ({0,1},{0},S,T) is simple & createGraph ({0,1},{0},S,T) is chordal )
the_Source_of (createGraph ({0,1},{0},S,T)) = S by GLIB_000:6;
then A10: (the_Source_of (createGraph ({0,1},{0},S,T))) . 0 = 0 by FUNCOP_1:72;
A11: the_Vertices_of (createGraph ({0,1},{0},S,T)) = {0,1} by GLIB_000:6;
now__::_thesis:_not_card_(the_Vertices_of_(createGraph_({0,1},{0},S,T)))_=_1
assume card (the_Vertices_of (createGraph ({0,1},{0},S,T))) = 1 ; ::_thesis: contradiction
then ex x being set st the_Vertices_of (createGraph ({0,1},{0},S,T)) = {x} by CARD_2:42;
hence contradiction by A11, ZFMISC_1:5; ::_thesis: verum
end;
hence ( not createGraph ({0,1},{0},S,T) is trivial & createGraph ({0,1},{0},S,T) is finite ) by GLIB_000:def_19; ::_thesis: ( createGraph ({0,1},{0},S,T) is simple & createGraph ({0,1},{0},S,T) is chordal )
the_Target_of (createGraph ({0,1},{0},S,T)) = T by GLIB_000:6;
then A12: (the_Target_of (createGraph ({0,1},{0},S,T))) . 0 = 1 by FUNCOP_1:72;
A13: the_Edges_of (createGraph ({0,1},{0},S,T)) = {0} by GLIB_000:6;
then 0 in the_Edges_of (createGraph ({0,1},{0},S,T)) by TARSKI:def_1;
then A14: 0 Joins 0 ,1, createGraph ({0,1},{0},S,T) by A10, A12, GLIB_000:def_13;
now__::_thesis:_for_v,_e_being_set_holds_not_e_Joins_v,v,_createGraph_({0,1},{0},S,T)
let v, e be set ; ::_thesis: not e Joins v,v, createGraph ({0,1},{0},S,T)
assume A15: e Joins v,v, createGraph ({0,1},{0},S,T) ; ::_thesis: contradiction
reconsider v = v as Vertex of (createGraph ({0,1},{0},S,T)) by A15, GLIB_000:13;
e in the_Edges_of (createGraph ({0,1},{0},S,T)) by A15, GLIB_000:def_13;
then e Joins 0 ,1, createGraph ({0,1},{0},S,T) by A13, A14, TARSKI:def_1;
then ( ( 0 = v & 1 = v ) or ( 0 = v & 1 = v ) ) by A15, GLIB_000:15;
hence contradiction ; ::_thesis: verum
end;
then A16: createGraph ({0,1},{0},S,T) is loopless by GLIB_000:18;
now__::_thesis:_for_e1,_e2,_v1,_v2_being_set_st_e1_Joins_v1,v2,_createGraph_({0,1},{0},S,T)_&_e2_Joins_v1,v2,_createGraph_({0,1},{0},S,T)_holds_
not_e1_<>_e2
let e1, e2, v1, v2 be set ; ::_thesis: ( e1 Joins v1,v2, createGraph ({0,1},{0},S,T) & e2 Joins v1,v2, createGraph ({0,1},{0},S,T) implies not e1 <> e2 )
assume that
A17: e1 Joins v1,v2, createGraph ({0,1},{0},S,T) and
A18: e2 Joins v1,v2, createGraph ({0,1},{0},S,T) ; ::_thesis: not e1 <> e2
e1 in {0} by A13, A17, GLIB_000:def_13;
then A19: e1 = 0 by TARSKI:def_1;
assume A20: e1 <> e2 ; ::_thesis: contradiction
e2 in {0} by A13, A18, GLIB_000:def_13;
hence contradiction by A20, A19, TARSKI:def_1; ::_thesis: verum
end;
then createGraph ({0,1},{0},S,T) is non-multi by GLIB_000:def_20;
hence createGraph ({0,1},{0},S,T) is simple by A16; ::_thesis: createGraph ({0,1},{0},S,T) is chordal
card (the_Vertices_of (createGraph ({0,1},{0},S,T))) = 2 by A11, CARD_2:57;
hence createGraph ({0,1},{0},S,T) is chordal by Th96; ::_thesis: verum
end;
cluster Relation-like NAT -defined Function-like finite [Graph-like] complete -> chordal for set ;
correctness
coherence
for b1 being _Graph st b1 is complete holds
b1 is chordal ;
proof
let G be _Graph; ::_thesis: ( G is complete implies G is chordal )
assume A21: G is complete ; ::_thesis: G is chordal
now__::_thesis:_for_W_being_Walk_of_G_st_W_.length()_>_3_&_W_is_Cycle-like_holds_
W_is_chordal
reconsider t7 = (2 * 3) + 1 as odd Nat ;
reconsider t3 = (2 * 1) + 1 as odd Nat ;
let W be Walk of G; ::_thesis: ( W .length() > 3 & W is Cycle-like implies W is chordal )
assume that
A22: W .length() > 3 and
A23: W is Cycle-like ; ::_thesis: W is chordal
W .length() >= 3 + 1 by A22, NAT_1:13;
then 2 * (W .length()) >= 2 * 4 by XREAL_1:64;
then (2 * (W .length())) + 1 >= 8 + 1 by XREAL_1:7;
then A24: len W >= 9 by GLIB_001:112;
then reconsider W3 = W . t3 as Vertex of G by GLIB_001:7, XXREAL_0:2;
A25: ( not t3 = 3 or not t7 = len W ) by A24;
reconsider W7 = W . t7 as Vertex of G by A24, GLIB_001:7, XXREAL_0:2;
t7 <= len W by A24, XXREAL_0:2;
then W3 <> W7 by A23, GLIB_001:def_28;
then W3,W7 are_adjacent by A21, Def6;
then A26: ex e being set st e Joins W3,W7,G by Def3;
A27: t3 + 2 < t7 ;
t7 <= len W by A24, XXREAL_0:2;
hence W is chordal by A23, A26, A27, A25, Th85; ::_thesis: verum
end;
hence G is chordal by Def11; ::_thesis: verum
end;
end;
registration
let G be chordal _Graph;
let V be set ;
cluster -> chordal for inducedSubgraph of G,V,G .edgesBetween V;
coherence
for b1 being inducedSubgraph of G,V holds b1 is chordal
proof
let H be inducedSubgraph of G,V; ::_thesis: H is chordal
now__::_thesis:_H_is_chordal
percases ( not V is non empty Subset of (the_Vertices_of G) or V is non empty Subset of (the_Vertices_of G) ) ;
suppose V is not non empty Subset of (the_Vertices_of G) ; ::_thesis: H is chordal
then H == G by GLIB_000:def_37;
hence H is chordal by Th95; ::_thesis: verum
end;
suppose V is non empty Subset of (the_Vertices_of G) ; ::_thesis: H is chordal
then A1: V = the_Vertices_of H by GLIB_000:def_37;
now__::_thesis:_for_W_being_Walk_of_H_st_W_.length()_>_3_&_W_is_Cycle-like_holds_
W_is_chordal
let W be Walk of H; ::_thesis: ( W .length() > 3 & W is Cycle-like implies W is chordal )
assume that
A2: W .length() > 3 and
A3: W is Cycle-like ; ::_thesis: W is chordal
reconsider P = W as Walk of G by GLIB_001:167;
reconsider P = P as Path of G by A3, GLIB_001:175;
A4: not P is trivial by A3, GLIB_001:176;
A5: P .length() > 3 by A2, GLIB_001:114;
A6: P is closed by A3, GLIB_001:176;
then P is Cycle-like by A4, GLIB_001:def_31;
then P is chordal by A5, Def11;
then consider m, n being odd Nat such that
A7: m + 2 < n and
A8: n <= len P and
P . m <> P . n and
A9: ex e being set st e Joins P . m,P . n,G and
A10: ( P is Cycle-like implies ( ( not m = 1 or not n = len P ) & ( not m = 1 or not n = (len P) - 2 ) & ( not m = 3 or not n = len P ) ) ) by Th84;
consider e being set such that
A11: e Joins P . m,P . n,G by A9;
m + 0 <= m + 2 by XREAL_1:7;
then A12: m <= n by A7, XXREAL_0:2;
n in NAT by ORDINAL1:def_12;
then A13: P . n in the_Vertices_of H by A8, GLIB_001:7;
m in NAT by ORDINAL1:def_12;
then P . m in the_Vertices_of H by A8, A12, GLIB_001:7, XXREAL_0:2;
then e Joins P . m,W . n,H by A1, A11, A13, Th19;
hence W is chordal by A3, A6, A4, A7, A8, A10, Th85, GLIB_001:def_31; ::_thesis: verum
end;
hence H is chordal by Def11; ::_thesis: verum
end;
end;
end;
hence H is chordal ; ::_thesis: verum
end;
end;
theorem :: CHORD:97
for G being chordal _Graph
for P being Path of G st P is open & P is chordless holds
for x, e being set st not x in P .vertices() & e Joins P .last() ,x,G & ( for f being set holds not f Joins P . ((len P) - 2),x,G ) holds
( P .addEdge e is Path-like & P .addEdge e is open & P .addEdge e is chordless )
proof
let G be chordal _Graph; ::_thesis: for P being Path of G st P is open & P is chordless holds
for x, e being set st not x in P .vertices() & e Joins P .last() ,x,G & ( for f being set holds not f Joins P . ((len P) - 2),x,G ) holds
( P .addEdge e is Path-like & P .addEdge e is open & P .addEdge e is chordless )
let P be Path of G; ::_thesis: ( P is open & P is chordless implies for x, e being set st not x in P .vertices() & e Joins P .last() ,x,G & ( for f being set holds not f Joins P . ((len P) - 2),x,G ) holds
( P .addEdge e is Path-like & P .addEdge e is open & P .addEdge e is chordless ) )
assume that
A1: P is open and
A2: P is chordless ; ::_thesis: for x, e being set st not x in P .vertices() & e Joins P .last() ,x,G & ( for f being set holds not f Joins P . ((len P) - 2),x,G ) holds
( P .addEdge e is Path-like & P .addEdge e is open & P .addEdge e is chordless )
let x, e be set ; ::_thesis: ( not x in P .vertices() & e Joins P .last() ,x,G & ( for f being set holds not f Joins P . ((len P) - 2),x,G ) implies ( P .addEdge e is Path-like & P .addEdge e is open & P .addEdge e is chordless ) )
assume that
A3: not x in P .vertices() and
A4: e Joins P .last() ,x,G and
A5: for f being set holds not f Joins P . ((len P) - 2),x,G ; ::_thesis: ( P .addEdge e is Path-like & P .addEdge e is open & P .addEdge e is chordless )
reconsider Q = P .addEdge e as Path of G by A1, A3, A4, GLIB_001:151;
A6: len Q = (len P) + 2 by A4, GLIB_001:64;
defpred S1[ Nat] means ( 4 <= 2 * $1 & 2 * $1 <= (len P) + 1 implies for j being odd Nat st j + (2 * $1) = (len P) + 2 holds
for e being set holds not e Joins Q . j,x,G );
A7: now__::_thesis:_for_n_being_odd_Nat_st_n_<=_len_P_holds_
P_._n_=_Q_._n
let n be odd Nat; ::_thesis: ( n <= len P implies P . n = Q . n )
assume A8: n <= len P ; ::_thesis: P . n = Q . n
1 <= n by Th2;
then n in dom P by A8, FINSEQ_3:25;
hence P . n = Q . n by A4, GLIB_001:65; ::_thesis: verum
end;
A9: Q .last() = x by A4, GLIB_001:63;
for k being Nat st ( for a being Nat st a < k holds
S1[a] ) holds
S1[k]
proof
let k be Nat; ::_thesis: ( ( for a being Nat st a < k holds
S1[a] ) implies S1[k] )
assume A10: for a being Nat st a < k holds
S1[a] ; ::_thesis: S1[k]
assume that
A11: 4 <= 2 * k and
2 * k <= (len P) + 1 ; ::_thesis: for j being odd Nat st j + (2 * k) = (len P) + 2 holds
for e being set holds not e Joins Q . j,x,G
let j be odd Nat; ::_thesis: ( j + (2 * k) = (len P) + 2 implies for e being set holds not e Joins Q . j,x,G )
assume A12: j + (2 * k) = (len P) + 2 ; ::_thesis: for e being set holds not e Joins Q . j,x,G
j + 4 <= j + (2 * k) by A11, XREAL_1:7;
then A13: (j + 4) - 4 <= ((len P) + 2) - 4 by A12, XREAL_1:9;
A14: (len P) - 2 <= len P by XREAL_1:43;
then A15: j <= len P by A13, XXREAL_0:2;
A16: j in NAT by ORDINAL1:def_12;
let e be set ; ::_thesis: not e Joins Q . j,x,G
assume A17: e Joins Q . j,x,G ; ::_thesis: contradiction
percases ( j = (len P) - 2 or j < (len P) - (2 * 1) ) by A13, XXREAL_0:1;
suppose j = (len P) - 2 ; ::_thesis: contradiction
then Q . j = P . ((len P) - 2) by A7, XREAL_1:43;
hence contradiction by A5, A17; ::_thesis: verum
end;
supposeA18: j < (len P) - (2 * 1) ; ::_thesis: contradiction
reconsider lP2 = (len P) + 2 as odd Element of NAT ;
reconsider jj = j as odd Element of NAT by ORDINAL1:def_12;
set B = Q .cut (jj,lP2);
len P < (len P) + 2 by XREAL_1:29;
then A19: j <= (len P) + 2 by A15, XXREAL_0:2;
then A20: (Q .cut (jj,lP2)) .last() = x by A9, A6, GLIB_001:37;
A21: (len (Q .cut (jj,lP2))) + j = ((len P) + 2) + 1 by A6, A19, GLIB_001:36;
A22: now__::_thesis:_for_i_being_even_Nat_st_i_<_(len_(Q_.cut_(jj,lP2)))_-_1_holds_
(_(Q_.cut_(jj,lP2))_._(i_+_1)_=_P_._(j_+_i)_&_j_+_i_in_dom_P_)
let i be even Nat; ::_thesis: ( i < (len (Q .cut (jj,lP2))) - 1 implies ( (Q .cut (jj,lP2)) . (i + 1) = P . (j + i) & j + i in dom P ) )
assume A23: i < (len (Q .cut (jj,lP2))) - 1 ; ::_thesis: ( (Q .cut (jj,lP2)) . (i + 1) = P . (j + i) & j + i in dom P )
j + i < ((len (Q .cut (jj,lP2))) - 1) + j by A23, XREAL_1:8;
then A24: j + i <= ((len P) + 2) - 2 by A21, Th3;
(len (Q .cut (jj,lP2))) - 1 < len (Q .cut (jj,lP2)) by XREAL_1:44;
then A25: i < len (Q .cut (jj,lP2)) by A23, XXREAL_0:2;
A26: i in NAT by ORDINAL1:def_12;
then j + i in dom Q by A6, A19, A25, GLIB_001:36;
then A27: 1 <= j + i by FINSEQ_3:25;
(Q .cut (jj,lP2)) . (i + 1) = Q . (j + i) by A6, A19, A26, A25, GLIB_001:36;
hence ( (Q .cut (jj,lP2)) . (i + 1) = P . (j + i) & j + i in dom P ) by A7, A27, A24, FINSEQ_3:25; ::_thesis: verum
end;
set C = (Q .cut (jj,lP2)) .addEdge e;
A28: (Q .cut (jj,lP2)) .first() = Q . j by A6, A19, GLIB_001:37;
A29: (Q .cut (jj,lP2)) .first() = Q . j by A6, A19, GLIB_001:37;
then A30: e Joins (Q .cut (jj,lP2)) .last() ,(Q .cut (jj,lP2)) .first() ,G by A17, A20, GLIB_000:14;
A31: now__::_thesis:_for_n_being_odd_Nat_st_n_<=_len_(Q_.cut_(jj,lP2))_holds_
((Q_.cut_(jj,lP2))_.addEdge_e)_._n_=_(Q_.cut_(jj,lP2))_._n
let n be odd Nat; ::_thesis: ( n <= len (Q .cut (jj,lP2)) implies ((Q .cut (jj,lP2)) .addEdge e) . n = (Q .cut (jj,lP2)) . n )
assume A32: n <= len (Q .cut (jj,lP2)) ; ::_thesis: ((Q .cut (jj,lP2)) .addEdge e) . n = (Q .cut (jj,lP2)) . n
1 <= n by Th2;
then n in dom (Q .cut (jj,lP2)) by A32, FINSEQ_3:25;
hence ((Q .cut (jj,lP2)) .addEdge e) . n = (Q .cut (jj,lP2)) . n by A30, GLIB_001:65; ::_thesis: verum
end;
A33: ((len P) + 3) - ((len P) - 2) < ((len P) + 3) - j by A18, XREAL_1:15;
then A34: 3 < len (Q .cut (jj,lP2)) by A21, XXREAL_0:2;
(len (Q .cut (jj,lP2))) + 2 > 5 + 2 by A21, A33, XREAL_1:8;
then A35: len ((Q .cut (jj,lP2)) .addEdge e) > 7 by A17, A20, GLIB_000:14, GLIB_001:64;
A36: now__::_thesis:_not_((Q_.cut_(jj,lP2))_.addEdge_e)_.length()_<=_3
assume ((Q .cut (jj,lP2)) .addEdge e) .length() <= 3 ; ::_thesis: contradiction
then 2 * (((Q .cut (jj,lP2)) .addEdge e) .length()) <= 2 * 3 by XREAL_1:64;
then (2 * (((Q .cut (jj,lP2)) .addEdge e) .length())) + 1 <= (2 * 3) + 1 by XREAL_1:6;
hence contradiction by A35, GLIB_001:112; ::_thesis: verum
end;
P .vertexAt j = P . j by A15, GLIB_001:def_8;
then P . j in P .vertices() by A16, A13, A14, GLIB_001:89, XXREAL_0:2;
then (Q .cut (jj,lP2)) .first() in P .vertices() by A7, A13, A14, A28, XXREAL_0:2;
then A37: Q .cut (jj,lP2) is open by A3, A20, GLIB_001:def_24;
then (Q .cut (jj,lP2)) .addEdge e is Cycle-like by A17, A34, A29, A20, Th33, GLIB_000:14;
then (Q .cut (jj,lP2)) .addEdge e is chordal by A36, Def11;
then consider m, n being odd Nat such that
A38: m + 2 < n and
A39: n <= len ((Q .cut (jj,lP2)) .addEdge e) and
A40: ((Q .cut (jj,lP2)) .addEdge e) . m <> ((Q .cut (jj,lP2)) .addEdge e) . n and
A41: ex e being set st e Joins ((Q .cut (jj,lP2)) .addEdge e) . m,((Q .cut (jj,lP2)) .addEdge e) . n,G and
A42: ( (Q .cut (jj,lP2)) .addEdge e is Cycle-like implies ( ( not m = 1 or not n = len ((Q .cut (jj,lP2)) .addEdge e) ) & ( not m = 1 or not n = (len ((Q .cut (jj,lP2)) .addEdge e)) - 2 ) & ( not m = 3 or not n = len ((Q .cut (jj,lP2)) .addEdge e) ) ) ) by Th84;
consider e being set such that
A43: e Joins ((Q .cut (jj,lP2)) .addEdge e) . m,((Q .cut (jj,lP2)) .addEdge e) . n,G by A41;
1 <= m by Th2;
then 1 - 1 <= m - 1 by XREAL_1:9;
then reconsider m1 = m - 1 as even Element of NAT by INT_1:3;
reconsider m1 = m1 as even Nat ;
A44: len ((Q .cut (jj,lP2)) .addEdge e) = (len (Q .cut (jj,lP2))) + 2 by A17, A20, GLIB_000:14, GLIB_001:64;
then m + 2 < (len (Q .cut (jj,lP2))) + 2 by A38, A39, XXREAL_0:2;
then A45: (m + 2) - 2 < ((len (Q .cut (jj,lP2))) + 2) - 2 by XREAL_1:9;
then A46: m1 < (len (Q .cut (jj,lP2))) - 1 by XREAL_1:9;
then A47: (Q .cut (jj,lP2)) . (m1 + 1) = P . (j + m1) by A22;
A48: j + m1 in dom P by A22, A46;
then A49: j + m1 <= len P by FINSEQ_3:25;
A50: ((Q .cut (jj,lP2)) .addEdge e) .last() = Q . j by A28, A30, GLIB_001:63;
now__::_thesis:_not_n_=_len_((Q_.cut_(jj,lP2))_.addEdge_e)
assume A51: n = len ((Q .cut (jj,lP2)) .addEdge e) ; ::_thesis: contradiction
then e Joins P . (j + m1),Q . j,G by A31, A50, A43, A45, A47;
then e Joins P . (j + m1),P . j,G by A7, A13, A14, XXREAL_0:2;
then A52: e Joins P . j,P . (j + m1),G by GLIB_000:14;
now__::_thesis:_not_m_<=_3
assume m <= 3 ; ::_thesis: contradiction
then m <= 4 by XXREAL_0:2;
hence contradiction by A17, A34, A29, A20, A37, A42, A51, Th7, Th33, GLIB_000:14; ::_thesis: verum
end;
then A53: (2 + 1) - 1 < m - 1 by XREAL_1:9;
then A54: j < j + m1 by XREAL_1:29;
j + 2 < j + m1 by A53, XREAL_1:8;
hence contradiction by A1, A2, A49, A52, A54, Th92; ::_thesis: verum
end;
then n < (len (Q .cut (jj,lP2))) + (2 * 1) by A44, A39, XXREAL_0:1;
then A55: n <= ((len (Q .cut (jj,lP2))) + 2) - 2 by Th3;
then A56: ((Q .cut (jj,lP2)) .addEdge e) . n = (Q .cut (jj,lP2)) . n by A31;
1 <= n by Th2;
then 1 - 1 <= n - 1 by XREAL_1:9;
then reconsider n1 = n - 1 as even Element of NAT by INT_1:3;
reconsider n1 = n1 as even Nat ;
(m + 2) - 1 < n - 1 by A38, XREAL_1:9;
then j + (m1 + 2) < j + n1 by XREAL_1:8;
then A57: (j + m1) + 2 < j + n1 ;
now__::_thesis:_not_n_=_len_(Q_.cut_(jj,lP2))
((Q .cut (jj,lP2)) .addEdge e) . m = (Q .cut (jj,lP2)) . m by A31, A45;
then A58: ((Q .cut (jj,lP2)) .addEdge e) . m = Q . (j + m1) by A7, A47, A49;
A59: len P < (len P) + 2 by XREAL_1:29;
j + m1 <= len P by A48, FINSEQ_3:25;
then consider kk being Nat such that
A60: (j + m1) + (2 * kk) = (len P) + 2 by A59, Lm2, XXREAL_0:2;
assume A61: n = len (Q .cut (jj,lP2)) ; ::_thesis: contradiction
A62: now__::_thesis:_not_2_*_kk_<_3_+_1
assume 2 * kk < 3 + 1 ; ::_thesis: contradiction
then 2 * kk <= 3 by NAT_1:13;
then ( 2 * kk = 0 or 2 * kk = 2 ) by Th11;
hence contradiction by A21, A38, A40, A61, A60; ::_thesis: verum
end;
1 <= m by Th2;
then 1 < m by A34, A37, A30, A44, A42, A61, Th33, XXREAL_0:1;
then A63: 1 - 1 < m - 1 by XREAL_1:9;
A64: now__::_thesis:_not_2_*_kk_>_(len_P)_+_1
assume 2 * kk > (len P) + 1 ; ::_thesis: contradiction
then 2 * kk >= ((len P) + 1) + 1 by NAT_1:13;
hence contradiction by A60, XREAL_1:29; ::_thesis: verum
end;
A65: now__::_thesis:_not_kk_>=_k
assume kk >= k ; ::_thesis: contradiction
then A66: 2 * kk >= 2 * k by XREAL_1:64;
(j + (2 * kk)) + m1 > j + (2 * kk) by A63, XREAL_1:29;
hence contradiction by A12, A60, A66, XREAL_1:7; ::_thesis: verum
end;
((Q .cut (jj,lP2)) .addEdge e) . n = x by A20, A31, A61;
hence contradiction by A10, A43, A60, A62, A64, A65, A58; ::_thesis: verum
end;
then n < len (Q .cut (jj,lP2)) by A55, XXREAL_0:1;
then A67: n1 < (len (Q .cut (jj,lP2))) - 1 by XREAL_1:9;
then j + n1 in dom P by A22;
then A68: j + n1 <= len P by FINSEQ_3:25;
m < m + 2 by XREAL_1:29;
then m < n by A38, XXREAL_0:2;
then m1 < n1 by XREAL_1:9;
then A69: j + m1 < j + n1 by XREAL_1:8;
A70: ((Q .cut (jj,lP2)) .addEdge e) . m = (Q .cut (jj,lP2)) . m by A31, A45;
(Q .cut (jj,lP2)) . (n1 + 1) = P . (j + n1) by A22, A67;
hence contradiction by A1, A2, A43, A47, A68, A70, A56, A69, A57, Th92; ::_thesis: verum
end;
end;
end;
then A71: for k being Nat st ( for a being Nat st a < k holds
S1[a] ) holds
S1[k] ;
A72: for k being Nat holds S1[k] from NAT_1:sch_4(A71);
A73: now__::_thesis:_for_n_being_odd_Nat_st_n_<=_(len_P)_-_2_holds_
for_e_being_set_holds_not_e_Joins_Q_._n,x,G
let n be odd Nat; ::_thesis: ( n <= (len P) - 2 implies for e being set holds not e Joins Q . n,x,G )
assume A74: n <= (len P) - 2 ; ::_thesis: for e being set holds not e Joins Q . n,x,G
(len P) - 2 <= ((len P) - 2) + 4 by XREAL_1:31;
then consider k being Nat such that
A75: n + (2 * k) = (len P) + 2 by A74, Lm2, XXREAL_0:2;
A76: now__::_thesis:_not_2_*_k_>_(len_P)_+_1
assume 2 * k > (len P) + 1 ; ::_thesis: contradiction
then n + (2 * k) > 1 + ((len P) + 1) by Th2, XREAL_1:8;
hence contradiction by A75; ::_thesis: verum
end;
now__::_thesis:_not_2_*_k_<_4
assume A77: 2 * k < 4 ; ::_thesis: contradiction
n + 4 <= ((len P) - 2) + 4 by A74, XREAL_1:7;
hence contradiction by A75, A77, XREAL_1:8; ::_thesis: verum
end;
hence for e being set holds not e Joins Q . n,x,G by A72, A75, A76; ::_thesis: verum
end;
A78: now__::_thesis:_not_Q_is_chordal
assume Q is chordal ; ::_thesis: contradiction
then consider m, n being odd Nat such that
A79: m + 2 < n and
A80: n <= len Q and
Q . m <> Q . n and
A81: ex e being set st e Joins Q . m,Q . n,G and
( Q is Cycle-like implies ( ( not m = 1 or not n = len Q ) & ( not m = 1 or not n = (len Q) - 2 ) & ( not m = 3 or not n = len Q ) ) ) by Th84;
m + 2 < (len P) + 2 by A6, A79, A80, XXREAL_0:2;
then A82: (m + 2) - 2 < ((len P) + 2) - 2 by XREAL_1:9;
m < m + 2 by XREAL_1:29;
then A83: m < n by A79, XXREAL_0:2;
percases ( n = len Q or n < len Q ) by A80, XXREAL_0:1;
supposeA84: n = len Q ; ::_thesis: contradiction
then (m + 2) - 2 < ((len P) + 2) - 2 by A6, A79, XREAL_1:9;
hence contradiction by A9, A73, A81, A84, Th3; ::_thesis: verum
end;
supposeA85: n < len Q ; ::_thesis: contradiction
A86: Q . m = P . m by A7, A82;
A87: n <= ((len P) + 2) - 2 by A6, A85, Th3;
then Q . n = P . n by A7;
hence contradiction by A1, A2, A79, A81, A83, A87, A86, Th92; ::_thesis: verum
end;
end;
end;
Q .first() = P .first() by A4, GLIB_001:63;
then Q .first() in P .vertices() by GLIB_001:88;
hence ( P .addEdge e is Path-like & P .addEdge e is open & P .addEdge e is chordless ) by A3, A9, A78, GLIB_001:def_24; ::_thesis: verum
end;
theorem Th98: :: CHORD:98
for G being chordal _Graph
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 & not S is empty holds
for H being inducedSubgraph of G,S holds H is complete
proof
let G be 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 & not S is empty holds
for H being inducedSubgraph of G,S holds H is complete
set tVG = the_Vertices_of G;
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 & not S is empty holds
for H being inducedSubgraph of G,S holds H is complete )
assume that
A1: a <> b and
A2: not a,b are_adjacent ; ::_thesis: for S being VertexSeparator of a,b st S is minimal & not S is empty holds
for H being inducedSubgraph of G,S holds H is complete
let S be VertexSeparator of a,b; ::_thesis: ( S is minimal & not S is empty implies for H being inducedSubgraph of G,S holds H is complete )
assume that
A3: S is minimal and
A4: not S is empty ; ::_thesis: for H being inducedSubgraph of G,S holds H is complete
set Gns = the removeVertices of G,S;
reconsider sa = a, sb = b as Vertex of the removeVertices of G,S by A1, A2, Th77;
set A = the removeVertices of G,S .reachableFrom sa;
set B = the removeVertices of G,S .reachableFrom sb;
A5: ( the removeVertices of G,S .reachableFrom sa) /\ ( the removeVertices of G,S .reachableFrom sb) = {} by A1, A2, Th76;
set Gb = the inducedSubgraph of the removeVertices of G,S,( the removeVertices of G,S .reachableFrom sb);
set Ga = the inducedSubgraph of the removeVertices of G,S,( the removeVertices of G,S .reachableFrom sa);
A6: the_Vertices_of the inducedSubgraph of the removeVertices of G,S,( the removeVertices of G,S .reachableFrom sa) = the removeVertices of G,S .reachableFrom sa by GLIB_000:def_37;
A7: the_Vertices_of the inducedSubgraph of the removeVertices of G,S,( the removeVertices of G,S .reachableFrom sb) = the removeVertices of G,S .reachableFrom sb by GLIB_000:def_37;
A8: ( the removeVertices of G,S .reachableFrom sb) /\ S = {} by A1, A2, Th75;
A9: ( the removeVertices of G,S .reachableFrom sa) /\ S = {} by A1, A2, Th75;
the_Vertices_of the removeVertices of G,S c= the_Vertices_of G ;
then reconsider A = the removeVertices of G,S .reachableFrom sa, B = the removeVertices of G,S .reachableFrom sb as non empty Subset of (the_Vertices_of G) by XBOOLE_1:1;
let Gs be inducedSubgraph of G,S; ::_thesis: Gs is complete
let x, y be Vertex of Gs; :: according to CHORD:def_6 ::_thesis: ( x <> y implies x,y are_adjacent )
assume that
A10: x <> y and
A11: not x,y are_adjacent ; ::_thesis: contradiction
reconsider xg = x, yg = y as Vertex of G by GLIB_000:42;
A12: S = the_Vertices_of Gs by A4, GLIB_000:def_37;
then A13: ex xag being Vertex of G st
( xag in A & xg,xag are_adjacent ) by A1, A2, A3, Th82;
set Bx = B \/ {xg};
set Ax = A \/ {xg};
set Gbx = the inducedSubgraph of G,(B \/ {xg});
set Gax = the inducedSubgraph of G,(A \/ {xg});
set xy = {xg,yg};
A14: the_Vertices_of the inducedSubgraph of G,(B \/ {xg}) = B \/ {xg} by GLIB_000:def_37;
now__::_thesis:_for_x_being_set_st_x_in_A_holds_
x_in_(the_Vertices_of_G)_\_S
let x be set ; ::_thesis: ( x in A implies x in (the_Vertices_of G) \ S )
assume A15: x in A ; ::_thesis: x in (the_Vertices_of G) \ S
not x in S by A9, A15, XBOOLE_0:def_4;
hence x in (the_Vertices_of G) \ S by A15, XBOOLE_0:def_5; ::_thesis: verum
end;
then A16: A c= (the_Vertices_of G) \ S by TARSKI:def_3;
consider yag being Vertex of G such that
A17: yag in A and
A18: yg,yag are_adjacent by A1, A2, A3, A12, Th82;
A19: yag in A \/ {xg} by A17, XBOOLE_0:def_3;
set Gb1 = the inducedSubgraph of G,((B \/ {x}) \/ {y});
set Ga1 = the inducedSubgraph of G,((A \/ {x}) \/ {y});
A20: the_Vertices_of the inducedSubgraph of G,(A \/ {xg}) = A \/ {xg} by GLIB_000:def_37;
not a in S by A1, A2, Def8;
then A21: (the_Vertices_of G) \ S is non empty Subset of (the_Vertices_of G) by XBOOLE_0:def_5;
then reconsider Ga = the inducedSubgraph of the removeVertices of G,S,( the removeVertices of G,S .reachableFrom sa) as inducedSubgraph of G,A by A16, Th29;
A22: not y in {x} by A10, TARSKI:def_1;
now__::_thesis:_for_x_being_set_st_x_in_B_holds_
x_in_(the_Vertices_of_G)_\_S
let x be set ; ::_thesis: ( x in B implies x in (the_Vertices_of G) \ S )
assume A23: x in B ; ::_thesis: x in (the_Vertices_of G) \ S
not x in S by A8, A23, XBOOLE_0:def_4;
hence x in (the_Vertices_of G) \ S by A23, XBOOLE_0:def_5; ::_thesis: verum
end;
then A24: B c= (the_Vertices_of G) \ S by TARSKI:def_3;
then reconsider Gb = the inducedSubgraph of the removeVertices of G,S,( the removeVertices of G,S .reachableFrom sb) as inducedSubgraph of G,B by A21, Th29;
y in {xg,yg} by TARSKI:def_2;
then A25: y in A \/ {xg,yg} by XBOOLE_0:def_3;
A26: ex xbg being Vertex of G st
( xbg in B & xg,xbg are_adjacent ) by A1, A2, A3, A12, Th83;
not x in B by A24, A12, XBOOLE_0:def_5;
then x in G .AdjacentSet (the_Vertices_of Gb) by A7, A26;
then A27: the inducedSubgraph of G,(B \/ {xg}) is connected by Th57;
y in {xg,yg} by TARSKI:def_2;
then A28: y in B \/ {xg,yg} by XBOOLE_0:def_3;
consider ybg being Vertex of G such that
A29: ybg in B and
A30: yg,ybg are_adjacent by A1, A2, A3, A12, Th83;
A31: (B \/ {x}) \/ {y} = B \/ ({x} \/ {y}) by XBOOLE_1:4
.= B \/ {xg,yg} by ENUMSET1:1 ;
then A32: the_Vertices_of the inducedSubgraph of G,((B \/ {x}) \/ {y}) c= B \/ {xg,yg} by GLIB_000:def_37;
x in {xg,yg} by TARSKI:def_2;
then x in B \/ {xg,yg} by XBOOLE_0:def_3;
then reconsider xb = x, yb = y as Vertex of the inducedSubgraph of G,((B \/ {x}) \/ {y}) by A31, A28, GLIB_000:def_37;
A33: ybg in B \/ {xg} by A29, XBOOLE_0:def_3;
not y in B by A24, A12, XBOOLE_0:def_5;
then not yg in the_Vertices_of the inducedSubgraph of G,(B \/ {xg}) by A14, A22, XBOOLE_0:def_3;
then y in G .AdjacentSet (the_Vertices_of the inducedSubgraph of G,(B \/ {xg})) by A14, A30, A33;
then the inducedSubgraph of G,((B \/ {x}) \/ {y}) is connected by A27, Th57;
then consider Wb being Walk of the inducedSubgraph of G,((B \/ {x}) \/ {y}) such that
A34: Wb is_Walk_from yb,xb by GLIB_002:def_1;
not x in A by A16, A12, XBOOLE_0:def_5;
then x in G .AdjacentSet (the_Vertices_of Ga) by A6, A13;
then A35: the inducedSubgraph of G,(A \/ {xg}) is connected by Th57;
A36: (A \/ {x}) \/ {y} = A \/ ({x} \/ {y}) by XBOOLE_1:4
.= A \/ {xg,yg} by ENUMSET1:1 ;
then A37: the_Vertices_of the inducedSubgraph of G,((A \/ {x}) \/ {y}) c= A \/ {xg,yg} by GLIB_000:def_37;
x in {xg,yg} by TARSKI:def_2;
then x in A \/ {xg,yg} by XBOOLE_0:def_3;
then reconsider xa = x, ya = y as Vertex of the inducedSubgraph of G,((A \/ {x}) \/ {y}) by A36, A25, GLIB_000:def_37;
A38: not y in {x} by A10, TARSKI:def_1;
not y in A by A16, A12, XBOOLE_0:def_5;
then not yg in the_Vertices_of the inducedSubgraph of G,(A \/ {xg}) by A20, A38, XBOOLE_0:def_3;
then y in G .AdjacentSet (the_Vertices_of the inducedSubgraph of G,(A \/ {xg})) by A20, A18, A19;
then the inducedSubgraph of G,((A \/ {x}) \/ {y}) is connected by A35, Th57;
then consider Wa being Walk of the inducedSubgraph of G,((A \/ {x}) \/ {y}) such that
A39: Wa is_Walk_from xa,ya by GLIB_002:def_1;
A40: (A \/ {xg,yg}) /\ (B \/ {xg,yg}) = (A /\ B) \/ {xg,yg} by XBOOLE_1:24
.= {xg,yg} by A5 ;
A41: Wa .last() = ya by A39, GLIB_001:def_23;
A42: Wa .first() = xa by A39, GLIB_001:def_23;
A43: Wb .last() = xa by A34, GLIB_001:def_23;
A44: Wb .first() = ya by A34, GLIB_001:def_23;
consider Pb being Path of the inducedSubgraph of G,((B \/ {x}) \/ {y}) such that
A45: Pb is_Walk_from Wb .first() ,Wb .last() and
A46: Pb is minlength by Th39;
consider Pa being Path of the inducedSubgraph of G,((A \/ {x}) \/ {y}) such that
A47: Pa is_Walk_from Wa .first() ,Wa .last() and
A48: Pa is minlength by Th39;
reconsider Pag = Pa, Pbg = Pb as Path of G by GLIB_001:175;
Pb .first() = Pb . 1 ;
then A49: Pbg . 1 = yg by A44, A45, GLIB_001:def_23;
Pbg .vertices() = Pb .vertices() by GLIB_001:98;
then A50: Pbg .vertices() c= B \/ {xg,yg} by A32, XBOOLE_1:1;
Pag .vertices() = Pa .vertices() by GLIB_001:98;
then Pag .vertices() c= A \/ {xg,yg} by A37, XBOOLE_1:1;
then A51: (Pag .vertices()) /\ (Pbg .vertices()) c= {xg,yg} by A50, A40, XBOOLE_1:27;
set P = Pag .append Pbg;
Pa .last() = Pa . (len Pa) ;
then A52: Pag . (len Pag) = yg by A41, A47, GLIB_001:def_23;
A53: Pb .last() = Pb . (len Pb) ;
then A54: Pbg . (len Pbg) = xg by A43, A45, GLIB_001:def_23;
A55: Pbg .last() = Pbg . (len Pbg) ;
then A56: x in Pbg .vertices() by A54, GLIB_001:88;
A57: Pbg .first() = Pbg . 1 ;
then A58: y in Pbg .vertices() by A49, GLIB_001:88;
A59: not Pbg is trivial by A10, A57, A55, A49, A54, GLIB_001:127;
A60: Pbg is open by A10, A57, A55, A49, A54, GLIB_001:def_24;
A61: not Pbg is Cycle-like by A10, A57, A55, A49, A54, GLIB_001:def_24;
A62: not xg,yg are_adjacent by A4, A11, Th45;
then A63: Pbg .length() >= 2 by A10, A57, A55, A49, A54, Th46;
Pa .first() = Pa . 1 ;
then A64: Pag . 1 = xg by A42, A47, GLIB_001:def_23;
A65: Pag .edges() misses Pbg .edges()
proof
assume (Pag .edges()) /\ (Pbg .edges()) <> {} ; :: according to XBOOLE_0:def_7 ::_thesis: contradiction
then consider e being set such that
A66: e in (Pag .edges()) /\ (Pbg .edges()) by XBOOLE_0:def_1;
e in Pag .edges() by A66, XBOOLE_0:def_4;
then e in Pa .edges() by GLIB_001:110;
then consider a1, a2 being Vertex of the inducedSubgraph of G,((A \/ {x}) \/ {y}), na being odd Element of NAT such that
A67: na + 2 <= len Pag and
A68: a1 = Pag . na and
e = Pag . (na + 1) and
A69: a2 = Pag . (na + 2) and
A70: e Joins a1,a2, the inducedSubgraph of G,((A \/ {x}) \/ {y}) by GLIB_001:103;
A71: e Joins a1,a2,G by A70, GLIB_000:72;
e in Pbg .edges() by A66, XBOOLE_0:def_4;
then e in Pb .edges() by GLIB_001:110;
then consider b1, b2 being Vertex of the inducedSubgraph of G,((B \/ {x}) \/ {y}), nb being odd Element of NAT such that
nb + 2 <= len Pbg and
b1 = Pbg . nb and
e = Pbg . (nb + 1) and
b2 = Pbg . (nb + 2) and
A72: e Joins b1,b2, the inducedSubgraph of G,((B \/ {x}) \/ {y}) by GLIB_001:103;
A73: the_Vertices_of the inducedSubgraph of G,((B \/ {x}) \/ {y}) = B \/ {xg,yg} by A31, GLIB_000:def_37;
e Joins b1,b2,G by A72, GLIB_000:72;
then A74: ( ( a1 = b1 & a2 = b2 ) or ( a1 = b2 & a2 = b1 ) ) by A71, GLIB_000:15;
then A75: ( a1 in B or a1 in {xg,yg} ) by A73, XBOOLE_0:def_3;
A76: the_Vertices_of the inducedSubgraph of G,((A \/ {x}) \/ {y}) = A \/ {xg,yg} by A36, GLIB_000:def_37;
then A77: ( a1 in A or a1 in {xg,yg} ) by XBOOLE_0:def_3;
A78: ( a2 in A or a2 in {xg,yg} ) by A76, XBOOLE_0:def_3;
A79: ( a2 in B or a2 in {xg,yg} ) by A74, A73, XBOOLE_0:def_3;
percases ( ( a1 = x & a2 = x ) or ( a1 = y & a2 = y ) or ( a1 = x & a2 = y ) or ( a1 = y & a2 = x ) ) by A5, A77, A78, A75, A79, TARSKI:def_2, XBOOLE_0:def_4;
supposeA80: ( ( a1 = x & a2 = x ) or ( a1 = y & a2 = y ) ) ; ::_thesis: contradiction
na < na + 2 by XREAL_1:39;
hence contradiction by A10, A64, A52, A67, A68, A69, A80, GLIB_001:def_28; ::_thesis: verum
end;
suppose ( ( a1 = x & a2 = y ) or ( a1 = y & a2 = x ) ) ; ::_thesis: contradiction
hence contradiction by A62, A71, Def3; ::_thesis: verum
end;
end;
end;
A81: Pag .first() = Pag . 1 ;
then A82: x in Pag .vertices() by A64, GLIB_001:88;
A83: Pag .last() = Pag . (len Pag) ;
then A84: (len (Pag .append Pbg)) + 1 = (len Pag) + (len Pbg) by A52, A57, A49, GLIB_001:28;
A85: Pag .length() >= 2 by A10, A62, A81, A83, A64, A52, Th46;
(Pag .append Pbg) .length() = (Pag .length()) + (Pbg .length()) by A83, A52, A57, A49, Th28;
then (Pag .append Pbg) .length() >= 2 + 2 by A85, A63, XREAL_1:7;
then (Pag .append Pbg) .length() >= 3 + 1 ;
then A86: (Pag .append Pbg) .length() > 3 by NAT_1:13;
A87: Pag is open by A10, A81, A83, A64, A52, GLIB_001:def_24;
A88: y in Pag .vertices() by A83, A52, GLIB_001:88;
{xg,yg} c= (Pag .vertices()) /\ (Pbg .vertices())
proof
let a be set ; :: according to TARSKI:def_3 ::_thesis: ( not a in {xg,yg} or a in (Pag .vertices()) /\ (Pbg .vertices()) )
assume a in {xg,yg} ; ::_thesis: a in (Pag .vertices()) /\ (Pbg .vertices())
then ( a = x or a = y ) by TARSKI:def_2;
hence a in (Pag .vertices()) /\ (Pbg .vertices()) by A82, A88, A56, A58, XBOOLE_0:def_4; ::_thesis: verum
end;
then (Pag .vertices()) /\ (Pbg .vertices()) = {xg,yg} by A51, XBOOLE_0:def_10;
then Pag .append Pbg is Cycle-like by A81, A83, A64, A52, A87, A57, A55, A49, A54, A60, A59, A65, Th27;
then Pag .append Pbg is chordal by A86, Def11;
then consider m, n being odd Nat such that
A89: m + 2 < n and
A90: n <= len (Pag .append Pbg) and
A91: (Pag .append Pbg) . m <> (Pag .append Pbg) . n and
A92: ex e being set st e Joins (Pag .append Pbg) . m,(Pag .append Pbg) . n,G and
A93: for f being set st f in (Pag .append Pbg) .edges() holds
not f Joins (Pag .append Pbg) . m,(Pag .append Pbg) . n,G by Def10;
A94: m < n by A89, NAT_1:12;
consider e being set such that
A95: e Joins (Pag .append Pbg) . m,(Pag .append Pbg) . n,G by A92;
A96: e Joins (Pag .append Pbg) . n,(Pag .append Pbg) . m,G by A95, GLIB_000:14;
A97: m in NAT by ORDINAL1:def_12;
A98: not Pag is Cycle-like by A10, A81, A83, A64, A52, GLIB_001:def_24;
A99: 1 <= n by ABIAN:12;
A100: 1 <= m by ABIAN:12;
percases ( ( m < len Pag & n <= len Pag ) or ( m < len Pag & len Pag < n ) or len Pag <= m ) ;
supposeA101: ( m < len Pag & n <= len Pag ) ; ::_thesis: contradiction
then n in dom Pag by A99, FINSEQ_3:25;
then A102: (Pag .append Pbg) . n = Pag . n by GLIB_001:32;
m in dom Pag by A100, A101, FINSEQ_3:25;
then (Pag .append Pbg) . m = Pag . m by GLIB_001:32;
then Pag is chordal by A98, A89, A92, A101, A102, Th85;
then Pa is chordal by A36, Th87;
hence contradiction by A48, Th89; ::_thesis: verum
end;
supposeA103: ( m < len Pag & len Pag < n ) ; ::_thesis: contradiction
then A104: Pag . m in the_Vertices_of the inducedSubgraph of G,((A \/ {x}) \/ {y}) by A97, GLIB_001:7;
m in dom Pag by A100, A103, FINSEQ_3:25;
then A105: (Pag .append Pbg) . m = Pag . m by GLIB_001:32;
A106: not n in dom Pag by A103, FINSEQ_3:25;
n in dom (Pag .append Pbg) by A90, A99, FINSEQ_3:25;
then consider n1 being Element of NAT such that
A107: n1 < len Pbg and
A108: n = (len Pag) + n1 by A106, GLIB_001:34;
A109: (Pag .append Pbg) . ((len Pag) + n1) = Pbg . (n1 + 1) by A83, A52, A57, A49, A107, GLIB_001:33;
reconsider n1 = n1 as even Element of NAT by A108;
reconsider n11 = n1 + 1 as odd Element of NAT ;
A110: n11 <= len Pbg by A107, NAT_1:13;
then A111: Pbg . n11 in the_Vertices_of the inducedSubgraph of G,((B \/ {x}) \/ {y}) by GLIB_001:7;
percases ( ( Pag . m in A & Pbg . n11 in {xg,yg} ) or ( Pag . m in A & Pbg . n11 in B ) or ( Pag . m in {xg,yg} & Pbg . n11 in B ) or ( Pag . m in {xg,yg} & Pbg . n11 in {xg,yg} ) ) by A37, A32, A104, A111, XBOOLE_0:def_3;
supposeA112: ( Pag . m in A & Pbg . n11 in {xg,yg} ) ; ::_thesis: contradiction
percases ( Pbg . n11 = Pag . 1 or Pbg . n11 = Pag . (len Pag) ) by A64, A52, A112, TARSKI:def_2;
supposeA113: Pbg . n11 = Pag . 1 ; ::_thesis: contradiction
now__::_thesis:_not_1_+_2_>=_m
assume A114: 1 + 2 >= m ; ::_thesis: contradiction
percases ( 1 + 2 > m or 1 + 2 = m ) by A114, XXREAL_0:1;
suppose 1 + 2 > m ; ::_thesis: contradiction
then 1 >= m by Th4, JORDAN12:2;
hence contradiction by A91, A100, A105, A108, A109, A113, XXREAL_0:1; ::_thesis: verum
end;
supposeA115: 1 + 2 = m ; ::_thesis: contradiction
then A116: 1 + 1 < len Pag by A103, XXREAL_0:2;
then 1 + 1 in dom Pag by FINSEQ_3:25;
then A117: Pag . (1 + 1) = (Pag .append Pbg) . (1 + 1) by GLIB_001:32;
1 < (len Pag) - 1 by A116, XREAL_1:20;
then 1 + 0 < ((len Pag) - 1) + (len Pbg) by XREAL_1:8;
then A118: (Pag .append Pbg) . (1 + 1) in (Pag .append Pbg) .edges() by A84, GLIB_001:100, JORDAN12:2;
1 < len Pag by A100, A103, XXREAL_0:2;
then Pag . (1 + 1) Joins Pag . 1,Pag . m,G by A115, GLIB_001:def_3, JORDAN12:2;
hence contradiction by A93, A105, A108, A109, A113, A117, A118, GLIB_000:14; ::_thesis: verum
end;
end;
end;
then Pag is chordal by A98, A96, A103, A105, A108, A109, A113, Th85, JORDAN12:2;
then Pa is chordal by A36, Th87;
hence contradiction by A48, Th89; ::_thesis: verum
end;
supposeA119: Pbg . n11 = Pag . (len Pag) ; ::_thesis: contradiction
now__::_thesis:_not_m_+_2_>=_len_Pag
set L = len Pag;
assume A120: m + 2 >= len Pag ; ::_thesis: contradiction
percases ( m + 2 = len Pag or m + 2 > len Pag ) by A120, XXREAL_0:1;
supposeA121: m + 2 = len Pag ; ::_thesis: contradiction
then A122: len Pag = (m + 1) + 1 ;
then A123: m + 1 < len Pag by NAT_1:13;
1 <= m + 1 by NAT_1:12;
then m + 1 in dom Pag by A123, FINSEQ_3:25;
then A124: Pag . (m + 1) = (Pag .append Pbg) . (m + 1) by GLIB_001:32;
m < (len Pag) - 1 by A122, NAT_1:13;
then m + 0 < ((len Pag) - 1) + (len Pbg) by XREAL_1:8;
then A125: (Pag .append Pbg) . (m + 1) in (Pag .append Pbg) .edges() by A84, GLIB_001:100;
m < len Pag by A123, NAT_1:13;
then Pag . (m + 1) Joins Pag . m,Pag . (len Pag),G by A97, A121, GLIB_001:def_3;
hence contradiction by A93, A105, A108, A109, A119, A124, A125; ::_thesis: verum
end;
suppose m + 2 > len Pag ; ::_thesis: contradiction
hence contradiction by A103, Th4; ::_thesis: verum
end;
end;
end;
then Pag is chordal by A98, A92, A105, A108, A109, A119, Th85;
then Pa is chordal by A36, Th87;
hence contradiction by A48, Th89; ::_thesis: verum
end;
end;
end;
supposeA126: ( Pag . m in A & Pbg . n11 in B ) ; ::_thesis: contradiction
then reconsider bc = Pb . n11 as Vertex of Gb by GLIB_000:def_37;
reconsider ac = Pa . m as Vertex of Ga by A126, GLIB_000:def_37;
set WAB = the removeVertices of G,S .walkOf (ac,e,bc);
e Joins ac,bc, the removeVertices of G,S by A16, A24, A95, A105, A108, A109, A126, Th19;
then A127: the removeVertices of G,S .walkOf (ac,e,bc) is_Walk_from ac,bc by GLIB_001:15;
b in B by GLIB_002:9;
then reconsider bb = b as Vertex of Gb by GLIB_000:def_37;
a in A by GLIB_002:9;
then reconsider aa = a as Vertex of Ga by GLIB_000:def_37;
consider WA being Walk of Ga such that
A128: WA is_Walk_from aa,ac by GLIB_002:def_1;
consider WB being Walk of Gb such that
A129: WB is_Walk_from bc,bb by GLIB_002:def_1;
reconsider WA = WA, WB = WB as Walk of the removeVertices of G,S by GLIB_001:167;
reconsider WAs = WA, WBs = WB as Walk of the removeVertices of G,S ;
A130: WBs is_Walk_from bc,bb by A129, GLIB_001:19;
set WaB = WAs .append ( the removeVertices of G,S .walkOf (ac,e,bc));
set Wab = (WAs .append ( the removeVertices of G,S .walkOf (ac,e,bc))) .append WBs;
WAs is_Walk_from aa,ac by A128, GLIB_001:19;
then WAs .append ( the removeVertices of G,S .walkOf (ac,e,bc)) is_Walk_from aa,bc by A127, GLIB_001:31;
then (WAs .append ( the removeVertices of G,S .walkOf (ac,e,bc))) .append WBs is_Walk_from a,b by A130, GLIB_001:31;
hence contradiction by A1, A2, Def8; ::_thesis: verum
end;
suppose ( Pag . m in {xg,yg} & Pbg . n11 in B ) ; ::_thesis: contradiction
then ( Pag . m = x or Pag . m = y ) by TARSKI:def_2;
then A131: Pag . m = x by A64, A52, A97, A103, GLIB_001:def_28
.= Pbg . (len Pbg) by A43, A45, A53, GLIB_001:def_23 ;
now__::_thesis:_not_n11_+_2_>=_len_Pbg
set L = len Pbg;
assume A132: n11 + 2 >= len Pbg ; ::_thesis: contradiction
percases ( n11 + 2 = len Pbg or n11 + 2 > len Pbg ) by A132, XXREAL_0:1;
supposeA133: n11 + 2 = len Pbg ; ::_thesis: contradiction
then A134: len Pbg = (n11 + 1) + 1 ;
then n11 < (len Pbg) - 1 by NAT_1:13;
then A135: (len Pag) + n11 < ((len Pbg) - 1) + (len Pag) by XREAL_1:6;
n11 + 1 < len Pbg by A134, NAT_1:13;
then A136: n11 < len Pbg by NAT_1:13;
then Pbg . (n11 + 1) Joins Pbg . n11,Pbg . (len Pbg), the inducedSubgraph of G,((B \/ {x}) \/ {y}) by A133, GLIB_001:def_3;
then Pbg . (n11 + 1) Joins Pbg . (len Pbg),Pbg . n11, the inducedSubgraph of G,((B \/ {x}) \/ {y}) by GLIB_000:14;
then A137: Pbg . (n11 + 1) Joins Pbg . (len Pbg),Pbg . n11,G by GLIB_000:72;
A138: 1 <= (len Pag) + n11 by ABIAN:12, NAT_1:12;
Pbg . (n11 + 1) = (Pag .append Pbg) . ((len Pag) + n11) by A83, A52, A57, A49, A136, GLIB_001:33;
then Pbg . (n11 + 1) in (Pag .append Pbg) .edges() by A84, A138, A135, GLIB_001:99;
hence contradiction by A93, A105, A108, A109, A131, A137; ::_thesis: verum
end;
suppose n11 + 2 > len Pbg ; ::_thesis: contradiction
then n11 >= len Pbg by Th4;
hence contradiction by A91, A105, A108, A109, A110, A131, XXREAL_0:1; ::_thesis: verum
end;
end;
end;
then Pbg is chordal by A61, A96, A105, A108, A109, A131, Th85;
then Pb is chordal by A31, Th87;
hence contradiction by A46, Th89; ::_thesis: verum
end;
supposeA139: ( Pag . m in {xg,yg} & Pbg . n11 in {xg,yg} ) ; ::_thesis: contradiction
then A140: ( Pbg . n11 = x or Pbg . n11 = y ) by TARSKI:def_2;
( Pag . m = x or Pag . m = y ) by A139, TARSKI:def_2;
then xg,yg are_adjacent by A91, A92, A105, A108, A109, A140, Def3;
hence contradiction by A4, A11, Th45; ::_thesis: verum
end;
end;
end;
supposeA141: len Pag <= m ; ::_thesis: contradiction
then consider m1 being Nat such that
A142: m = (len Pag) + m1 by NAT_1:10;
n > len Pag by A94, A141, XXREAL_0:2;
then A143: not n in dom Pag by FINSEQ_3:25;
n in dom (Pag .append Pbg) by A90, A99, FINSEQ_3:25;
then consider n1 being Element of NAT such that
A144: n1 < len Pbg and
A145: n = (len Pag) + n1 by A143, GLIB_001:34;
A146: (Pag .append Pbg) . ((len Pag) + n1) = Pbg . (n1 + 1) by A83, A52, A57, A49, A144, GLIB_001:33;
A147: m1 in NAT by ORDINAL1:def_12;
A148: m1 < n1 by A94, A142, A145, XREAL_1:6;
then m1 < len Pbg by A144, XXREAL_0:2;
then A149: (Pag .append Pbg) . ((len Pag) + m1) = Pbg . (m1 + 1) by A83, A52, A57, A49, A147, GLIB_001:33;
reconsider n1 = n1, m1 = m1 as even Element of NAT by A142, A145, ORDINAL1:def_12;
reconsider m11 = m1 + 1, n11 = n1 + 1 as odd Element of NAT ;
A150: m11 < n11 by A148, XREAL_1:6;
n11 <= len Pbg by A144, NAT_1:13;
then A151: m11 < len Pbg by A150, XXREAL_0:2;
A152: now__::_thesis:_not_m11_+_2_>=_n11
assume A153: m11 + 2 >= n11 ; ::_thesis: contradiction
percases ( m11 + 2 = n11 or m11 + 2 > n11 ) by A153, XXREAL_0:1;
supposeA154: m11 + 2 = n11 ; ::_thesis: contradiction
then m11 + 1 < len Pbg by A144;
then m11 < (len Pbg) - 1 by XREAL_1:20;
then A155: (len Pag) + m11 < ((len Pbg) - 1) + (len Pag) by XREAL_1:6;
A156: 1 <= (len Pag) + m11 by ABIAN:12, NAT_1:12;
A157: Pbg . (m11 + 1) Joins Pbg . m11,Pbg . n11,G by A151, A154, GLIB_001:def_3;
Pbg . (m11 + 1) = (Pag .append Pbg) . ((len Pag) + m11) by A83, A52, A57, A49, A151, GLIB_001:33;
then Pbg . (m11 + 1) in (Pag .append Pbg) .edges() by A84, A156, A155, GLIB_001:99;
hence contradiction by A93, A142, A145, A146, A149, A157; ::_thesis: verum
end;
suppose m11 + 2 > n11 ; ::_thesis: contradiction
then m11 >= n11 by Th4;
hence contradiction by A148, XREAL_1:6; ::_thesis: verum
end;
end;
end;
n11 <= len Pbg by A144, NAT_1:13;
then Pbg is chordal by A61, A92, A142, A145, A146, A149, A152, Th85;
then Pb is chordal by A31, Th87;
hence contradiction by A46, Th89; ::_thesis: verum
end;
end;
end;
theorem :: CHORD:99
for G being finite _Graph st ( 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 & not S is empty holds
for G2 being inducedSubgraph of G,S holds G2 is complete ) holds
G is chordal
proof
reconsider n = (2 * 2) + 1 as odd Nat ;
reconsider m = (2 * 0) + 1 as odd Nat ;
let G be finite _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 & not S is empty holds
for G2 being inducedSubgraph of G,S holds G2 is complete ) implies G is chordal )
assume A1: 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 & not S is empty holds
for G2 being inducedSubgraph of G,S holds G2 is complete ; ::_thesis: G is chordal
let P be Walk of G; :: according to CHORD:def_11 ::_thesis: ( P .length() > 3 & P is Cycle-like implies P is chordal )
assume that
A2: P .length() > 3 and
A3: P is Cycle-like ; ::_thesis: P is chordal
P .length() >= 3 + 1 by A2, NAT_1:13;
then 2 * (P .length()) >= 2 * 4 by XREAL_1:64;
then (2 * (P .length())) + 1 >= 8 + 1 by XREAL_1:7;
then A4: len P >= 9 by GLIB_001:112;
A5: now__::_thesis:_not_P_._m_=_P_._n
assume A6: P . m = P . n ; ::_thesis: contradiction
n <= len P by A4, XXREAL_0:2;
then n = len P by A3, A6, GLIB_001:def_28;
hence contradiction by A4; ::_thesis: verum
end;
percases ( ex e being set st e Joins P . m,P . n,G or for e being set holds not e Joins P . m,P . n,G ) ;
supposeA7: ex e being set st e Joins P . m,P . n,G ; ::_thesis: P is chordal
A8: m + 2 < n ;
(len P) + (- 2) >= 9 + (- 2) by A4, XREAL_1:7;
then A9: ( not m = 1 or not n = (len P) - 2 ) ;
A10: ( not m = 1 or not n = len P ) by A4;
n <= len P by A4, XXREAL_0:2;
hence P is chordal by A3, A7, A8, A10, A9, Th85; ::_thesis: verum
end;
supposeA11: for e being set holds not e Joins P . m,P . n,G ; ::_thesis: P is chordal
reconsider Pn = P . n as Vertex of G by A4, GLIB_001:7, XXREAL_0:2;
reconsider Pm = P . m as Vertex of G by A4, GLIB_001:7, XXREAL_0:2;
set P5l = P .cut (n,(len P));
consider S being VertexSeparator of Pm,Pn such that
A12: S is minimal by Th79;
set G2 = the inducedSubgraph of G,S;
A13: n <= len P by A4, XXREAL_0:2;
then P .cut (n,(len P)) is_Walk_from P . n,P . (len P) by GLIB_001:37;
then A14: P .cut (n,(len P)) is_Walk_from P . n,P . m by A3, GLIB_001:118;
A15: not Pm,Pn are_adjacent by A11, Def3;
then S is VertexSeparator of Pn,Pm by A5, Th70;
then consider l being odd Nat such that
A16: 1 < l and
A17: l < len (P .cut (n,(len P))) and
A18: (P .cut (n,(len P))) . l in S by A5, A15, A14, Th72;
A19: 1 + (- 1) < l + (- 1) by A16, XREAL_1:8;
then reconsider l2 = l - 1 as even Element of NAT by INT_1:3;
reconsider l2 = l2 as even Nat ;
A20: l + (- 1) < (len (P .cut (n,(len P)))) + (- 1) by A17, XREAL_1:8;
((len (P .cut (n,(len P)))) + 5) + (- 5) = ((len P) + 1) + (- 5) by A13, GLIB_001:36;
then A21: l2 + n < ((len P) - 5) + n by A20, XREAL_1:8;
l + (- 1) < l + 0 by XREAL_1:8;
then l - 1 < len (P .cut (n,(len P))) by A17, XXREAL_0:2;
then (P .cut (n,(len P))) . (l2 + 1) = P . (n + l2) by A13, GLIB_001:36;
then reconsider bb = P . (n + l2) as Vertex of the inducedSubgraph of G,S by A18, GLIB_000:def_37;
set P15 = P .cut (m,n);
A22: n <= len P by A4, XXREAL_0:2;
then A23: P .cut (m,n) is_Walk_from P . m,P . n by GLIB_001:37;
then not S is empty by A5, A15, Th73;
then A24: the inducedSubgraph of G,S is complete by A1, A5, A15, A12;
A25: ((len (P .cut (m,n))) + 1) + (- 1) = (5 + 1) + (- 1) by A22, GLIB_001:36;
then consider k being odd Nat such that
A26: m < k and
A27: k < n and
A28: (P .cut (m,n)) . k in S by A5, A15, A23, Th72;
A29: k <= 5 - 2 by A27, Th3;
A30: 1 + 2 <= k by A26, Th4;
then A31: k = 3 by A29, XXREAL_0:1;
(P .cut (m,n)) . (2 + 1) = P . (1 + 2) by A22, A25, GLIB_001:36;
then P . 3 in S by A28, A30, A29, XXREAL_0:1;
then reconsider aa = P . 3 as Vertex of the inducedSubgraph of G,S by GLIB_000:def_37;
A32: (k + 2) + 0 < (k + 2) + l2 by A19, XREAL_1:8;
A33: n + l2 in NAT by ORDINAL1:def_12;
now__::_thesis:_not_aa_=_bb
assume A34: aa = bb ; ::_thesis: contradiction
k < n + l2 by A31, A32, XXREAL_0:2;
hence contradiction by A3, A31, A21, A33, A34, GLIB_001:def_28; ::_thesis: verum
end;
then aa,bb are_adjacent by A24, Def6;
then consider e being set such that
A35: e Joins P . 3,P . (n + l2), the inducedSubgraph of G,S by Def3;
e Joins P . k,P . (n + l2),G by A31, A35, GLIB_000:72;
hence P is chordal by A3, A31, A21, A32, Th85; ::_thesis: verum
end;
end;
end;
theorem Th100: :: CHORD:100
for G being finite chordal _Graph
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 ) )
proof
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
percases ( S is empty or not S is empty ) ;
suppose S is empty ; ::_thesis: contradiction
then for x being Vertex of G holds
( not x in S or a,x are_adjacent ) ;
hence contradiction by A4, A5, GLIB_002:9; ::_thesis: verum
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 } ;
A6: now__::_thesis:_for_x_being_set_st_x_in__{__H1(x)_where_x_is_Vertex_of_G_:_x_in_H_.reachableFrom_a1__}__holds_
x_is_natural
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 x in { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } ; ::_thesis: x is natural
then ex y being Vertex of G st
( x = card ((G .AdjacentSet {y}) /\ S) & y in H .reachableFrom a1 ) ;
hence x is natural ; ::_thesis: verum
end;
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);
a in H .reachableFrom a1 by A4, GLIB_002:9;
then card ((G .AdjacentSet {a}) /\ S) in { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } ;
then reconsider M = { H1(x) where x is Vertex of G : x in H .reachableFrom a1 } as non empty finite natural-membered set by A8, A6, MEMBERED:def_6;
set Ga = the inducedSubgraph of H,(H .reachableFrom a1);
A9: the_Vertices_of the inducedSubgraph of H,(H .reachableFrom a1) = H .reachableFrom a1 by GLIB_000:def_37;
max M in M by XXREAL_2:def_8;
then consider c being Vertex of G such that
A10: max M = card ((G .AdjacentSet {c}) /\ S) and
A11: c in H .reachableFrom a1 ;
set gcs = (G .AdjacentSet {c}) /\ S;
A12: (H .reachableFrom a1) /\ S = {} by A1, A2, Th75;
set Gs = the inducedSubgraph of G,S;
set tVG = the_Vertices_of G;
A13: (2 * 0) + 1 is odd ;
not a in S by A1, A2, Def8;
then A14: (the_Vertices_of G) \ S is non empty Subset of (the_Vertices_of G) by XBOOLE_0:def_5;
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;
now__::_thesis:_for_x_being_set_st_x_in_A_holds_
x_in_(the_Vertices_of_G)_\_S
let x be set ; ::_thesis: ( x in A implies x in (the_Vertices_of G) \ S )
assume A15: x in A ; ::_thesis: x in (the_Vertices_of G) \ S
not x in S by A12, A15, XBOOLE_0:def_4;
hence x in (the_Vertices_of G) \ S by A15, XBOOLE_0:def_5; ::_thesis: verum
end;
then A c= (the_Vertices_of G) \ S by TARSKI:def_3;
then reconsider Ga = the inducedSubgraph of H,(H .reachableFrom a1) as inducedSubgraph of G,A by A14, Th29;
consider y being Vertex of G such that
A16: y in S and
A17: not c,y are_adjacent by A5, A11;
A18: not y in A by A16, A12, XBOOLE_0:def_4;
set Ay = A \/ {y};
set Gay = the inducedSubgraph of G,(A \/ {y});
y in {y} by TARSKI:def_1;
then A19: y in A \/ {y} by XBOOLE_0:def_3;
c in A \/ {y} by A11, XBOOLE_0:def_3;
then reconsider ca = c, ya = y as Vertex of the inducedSubgraph of G,(A \/ {y}) by A19, GLIB_000:def_37;
ex yaa being Vertex of G st
( yaa in A & y,yaa are_adjacent ) by A1, A2, A3, A4, A16, Th82;
then y in G .AdjacentSet (the_Vertices_of Ga) by A9, A18;
then the inducedSubgraph of G,(A \/ {y}) is connected by Th57;
then consider Wa being Walk of the inducedSubgraph of G,(A \/ {y}) such that
A20: Wa is_Walk_from ca,ya by GLIB_002:def_1;
consider P being Path of the inducedSubgraph of G,(A \/ {y}) such that
A21: P is_Walk_from Wa .first() ,Wa .last() and
A22: P is minlength by Th39;
Wa .first() = ca by A20, GLIB_001:def_23;
then A23: P .first() = ca by A21, GLIB_001:def_23;
Wa .last() = ya by A20, GLIB_001:def_23;
then A24: P .last() = y by A21, GLIB_001:def_23;
c <> y by A11, A16, A12, XBOOLE_0:def_4;
then not P is trivial by A23, A24, GLIB_001:127;
then A25: len P >= 3 by GLIB_001:125;
A26: now__::_thesis:_not_len_P_<_(2_*_2)_+_1
assume len P < (2 * 2) + 1 ; ::_thesis: contradiction
then len P <= 5 - 2 by Th3;
then A27: len P = 3 by A25, XXREAL_0:1;
then (2 * 0) + 1 < len P ;
then P . (1 + 1) Joins P . 1,P . (1 + 2), the inducedSubgraph of G,(A \/ {y}) by GLIB_001:def_3;
then P . 2 Joins c,y,G by A23, A24, A27, GLIB_000:72;
hence contradiction by A17, Def3; ::_thesis: verum
end;
then 5 + (- 2) <= (len P) + (- 2) by XREAL_1:7;
then reconsider j = (len P) - (2 * 1) as odd Element of NAT by INT_1:3, XXREAL_0:2;
set d = P . j;
A28: j < len P by XREAL_1:44;
A29: now__::_thesis:_not_P_._j_=_y
assume P . j = y ; ::_thesis: contradiction
then (len P) - 2 = 1 by A24, A28, GLIB_001:def_28;
then len P = 1 + 2 ;
hence contradiction by A26; ::_thesis: verum
end;
A30: not y in G .AdjacentSet {c} by A17, Th52;
A31: the_Vertices_of the inducedSubgraph of G,(A \/ {y}) = A \/ {y} by GLIB_000:def_37;
A32: P . j in the_Vertices_of the inducedSubgraph of G,(A \/ {y}) by A28, GLIB_001:7;
then A33: ( P . j in A or P . j in {y} ) by A31, XBOOLE_0:def_3;
reconsider d = P . j as Vertex of G by A32;
set gds = (G .AdjacentSet {d}) /\ S;
P . (j + 1) Joins d,P . (((len P) - 2) + 2), the inducedSubgraph of G,(A \/ {y}) by A28, GLIB_001:def_3;
then A34: P . (j + 1) Joins d,y,G by A24, GLIB_000:72;
then d,y are_adjacent by Def3;
then A35: y in G .AdjacentSet {d} by A29, Th52;
then A36: y in (G .AdjacentSet {d}) /\ S by A16, XBOOLE_0:def_4;
now__::_thesis:_not_(G_.AdjacentSet_{c})_/\_S_c=_(G_.AdjacentSet_{d})_/\_S
assume A37: (G .AdjacentSet {c}) /\ S c= (G .AdjacentSet {d}) /\ S ; ::_thesis: contradiction
not y in (G .AdjacentSet {c}) /\ S by A30, XBOOLE_0:def_4;
then (G .AdjacentSet {c}) /\ S c< (G .AdjacentSet {d}) /\ S by A36, A37, XBOOLE_0:def_8;
then A38: card ((G .AdjacentSet {c}) /\ S) < card ((G .AdjacentSet {d}) /\ S) by TREES_1:6;
card ((G .AdjacentSet {d}) /\ S) in M by A33, A29, TARSKI:def_1;
hence contradiction by A10, A38, XXREAL_2:def_8; ::_thesis: verum
end;
then consider x being set such that
A39: x in (G .AdjacentSet {c}) /\ S and
A40: not x in (G .AdjacentSet {d}) /\ S by TARSKI:def_3;
A41: x in S by A39, XBOOLE_0:def_4;
then A42: not x in G .AdjacentSet {d} by A40, XBOOLE_0:def_4;
reconsider x = x as Vertex of G by A39;
defpred S1[ Nat] means ( $1 in dom P & $1 is odd & $1 < len P & ex e being set st e Joins x,P . $1,G );
A43: for k being Nat st S1[k] holds
k <= len P ;
A44: not x in A by A12, A41, XBOOLE_0:def_4;
A45: 1 < len P by A26, XXREAL_0:2;
then A46: 1 in dom P by FINSEQ_3:25;
x in G .AdjacentSet {c} by A39, XBOOLE_0:def_4;
then c,x are_adjacent by Th52;
then ex e being set st e Joins x,P . 1,G by A23, Def3;
then A47: ex k being Nat st S1[k] by A45, A46, A13;
consider k being Nat such that
A48: S1[k] and
A49: for i being Nat st S1[i] holds
k >= i from NAT_1:sch_6(A43, A47);
reconsider k = k as odd Element of NAT by A48;
set Q1 = P .cut (k,j);
reconsider Q = P .cut (k,j) as Path of G by GLIB_001:175;
A50: k <= j by A48, Th3;
A51: j < len P by XREAL_1:44;
then A52: P .cut (k,j) is minlength by A22, A50, Th42;
A53: (len Q) + k = j + 1 by A50, A51, GLIB_001:36;
A54: now__::_thesis:_for_i_being_odd_Nat_st_i_in_dom_Q_&_i_<>_1_holds_
for_e_being_set_holds_not_e_Joins_Q_._i,x,G
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 that
A55: i in dom Q and
A56: i <> 1 ; ::_thesis: for e being set holds not e Joins Q . i,x,G
1 <= i by A55, FINSEQ_3:25;
then 1 + (- 1) <= i + (- 1) by XREAL_1:7;
then reconsider i1 = i - 1 as even Element of NAT by INT_1:3;
reconsider ki1 = k + i1 as odd Element of NAT ;
A57: i + (- 1) < i + (- 0) by XREAL_1:8;
i <= len Q by A55, FINSEQ_3:25;
then A58: i1 < len Q by A57, XXREAL_0:2;
then A59: ki1 in dom P by A50, A51, GLIB_001:36;
A60: (len P) + (- 1) < (len P) + (- 0) by XREAL_1:8;
assume A61: ex e being set st e Joins Q . i,x,G ; ::_thesis: contradiction
i1 + k < (((len P) - 1) - k) + k by A53, A58, XREAL_1:8;
then A62: ki1 < len P by A60, XXREAL_0:2;
A63: Q . (i1 + 1) = P . ki1 by A50, A51, A58, GLIB_001:36;
now__::_thesis:_not_i1_<>_0
assume i1 <> 0 ; ::_thesis: contradiction
then k + 0 < k + i1 by XREAL_1:8;
hence contradiction by A49, A61, A63, A59, A62, GLIB_000:14; ::_thesis: verum
end;
hence contradiction by A56; ::_thesis: verum
end;
set cc = Q .first() ;
set dd = Q .last() ;
A64: (P .cut (k,j)) .first() = P . k by A50, A51, GLIB_001:37;
then A65: x,Q .first() are_adjacent by A48, Def3;
A66: x <> y by A16, A35, A40, XBOOLE_0:def_4;
then A67: not x in {y} by TARSKI:def_1;
reconsider xs = x, ys = y as Vertex of the inducedSubgraph of G,S by A16, A41, GLIB_000:def_37;
the inducedSubgraph of G,S is complete by A1, A2, A3, Th98;
then xs,ys are_adjacent by A66, Def6;
then consider ej being set such that
A68: ej Joins xs,ys, the inducedSubgraph of G,S by Def3;
ej Joins x,y,G by A68, GLIB_000:72;
then A69: x,y are_adjacent by Def3;
A70: (P .cut (k,j)) .last() = P . j by A50, A51, GLIB_001:37;
then A71: Q .last() = P . j ;
d <> x by A12, A33, A29, A41, TARSKI:def_1, XBOOLE_0:def_4;
then A72: not d,x are_adjacent by A42, Th52;
then A73: Q .first() <> Q .last() by A48, A64, A70, Def3;
then A74: Q is open by GLIB_001:def_24;
A75: Q .vertices() = (P .cut (k,j)) .vertices() by GLIB_001:98;
then Q .last() in (P .cut (k,j)) .vertices() by GLIB_001:88;
then A76: Q .last() <> x by A31, A44, A67, XBOOLE_0:def_3;
A77: now__::_thesis:_not_P_._k_=_P_._(len_P)
A78: (2 * 0) + 1 <= k by ABIAN:12;
then A79: (len (P .cut (1,k))) + 1 = k + 1 by A48, GLIB_001:36;
assume P . k = P . (len P) ; ::_thesis: contradiction
then P .cut (1,k) is_Walk_from P .first() ,P .last() by A48, A78, GLIB_001:37;
hence contradiction by A22, A48, A79, Def2; ::_thesis: verum
end;
A80: now__::_thesis:_for_v_being_set_st_v_in_Q_.vertices()_holds_
v_in_A
let v be set ; ::_thesis: ( v in Q .vertices() implies v in A )
assume A81: v in Q .vertices() ; ::_thesis: v in A
consider n being odd Element of NAT such that
A82: n <= len Q and
A83: Q . n = v by A81, GLIB_001:87;
1 <= n by ABIAN:12;
then 1 + (- 1) <= n + (- 1) by XREAL_1:7;
then reconsider n1 = n - 1 as even Element of NAT by INT_1:3;
reconsider kn1 = k + n1 as odd Element of NAT ;
A84: (len P) + (- 1) < (len P) + (- 0) by XREAL_1:8;
n + (- 1) < n + (- 0) by XREAL_1:8;
then A85: n1 < len Q by A82, XXREAL_0:2;
then k + n1 < (((len P) - 1) - k) + k by A53, XREAL_1:8;
then A86: kn1 < len P by A84, XXREAL_0:2;
A87: Q . (n1 + 1) = P . kn1 by A50, A51, A85, GLIB_001:36;
now__::_thesis:_not_v_=_y
A88: 1 <= k by ABIAN:12;
assume A89: v = y ; ::_thesis: contradiction
then A90: k + (n + (- 1)) = 1 by A24, A83, A87, A86, GLIB_001:def_28;
A91: now__::_thesis:_not_1_<_n
assume 1 < n ; ::_thesis: contradiction
then 1 + 1 <= n by NAT_1:13;
then 2 + 1 <= k + n by A88, XREAL_1:7;
hence contradiction by A90; ::_thesis: verum
end;
1 <= n by ABIAN:12;
hence contradiction by A24, A77, A64, A83, A89, A91, XXREAL_0:1; ::_thesis: verum
end;
then A92: not v in {y} by TARSKI:def_1;
Q .vertices() c= P .vertices() by A50, A51, A75, GLIB_001:94;
then v in P .vertices() by A81;
hence v in A by A31, A92, XBOOLE_0:def_3; ::_thesis: verum
end;
Q .first() in (P .cut (k,j)) .vertices() by A75, GLIB_001:88;
then A93: Q .first() <> x by A31, A44, A67, XBOOLE_0:def_3;
Q .last() ,y are_adjacent by A34, A70, Def3;
then consider R being Path of G such that
A94: len R = 7 and
A95: R .length() = 3 and
A96: R .vertices() = {(Q .last()),y,x,(Q .first())} and
A97: R . 1 = Q .last() and
A98: R . 3 = y and
A99: R . 5 = x and
A100: R . 7 = Q .first() by A24, A29, A66, A69, A77, A64, A70, A76, A93, A65, Th48;
A101: not R is trivial by A94, GLIB_001:126;
A102: Q .edges() misses R .edges()
proof
assume not Q .edges() misses R .edges() ; ::_thesis: contradiction
then (Q .edges()) /\ (R .edges()) <> {} by XBOOLE_0:def_7;
then consider e being set such that
A103: e in (Q .edges()) /\ (R .edges()) by XBOOLE_0:def_1;
A104: e in Q .edges() by A103, XBOOLE_0:def_4;
e in R .edges() by A103, XBOOLE_0:def_4;
then consider n being even Element of NAT such that
A105: 1 <= n and
A106: n <= 7 and
A107: R . n = e by A94, GLIB_001:99;
percases ( n = 2 or n = 4 or n = 6 ) by A105, A106, Th13;
supposeA108: n = 2 ; ::_thesis: contradiction
(2 * 0) + 1 < len R by A94;
then R . (1 + 1) Joins R . 1,R . (1 + 2),G by GLIB_001:def_3;
then y in Q .vertices() by A98, A104, A107, A108, GLIB_001:105;
then y in A by A80;
hence contradiction by A16, A12, XBOOLE_0:def_4; ::_thesis: verum
end;
supposeA109: n = 4 ; ::_thesis: contradiction
(2 * 1) + 1 < len R by A94;
then R . (3 + 1) Joins R . 3,R . (3 + 2),G by GLIB_001:def_3;
then y in Q .vertices() by A98, A104, A107, A109, GLIB_001:105;
then y in A by A80;
hence contradiction by A16, A12, XBOOLE_0:def_4; ::_thesis: verum
end;
supposeA110: n = 6 ; ::_thesis: contradiction
(2 * 2) + 1 < len R by A94;
then R . (5 + 1) Joins R . 5,R . (5 + 2),G by GLIB_001:def_3;
then x in Q .vertices() by A99, A104, A107, A110, GLIB_001:105;
then x in A by A80;
hence contradiction by A12, A41, XBOOLE_0:def_4; ::_thesis: verum
end;
end;
end;
now__::_thesis:_for_v_being_set_st_v_in_{(Q_.first()),(Q_.last())}_holds_
v_in_(Q_.vertices())_/\_(R_.vertices())
let v be set ; ::_thesis: ( v in {(Q .first()),(Q .last())} implies b1 in (Q .vertices()) /\ (R .vertices()) )
assume A111: v in {(Q .first()),(Q .last())} ; ::_thesis: b1 in (Q .vertices()) /\ (R .vertices())
percases ( v = Q .first() or v = Q .last() ) by A111, TARSKI:def_2;
supposeA112: v = Q .first() ; ::_thesis: b1 in (Q .vertices()) /\ (R .vertices())
then A113: v in Q .vertices() by GLIB_001:88;
v in R .vertices() by A94, A100, A112, GLIB_001:87;
hence v in (Q .vertices()) /\ (R .vertices()) by A113, XBOOLE_0:def_4; ::_thesis: verum
end;
supposeA114: v = Q .last() ; ::_thesis: b1 in (Q .vertices()) /\ (R .vertices())
(2 * 0) + 1 <= len R by A94;
then A115: v in R .vertices() by A97, A114, GLIB_001:87;
v in Q .vertices() by A114, GLIB_001:88;
hence v in (Q .vertices()) /\ (R .vertices()) by A115, XBOOLE_0:def_4; ::_thesis: verum
end;
end;
end;
then A116: {(Q .first()),(Q .last())} c= (Q .vertices()) /\ (R .vertices()) by TARSKI:def_3;
now__::_thesis:_for_v_being_set_st_v_in_(Q_.vertices())_/\_(R_.vertices())_holds_
v_in_{(Q_.first()),(Q_.last())}
let v be set ; ::_thesis: ( v in (Q .vertices()) /\ (R .vertices()) implies v in {(Q .first()),(Q .last())} )
assume A117: v in (Q .vertices()) /\ (R .vertices()) ; ::_thesis: v in {(Q .first()),(Q .last())}
v in {(Q .last()),y,x,(Q .first())} by A96, A117, XBOOLE_0:def_4;
then A118: ( v = Q .last() or v = y or v = x or v = Q .first() ) by ENUMSET1:def_2;
v in Q .vertices() by A117, XBOOLE_0:def_4;
then v in A by A80;
hence v in {(Q .first()),(Q .last())} by A16, A12, A41, A118, TARSKI:def_2, XBOOLE_0:def_4; ::_thesis: verum
end;
then (Q .vertices()) /\ (R .vertices()) c= {(Q .first()),(Q .last())} by TARSKI:def_3;
then A119: (Q .vertices()) /\ (R .vertices()) = {(Q .first()),(Q .last())} by A116, XBOOLE_0:def_10;
A120: now__::_thesis:_for_i_being_odd_Nat_st_i_in_dom_Q_&_i_<>_len_Q_holds_
for_e_being_set_holds_not_e_Joins_Q_._i,y,G
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 that
A121: i in dom Q and
A122: i <> len Q ; ::_thesis: for e being set holds not e Joins Q . i,y,G
1 <= i by A121, FINSEQ_3:25;
then 1 + (- 1) <= i + (- 1) by XREAL_1:7;
then reconsider i1 = i - 1 as even Element of NAT by INT_1:3;
reconsider ki1 = k + i1 as odd Element of NAT ;
A123: i + (- 1) < i + (- 0) by XREAL_1:8;
A124: i <= len Q by A121, FINSEQ_3:25;
then A125: i1 < len Q by A123, XXREAL_0:2;
then ki1 in dom P by A50, A51, GLIB_001:36;
then A126: ki1 <= len P by FINSEQ_3:25;
then A127: P . ki1 in A \/ {y} by A31, GLIB_001:7;
now__::_thesis:_not_ki1_=_len_P
A128: ((len P) - k) + (- 1) < (len P) - k by XREAL_1:30;
assume ki1 = len P ; ::_thesis: contradiction
hence contradiction by A53, A124, A123, A128, XXREAL_0:2; ::_thesis: verum
end;
then ki1 < len P by A126, XXREAL_0:1;
then A129: ki1 + 2 <= len P by Th4;
ki1 + 2 <> len P by A53, A122;
then A130: ki1 + 2 < len P by A129, XXREAL_0:1;
A131: P . (len P) in A \/ {y} by A31, GLIB_001:7;
assume A132: ex e being set st e Joins Q . i,y,G ; ::_thesis: contradiction
Q . (i1 + 1) = P . ki1 by A50, A51, A125, GLIB_001:36;
hence contradiction by A22, A24, A132, A130, A127, A131, Th19, Th40; ::_thesis: verum
end;
A133: Q .first() = P . k by A64;
P . k <> P . j by A72, A48, Def3;
then A134: not Q is trivial by A133, A71, GLIB_001:127;
then Q .length() <> 0 by GLIB_001:def_26;
then A135: Q .length() >= 0 + 1 by NAT_1:13;
set C = Q .append R;
A136: R .first() = Q .last() by A97;
then A137: (Q .append R) . ((len Q) + 6) = R . (6 + 1) by A94, GLIB_001:33;
A138: (Q .append R) . ((len Q) + 4) = R . (4 + 1) by A94, A136, GLIB_001:33;
A139: (Q .append R) . ((len Q) + 2) = R . (2 + 1) by A94, A136, GLIB_001:33;
(Q .append R) .length() = (Q .length()) + 3 by A95, A136, Th28;
then (Q .append R) .length() >= 1 + 3 by A135, XREAL_1:7;
then A140: (Q .append R) .length() > 3 by NAT_1:13;
A141: R .last() = Q .first() by A94, A100;
then A142: R is open by A73, A136, GLIB_001:def_24;
then Q .append R is Cycle-like by A74, A136, A141, A101, A102, A119, Th27;
then Q .append R is chordal by A140, Def11;
then consider m, n being odd Nat such that
A143: m + 2 < n and
A144: n <= len (Q .append R) and
(Q .append R) . m <> (Q .append R) . n and
A145: ex e being set st e Joins (Q .append R) . m,(Q .append R) . n,G and
A146: ( 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;
consider e being set such that
A147: e Joins (Q .append R) . m,(Q .append R) . n,G by A145;
A148: ((len (Q .append R)) + 1) + (- 1) = ((len Q) + (len R)) + (- 1) by A136, GLIB_001:28;
A149: ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 )
proof
percases ( 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 A150: (len Q) + 2 <= n by Th4;
percases ( (len Q) + 2 = n or (len Q) + 2 < n ) by A150, 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 A151: ((len Q) + 2) + 2 <= n by Th4;
percases ( (len Q) + 4 = n or (len Q) + (2 * 2) < n ) by A151, 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 A94, A148, A144, XXREAL_0:1; ::_thesis: verum
end;
end;
end;
end;
end;
end;
end;
A152: 1 <= m by ABIAN:12;
percases ( n <= len Q or n = (len Q) + 2 or n = (len Q) + 4 or n = (len Q) + 6 ) by A149;
supposeA153: n <= len Q ; ::_thesis: contradiction
A154: m + 0 <= m + 2 by XREAL_1:7;
m + 2 <= len Q by A143, A153, XXREAL_0:2;
then m <= len Q by A154, XXREAL_0:2;
then m in dom Q by A152, FINSEQ_3:25;
then A155: Q . m = (Q .append R) . m by GLIB_001:32;
1 <= n by ABIAN:12;
then n in dom Q by A153, FINSEQ_3:25;
then Q . n = (Q .append R) . n by GLIB_001:32;
hence contradiction by A52, A143, A147, A153, A155, Th41; ::_thesis: verum
end;
supposeA156: n = (len Q) + 2 ; ::_thesis: contradiction
then m < len Q by A143, XREAL_1:6;
then A157: m in dom Q by A152, FINSEQ_3:25;
then e Joins Q . m,y,G by A98, A139, A147, A156, GLIB_001:32;
hence contradiction by A120, A143, A156, A157; ::_thesis: verum
end;
supposeA158: n = (len Q) + 4 ; ::_thesis: contradiction
then (m + 2) + 2 <= (len Q) + 4 by A143, Th4;
then m + 4 <= (len Q) + 4 ;
then m <= len Q by XREAL_1:6;
then A159: m in dom Q by A152, FINSEQ_3:25;
then A160: e Joins Q . m,x,G by A99, A138, A147, A158, GLIB_001:32;
percases ( 1 = m or 1 < m ) by A152, XXREAL_0:1;
suppose 1 = m ; ::_thesis: contradiction
hence contradiction by A74, A94, A136, A141, A101, A142, A102, A119, A148, A146, A158, Th27; ::_thesis: verum
end;
suppose 1 < m ; ::_thesis: contradiction
hence contradiction by A54, A159, A160; ::_thesis: verum
end;
end;
end;
supposeA161: n = (len Q) + 6 ; ::_thesis: contradiction
then (m + 2) + 2 <= (len Q) + 6 by A143, Th4;
then m + 4 <= ((len Q) + 2) + 4 ;
then A162: m <= (len Q) + 2 by XREAL_1:6;
percases ( m < (len Q) + 2 or m = (len Q) + 2 ) by A162, XXREAL_0:1;
supposeA163: m < (len Q) + 2 ; ::_thesis: contradiction
now__::_thesis:_not_1_+_2_>=_m
assume 1 + 2 >= m ; ::_thesis: contradiction
then m < (2 * 1) + 1 by A74, A94, A136, A141, A101, A142, A102, A119, A148, A146, A161, Th27, XXREAL_0:1;
then m <= 3 - 2 by Th3;
then m < 1 by A74, A94, A136, A141, A101, A142, A102, A119, A148, A146, A161, Th27, XXREAL_0:1;
hence contradiction by ABIAN:12; ::_thesis: verum
end;
then A164: ((2 * 0) + 1) + 2 < m ;
A165: m <= len Q by A163, Th4;
then m in dom Q by A152, FINSEQ_3:25;
then (Q .append R) . m = Q . m by GLIB_001:32;
hence contradiction by A52, A100, A137, A147, A161, A165, A164, Th41, GLIB_000:14; ::_thesis: verum
end;
supposeA166: m = (len Q) + 2 ; ::_thesis: contradiction
3 <= len Q by A134, GLIB_001:125;
then 1 <= len Q by XXREAL_0:2;
then A167: (2 * 0) + 1 in dom Q by FINSEQ_3:25;
1 <> len Q by A72, A48, A64, A70, Def3;
hence contradiction by A120, A98, A100, A137, A139, A147, A161, A166, A167, GLIB_000:14; ::_thesis: verum
end;
end;
end;
end;
end;
end;
end;
theorem :: CHORD:101
for G being finite chordal _Graph
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
for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent )
proof
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
for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y 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
for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y 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
for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y 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
for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y 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
for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent )
let H be removeVertices of G,S; ::_thesis: for a1 being Vertex of H st a = a1 holds
for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent )
let a1 be Vertex of H; ::_thesis: ( a = a1 implies for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent ) )
assume a = a1 ; ::_thesis: for x, y being Vertex of G st x in S & y in S holds
ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent )
then consider c being Vertex of G such that
A4: c in H .reachableFrom a1 and
A5: for x being Vertex of G st x in S holds
c,x are_adjacent by A1, A2, A3, Th100;
let x, y be Vertex of G; ::_thesis: ( x in S & y in S implies ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent ) )
assume that
A6: x in S and
A7: y in S ; ::_thesis: ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent )
A8: c,y are_adjacent by A7, A5;
c,x are_adjacent by A6, A5;
hence ex c being Vertex of G st
( c in H .reachableFrom a1 & c,x are_adjacent & c,y are_adjacent ) by A4, A8; ::_thesis: verum
end;
theorem Th102: :: CHORD:102
for G being finite non trivial chordal _Graph st not G is complete holds
ex a, b being Vertex of G st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial )
proof
defpred S1[ finite _Graph] means ( not $1 is trivial & $1 is chordal & not $1 is complete implies ex a, b being Vertex of $1 st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial ) );
A1: for k being non zero Nat st ( for Gk being finite _Graph st Gk .order() < k holds
S1[Gk] ) holds
for Gk1 being finite _Graph st Gk1 .order() = k holds
S1[Gk1]
proof
let k be non zero Nat; ::_thesis: ( ( for Gk being finite _Graph st Gk .order() < k holds
S1[Gk] ) implies for Gk1 being finite _Graph st Gk1 .order() = k holds
S1[Gk1] )
assume A2: for Gk being finite _Graph st Gk .order() < k holds
S1[Gk] ; ::_thesis: for Gk1 being finite _Graph st Gk1 .order() = k holds
S1[Gk1]
let Gk1 be finite _Graph; ::_thesis: ( Gk1 .order() = k implies S1[Gk1] )
assume that
A3: Gk1 .order() = k and
A4: not Gk1 is trivial and
A5: Gk1 is chordal and
A6: not Gk1 is complete ; ::_thesis: ex a, b being Vertex of Gk1 st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial )
reconsider G = Gk1 as finite non trivial chordal _Graph by A4, A5;
consider a, b being Vertex of G such that
A7: a <> b and
A8: not a,b are_adjacent by A6, Def6;
consider S being VertexSeparator of a,b such that
A9: S is minimal by Th79;
set Gns = the removeVertices of G,S;
reconsider sa = a, sb = b as Vertex of the removeVertices of G,S by A7, A8, Th77;
set A = the removeVertices of G,S .reachableFrom sa;
set B = the removeVertices of G,S .reachableFrom sb;
set Gas = the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S);
A10: the removeVertices of G,S .reachableFrom sa c= the_Vertices_of the removeVertices of G,S ;
then A11: the removeVertices of G,S .reachableFrom sa c= the_Vertices_of G by XBOOLE_1:1;
then A12: ( the removeVertices of G,S .reachableFrom sa) \/ S is non empty Subset of (the_Vertices_of G) by XBOOLE_1:8;
A13: ( the removeVertices of G,S .reachableFrom sa) /\ ( the removeVertices of G,S .reachableFrom sb) = {} by A7, A8, Th76;
A14: now__::_thesis:_not_b_in_(_the_removeVertices_of_G,S_.reachableFrom_sa)_\/_S
assume A15: b in ( the removeVertices of G,S .reachableFrom sa) \/ S ; ::_thesis: contradiction
not b in S by A7, A8, Def8;
then A16: b in the removeVertices of G,S .reachableFrom sa by A15, XBOOLE_0:def_3;
b in the removeVertices of G,S .reachableFrom sb by GLIB_002:9;
hence contradiction by A13, A16, XBOOLE_0:def_4; ::_thesis: verum
end;
A17: now__::_thesis:_not_the_inducedSubgraph_of_G,((_the_removeVertices_of_G,S_.reachableFrom_sa)_\/_S)_.order()_=_k
assume the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) .order() = k ; ::_thesis: contradiction
then A18: the_Vertices_of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) = the_Vertices_of G by A3, PRE_POLY:8;
the_Vertices_of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) = ( the removeVertices of G,S .reachableFrom sa) \/ S by A12, GLIB_000:def_37;
hence contradiction by A14, A18; ::_thesis: verum
end;
set Gbs = the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S);
A19: the removeVertices of G,S .reachableFrom sb c= the_Vertices_of G by A10, XBOOLE_1:1;
then A20: ( the removeVertices of G,S .reachableFrom sb) \/ S is non empty Subset of (the_Vertices_of G) by XBOOLE_1:8;
A21: now__::_thesis:_not_a_in_(_the_removeVertices_of_G,S_.reachableFrom_sb)_\/_S
assume A22: a in ( the removeVertices of G,S .reachableFrom sb) \/ S ; ::_thesis: contradiction
not a in S by A7, A8, Def8;
then A23: a in the removeVertices of G,S .reachableFrom sb by A22, XBOOLE_0:def_3;
a in the removeVertices of G,S .reachableFrom sa by GLIB_002:9;
hence contradiction by A13, A23, XBOOLE_0:def_4; ::_thesis: verum
end;
A24: now__::_thesis:_not_the_inducedSubgraph_of_G,((_the_removeVertices_of_G,S_.reachableFrom_sb)_\/_S)_.order()_=_k
assume the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) .order() = k ; ::_thesis: contradiction
then A25: the_Vertices_of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) = the_Vertices_of G by A3, PRE_POLY:8;
the_Vertices_of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) = ( the removeVertices of G,S .reachableFrom sb) \/ S by A20, GLIB_000:def_37;
hence contradiction by A21, A25; ::_thesis: verum
end;
set Gs = the inducedSubgraph of G,S;
not a in S by A7, A8, Def8;
then a in (the_Vertices_of G) \ S by XBOOLE_0:def_5;
then A26: the_Vertices_of the removeVertices of G,S = (the_Vertices_of G) \ S by GLIB_000:def_37;
the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) .order() <= k by A3, GLIB_000:75;
then A27: the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) .order() < k by A24, XXREAL_0:1;
ex b being Vertex of Gk1 st
( b in the removeVertices of G,S .reachableFrom sb & b is simplicial )
proof
consider aa being set such that
A28: aa in the removeVertices of G,S .reachableFrom sb by XBOOLE_0:def_1;
A29: the_Vertices_of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) = ( the removeVertices of G,S .reachableFrom sb) \/ S by A20, GLIB_000:def_37;
then reconsider a = aa as Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) by A28, XBOOLE_0:def_3;
ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) st
( c in the removeVertices of G,S .reachableFrom sb & c is simplicial )
proof
percases ( the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) is complete or not the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) is complete ) ;
suppose the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) is complete ; ::_thesis: ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) st
( c in the removeVertices of G,S .reachableFrom sb & c is simplicial )
then a is simplicial by Th64;
hence ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) st
( c in the removeVertices of G,S .reachableFrom sb & c is simplicial ) by A28; ::_thesis: verum
end;
supposeA30: not the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) is complete ; ::_thesis: ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) st
( c in the removeVertices of G,S .reachableFrom sb & c is simplicial )
then not the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) is trivial ;
then consider a2, b2 being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) such that
A31: a2 <> b2 and
A32: not a2,b2 are_adjacent and
A33: a2 is simplicial and
A34: b2 is simplicial by A2, A27, A30;
now__::_thesis:_(_a2_in_S_implies_not_b2_in_S_)
assume that
A35: a2 in S and
A36: b2 in S ; ::_thesis: contradiction
reconsider a4 = a2, b4 = b2 as Vertex of the inducedSubgraph of G,S by A35, A36, GLIB_000:def_37;
the inducedSubgraph of G,S is complete by A7, A8, A9, A35, Th98;
then A37: a4,b4 are_adjacent by A31, Def6;
reconsider a3 = a2, b3 = b2 as Vertex of G by A35, A36;
not a3,b3 are_adjacent by A20, A32, Th45;
hence contradiction by A35, A37, Th45; ::_thesis: verum
end;
then ( b2 in the removeVertices of G,S .reachableFrom sb or a2 in the removeVertices of G,S .reachableFrom sb ) by A29, XBOOLE_0:def_3;
hence ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) st
( c in the removeVertices of G,S .reachableFrom sb & c is simplicial ) by A33, A34; ::_thesis: verum
end;
end;
end;
then consider cc being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sb) \/ S) such that
A38: cc in the removeVertices of G,S .reachableFrom sb and
A39: cc is simplicial ;
reconsider c = cc as Vertex of Gk1 by A19, A38;
now__::_thesis:_for_x_being_set_st_x_in_Gk1_.AdjacentSet_{c}_holds_
x_in_(_the_removeVertices_of_G,S_.reachableFrom_sb)_\/_S
let x be set ; ::_thesis: ( x in Gk1 .AdjacentSet {c} implies x in ( the removeVertices of G,S .reachableFrom sb) \/ S )
assume A40: x in Gk1 .AdjacentSet {c} ; ::_thesis: x in ( the removeVertices of G,S .reachableFrom sb) \/ S
assume A41: not x in ( the removeVertices of G,S .reachableFrom sb) \/ S ; ::_thesis: contradiction
then A42: not x in the removeVertices of G,S .reachableFrom sb by XBOOLE_0:def_3;
A43: not x in S by A41, XBOOLE_0:def_3;
reconsider x = x as Vertex of Gk1 by A40;
c,x are_adjacent by A40, Th52;
then consider e being set such that
A44: e Joins c,x,Gk1 by Def3;
x in the_Vertices_of the removeVertices of G,S by A26, A43, XBOOLE_0:def_5;
then e Joins c,x, the removeVertices of G,S by A26, A38, A44, Th19;
hence contradiction by A38, A42, GLIB_002:10; ::_thesis: verum
end;
then A45: Gk1 .AdjacentSet {c} c= ( the removeVertices of G,S .reachableFrom sb) \/ S by TARSKI:def_3;
c in ( the removeVertices of G,S .reachableFrom sb) \/ S by A38, XBOOLE_0:def_3;
then c is simplicial by A20, A39, A45, Th67;
hence ex b being Vertex of Gk1 st
( b in the removeVertices of G,S .reachableFrom sb & b is simplicial ) by A38; ::_thesis: verum
end;
then consider b being Vertex of Gk1 such that
A46: b in the removeVertices of G,S .reachableFrom sb and
A47: b is simplicial ;
the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) .order() <= k by A3, GLIB_000:75;
then A48: the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) .order() < k by A17, XXREAL_0:1;
ex a being Vertex of Gk1 st
( a in the removeVertices of G,S .reachableFrom sa & a is simplicial )
proof
consider aa being set such that
A49: aa in the removeVertices of G,S .reachableFrom sa by XBOOLE_0:def_1;
A50: the_Vertices_of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) = ( the removeVertices of G,S .reachableFrom sa) \/ S by A12, GLIB_000:def_37;
then reconsider a = aa as Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) by A49, XBOOLE_0:def_3;
ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) st
( c in the removeVertices of G,S .reachableFrom sa & c is simplicial )
proof
percases ( the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) is complete or not the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) is complete ) ;
suppose the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) is complete ; ::_thesis: ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) st
( c in the removeVertices of G,S .reachableFrom sa & c is simplicial )
then a is simplicial by Th64;
hence ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) st
( c in the removeVertices of G,S .reachableFrom sa & c is simplicial ) by A49; ::_thesis: verum
end;
supposeA51: not the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) is complete ; ::_thesis: ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) st
( c in the removeVertices of G,S .reachableFrom sa & c is simplicial )
then not the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) is trivial ;
then consider a2, b2 being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) such that
A52: a2 <> b2 and
A53: not a2,b2 are_adjacent and
A54: a2 is simplicial and
A55: b2 is simplicial by A2, A48, A51;
now__::_thesis:_(_a2_in_S_implies_not_b2_in_S_)
assume that
A56: a2 in S and
A57: b2 in S ; ::_thesis: contradiction
reconsider a4 = a2, b4 = b2 as Vertex of the inducedSubgraph of G,S by A56, A57, GLIB_000:def_37;
the inducedSubgraph of G,S is complete by A7, A8, A9, A56, Th98;
then A58: a4,b4 are_adjacent by A52, Def6;
reconsider a3 = a2, b3 = b2 as Vertex of G by A56, A57;
not a3,b3 are_adjacent by A12, A53, Th45;
hence contradiction by A56, A58, Th45; ::_thesis: verum
end;
then ( b2 in the removeVertices of G,S .reachableFrom sa or a2 in the removeVertices of G,S .reachableFrom sa ) by A50, XBOOLE_0:def_3;
hence ex c being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) st
( c in the removeVertices of G,S .reachableFrom sa & c is simplicial ) by A54, A55; ::_thesis: verum
end;
end;
end;
then consider cc being Vertex of the inducedSubgraph of G,(( the removeVertices of G,S .reachableFrom sa) \/ S) such that
A59: cc in the removeVertices of G,S .reachableFrom sa and
A60: cc is simplicial ;
reconsider c = cc as Vertex of Gk1 by A11, A59;
now__::_thesis:_for_x_being_set_st_x_in_Gk1_.AdjacentSet_{c}_holds_
x_in_(_the_removeVertices_of_G,S_.reachableFrom_sa)_\/_S
let x be set ; ::_thesis: ( x in Gk1 .AdjacentSet {c} implies x in ( the removeVertices of G,S .reachableFrom sa) \/ S )
assume A61: x in Gk1 .AdjacentSet {c} ; ::_thesis: x in ( the removeVertices of G,S .reachableFrom sa) \/ S
assume A62: not x in ( the removeVertices of G,S .reachableFrom sa) \/ S ; ::_thesis: contradiction
then A63: not x in the removeVertices of G,S .reachableFrom sa by XBOOLE_0:def_3;
A64: not x in S by A62, XBOOLE_0:def_3;
reconsider x = x as Vertex of Gk1 by A61;
c,x are_adjacent by A61, Th52;
then consider e being set such that
A65: e Joins c,x,Gk1 by Def3;
x in the_Vertices_of the removeVertices of G,S by A26, A64, XBOOLE_0:def_5;
then e Joins c,x, the removeVertices of G,S by A26, A59, A65, Th19;
hence contradiction by A59, A63, GLIB_002:10; ::_thesis: verum
end;
then A66: Gk1 .AdjacentSet {c} c= ( the removeVertices of G,S .reachableFrom sa) \/ S by TARSKI:def_3;
c in ( the removeVertices of G,S .reachableFrom sa) \/ S by A59, XBOOLE_0:def_3;
then c is simplicial by A12, A60, A66, Th67;
hence ex a being Vertex of Gk1 st
( a in the removeVertices of G,S .reachableFrom sa & a is simplicial ) by A59; ::_thesis: verum
end;
then consider a being Vertex of Gk1 such that
A67: a in the removeVertices of G,S .reachableFrom sa and
A68: a is simplicial ;
A69: now__::_thesis:_not_a,b_are_adjacent
reconsider aa = a, bb = b as Vertex of the removeVertices of G,S by A67, A46;
assume a,b are_adjacent ; ::_thesis: contradiction
then consider e being set such that
A70: e Joins a,b,Gk1 by Def3;
e Joins aa,bb, the removeVertices of G,S by A26, A70, Th19;
then bb in the removeVertices of G,S .reachableFrom sa by A67, GLIB_002:10;
hence contradiction by A13, A46, XBOOLE_0:def_4; ::_thesis: verum
end;
a <> b by A13, A67, A46, XBOOLE_0:def_4;
hence ex a, b being Vertex of Gk1 st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial ) by A68, A47, A69; ::_thesis: verum
end;
A71: for G being finite _Graph holds S1[G] from CHORD:sch_1(A1);
let G be finite non trivial chordal _Graph; ::_thesis: ( not G is complete implies ex a, b being Vertex of G st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial ) )
assume not G is complete ; ::_thesis: ex a, b being Vertex of G st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial )
hence ex a, b being Vertex of G st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial ) by A71; ::_thesis: verum
end;
theorem Th103: :: CHORD:103
for G being finite chordal _Graph ex v being Vertex of G st v is simplicial
proof
let G be finite chordal _Graph; ::_thesis: ex v being Vertex of G st v is simplicial
percases ( G is complete or not G is complete ) ;
supposeA1: G is complete ; ::_thesis: ex v being Vertex of G st v is simplicial
set u = the Vertex of G;
the Vertex of G is simplicial by A1, Th64;
hence ex v being Vertex of G st v is simplicial ; ::_thesis: verum
end;
supposeA2: not G is complete ; ::_thesis: ex v being Vertex of G st v is simplicial
then not G is trivial ;
then ex a, b being Vertex of G st
( a <> b & not a,b are_adjacent & a is simplicial & b is simplicial ) by A2, Th102;
hence ex v being Vertex of G st v is simplicial ; ::_thesis: verum
end;
end;
end;
begin
definition
let G be finite _Graph;
mode VertexScheme of G -> FinSequence of the_Vertices_of G means :Def12: :: CHORD:def 12
( it is one-to-one & rng it = the_Vertices_of G );
existence
ex b1 being FinSequence of the_Vertices_of G st
( b1 is one-to-one & rng b1 = the_Vertices_of G )
proof
consider p being FinSequence such that
A1: rng p = the_Vertices_of G and
A2: p is one-to-one by FINSEQ_4:58;
reconsider p = p as FinSequence of the_Vertices_of G by A1, FINSEQ_1:def_4;
take p ; ::_thesis: ( p is one-to-one & rng p = the_Vertices_of G )
thus ( p is one-to-one & rng p = the_Vertices_of G ) by A1, A2; ::_thesis: verum
end;
end;
:: deftheorem Def12 defines VertexScheme CHORD:def_12_:_
for G being finite _Graph
for b2 being FinSequence of the_Vertices_of G holds
( b2 is VertexScheme of G iff ( b2 is one-to-one & rng b2 = the_Vertices_of G ) );
registration
let G be finite _Graph;
cluster -> non empty for VertexScheme of G;
correctness
coherence
for b1 being VertexScheme of G holds not b1 is empty ;
by Def12, RELAT_1:38;
end;
theorem :: CHORD:104
for G being finite _Graph
for S being VertexScheme of G holds len S = card (the_Vertices_of G)
proof
let G be finite _Graph; ::_thesis: for S being VertexScheme of G holds len S = card (the_Vertices_of G)
let S be VertexScheme of G; ::_thesis: len S = card (the_Vertices_of G)
A1: S is one-to-one by Def12;
rng S = the_Vertices_of G by Def12;
hence len S = card (the_Vertices_of G) by A1, FINSEQ_4:62; ::_thesis: verum
end;
theorem :: CHORD:105
for G being finite _Graph
for S being VertexScheme of G holds 1 <= len S by NAT_1:14;
theorem Th106: :: CHORD:106
for G, H being finite _Graph
for g being VertexScheme of G st G == H holds
g is VertexScheme of H
proof
let G, H be finite _Graph; ::_thesis: for g being VertexScheme of G st G == H holds
g is VertexScheme of H
let g be VertexScheme of G; ::_thesis: ( G == H implies g is VertexScheme of H )
assume A1: G == H ; ::_thesis: g is VertexScheme of H
rng g = the_Vertices_of G by Def12;
then A2: rng g = the_Vertices_of H by A1, GLIB_000:def_34;
A3: g is one-to-one by Def12;
g is FinSequence of the_Vertices_of H by A1, GLIB_000:def_34;
hence g is VertexScheme of H by A3, A2, Def12; ::_thesis: verum
end;
definition
let G be finite _Graph;
let S be VertexScheme of G;
let x be Vertex of G;
:: original: ..
redefine funcx .. S -> non zero Element of NAT ;
correctness
coherence
x .. S is non zero Element of NAT ;
proof
rng S = the_Vertices_of G by Def12;
hence x .. S is non zero Element of NAT by FINSEQ_4:21; ::_thesis: verum
end;
end;
definition
let G be finite _Graph;
let S be VertexScheme of G;
let n be Nat;
:: original: .followSet
redefine funcS .followSet n -> Subset of (the_Vertices_of G);
coherence
S .followSet n is Subset of (the_Vertices_of G)
proof
n in NAT by ORDINAL1:def_12;
then A1: rng ((n,(len S)) -cut S) c= rng S by GRAPH_2:11;
now__::_thesis:_for_x_being_set_st_x_in_S_.followSet_n_holds_
x_in_the_Vertices_of_G
let x be set ; ::_thesis: ( x in S .followSet n implies x in the_Vertices_of G )
assume x in S .followSet n ; ::_thesis: x in the_Vertices_of G
then x in rng S by A1;
hence x in the_Vertices_of G by Def12; ::_thesis: verum
end;
hence S .followSet n is Subset of (the_Vertices_of G) by TARSKI:def_3; ::_thesis: verum
end;
end;
theorem Th107: :: CHORD:107
for G being finite _Graph
for S being VertexScheme of G
for n being non zero Nat st n <= len S holds
not S .followSet n is empty
proof
let G be finite _Graph; ::_thesis: for S being VertexScheme of G
for n being non zero Nat st n <= len S holds
not S .followSet n is empty
let S be VertexScheme of G; ::_thesis: for n being non zero Nat st n <= len S holds
not S .followSet n is empty
let n be non zero Nat; ::_thesis: ( n <= len S implies not S .followSet n is empty )
assume A1: n <= len S ; ::_thesis: not S .followSet n is empty
0 + 1 <= n by NAT_1:13;
then A2: (len ((n,(len S)) -cut S)) + n = (len S) + 1 by A1, GRAPH_2:def_1;
((len S) + 1) - n <> 0 by A1, NAT_1:13;
then (n,(len S)) -cut S <> {} by A2;
hence not S .followSet n is empty ; ::_thesis: verum
end;
definition
let G be finite _Graph;
let S be VertexScheme of G;
attrS is perfect means :Def13: :: CHORD:def 13
for n being non zero Nat st n <= len S holds
for Gf being inducedSubgraph of G,(S .followSet n)
for v being Vertex of Gf st v = S . n holds
v is simplicial ;
end;
:: deftheorem Def13 defines perfect CHORD:def_13_:_
for G being finite _Graph
for S being VertexScheme of G holds
( S is perfect iff for n being non zero Nat st n <= len S holds
for Gf being inducedSubgraph of G,(S .followSet n)
for v being Vertex of Gf st v = S . n holds
v is simplicial );
theorem Th108: :: CHORD:108
for G being finite trivial _Graph
for v being Vertex of G ex S being VertexScheme of G st
( S = <*v*> & S is perfect )
proof
let G be finite trivial _Graph; ::_thesis: for v being Vertex of G ex S being VertexScheme of G st
( S = <*v*> & S is perfect )
let v be Vertex of G; ::_thesis: ex S being VertexScheme of G st
( S = <*v*> & S is perfect )
consider v1 being Vertex of G such that
A1: the_Vertices_of G = {v1} by GLIB_000:22;
set S = <*v*>;
v1 = v by A1, TARSKI:def_1;
then A2: rng <*v*> = the_Vertices_of G by A1, FINSEQ_1:39;
<*v*> is one-to-one by FINSEQ_3:93;
then reconsider S = <*v*> as VertexScheme of G by A2, Def12;
take S ; ::_thesis: ( S = <*v*> & S is perfect )
thus S = <*v*> ; ::_thesis: S is perfect
let n be non zero Nat; :: according to CHORD:def_13 ::_thesis: ( n <= len S implies for Gf being inducedSubgraph of G,(S .followSet n)
for v being Vertex of Gf st v = S . n holds
v is simplicial )
assume n <= len S ; ::_thesis: for Gf being inducedSubgraph of G,(S .followSet n)
for v being Vertex of Gf st v = S . n holds
v is simplicial
let Gf be inducedSubgraph of G,(S .followSet n); ::_thesis: for v being Vertex of Gf st v = S . n holds
v is simplicial
thus for v being Vertex of Gf st v = S . n holds
v is simplicial by Th65; ::_thesis: verum
end;
theorem :: CHORD:109
for G being finite _Graph
for V being VertexScheme of G holds
( V is perfect iff for a, b, c being Vertex of G st b <> c & a,b are_adjacent & a,c are_adjacent holds
for va, vb, vc being Nat st va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc holds
b,c are_adjacent )
proof
let G be finite _Graph; ::_thesis: for V being VertexScheme of G holds
( V is perfect iff for a, b, c being Vertex of G st b <> c & a,b are_adjacent & a,c are_adjacent holds
for va, vb, vc being Nat st va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc holds
b,c are_adjacent )
let V be VertexScheme of G; ::_thesis: ( V is perfect iff for a, b, c being Vertex of G st b <> c & a,b are_adjacent & a,c are_adjacent holds
for va, vb, vc being Nat st va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc holds
b,c are_adjacent )
A1: V is one-to-one by Def12;
A2: now__::_thesis:_for_a,_b,_c_being_Vertex_of_G_st_b_<>_c_&_a,b_are_adjacent_&_a,c_are_adjacent_&_not_b,c_are_adjacent_holds_
for_va,_vb,_vc_being_Nat_st_va_in_dom_V_&_vb_in_dom_V_&_vc_in_dom_V_&_V_._va_=_a_&_V_._vb_=_b_&_V_._vc_=_c_&_va_<_vb_&_va_<_vc_holds_
not_V_is_perfect
let a, b, c be Vertex of G; ::_thesis: ( b <> c & a,b are_adjacent & a,c are_adjacent & not b,c are_adjacent implies for va, vb, vc being Nat st va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc holds
not V is perfect )
assume that
A3: b <> c and
A4: a,b are_adjacent and
A5: a,c are_adjacent and
A6: not b,c are_adjacent ; ::_thesis: for va, vb, vc being Nat st va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc holds
not V is perfect
let va, vb, vc be Nat; ::_thesis: ( va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc implies not V is perfect )
assume that
A7: va in dom V and
A8: vb in dom V and
A9: vc in dom V and
A10: V . va = a and
A11: V . vb = b and
A12: V . vc = c and
A13: va < vb and
A14: va < vc ; ::_thesis: not V is perfect
set Gf = the inducedSubgraph of G,(V .followSet va);
set fs = (va,(len V)) -cut V;
A15: va <= len V by A7, FINSEQ_3:25;
then A16: va - va <= (len V) - va by XREAL_1:9;
A17: 1 <= va by A7, FINSEQ_3:25;
then A18: ((len ((va,(len V)) -cut V)) + va) - va = ((len V) + 1) - va by A15, GRAPH_2:def_1;
then A19: len ((va,(len V)) -cut V) = ((len V) - va) + 1 ;
then 0 + 1 <= len ((va,(len V)) -cut V) by A16, NAT_1:13;
then A20: 0 + 1 in dom ((va,(len V)) -cut V) by FINSEQ_3:25;
((va,(len V)) -cut V) . (0 + 1) = V . (va + 0) by A17, A15, A19, A16, GRAPH_2:def_1;
then a in V .followSet va by A10, A20, FUNCT_1:3;
then reconsider ag = a as Vertex of the inducedSubgraph of G,(V .followSet va) by GLIB_000:def_37;
consider jc being Nat such that
A21: va + jc = vc by A14, NAT_1:10;
A22: 0 + 1 <= jc + 1 by XREAL_1:7;
A23: now__::_thesis:_not_jc_>=_len_((va,(len_V))_-cut_V)
assume jc >= len ((va,(len V)) -cut V) ; ::_thesis: contradiction
then va + jc >= (((len V) + 1) - va) + va by A18, XREAL_1:7;
then vc > len V by A21, NAT_1:13;
hence contradiction by A9, FINSEQ_3:25; ::_thesis: verum
end;
then jc + 1 <= len ((va,(len V)) -cut V) by NAT_1:13;
then A24: jc + 1 in dom ((va,(len V)) -cut V) by A22, FINSEQ_3:25;
((va,(len V)) -cut V) . (jc + 1) = V . (va + jc) by A17, A15, A23, GRAPH_2:def_1;
then c in V .followSet va by A12, A21, A24, FUNCT_1:3;
then reconsider cg = c as Vertex of the inducedSubgraph of G,(V .followSet va) by GLIB_000:def_37;
A25: not V .followSet va is empty by A17, A15, Th107;
then A26: ag,cg are_adjacent by A5, Th45;
consider jb being Nat such that
A27: va + jb = vb by A13, NAT_1:10;
A28: 0 + 1 <= jb + 1 by XREAL_1:7;
A29: now__::_thesis:_not_jb_>=_len_((va,(len_V))_-cut_V)
assume jb >= len ((va,(len V)) -cut V) ; ::_thesis: contradiction
then va + jb >= (((len V) + 1) - va) + va by A18, XREAL_1:7;
then vb > len V by A27, NAT_1:13;
hence contradiction by A8, FINSEQ_3:25; ::_thesis: verum
end;
then jb + 1 <= len ((va,(len V)) -cut V) by NAT_1:13;
then A30: jb + 1 in dom ((va,(len V)) -cut V) by A28, FINSEQ_3:25;
((va,(len V)) -cut V) . (jb + 1) = V . (va + jb) by A17, A15, A29, GRAPH_2:def_1;
then b in V .followSet va by A11, A27, A30, FUNCT_1:3;
then reconsider bg = b as Vertex of the inducedSubgraph of G,(V .followSet va) by GLIB_000:def_37;
A31: not bg,cg are_adjacent by A6, A25, Th45;
assume V is perfect ; ::_thesis: contradiction
then A32: ag is simplicial by A10, A17, A15, Def13;
a <> c by A1, A7, A9, A10, A12, A14, FUNCT_1:def_4;
then A33: cg in the inducedSubgraph of G,(V .followSet va) .AdjacentSet {ag} by A26, Th52;
ag,bg are_adjacent by A4, A25, Th45;
then bg in the inducedSubgraph of G,(V .followSet va) .AdjacentSet {ag} by A26, A31, Th52;
then ex e being set st e Joins bg,cg, the inducedSubgraph of G,(V .followSet va) by A3, A32, A33, Th68;
hence contradiction by A31, Def3; ::_thesis: verum
end;
A34: rng V = the_Vertices_of G by Def12;
now__::_thesis:_(_not_V_is_perfect_implies_ex_a,_b,_c_being_Vertex_of_G_ex_va,_vb,_vc_being_Nat_st_
(_b_<>_c_&_a,b_are_adjacent_&_a,c_are_adjacent_&_va_in_dom_V_&_vb_in_dom_V_&_vc_in_dom_V_&_V_._va_=_a_&_V_._vb_=_b_&_V_._vc_=_c_&_va_<_vb_&_va_<_vc_&_not_b,c_are_adjacent_)_)
assume not V is perfect ; ::_thesis: ex a, b, c being Vertex of G ex va, vb, vc being Nat st
( b <> c & a,b are_adjacent & a,c are_adjacent & va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc & not b,c are_adjacent )
then ex n being non zero Nat st
( n <= len V & ex Gf being inducedSubgraph of G,(V .followSet n) ex v being Vertex of Gf st
( v = V . n & not v is simplicial ) ) by Def13;
then consider n being non zero Nat, Gf being inducedSubgraph of G,(V .followSet n), v being Vertex of Gf such that
A35: n <= len V and
A36: v = V . n and
A37: not v is simplicial ;
A38: V .followSet n is non empty Subset of (the_Vertices_of G) by A35, Th107;
then A39: the_Vertices_of Gf = V .followSet n by GLIB_000:def_37;
then reconsider vg = v as Vertex of G by TARSKI:def_3;
consider a, b being Vertex of Gf such that
A40: a <> b and
A41: v <> a and
A42: v <> b and
A43: v,a are_adjacent and
A44: v,b are_adjacent and
A45: not a,b are_adjacent by A37, Th69;
reconsider ag = a, bg = b as Vertex of G by A39, TARSKI:def_3;
A46: vg,bg are_adjacent by A44, A38, Th45;
1 <= n by Th1;
then A47: n in dom V by A35, FINSEQ_3:25;
b in the_Vertices_of G by A39, TARSKI:def_3;
then consider vb being Nat such that
A48: vb in dom V and
A49: V . vb = b by A34, FINSEQ_2:10;
A50: b in rng V by A34, A39, TARSKI:def_3;
A51: now__::_thesis:_not_vb_<=_n
assume vb <= n ; ::_thesis: contradiction
then A52: vb < n by A36, A42, A49, XXREAL_0:1;
b .. V >= n by A1, A47, A39, A50, Th16;
then vb < b .. V by A52, XXREAL_0:2;
hence contradiction by A48, A49, FINSEQ_4:24; ::_thesis: verum
end;
a in the_Vertices_of G by A39, TARSKI:def_3;
then consider va being Nat such that
A53: va in dom V and
A54: V . va = a by A34, FINSEQ_2:10;
A55: a in rng V by A34, A39, TARSKI:def_3;
A56: now__::_thesis:_not_va_<=_n
assume va <= n ; ::_thesis: contradiction
then A57: va < n by A36, A41, A54, XXREAL_0:1;
a .. V >= n by A1, A47, A39, A55, Th16;
then va < a .. V by A57, XXREAL_0:2;
hence contradiction by A53, A54, FINSEQ_4:24; ::_thesis: verum
end;
A58: not ag,bg are_adjacent by A45, A38, Th45;
vg,ag are_adjacent by A43, A38, Th45;
hence ex a, b, c being Vertex of G ex va, vb, vc being Nat st
( b <> c & a,b are_adjacent & a,c are_adjacent & va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc & not b,c are_adjacent ) by A36, A47, A40, A46, A58, A53, A54, A48, A49, A56, A51; ::_thesis: verum
end;
hence ( V is perfect iff for a, b, c being Vertex of G st b <> c & a,b are_adjacent & a,c are_adjacent holds
for va, vb, vc being Nat st va in dom V & vb in dom V & vc in dom V & V . va = a & V . vb = b & V . vc = c & va < vb & va < vc holds
b,c are_adjacent ) by A2; ::_thesis: verum
end;
registration
let G be finite chordal _Graph;
cluster non empty Relation-like NAT -defined the_Vertices_of G -valued Function-like finite FinSequence-like FinSubsequence-like perfect for VertexScheme of G;
existence
ex b1 being VertexScheme of G st b1 is perfect
proof
defpred S1[ finite _Graph] means ( G is chordal implies ex S being VertexScheme of G st S is perfect );
A1: now__::_thesis:_for_k_being_non_zero_Nat_st_(_for_Gk_being_finite__Graph_st_Gk_.order()_<_k_holds_
S1[Gk]_)_holds_
for_Gk1_being_finite__Graph_st_Gk1_.order()_=_k_holds_
S1[Gk1]
let k be non zero Nat; ::_thesis: ( ( for Gk being finite _Graph st Gk .order() < k holds
S1[Gk] ) implies for Gk1 being finite _Graph st Gk1 .order() = k holds
S1[Gk1] )
assume A2: for Gk being finite _Graph st Gk .order() < k holds
S1[Gk] ; ::_thesis: for Gk1 being finite _Graph st Gk1 .order() = k holds
S1[Gk1]
let Gk1 be finite _Graph; ::_thesis: ( Gk1 .order() = k implies S1[Gk1] )
assume A3: Gk1 .order() = k ; ::_thesis: S1[Gk1]
thus S1[Gk1] ::_thesis: verum
proof
assume A4: Gk1 is chordal ; ::_thesis: ex S being VertexScheme of Gk1 st S is perfect
percases ( k = 1 or k <> 1 ) ;
supposeA5: k = 1 ; ::_thesis: ex S being VertexScheme of Gk1 st S is perfect
set v = the Vertex of Gk1;
Gk1 is trivial by A3, A5, GLIB_000:26;
then ex S being VertexScheme of Gk1 st
( S = <* the Vertex of Gk1*> & S is perfect ) by Th108;
hence ex S being VertexScheme of Gk1 st S is perfect ; ::_thesis: verum
end;
suppose k <> 1 ; ::_thesis: ex S being VertexScheme of Gk1 st S is perfect
then reconsider G = Gk1 as finite non trivial chordal _Graph by A3, A4, GLIB_000:26;
consider x being Vertex of G such that
A6: x is simplicial by Th103;
set H = the removeVertex of G,x;
A7: <*x*> is one-to-one by FINSEQ_3:93;
A8: not (the_Vertices_of G) \ {x} is empty by GLIB_000:20;
then A9: the_Vertices_of the removeVertex of G,x = (the_Vertices_of G) \ {x} by GLIB_000:def_37;
the removeVertex of G,x .order() = card ((the_Vertices_of G) \ {x}) by A8, GLIB_000:def_37
.= (G .order()) - (card {x}) by CARD_2:44
.= k - 1 by A3, CARD_2:42 ;
then consider T being VertexScheme of the removeVertex of G,x such that
A10: T is perfect by A2, XREAL_1:146;
{x} /\ (rng T) = {x} /\ ((the_Vertices_of G) \ {x}) by A9, Def12
.= ({x} /\ (the_Vertices_of G)) \ {x} by XBOOLE_1:49
.= {x} \ {x} by XBOOLE_1:28
.= {} by XBOOLE_1:37 ;
then {x} misses rng T by XBOOLE_0:def_7;
then A11: rng <*x*> misses rng T by FINSEQ_1:38;
set S = <*x*> ^ T;
rng T = (the_Vertices_of G) \ {x} by A9, Def12;
then rng (<*x*> ^ T) = ((the_Vertices_of G) \ {x}) \/ (rng <*x*>) by FINSEQ_1:31;
then rng (<*x*> ^ T) = ((the_Vertices_of G) \ {x}) \/ {x} by FINSEQ_1:38;
then rng (<*x*> ^ T) = {x} \/ (the_Vertices_of G) by XBOOLE_1:39;
then A12: rng (<*x*> ^ T) = the_Vertices_of G by XBOOLE_1:12;
then reconsider S = <*x*> ^ T as FinSequence of the_Vertices_of G by FINSEQ_1:def_4;
T is one-to-one by Def12;
then S is one-to-one by A11, A7, FINSEQ_3:91;
then reconsider S = S as VertexScheme of Gk1 by A12, Def12;
take S ; ::_thesis: S is perfect
let n be non zero Nat; :: according to CHORD:def_13 ::_thesis: ( n <= len S implies for Gf being inducedSubgraph of Gk1,(S .followSet n)
for v being Vertex of Gf st v = S . n holds
v is simplicial )
assume A13: n <= len S ; ::_thesis: for Gf being inducedSubgraph of Gk1,(S .followSet n)
for v being Vertex of Gf st v = S . n holds
v is simplicial
A14: 1 <= n by NAT_1:14;
let Gf be inducedSubgraph of Gk1,(S .followSet n); ::_thesis: for v being Vertex of Gf st v = S . n holds
v is simplicial
let v be Vertex of Gf; ::_thesis: ( v = S . n implies v is simplicial )
assume A15: v = S . n ; ::_thesis: v is simplicial
percases ( 1 = n or 1 < n ) by A14, XXREAL_0:1;
supposeA16: 1 = n ; ::_thesis: v is simplicial
then A17: S .followSet n = rng S by GRAPH_2:7
.= the_Vertices_of G by Def12 ;
x = v by A15, A16, FINSEQ_1:41;
hence v is simplicial by A6, A17, Th66, GLIB_000:94; ::_thesis: verum
end;
supposeA18: 1 < n ; ::_thesis: v is simplicial
then 1 + (- 1) < n + (- 1) by XREAL_1:8;
then reconsider n1 = n - 1 as non zero Element of NAT by INT_1:3;
len <*x*> = 1 by FINSEQ_1:39;
then A19: S . n = T . n1 by A13, A18, FINSEQ_1:24;
A20: T .followSet n1 = S .followSet (n1 + 1) by Th17;
n + (- 1) <= (len S) + (- 1) by A13, XREAL_1:7;
then n1 <= ((len <*x*>) + (len T)) + (- 1) by FINSEQ_1:22;
then A21: n1 <= (1 + (len T)) + (- 1) by FINSEQ_1:39;
then not T .followSet n1 is empty by Th107;
then Gf is inducedSubgraph of the removeVertex of G,x,(T .followSet n1) by A9, A20, Th30;
hence v is simplicial by A10, A15, A19, A21, Def13; ::_thesis: verum
end;
end;
end;
end;
end;
end;
for G being finite _Graph holds S1[G] from CHORD:sch_1(A1);
then consider S being VertexScheme of G such that
A22: S is perfect ;
take S ; ::_thesis: S is perfect
thus S is perfect by A22; ::_thesis: verum
end;
end;
theorem :: CHORD:110
for G, H being finite chordal _Graph
for g being perfect VertexScheme of G st G == H holds
g is perfect VertexScheme of H
proof
let G, H be finite chordal _Graph; ::_thesis: for g being perfect VertexScheme of G st G == H holds
g is perfect VertexScheme of H
let g be perfect VertexScheme of G; ::_thesis: ( G == H implies g is perfect VertexScheme of H )
assume A1: G == H ; ::_thesis: g is perfect VertexScheme of H
reconsider h = g as VertexScheme of H by A1, Th106;
now__::_thesis:_for_n_being_non_zero_Nat_st_n_<=_len_h_holds_
for_Hf_being_inducedSubgraph_of_H,(h_.followSet_n)
for_vh_being_Vertex_of_Hf_st_vh_=_h_._n_holds_
vh_is_simplicial
let n be non zero Nat; ::_thesis: ( n <= len h implies for Hf being inducedSubgraph of H,(h .followSet n)
for vh being Vertex of Hf st vh = h . n holds
vh is simplicial )
assume A2: n <= len h ; ::_thesis: for Hf being inducedSubgraph of H,(h .followSet n)
for vh being Vertex of Hf st vh = h . n holds
vh is simplicial
let Hf be inducedSubgraph of H,(h .followSet n); ::_thesis: for vh being Vertex of Hf st vh = h . n holds
vh is simplicial
let vh be Vertex of Hf; ::_thesis: ( vh = h . n implies vh is simplicial )
assume A3: vh = h . n ; ::_thesis: vh is simplicial
G .edgesBetween (g .followSet n) = H .edgesBetween (g .followSet n) by A1, GLIB_000:90;
then reconsider Gf = Hf as inducedSubgraph of G,(g .followSet n) by A1, GLIB_000:95;
reconsider vg = vh as Vertex of Gf ;
vg is simplicial by A2, A3, Def13;
hence vh is simplicial ; ::_thesis: verum
end;
hence g is perfect VertexScheme of H by Def13; ::_thesis: verum
end;
theorem :: CHORD:111
for G being finite _Graph st ex S being VertexScheme of G st S is perfect holds
G is chordal
proof
let G be finite _Graph; ::_thesis: ( ex S being VertexScheme of G st S is perfect implies G is chordal )
given S being VertexScheme of G such that A1: S is perfect ; ::_thesis: G is chordal
A2: rng S = the_Vertices_of G by Def12;
let P be Walk of G; :: according to CHORD:def_11 ::_thesis: ( P .length() > 3 & P is Cycle-like implies P is chordal )
assume that
A3: P .length() > 3 and
A4: P is Cycle-like ; ::_thesis: P is chordal
not P .vertices() is empty by GLIB_001:88;
then consider x being set such that
A5: x in P .vertices() and
A6: for y being set st y in P .vertices() holds
x .. S <= y .. S by A2, Th15;
reconsider x = x as Vertex of G by A5;
set n = x .. S;
set H = the inducedSubgraph of G,(S .followSet (x .. S));
A7: rng S = the_Vertices_of G by Def12;
then A8: x .. S in dom S by FINSEQ_4:20;
A9: S is one-to-one by Def12;
then x in S .followSet (x .. S) by A7, A8, Th16;
then reconsider y = x as Vertex of the inducedSubgraph of G,(S .followSet (x .. S)) by GLIB_000:def_37;
A10: not S .followSet (x .. S) is empty by A7, Th107, FINSEQ_4:21;
now__::_thesis:_for_y_being_set_st_y_in_P_.vertices()_holds_
y_in_S_.followSet_(x_.._S)
let y be set ; ::_thesis: ( y in P .vertices() implies y in S .followSet (x .. S) )
assume A11: y in P .vertices() ; ::_thesis: y in S .followSet (x .. S)
reconsider z = y as Vertex of G by A11;
x .. S <= z .. S by A6, A11;
hence y in S .followSet (x .. S) by A7, A8, A9, Th16; ::_thesis: verum
end;
then P .vertices() c= S .followSet (x .. S) by TARSKI:def_3;
then reconsider C = P as Walk of the inducedSubgraph of G,(S .followSet (x .. S)) by A10, Th23;
reconsider C = C as Path of the inducedSubgraph of G,(S .followSet (x .. S)) by A4, GLIB_001:176;
A12: C is closed by A4, GLIB_001:176;
A13: y in C .vertices() by A5, GLIB_001:98;
A14: rng S = the_Vertices_of G by Def12;
then A15: S . (x .. S) = x by FINSEQ_4:19;
not C is trivial by A4, GLIB_001:176;
then A16: C is Cycle-like by A12, GLIB_001:def_31;
C .length() > 3 by A3, GLIB_001:114;
then consider a, b being odd Nat such that
A17: a + 2 < b and
A18: b <= len C and
A19: C . a <> C . b and
A20: C . a in the inducedSubgraph of G,(S .followSet (x .. S)) .AdjacentSet {y} and
A21: C . b in the inducedSubgraph of G,(S .followSet (x .. S)) .AdjacentSet {y} and
A22: for e being set st e in C .edges() holds
not e Joins C . a,C . b, the inducedSubgraph of G,(S .followSet (x .. S)) by A16, A13, Th55;
x .. S <= len S by A14, FINSEQ_4:21;
then y is simplicial by A1, A15, Def13;
then ex e being set st e Joins C . a,C . b, the inducedSubgraph of G,(S .followSet (x .. S)) by A19, A20, A21, Th68;
then C is chordal by A17, A18, A19, A22, Def10;
hence P is chordal by A10, Th87; ::_thesis: verum
end;