let G be finite _Graph; :: thesis: for n being Nat st n < G .order() holds
ex w being Vertex of G st
( w = MCS:PickUnnumbered ((MCS:CSeq G) . n) & ( for v being set holds
( ( v in G .AdjacentSet {w} & not v in dom (((MCS:CSeq G) . n) `1) implies (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1 ) & ( ( not v in G .AdjacentSet {w} or v in dom (((MCS:CSeq G) . n) `1) ) implies (((MCS:CSeq G) . (n + 1)) `2) . v = (((MCS:CSeq G) . n) `2) . v ) ) ) )

let n be Nat; :: thesis: ( n < G .order() implies ex w being Vertex of G st
( w = MCS:PickUnnumbered ((MCS:CSeq G) . n) & ( for v being set holds
( ( v in G .AdjacentSet {w} & not v in dom (((MCS:CSeq G) . n) `1) implies (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1 ) & ( ( not v in G .AdjacentSet {w} or v in dom (((MCS:CSeq G) . n) `1) ) implies (((MCS:CSeq G) . (n + 1)) `2) . v = (((MCS:CSeq G) . n) `2) . v ) ) ) ) )

assume A1: n < G .order() ; :: thesis: ex w being Vertex of G st
( w = MCS:PickUnnumbered ((MCS:CSeq G) . n) & ( for v being set holds
( ( v in G .AdjacentSet {w} & not v in dom (((MCS:CSeq G) . n) `1) implies (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1 ) & ( ( not v in G .AdjacentSet {w} or v in dom (((MCS:CSeq G) . n) `1) ) implies (((MCS:CSeq G) . (n + 1)) `2) . v = (((MCS:CSeq G) . n) `2) . v ) ) ) )

set CSN = (MCS:CSeq G) . n;
set VLN = ((MCS:CSeq G) . n) `1 ;
A2: n = card (dom (((MCS:CSeq G) . n) `1)) by A1, Th65;
set k = (G .order()) -' n;
set w = MCS:PickUnnumbered ((MCS:CSeq G) . n);
set CN1 = (MCS:CSeq G) . (n + 1);
set CSlv = [((((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n))),(((MCS:CSeq G) . n) `2)];
set CSlv1 = (((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n));
A3: dom ((((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n))) = (dom (((MCS:CSeq G) . n) `1)) \/ {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} by Lm2;
rng ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n)) = {((G .order()) -' n)} by FUNCOP_1:8;
then A4: (rng (((MCS:CSeq G) . n) `1)) \/ (rng ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n))) c= NAT by XBOOLE_1:8;
rng ((((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n))) c= (rng (((MCS:CSeq G) . n) `1)) \/ (rng ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n))) by FUNCT_4:17;
then rng ((((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n))) c= NAT by A4, XBOOLE_1:1;
then (((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n)) in PFuncs ((the_Vertices_of G),NAT) by A3, PARTFUN1:def 3;
then reconsider CSlv = [((((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n))),(((MCS:CSeq G) . n) `2)] as MCS:Labeling of G by ZFMISC_1:def 2;
A5: (MCS:CSeq G) . (n + 1) = MCS:Step ((MCS:CSeq G) . n) by Def26
.= MCS:Update (((MCS:CSeq G) . n),(MCS:PickUnnumbered ((MCS:CSeq G) . n)),n) by A1, A2, Def23
.= MCS:LabelAdjacent (CSlv,(MCS:PickUnnumbered ((MCS:CSeq G) . n))) by Def22 ;
take MCS:PickUnnumbered ((MCS:CSeq G) . n) ; :: thesis: ( MCS:PickUnnumbered ((MCS:CSeq G) . n) = MCS:PickUnnumbered ((MCS:CSeq G) . n) & ( for v being set holds
( ( v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} & not v in dom (((MCS:CSeq G) . n) `1) implies (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1 ) & ( ( not v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} or v in dom (((MCS:CSeq G) . n) `1) ) implies (((MCS:CSeq G) . (n + 1)) `2) . v = (((MCS:CSeq G) . n) `2) . v ) ) ) )

set V2v = CSlv `2 ;
set VLv = CSlv `1 ;
set V21 = ((MCS:CSeq G) . (n + 1)) `2 ;
set V2N = ((MCS:CSeq G) . n) `2 ;
A6: CSlv `2 = ((MCS:CSeq G) . n) `2 by MCART_1:def 2;
CSlv `1 = (((MCS:CSeq G) . n) `1) +* ((MCS:PickUnnumbered ((MCS:CSeq G) . n)) .--> ((G .order()) -' n)) by MCART_1:def 1;
then A7: dom (CSlv `1) = (dom (((MCS:CSeq G) . n) `1)) \/ {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} by Lm2;
then A8: dom (((MCS:CSeq G) . n) `1) c= dom (CSlv `1) by XBOOLE_1:7;
A9: now
let v be set ; :: thesis: ( ( not v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} or v in dom (((MCS:CSeq G) . n) `1) ) implies (((MCS:CSeq G) . (n + 1)) `2) . b1 = (((MCS:CSeq G) . n) `2) . b1 )
assume A10: ( not v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} or v in dom (((MCS:CSeq G) . n) `1) ) ; :: thesis: (((MCS:CSeq G) . (n + 1)) `2) . b1 = (((MCS:CSeq G) . n) `2) . b1
per cases ( not v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} or v in dom (((MCS:CSeq G) . n) `1) ) by A10;
suppose not v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} ; :: thesis: (((MCS:CSeq G) . (n + 1)) `2) . b1 = (((MCS:CSeq G) . n) `2) . b1
hence (((MCS:CSeq G) . (n + 1)) `2) . v = (((MCS:CSeq G) . n) `2) . v by A5, A6, Th60; :: thesis: verum
end;
suppose v in dom (((MCS:CSeq G) . n) `1) ; :: thesis: (((MCS:CSeq G) . (n + 1)) `2) . b1 = (((MCS:CSeq G) . n) `2) . b1
hence (((MCS:CSeq G) . (n + 1)) `2) . v = (((MCS:CSeq G) . n) `2) . v by A5, A6, A8, Th61; :: thesis: verum
end;
end;
end;
A11: dom (((MCS:CSeq G) . n) `2) = the_Vertices_of G by FUNCT_2:def 1;
now
let v be set ; :: thesis: ( v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} & not v in dom (((MCS:CSeq G) . n) `1) implies (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1 )
assume that
A12: v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} and
A13: not v in dom (((MCS:CSeq G) . n) `1) ; :: thesis: (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1
not v in {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} by A12, CHORD:49;
then not v in dom (CSlv `1) by A7, A13, XBOOLE_0:def 3;
hence (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1 by A5, A6, A11, A12, Th62; :: thesis: verum
end;
hence ( MCS:PickUnnumbered ((MCS:CSeq G) . n) = MCS:PickUnnumbered ((MCS:CSeq G) . n) & ( for v being set holds
( ( v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} & not v in dom (((MCS:CSeq G) . n) `1) implies (((MCS:CSeq G) . (n + 1)) `2) . v = ((((MCS:CSeq G) . n) `2) . v) + 1 ) & ( ( not v in G .AdjacentSet {(MCS:PickUnnumbered ((MCS:CSeq G) . n))} or v in dom (((MCS:CSeq G) . n) `1) ) implies (((MCS:CSeq G) . (n + 1)) `2) . v = (((MCS:CSeq G) . n) `2) . v ) ) ) ) by A9; :: thesis: verum