let G be real-weighted WGraph; :: thesis: for EL being FF:ELabeling of
for source being Vertex of G
for n being Nat
for v being set st v in dom ((AP:CompSeq EL,source) . n) holds
ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . n) )
let EL be FF:ELabeling of ; :: thesis: for source being Vertex of G
for n being Nat
for v being set st v in dom ((AP:CompSeq EL,source) . n) holds
ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . n) )
let source be Vertex of G; :: thesis: for n being Nat
for v being set st v in dom ((AP:CompSeq EL,source) . n) holds
ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . n) )
set CS = AP:CompSeq EL,source;
set G0 = (AP:CompSeq EL,source) . 0 ;
defpred S1[ Nat] means for v being set st v in dom ((AP:CompSeq EL,source) . $1) holds
ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . $1) );
now let v be
set ;
:: thesis: ( v in dom ((AP:CompSeq EL,source) . 0 ) implies ex P being Walk of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . 0 ) ) )assume A1:
v in dom ((AP:CompSeq EL,source) . 0 )
;
:: thesis: ex P being Walk of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . 0 ) )then reconsider v' =
v as
Vertex of
G ;
set P =
G .walkOf v';
take P =
G .walkOf v';
:: thesis: ( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . 0 ) )thus
P is_augmenting_wrt EL
by Th001;
:: thesis: ( P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . 0 ) )
v in {source}
by A1, Th3;
then
v = source
by TARSKI:def 1;
hence
P is_Walk_from source,
v
by GLIB_001:14;
:: thesis: P .vertices() c= dom ((AP:CompSeq EL,source) . 0 )
P .vertices() = {v'}
by GLIB_001:91;
hence
P .vertices() c= dom ((AP:CompSeq EL,source) . 0 )
by A1, ZFMISC_1:37;
:: thesis: verum end;
then A2:
S1[ 0 ]
;
A3:
now let n be
Nat;
:: thesis: ( S1[n] implies S1[n + 1] )set Gn =
(AP:CompSeq EL,source) . n;
set Gn1 =
(AP:CompSeq EL,source) . (n + 1);
set Next =
AP:NextBestEdges ((AP:CompSeq EL,source) . n);
set e =
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n));
assume A4:
S1[
n]
;
:: thesis: S1[n + 1]A5:
(AP:CompSeq EL,source) . (n + 1) = AP:Step ((AP:CompSeq EL,source) . n)
by Def15;
now per cases
( AP:NextBestEdges ((AP:CompSeq EL,source) . n) = {} or AP:NextBestEdges ((AP:CompSeq EL,source) . n) <> {} )
;
suppose A6:
AP:NextBestEdges ((AP:CompSeq EL,source) . n) <> {}
;
:: thesis: S1[n + 1]set se =
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)));
set te =
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)));
now per cases
( choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) is_forward_edge_wrt (AP:CompSeq EL,source) . n or choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) is_backward_edge_wrt (AP:CompSeq EL,source) . n )
by A6, Def13;
suppose A7:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) is_forward_edge_wrt (AP:CompSeq EL,source) . n
;
:: thesis: for v being set st v in dom ((AP:CompSeq EL,source) . (n + 1)) holds
ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )then A8:
(
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) in the_Edges_of G &
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . n) & not
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . n) &
EL . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) < (the_Weight_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) )
by Def10;
then
(AP:CompSeq EL,source) . (n + 1) = ((AP:CompSeq EL,source) . n) +* (((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))) .--> (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))
by A5, A6, Def14;
then A9:
dom ((AP:CompSeq EL,source) . (n + 1)) = (dom ((AP:CompSeq EL,source) . n)) \/ {((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))}
by Tw0;
then A10:
dom ((AP:CompSeq EL,source) . n) c= dom ((AP:CompSeq EL,source) . (n + 1))
by XBOOLE_1:7;
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in {((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))}
by TARSKI:def 1;
then A11:
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . (n + 1))
by A9, XBOOLE_0:def 3;
A12:
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . (n + 1))
by A8, A10;
let v be
set ;
:: thesis: ( v in dom ((AP:CompSeq EL,source) . (n + 1)) implies ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) ) )assume A13:
v in dom ((AP:CompSeq EL,source) . (n + 1))
;
:: thesis: ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )A15:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) DJoins (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
G
by A8, GLIB_000:def 16;
now per cases
( v in dom ((AP:CompSeq EL,source) . n) or v in {((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))} )
by A9, A13, XBOOLE_0:def 3;
suppose
v in {((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))}
;
:: thesis: ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )then A17:
v = (the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))
by TARSKI:def 1;
now per cases
( (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) = source or (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) <> source )
;
suppose A18:
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) = source
;
:: thesis: ex P being Walk of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )set P =
G .walkOf ((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))),
(choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))));
A19:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) Joins (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
G
by A8, GLIB_000:def 15;
take P =
G .walkOf ((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))),
(choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))));
:: thesis: ( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )now let n be
odd Nat;
:: thesis: ( n < len P implies ( ( P . (n + 1) DJoins P . n,P . (n + 2),G implies EL . (P . (n + 1)) < (the_Weight_of G) . (P . (n + 1)) ) & ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies 0 < EL . (P . (n + 1)) ) ) )assume
n < len P
;
:: thesis: ( ( P . (n + 1) DJoins P . n,P . (n + 2),G implies EL . (P . (n + 1)) < (the_Weight_of G) . (P . (n + 1)) ) & ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies 0 < EL . (P . (n + 1)) ) )then
n < 2
+ 1
by A19, GLIB_001:15;
then
n <= 2
* 1
by NAT_1:13;
then
n < 1
+ 1
by XXREAL_0:1;
then
( 1
<= n &
n <= 1 )
by HEYTING3:1, NAT_1:13;
then A20:
n = 1
by XXREAL_0:1;
P = <*((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))),(choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))*>
by A19, GLIB_001:def 5;
then A21:
(
P . n = (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) &
P . (n + 1) = choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) &
P . (n + 2) = (the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) )
by A20, FINSEQ_1:62;
thus
(
P . (n + 1) DJoins P . n,
P . (n + 2),
G implies
EL . (P . (n + 1)) < (the_Weight_of G) . (P . (n + 1)) )
by A7, A21, Def10;
:: thesis: ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies 0 < EL . (P . (n + 1)) )assume
not
P . (n + 1) DJoins P . n,
P . (n + 2),
G
;
:: thesis: 0 < EL . (P . (n + 1))hence
0 < EL . (P . (n + 1))
by A21, A8, GLIB_000:def 16;
:: thesis: verum end; hence
P is_augmenting_wrt EL
by Def12;
:: thesis: ( P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )thus
P is_Walk_from source,
v
by A17, A18, A19, GLIB_001:16;
:: thesis: P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))hence
P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))
by TARSKI:def 3;
:: thesis: verum end; suppose A23:
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) <> source
;
:: thesis: ex P2 being Path of G st
( P2 is_augmenting_wrt EL & P2 is_Walk_from source,v & P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )consider P being
Path of
G such that A24:
(
P is_augmenting_wrt EL &
P is_Walk_from source,
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) &
P .vertices() c= dom ((AP:CompSeq EL,source) . n) )
by A4, A8;
set P2 =
P .addEdge (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)));
A25:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) Joins (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
v,
G
by A8, A17, GLIB_000:def 15;
A26:
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) = P .last()
by A24, GLIB_001:def 23;
then
P .first() <> P .last()
by A23, A24, GLIB_001:def 23;
then A27:
not
P is
closed
by GLIB_001:def 24;
A28:
not
v in P .vertices()
by A7, A17, A24, Def10;
then reconsider P2 =
P .addEdge (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) as
Path of
G by A25, A26, A27, GLIB_001:152;
take P2 =
P2;
:: thesis: ( P2 is_augmenting_wrt EL & P2 is_Walk_from source,v & P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )thus
P2 is_augmenting_wrt EL
by A8, A15, A17, A24, A26, A28, Th2;
:: thesis: ( P2 is_Walk_from source,v & P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )thus
P2 is_Walk_from source,
v
by A24, A25, GLIB_001:67;
:: thesis: P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))hence
P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))
by TARSKI:def 3;
:: thesis: verum end; end; end; hence
ex
P being
Path of
G st
(
P is_augmenting_wrt EL &
P is_Walk_from source,
v &
P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )
;
:: thesis: verum end; end; end; hence
ex
P being
Path of
G st
(
P is_augmenting_wrt EL &
P is_Walk_from source,
v &
P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )
;
:: thesis: verum end; suppose A30:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) is_backward_edge_wrt (AP:CompSeq EL,source) . n
;
:: thesis: for v being set st v in dom ((AP:CompSeq EL,source) . (n + 1)) holds
ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )then A31:
(
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) in the_Edges_of G &
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . n) & not
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . n) &
0 < EL . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) )
by Def11;
then
(AP:CompSeq EL,source) . (n + 1) = ((AP:CompSeq EL,source) . n) +* (((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))) .--> (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))
by A5, A6, Def14;
then A32:
dom ((AP:CompSeq EL,source) . (n + 1)) = (dom ((AP:CompSeq EL,source) . n)) \/ {((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))}
by Tw0;
then A33:
dom ((AP:CompSeq EL,source) . n) c= dom ((AP:CompSeq EL,source) . (n + 1))
by XBOOLE_1:7;
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in {((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))}
by TARSKI:def 1;
then A34:
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . (n + 1))
by A32, XBOOLE_0:def 3;
A35:
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) in dom ((AP:CompSeq EL,source) . (n + 1))
by A31, A33;
let v be
set ;
:: thesis: ( v in dom ((AP:CompSeq EL,source) . (n + 1)) implies ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) ) )assume A36:
v in dom ((AP:CompSeq EL,source) . (n + 1))
;
:: thesis: ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )A38:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) DJoins (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
G
by A31, GLIB_000:def 16;
now per cases
( v in dom ((AP:CompSeq EL,source) . n) or v in {((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))} )
by A32, A36, XBOOLE_0:def 3;
suppose
v in {((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))}
;
:: thesis: ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )then A40:
v = (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))
by TARSKI:def 1;
now per cases
( (the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) = source or (the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) <> source )
;
suppose A41:
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) = source
;
:: thesis: ex P being Walk of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )set P =
G .walkOf ((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))),
(choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))));
take P =
G .walkOf ((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))),
(choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))));
:: thesis: ( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )A42:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) Joins (the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
(the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
G
by A31, GLIB_000:def 15;
now let n be
odd Nat;
:: thesis: ( n < len P implies ( ( P . (n + 1) DJoins P . n,P . (n + 2),G implies EL . (P . (n + 1)) < (the_Weight_of G) . (P . (n + 1)) ) & ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies 0 < EL . (P . (n + 1)) ) ) )assume
n < len P
;
:: thesis: ( ( P . (n + 1) DJoins P . n,P . (n + 2),G implies EL . (P . (n + 1)) < (the_Weight_of G) . (P . (n + 1)) ) & ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies 0 < EL . (P . (n + 1)) ) )then
n < 2
+ 1
by A42, GLIB_001:15;
then
n <= 2
* 1
by NAT_1:13;
then
n < 1
+ 1
by XXREAL_0:1;
then
( 1
<= n &
n <= 1 )
by HEYTING3:1, NAT_1:13;
then A43:
n = 1
by XXREAL_0:1;
P = <*((the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)))),(choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),((the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))))*>
by A42, GLIB_001:def 5;
then A44:
(
P . n = (the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) &
P . (n + 1) = choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) &
P . (n + 2) = (the_Source_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) )
by A43, FINSEQ_1:62;
thus
(
P . (n + 1) DJoins P . n,
P . (n + 2),
G implies
EL . (P . (n + 1)) < (the_Weight_of G) . (P . (n + 1)) )
by A44, A31, GLIB_000:def 16;
:: thesis: ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies 0 < EL . (P . (n + 1)) )assume
not
P . (n + 1) DJoins P . n,
P . (n + 2),
G
;
:: thesis: 0 < EL . (P . (n + 1))thus
0 < EL . (P . (n + 1))
by A30, A44, Def11;
:: thesis: verum end; hence
P is_augmenting_wrt EL
by Def12;
:: thesis: ( P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )thus
P is_Walk_from source,
v
by A40, A41, A42, GLIB_001:16;
:: thesis: P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))hence
P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))
by TARSKI:def 3;
:: thesis: verum end; suppose A45:
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) <> source
;
:: thesis: ex P2 being Path of G st
( P2 is_augmenting_wrt EL & P2 is_Walk_from source,v & P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )consider P being
Path of
G such that A46:
(
P is_augmenting_wrt EL &
P is_Walk_from source,
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) &
P .vertices() c= dom ((AP:CompSeq EL,source) . n) )
by A4, A31;
set P2 =
P .addEdge (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)));
A47:
choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n)) Joins (the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))),
v,
G
by A31, A40, GLIB_000:def 15;
A48:
(the_Target_of G) . (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) = P .last()
by A46, GLIB_001:def 23;
then
P .first() <> P .last()
by A45, A46, GLIB_001:def 23;
then A49:
not
P is
closed
by GLIB_001:def 24;
A50:
not
v in P .vertices()
by A30, A40, A46, Def11;
then reconsider P2 =
P .addEdge (choose (AP:NextBestEdges ((AP:CompSeq EL,source) . n))) as
Path of
G by A47, A48, A49, GLIB_001:152;
take P2 =
P2;
:: thesis: ( P2 is_augmenting_wrt EL & P2 is_Walk_from source,v & P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )thus
P2 is_augmenting_wrt EL
by A31, A38, A40, A46, A48, A50, Th2;
:: thesis: ( P2 is_Walk_from source,v & P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )thus
P2 is_Walk_from source,
v
by A46, A47, GLIB_001:67;
:: thesis: P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))hence
P2 .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1))
by TARSKI:def 3;
:: thesis: verum end; end; end; hence
ex
P being
Path of
G st
(
P is_augmenting_wrt EL &
P is_Walk_from source,
v &
P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )
;
:: thesis: verum end; end; end; hence
ex
P being
Path of
G st
(
P is_augmenting_wrt EL &
P is_Walk_from source,
v &
P .vertices() c= dom ((AP:CompSeq EL,source) . (n + 1)) )
;
:: thesis: verum end; end; end; hence
S1[
n + 1]
;
:: thesis: verum end; end; end; hence
S1[
n + 1]
;
:: thesis: verum end;
for n being Nat holds S1[n]
from NAT_1:sch 2(A2, A3);
hence
for n being Nat
for v being set st v in dom ((AP:CompSeq EL,source) . n) holds
ex P being Path of G st
( P is_augmenting_wrt EL & P is_Walk_from source,v & P .vertices() c= dom ((AP:CompSeq EL,source) . n) )
; :: thesis: verum