let G be _finite real-weighted WGraph; for EL being FF:ELabeling of G
for source being Vertex of G
for v being set holds
( v in dom (AP:FindAugPath (EL,source)) iff ex P being Path of G st
( P is_Walk_from source,v & P is_augmenting_wrt EL ) )
let EL be FF:ELabeling of G; for source being Vertex of G
for v being set holds
( v in dom (AP:FindAugPath (EL,source)) iff ex P being Path of G st
( P is_Walk_from source,v & P is_augmenting_wrt EL ) )
let source be Vertex of G; for v being set holds
( v in dom (AP:FindAugPath (EL,source)) iff ex P being Path of G st
( P is_Walk_from source,v & P is_augmenting_wrt EL ) )
let v be set ; ( v in dom (AP:FindAugPath (EL,source)) iff ex P being Path of G st
( P is_Walk_from source,v & P is_augmenting_wrt EL ) )
set CS = AP:CompSeq (EL,source);
set V = dom (AP:FindAugPath (EL,source));
given P being Path of G such that A1:
P is_Walk_from source,v
and
A2:
P is_augmenting_wrt EL
; v in dom (AP:FindAugPath (EL,source))
now v in dom (AP:FindAugPath (EL,source))
P . ((2 * 0) + 1) = source
by A1, GLIB_001:17;
then
P . ((2 * 0) + 1) in {source}
by TARSKI:def 1;
then A3:
P . ((2 * 0) + 1) in dom ((AP:CompSeq (EL,source)) . 0)
by Th4;
set Gn =
(AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan());
set Gn1 =
(AP:CompSeq (EL,source)) . (((AP:CompSeq (EL,source)) .Lifespan()) + 1);
defpred S1[
Nat]
means ( $1 is
odd & $1
<= len P & not
P . $1
in dom (AP:FindAugPath (EL,source)) );
assume A4:
not
v in dom (AP:FindAugPath (EL,source))
;
contradiction
P . (len P) = v
by A1, GLIB_001:17;
then A5:
ex
n being
Nat st
S1[
n]
by A4;
consider n being
Nat such that A6:
(
S1[
n] & ( for
k being
Nat st
S1[
k] holds
n <= k ) )
from NAT_1:sch 5(A5);
reconsider n9 =
n as
odd Element of
NAT by A6, ORDINAL1:def 12;
A7:
1
<= n
by A6, ABIAN:12;
dom ((AP:CompSeq (EL,source)) . 0) c= dom (AP:FindAugPath (EL,source))
by Th5;
then
n <> 1
by A6, A3;
then
1
< n
by A7, XXREAL_0:1;
then
1
+ 1
<= n
by NAT_1:13;
then reconsider n2 =
n9 - (2 * 1) as
odd Element of
NAT by INT_1:5;
A8:
n2 < n - 0
by XREAL_1:15;
then A9:
n2 < len P
by A6, XXREAL_0:2;
then A10:
P . n2 in dom (AP:FindAugPath (EL,source))
by A6, A8;
set Next =
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()));
set en = the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()));
AP:CompSeq (
EL,
source) is
halting
by Th6;
then A11:
(AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()) = (AP:CompSeq (EL,source)) . (((AP:CompSeq (EL,source)) .Lifespan()) + 1)
by GLIB_000:def 56;
set e =
P . (n2 + 1);
A12:
P . (n2 + 2) = P . n
;
then A13:
P . (n2 + 1) Joins P . n2,
P . n,
G
by A9, GLIB_001:def 3;
A14:
now AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) <> {} per cases
( P . (n2 + 1) DJoins P . n2,P . n,G or not P . (n2 + 1) DJoins P . n2,P . n,G )
;
suppose A15:
P . (n2 + 1) DJoins P . n2,
P . n,
G
;
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) <> {} then A16:
(the_Source_of G) . (P . (n2 + 1)) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
by A10;
A17:
P . (n2 + 1) in the_Edges_of G
by A15;
A18:
not
(the_Target_of G) . (P . (n2 + 1)) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
by A6, A15;
EL . (P . (n2 + 1)) < (the_Weight_of G) . (P . (n2 + 1))
by A2, A9, A12, A15;
then
P . (n2 + 1) is_forward_edge_wrt (AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())
by A17, A16, A18;
hence
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) <> {}
by Def9;
verum end; suppose A19:
not
P . (n2 + 1) DJoins P . n2,
P . n,
G
;
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) <> {} then A20:
P . (n2 + 1) DJoins P . n,
P . n2,
G
by A13;
then A21:
P . (n2 + 1) in the_Edges_of G
;
A22:
(the_Target_of G) . (P . (n2 + 1)) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
by A10, A20;
A23:
not
(the_Source_of G) . (P . (n2 + 1)) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
by A6, A20;
0 < EL . (P . (n2 + 1))
by A2, A9, A12, A19;
then
P . (n2 + 1) is_backward_edge_wrt (AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())
by A21, A23, A22;
hence
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) <> {}
by Def9;
verum end; end; end; A24:
(AP:CompSeq (EL,source)) . (((AP:CompSeq (EL,source)) .Lifespan()) + 1) = AP:Step ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
by Def12;
now contradictionper cases
( not (the_Source_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) or (the_Source_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) )
;
suppose A25:
not
(the_Source_of G) . the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
;
contradictionthen
(AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()) = ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) +* (((the_Source_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))) .--> the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())))
by A24, A11, A14, Def10;
then A26:
dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) = (dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))) \/ {((the_Source_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())))}
by Lm1;
(the_Source_of G) . the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) in {((the_Source_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())))}
by TARSKI:def 1;
hence
contradiction
by A25, A26, XBOOLE_0:def 3;
verum end; suppose A27:
(the_Source_of G) . the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
;
contradiction
( the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) is_forward_edge_wrt (AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()) or the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) is_backward_edge_wrt (AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()) )
by A14, Def9;
then A28:
not
(the_Target_of G) . the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) in dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))
by A27;
(AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()) = ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) +* (((the_Target_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))) .--> the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())))
by A24, A11, A14, A27, Def10;
then A29:
dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) = (dom ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan()))) \/ {((the_Target_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())))}
by Lm1;
(the_Target_of G) . the
Element of
AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())) in {((the_Target_of G) . the Element of AP:NextBestEdges ((AP:CompSeq (EL,source)) . ((AP:CompSeq (EL,source)) .Lifespan())))}
by TARSKI:def 1;
hence
contradiction
by A28, A29, XBOOLE_0:def 3;
verum end; end; end; hence
contradiction
;
verum end;
hence
v in dom (AP:FindAugPath (EL,source))
; verum