:: 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;