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

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

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

set CS = LexBFS:CSeq G;
set CSN = (LexBFS:CSeq G) . n;
set VLN = ((LexBFS:CSeq G) . n) `1 ;
set V2N = ((LexBFS:CSeq G) . n) `2 ;
set CN1 = (LexBFS:CSeq G) . (n + 1);
set V21 = ((LexBFS:CSeq G) . (n + 1)) `2 ;
set w = LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n);
take LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n) ; :: thesis: ( LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n) = LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n) & ( for v being set holds
( ( v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} & not v in dom (((LexBFS:CSeq G) . n) `1 ) implies (((LexBFS:CSeq G) . (n + 1)) `2 ) . v = ((((LexBFS:CSeq G) . n) `2 ) . v) \/ {((G .order() ) -' n)} ) & ( ( not v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} or v in dom (((LexBFS:CSeq G) . n) `1 ) ) implies (((LexBFS:CSeq G) . (n + 1)) `2 ) . v = (((LexBFS:CSeq G) . n) `2 ) . v ) ) ) )

A2: (LexBFS:CSeq G) . (n + 1) = LexBFS:Step ((LexBFS:CSeq G) . n) by Def17;
card (dom (((LexBFS:CSeq G) . n) `1 )) = n by A1, Th32;
then A3: (LexBFS:CSeq G) . (n + 1) = LexBFS:Update ((LexBFS:CSeq G) . n),(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n)),n by A1, A2, Def14;
now
let v be set ; :: thesis: ( ( not v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} or v in dom (((LexBFS:CSeq G) . n) `1 ) ) implies (((LexBFS:CSeq G) . (n + 1)) `2 ) . b1 = (((LexBFS:CSeq G) . n) `2 ) . b1 )
assume A4: ( not v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} or v in dom (((LexBFS:CSeq G) . n) `1 ) ) ; :: thesis: (((LexBFS:CSeq G) . (n + 1)) `2 ) . b1 = (((LexBFS:CSeq G) . n) `2 ) . b1
per cases ( not v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} or v in dom (((LexBFS:CSeq G) . n) `1 ) ) by A4;
suppose not v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} ; :: thesis: (((LexBFS:CSeq G) . (n + 1)) `2 ) . b1 = (((LexBFS:CSeq G) . n) `2 ) . b1
hence (((LexBFS:CSeq G) . (n + 1)) `2 ) . v = (((LexBFS:CSeq G) . n) `2 ) . v by A3, Th25; :: thesis: verum
end;
suppose v in dom (((LexBFS:CSeq G) . n) `1 ) ; :: thesis: (((LexBFS:CSeq G) . (n + 1)) `2 ) . b1 = (((LexBFS:CSeq G) . n) `2 ) . b1
hence (((LexBFS:CSeq G) . (n + 1)) `2 ) . v = (((LexBFS:CSeq G) . n) `2 ) . v by A3, Th26; :: thesis: verum
end;
end;
end;
hence ( LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n) = LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n) & ( for v being set holds
( ( v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} & not v in dom (((LexBFS:CSeq G) . n) `1 ) implies (((LexBFS:CSeq G) . (n + 1)) `2 ) . v = ((((LexBFS:CSeq G) . n) `2 ) . v) \/ {((G .order() ) -' n)} ) & ( ( not v in G .AdjacentSet {(LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n))} or v in dom (((LexBFS:CSeq G) . n) `1 ) ) implies (((LexBFS:CSeq G) . (n + 1)) `2 ) . v = (((LexBFS:CSeq G) . n) `2 ) . v ) ) ) ) by A3, Th27; :: thesis: verum
set k = (G .order() ) -' n;
set VLv = (((LexBFS:CSeq G) . n) `1 ) +* ((LexBFS:PickUnnumbered ((LexBFS:CSeq G) . n)) .--> ((G .order() ) -' n));