let G be finite real-weighted WGraph; :: thesis: for EL being FF:ELabeling of G
for source, sink being set
for V being Subset of (the_Vertices_of G) st EL has_valid_flow_from source,sink & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))

let EL be FF:ELabeling of G; :: thesis: for source, sink being set
for V being Subset of (the_Vertices_of G) st EL has_valid_flow_from source,sink & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))

let source, sink be set ; :: thesis: for V being Subset of (the_Vertices_of G) st EL has_valid_flow_from source,sink & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))

let V be Subset of (the_Vertices_of G); :: thesis: ( EL has_valid_flow_from source,sink & source in V & not sink in V implies EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) )
assume that
A1: EL has_valid_flow_from source,sink and
A2: source in V and
A3: not sink in V ; :: thesis: EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))
set VG = the_Vertices_of G;
set n = card ((the_Vertices_of G) \ V);
A4: now end;
defpred S1[ Nat] means for V being Subset of (the_Vertices_of G) st card ((the_Vertices_of G) \ V) = $1 & source in V & not sink in V holds
EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)));
set TG = the_Target_of G;
set SG = the_Source_of G;
A6: now
let n be non empty Nat; :: thesis: ( S1[n] implies S1[n + 1] )
assume A7: S1[n] ; :: thesis: S1[n + 1]
now
let V2 be Subset of (the_Vertices_of G); :: thesis: ( card ((the_Vertices_of G) \ V2) = n + 1 & source in V2 & not sink in V2 implies EL .flow source,sink = (Sum (EL | (G .edgesDBetween V2,((the_Vertices_of G) \ V2)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V2),V2))) )
assume that
A8: card ((the_Vertices_of G) \ V2) = n + 1 and
A9: source in V2 and
A10: not sink in V2 ; :: thesis: EL .flow source,sink = (Sum (EL | (G .edgesDBetween V2,((the_Vertices_of G) \ V2)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V2),V2)))
set x = choose (((the_Vertices_of G) \ V2) \ {sink});
set V1 = V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))};
set EV1V1a = G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}));
set EV1V1b = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))});
set EXV1c = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}));
set EV1Xd = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))};
sink is Vertex of G by A1, Def2;
then sink in (the_Vertices_of G) \ V2 by A10, XBOOLE_0:def 5;
then {sink} c= (the_Vertices_of G) \ V2 by ZFMISC_1:37;
then A11: card (((the_Vertices_of G) \ V2) \ {sink}) = (n + 1) - (card {sink}) by A8, CARD_2:63
.= (n + 1) - 1 by CARD_1:50
.= n ;
then A12: choose (((the_Vertices_of G) \ V2) \ {sink}) in (the_Vertices_of G) \ V2 by CARD_1:47, XBOOLE_0:def 5;
then {(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= the_Vertices_of G by ZFMISC_1:37;
then reconsider V1 = V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} as Subset of (the_Vertices_of G) by XBOOLE_1:8;
A13: (the_Vertices_of G) \ V1 = ((the_Vertices_of G) \ V2) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_1:41;
{(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= (the_Vertices_of G) \ V2 by A12, ZFMISC_1:37;
then A14: card ((the_Vertices_of G) \ V1) = (card ((the_Vertices_of G) \ V2)) - (card {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A13, CARD_2:63
.= (n + 1) - 1 by A8, CARD_1:50
.= n ;
A15: source in V1 by A9, XBOOLE_0:def 3;
not choose (((the_Vertices_of G) \ V2) \ {sink}) in {sink} by A11, CARD_1:47, XBOOLE_0:def 5;
then A16: choose (((the_Vertices_of G) \ V2) \ {sink}) <> sink by TARSKI:def 1;
then not sink in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:def 1;
then not sink in V1 by A10, XBOOLE_0:def 3;
then A17: EL .flow source,sink = (Sum (EL | (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) by A7, A14, A15;
set EXXe = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))});
set EXV2 = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2;
set EV2X = G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))};
reconsider EA = (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
reconsider E1 = EA \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) as Subset of (the_Edges_of G) ;
reconsider EB = EA \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
reconsider EC = (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) as Subset of (the_Edges_of G) ;
reconsider E2 = EC \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
reconsider ED = EC \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) as Subset of (the_Edges_of G) ;
A18: dom (EL | EA) = EA by PARTFUN1:def 4;
now
set e = choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2));
assume G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) meets G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: contradiction
then A19: (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) <> {} by XBOOLE_0:def 7;
then choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_0:def 4;
then choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) DSJoins (the_Vertices_of G) \ V1,V1,G by GLIB_000:def 33;
then (the_Source_of G) . (choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) in (the_Vertices_of G) \ V1 by GLIB_000:def 18;
then A20: not (the_Source_of G) . (choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) in V1 by XBOOLE_0:def 5;
choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by A19, XBOOLE_0:def 4;
then choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by GLIB_000:def 33;
then (the_Source_of G) . (choose ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) /\ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
hence contradiction by A20, XBOOLE_0:def 3; :: thesis: verum
end;
then (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_1:83;
then A21: ED = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_1:40;
now end;
then A25: G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) c= G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by TARSKI:def 3;
now
set e = choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}));
assume G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) meets G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: contradiction
then A26: (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) <> {} by XBOOLE_0:def 7;
then choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) in G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_0:def 4;
then choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) DSJoins V1,(the_Vertices_of G) \ V1,G by GLIB_000:def 33;
then (the_Target_of G) . (choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) in (the_Vertices_of G) \ V1 by GLIB_000:def 18;
then A27: not (the_Target_of G) . (choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) in V1 by XBOOLE_0:def 5;
choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A26, XBOOLE_0:def 4;
then choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then (the_Target_of G) . (choose ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) /\ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
hence contradiction by A27, XBOOLE_0:def 3; :: thesis: verum
end;
then (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) = G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:83;
then A28: EB = G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:40;
A29: dom (EL | EB) = EB by PARTFUN1:def 4;
A30: now
let e be set ; :: thesis: ( e in dom (EL | EA) implies (EL | EA) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e )
assume e in dom (EL | EA) ; :: thesis: (EL | EA) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e
then A31: e in EA by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} or e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = EL . e
then A32: e in EB by A31, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = (EL | EB) . e by A29, FUNCT_4:14
.= EL . e by A32, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A33: e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = EL . e
then not e in EB by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e = (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e by A29, FUNCT_4:12
.= EL . e by A33, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EA) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) . e by A31, FUNCT_1:72; :: thesis: verum
end;
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) implies e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ) & ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) implies e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) ) )
hereby :: thesis: ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) implies e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) )
assume A34: e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) ; :: thesis: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))
then e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_0:def 5;
then A35: e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then A36: (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
A37: (the_Target_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A35, GLIB_000:def 18;
then A38: not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 5;
not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by A34, XBOOLE_0:def 5;
then not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by GLIB_000:def 33;
then not (the_Target_of G) . e in V2 by A34, A36, GLIB_000:def 18;
then not (the_Target_of G) . e in V1 by A38, XBOOLE_0:def 3;
then (the_Target_of G) . e in (the_Vertices_of G) \ V1 by A37, XBOOLE_0:def 5;
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by A34, A36, GLIB_000:def 18;
hence e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by GLIB_000:def 33; :: thesis: verum
end;
assume A39: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)
then A40: e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by GLIB_000:def 33;
then A41: (the_Target_of G) . e in (the_Vertices_of G) \ V1 by GLIB_000:def 18;
then A42: not (the_Target_of G) . e in V1 by XBOOLE_0:def 5;
then not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 3;
then A43: (the_Target_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A41, XBOOLE_0:def 5;
not (the_Target_of G) . e in V2 by A42, XBOOLE_0:def 3;
then not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by GLIB_000:def 18;
then A44: not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by GLIB_000:def 33;
(the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A40, GLIB_000:def 18;
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A39, A43, GLIB_000:def 18;
then e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by GLIB_000:def 33;
hence e in (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by A44, XBOOLE_0:def 5; :: thesis: verum
end;
then A45: (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by TARSKI:2;
A46: dom (EL | ED) = ED by PARTFUN1:def 4;
A47: now
let e be set ; :: thesis: ( e in dom (EL | EC) implies (EL | EC) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e )
assume e in dom (EL | EC) ; :: thesis: (EL | EC) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e
then A48: e in EC by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 or e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) ;
suppose not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = EL . e
then A49: e in ED by A48, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = (EL | ED) . e by A46, FUNCT_4:14
.= EL . e by A49, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A50: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = EL . e
then not e in ED by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e = (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) . e by A46, FUNCT_4:12
.= EL . e by A50, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EC) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) . e by A48, FUNCT_1:72; :: thesis: verum
end;
reconsider EXV1cb = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) as Subset of (the_Edges_of G) ;
set EXXf = G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))};
A51: dom (EL | EC) = EC by PARTFUN1:def 4;
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) & ( e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) )
hereby :: thesis: ( e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) )
assume A52: e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}
then e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 5;
then A53: e DSJoins (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then A54: (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 18;
A55: (the_Source_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A53, GLIB_000:def 18;
then A56: not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 5;
not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A52, XBOOLE_0:def 5;
then not e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then not (the_Source_of G) . e in V2 by A52, A54, GLIB_000:def 18;
then not (the_Source_of G) . e in V1 by A56, XBOOLE_0:def 3;
then (the_Source_of G) . e in (the_Vertices_of G) \ V1 by A55, XBOOLE_0:def 5;
then e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A52, A54, GLIB_000:def 18;
hence e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33; :: thesis: verum
end;
assume A57: e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
then A58: e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
then A59: (the_Source_of G) . e in (the_Vertices_of G) \ V1 by GLIB_000:def 18;
then A60: not (the_Source_of G) . e in V1 by XBOOLE_0:def 5;
then not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 3;
then A61: (the_Source_of G) . e in (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A59, XBOOLE_0:def 5;
not (the_Source_of G) . e in V2 by A60, XBOOLE_0:def 3;
then not e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 18;
then A62: not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33;
(the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A58, GLIB_000:def 18;
then e DSJoins (the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))},{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A57, A61, GLIB_000:def 18;
then e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33;
hence e in (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A62, XBOOLE_0:def 5; :: thesis: verum
end;
then A63: (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:2;
now end;
then A67: G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by TARSKI:def 3;
A68: not choose (((the_Vertices_of G) \ V2) \ {sink}) in V2 by A12, XBOOLE_0:def 5;
now end;
then A73: G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} c= G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:def 3;
A74: V2 \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))} is Subset of V2 ;
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) implies e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ) & ( e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) implies e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) ) )
A75: ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) is Subset of ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ;
hereby :: thesis: ( e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) implies e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) )
assume A76: e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) ; :: thesis: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))
then A77: e DSJoins V2,(the_Vertices_of G) \ V2,G by GLIB_000:def 33;
then A78: (the_Source_of G) . e in V2 by GLIB_000:def 18;
A80: (the_Target_of G) . e in (the_Vertices_of G) \ V2 by A77, GLIB_000:def 18;
A81: (the_Source_of G) . e in V1 by A78, XBOOLE_0:def 3;
now
per cases ( (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} or not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))
then e DSJoins V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by A76, A78, GLIB_000:def 18;
then e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by GLIB_000:def 33;
then e in (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_0:def 3;
hence e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by A79, XBOOLE_0:def 5; :: thesis: verum
end;
suppose not (the_Target_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))
end;
end;
end;
hence e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ; :: thesis: verum
end;
assume A82: e in ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ; :: thesis: e in G .edgesDBetween V2,((the_Vertices_of G) \ V2)
then not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_0:def 5;
then A83: not e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},(the_Vertices_of G) \ V1,G by GLIB_000:def 33;
now
per cases ( e in G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) or e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) by A82, A75, XBOOLE_0:def 3;
suppose A84: e in G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: e DSJoins V2,(the_Vertices_of G) \ V2,G
end;
end;
end;
hence e in G .edgesDBetween V2,((the_Vertices_of G) \ V2) by GLIB_000:def 33; :: thesis: verum
end;
then A93: G .edgesDBetween V2,((the_Vertices_of G) \ V2) = ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by TARSKI:2;
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 implies e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) & ( e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 ) )
A94: ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) is Subset of ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) ;
hereby :: thesis: ( e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 )
assume A95: e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 ; :: thesis: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
then A96: e DSJoins (the_Vertices_of G) \ V2,V2,G by GLIB_000:def 33;
then A97: (the_Target_of G) . e in V2 by GLIB_000:def 18;
A99: (the_Source_of G) . e in (the_Vertices_of G) \ V2 by A96, GLIB_000:def 18;
A100: (the_Target_of G) . e in V1 by A97, XBOOLE_0:def 3;
now
per cases ( (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} or not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
then e DSJoins {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2,G by A95, A97, GLIB_000:def 18;
then e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by GLIB_000:def 33;
then e in (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by XBOOLE_0:def 3;
hence e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A98, XBOOLE_0:def 5; :: thesis: verum
end;
suppose not (the_Source_of G) . e in {(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})
end;
end;
end;
hence e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: verum
end;
assume A101: e in ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2
then not e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by XBOOLE_0:def 5;
then A102: not e DSJoins (the_Vertices_of G) \ V1,{(choose (((the_Vertices_of G) \ V2) \ {sink}))},G by GLIB_000:def 33;
now
per cases ( e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) or e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) by A101, A94, XBOOLE_0:def 3;
suppose A103: e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e DSJoins (the_Vertices_of G) \ V2,V2,G
end;
end;
end;
hence e in G .edgesDBetween ((the_Vertices_of G) \ V2),V2 by GLIB_000:def 33; :: thesis: verum
end;
then A112: G .edgesDBetween ((the_Vertices_of G) \ V2),V2 = E2 by TARSKI:2;
A113: dom (EL | E2) = EC \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by PARTFUN1:def 4;
A114: now
let e be set ; :: thesis: ( e in dom (EL | EC) implies (EL | EC) . e = ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e )
assume e in dom (EL | EC) ; :: thesis: (EL | EC) . e = ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e
then A115: e in EC by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} or e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose not e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = EL . e
then A116: e in E2 by A115, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = (EL | E2) . e by A113, FUNCT_4:14
.= EL . e by A116, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A117: e in G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = EL . e
then not e in E2 by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e = (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e by A113, FUNCT_4:12
.= EL . e by A117, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EC) . e = ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) . e by A115, FUNCT_1:72; :: thesis: verum
end;
dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ED)) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ ED by A46, FUNCT_4:def 1
.= (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) by XBOOLE_1:39
.= EC by XBOOLE_1:6 ;
then A118: Sum (EL | EC) = (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) + (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) by A21, A51, A47, FUNCT_1:9, GLIB_004:3;
dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | E2)) = (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ (EC \ (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by A113, FUNCT_4:def 1
.= (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ ((G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),(V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) by XBOOLE_1:39
.= EC by A67, XBOOLE_1:10, XBOOLE_1:12 ;
then A119: Sum (EL | EC) = (Sum (EL | E2)) + (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by A51, A114, FUNCT_1:9, GLIB_004:3;
dom (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EB)) = (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ EB by A29, FUNCT_4:def 1
.= (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:39
.= EA by XBOOLE_1:6 ;
then A120: Sum (EL | EA) = (Sum (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) + (Sum (EL | (G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) by A28, A18, A30, FUNCT_1:9, GLIB_004:3;
reconsider EV1Xdb = (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) as Subset of (the_Edges_of G) ;
A121: dom (EL | EV1Xdb) = (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by PARTFUN1:def 4;
now end;
then A126: G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 c= G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by TARSKI:def 3;
A127: dom (EL | E1) = EA \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by PARTFUN1:def 4;
A128: now
let e be set ; :: thesis: ( e in dom (EL | EA) implies (EL | EA) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e )
assume e in dom (EL | EA) ; :: thesis: (EL | EA) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e
then A129: e in EA by PARTFUN1:def 4;
now
per cases ( not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) or e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ) ;
suppose not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = EL . e
then A130: e in E1 by A129, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = (EL | E1) . e by A127, FUNCT_4:14
.= EL . e by A130, FUNCT_1:72 ;
:: thesis: verum
end;
suppose A131: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = EL . e
then not e in E1 by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e = (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) . e by A127, FUNCT_4:12
.= EL . e by A131, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | EA) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) . e by A129, FUNCT_1:72; :: thesis: verum
end;
A132: dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by PARTFUN1:def 4;
A133: now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) implies (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e )
assume A134: e in dom (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) ; :: thesis: (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e
then A135: e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} or not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) ;
suppose A136: e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = EL . e
then not e in EV1Xdb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e by A121, FUNCT_4:12
.= EL . e by A136, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = EL . e
then A137: e in EV1Xdb by A135, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e = (EL | EV1Xdb) . e by A121, FUNCT_4:14
.= EL . e by A137, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) . e = ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | EV1Xdb)) . e by A132, A134, FUNCT_1:72; :: thesis: verum
end;
dom (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) = G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) +* (EL | ((G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) = (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ ((G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by A121, FUNCT_4:def 1
.= (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) \/ (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by XBOOLE_1:39
.= G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by A73, XBOOLE_1:12 ;
then A138: (Sum (EL | (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) + (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) = Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by A63, A132, A133, FUNCT_1:9, GLIB_004:3;
dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) +* (EL | E1)) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (EA \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) by A127, FUNCT_4:def 1
.= (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ ((G .edgesDBetween (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) \/ (G .edgesDBetween V2,{(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:39
.= EA by A25, XBOOLE_1:10, XBOOLE_1:12 ;
then A139: Sum (EL | EA) = (Sum (EL | E1)) + (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) by A18, A128, FUNCT_1:9, GLIB_004:3;
A140: dom (EL | EXV1cb) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) by PARTFUN1:def 4;
A141: dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by PARTFUN1:def 4;
A142: now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) implies (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e )
assume A143: e in dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) ; :: thesis: (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e
then A144: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 or not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ) ;
suppose A145: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = EL . e
then not e in EXV1cb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) . e by A140, FUNCT_4:12
.= EL . e by A145, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 ; :: thesis: ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = EL . e
then A146: e in EXV1cb by A144, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e = (EL | EXV1cb) . e by A140, FUNCT_4:14
.= EL . e by A146, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) . e = ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | EXV1cb)) . e by A141, A143, FUNCT_1:72; :: thesis: verum
end;
dom (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2 by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) +* (EL | ((G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)))) = (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ ((G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) \ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2)) by A140, FUNCT_4:def 1
.= (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2) \/ (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})) by XBOOLE_1:39
.= G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by A126, XBOOLE_1:12 ;
then A147: (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},V2))) + (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ (V2 \/ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))))) = Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) by A45, A141, A142, FUNCT_1:9, GLIB_004:3;
reconsider x = choose (((the_Vertices_of G) \ V2) \ {sink}) as Vertex of G by A12;
A148: x .edgesOut() = G .edgesDBetween {x},(the_Vertices_of G) by GLIB_000:42;
reconsider EXXeb = (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) as Subset of (the_Edges_of G) ;
reconsider EXXfb = (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) as Subset of (the_Edges_of G) ;
A149: dom (EL | (G .edgesDBetween (the_Vertices_of G),{x})) = G .edgesDBetween (the_Vertices_of G),{x} by PARTFUN1:def 4;
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) implies e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ) & ( e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) ) )
hereby :: thesis: ( e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} implies e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) ) end;
assume A154: e in G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} ; :: thesis: e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x})
then A155: e DSJoins (the_Vertices_of G) \ {x},{x},G by GLIB_000:def 33;
then A156: (the_Source_of G) . e in (the_Vertices_of G) \ {x} by GLIB_000:def 18;
then not (the_Source_of G) . e in {x} by XBOOLE_0:def 5;
then not e DSJoins {x},{x},G by GLIB_000:def 18;
then A157: not e in G .edgesDBetween {x},{x} by GLIB_000:def 33;
(the_Target_of G) . e in {x} by A155, GLIB_000:def 18;
then e DSJoins the_Vertices_of G,{x},G by A154, A156, GLIB_000:def 18;
then e in G .edgesDBetween (the_Vertices_of G),{x} by GLIB_000:def 33;
hence e in (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) by A157, XBOOLE_0:def 5; :: thesis: verum
end;
then A158: (G .edgesDBetween (the_Vertices_of G),{x}) \ (G .edgesDBetween {x},{x}) = G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))} by TARSKI:2;
A159: dom (EL | EXXfb) = EXXfb by PARTFUN1:def 4;
A160: now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween (the_Vertices_of G),{x})) implies (EL | (G .edgesDBetween (the_Vertices_of G),{x})) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e )
assume e in dom (EL | (G .edgesDBetween (the_Vertices_of G),{x})) ; :: thesis: (EL | (G .edgesDBetween (the_Vertices_of G),{x})) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e
then A161: e in G .edgesDBetween (the_Vertices_of G),{x} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {x},{x} or not e in G .edgesDBetween {x},{x} ) ;
suppose A162: e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = EL . e
then not e in EXXfb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = (EL | (G .edgesDBetween {x},{x})) . e by A159, FUNCT_4:12
.= EL . e by A162, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = EL . e
then A163: e in EXXfb by A161, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e = (EL | EXXfb) . e by A159, FUNCT_4:14
.= EL . e by A163, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween (the_Vertices_of G),{x})) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) . e by A161, FUNCT_1:72; :: thesis: verum
end;
now
let e be set ; :: thesis: ( ( e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) implies e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ) & ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) ) )
hereby :: thesis: ( e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) implies e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) ) end;
assume A168: e in G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) ; :: thesis: e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x})
then A169: e DSJoins {x},(the_Vertices_of G) \ {x},G by GLIB_000:def 33;
then A170: (the_Target_of G) . e in (the_Vertices_of G) \ {x} by GLIB_000:def 18;
then not (the_Target_of G) . e in {x} by XBOOLE_0:def 5;
then not e DSJoins {x},{x},G by GLIB_000:def 18;
then A171: not e in G .edgesDBetween {x},{x} by GLIB_000:def 33;
(the_Source_of G) . e in {x} by A169, GLIB_000:def 18;
then e DSJoins {x}, the_Vertices_of G,G by A168, A170, GLIB_000:def 18;
then e in G .edgesDBetween {x},(the_Vertices_of G) by GLIB_000:def 33;
hence e in (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) by A171, XBOOLE_0:def 5; :: thesis: verum
end;
then A172: (G .edgesDBetween {x},(the_Vertices_of G)) \ (G .edgesDBetween {x},{x}) = G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}) by TARSKI:2;
A173: dom (EL | (G .edgesDBetween {x},(the_Vertices_of G))) = G .edgesDBetween {x},(the_Vertices_of G) by PARTFUN1:def 4;
A174: dom (EL | EXXeb) = EXXeb by PARTFUN1:def 4;
A175: now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesDBetween {x},(the_Vertices_of G))) implies (EL | (G .edgesDBetween {x},(the_Vertices_of G))) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e )
assume e in dom (EL | (G .edgesDBetween {x},(the_Vertices_of G))) ; :: thesis: (EL | (G .edgesDBetween {x},(the_Vertices_of G))) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e
then A176: e in G .edgesDBetween {x},(the_Vertices_of G) by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {x},{x} or not e in G .edgesDBetween {x},{x} ) ;
suppose A177: e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = EL . e
then not e in EXXeb by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = (EL | (G .edgesDBetween {x},{x})) . e by A174, FUNCT_4:12
.= EL . e by A177, FUNCT_1:72 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {x},{x} ; :: thesis: ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = EL . e
then A178: e in EXXeb by A176, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e = (EL | EXXeb) . e by A174, FUNCT_4:14
.= EL . e by A178, FUNCT_1:72 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesDBetween {x},(the_Vertices_of G))) . e = ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) . e by A176, FUNCT_1:72; :: thesis: verum
end;
A179: dom (EL | (G .edgesDBetween {x},{x})) = G .edgesDBetween {x},{x} by PARTFUN1:def 4;
then dom ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXfb)) = (G .edgesDBetween {x},{x}) \/ EXXfb by A159, FUNCT_4:def 1
.= (G .edgesDBetween {x},{x}) \/ (G .edgesDBetween (the_Vertices_of G),{x}) by XBOOLE_1:39
.= G .edgesDBetween (the_Vertices_of G),{x} by GLIB_000:41, XBOOLE_1:12 ;
then A180: Sum (EL | (G .edgesDBetween (the_Vertices_of G),{x})) = (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))}),{(choose (((the_Vertices_of G) \ V2) \ {sink}))}))) + (Sum (EL | (G .edgesDBetween {x},{x}))) by A158, A149, A160, FUNCT_1:9, GLIB_004:3;
dom ((EL | (G .edgesDBetween {x},{x})) +* (EL | EXXeb)) = (G .edgesDBetween {x},{x}) \/ EXXeb by A179, A174, FUNCT_4:def 1
.= (G .edgesDBetween {x},{x}) \/ (G .edgesDBetween {x},(the_Vertices_of G)) by XBOOLE_1:39
.= G .edgesDBetween {x},(the_Vertices_of G) by GLIB_000:41, XBOOLE_1:12 ;
then A181: Sum (EL | (G .edgesDBetween {x},(the_Vertices_of G))) = (Sum (EL | (G .edgesDBetween {(choose (((the_Vertices_of G) \ V2) \ {sink}))},((the_Vertices_of G) \ {(choose (((the_Vertices_of G) \ V2) \ {sink}))})))) + (Sum (EL | (G .edgesDBetween {x},{x}))) by A172, A173, A175, FUNCT_1:9, GLIB_004:3;
x .edgesIn() = G .edgesDBetween (the_Vertices_of G),{x} by GLIB_000:42;
then Sum (EL | (G .edgesDBetween (the_Vertices_of G),{x})) = Sum (EL | (G .edgesDBetween {x},(the_Vertices_of G))) by A1, A9, A68, A16, A148, Def2;
hence EL .flow source,sink = (Sum (EL | (G .edgesDBetween V2,((the_Vertices_of G) \ V2)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V2),V2))) by A17, A93, A139, A120, A112, A119, A118, A138, A147, A180, A181; :: thesis: verum
end;
hence S1[n + 1] ; :: thesis: verum
end;
now
set ESS = G .edgesDBetween {sink},{sink};
let V be Subset of (the_Vertices_of G); :: thesis: ( card ((the_Vertices_of G) \ V) = 1 & source in V & not sink in V implies EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) )
assume that
A182: card ((the_Vertices_of G) \ V) = 1 and
source in V and
A183: not sink in V ; :: thesis: EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V)))
reconsider EOUT = (G .edgesOutOf {sink}) \ (G .edgesDBetween {sink},{sink}) as Subset of (the_Edges_of G) ;
consider v being set such that
A184: (the_Vertices_of G) \ V = {v} by A182, CARD_2:60;
sink is Vertex of G by A1, Def2;
then sink in (the_Vertices_of G) \ V by A183, XBOOLE_0:def 5;
then A185: v = sink by A184, TARSKI:def 1;
A186: now
let x be set ; :: thesis: ( ( x in (the_Vertices_of G) \ {sink} implies x in V ) & ( x in V implies x in (the_Vertices_of G) \ {sink} ) )
hereby :: thesis: ( x in V implies x in (the_Vertices_of G) \ {sink} ) end;
assume A188: x in V ; :: thesis: x in (the_Vertices_of G) \ {sink}
then not x in {sink} by A183, TARSKI:def 1;
hence x in (the_Vertices_of G) \ {sink} by A188, XBOOLE_0:def 5; :: thesis: verum
end;
then A189: V = (the_Vertices_of G) \ {sink} by TARSKI:2;
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween ((the_Vertices_of G) \ V),V implies e in EOUT ) & ( e in EOUT implies e in G .edgesDBetween ((the_Vertices_of G) \ V),V ) )
assume A194: e in EOUT ; :: thesis: e in G .edgesDBetween ((the_Vertices_of G) \ V),V
(G .edgesOutOf {sink}) \ (G .edgesDBetween {sink},{sink}) is Subset of (G .edgesOutOf {sink}) ;
then A195: (the_Source_of G) . e in {sink} by A194, GLIB_000:def 29;
A196: not e in G .edgesDBetween {sink},{sink} by A194, XBOOLE_0:def 5;
then e DSJoins (the_Vertices_of G) \ V,V,G by A184, A185, A194, A195, GLIB_000:def 18;
hence e in G .edgesDBetween ((the_Vertices_of G) \ V),V by GLIB_000:def 33; :: thesis: verum
end;
then A198: G .edgesDBetween ((the_Vertices_of G) \ V),V = EOUT by TARSKI:2;
set EESS = EL | (G .edgesDBetween {sink},{sink});
reconsider EIN = (G .edgesInto {sink}) \ (G .edgesDBetween {sink},{sink}) as Subset of (the_Edges_of G) ;
A199: dom (EL | (G .edgesInto {sink})) = G .edgesInto {sink} by PARTFUN1:def 4;
now
let e be set ; :: thesis: ( ( e in G .edgesDBetween V,((the_Vertices_of G) \ V) implies e in EIN ) & ( e in EIN implies e in G .edgesDBetween V,((the_Vertices_of G) \ V) ) )
assume A204: e in EIN ; :: thesis: e in G .edgesDBetween V,((the_Vertices_of G) \ V)
(G .edgesInto {sink}) \ (G .edgesDBetween {sink},{sink}) is Subset of (G .edgesInto {sink}) ;
then A205: (the_Target_of G) . e in {sink} by A204, GLIB_000:def 28;
A206: not e in G .edgesDBetween {sink},{sink} by A204, XBOOLE_0:def 5;
then e DSJoins V,{sink},G by A204, A205, GLIB_000:def 18;
hence e in G .edgesDBetween V,((the_Vertices_of G) \ V) by A184, A185, GLIB_000:def 33; :: thesis: verum
end;
then A208: G .edgesDBetween V,((the_Vertices_of G) \ V) = EIN by TARSKI:2;
now end;
then A210: G .edgesDBetween {sink},{sink} c= G .edgesOutOf {sink} by TARSKI:def 3;
now end;
then A212: G .edgesDBetween {sink},{sink} c= G .edgesInto {sink} by TARSKI:def 3;
A213: dom (EL | (G .edgesDBetween {sink},{sink})) = G .edgesDBetween {sink},{sink} by PARTFUN1:def 4;
A214: dom (EL | EOUT) = EOUT by PARTFUN1:def 4;
A215: now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesOutOf {sink})) implies (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e )
assume A216: e in dom (EL | (G .edgesOutOf {sink})) ; :: thesis: (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e
then A217: e in G .edgesOutOf {sink} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {sink},{sink} or not e in G .edgesDBetween {sink},{sink} ) ;
suppose A218: e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = EL . e
then not e in EOUT by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = (EL | (G .edgesDBetween {sink},{sink})) . e by A214, FUNCT_4:12
.= EL . e by A213, A218, FUNCT_1:70 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = EL . e
then A219: e in EOUT by A217, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e = (EL | EOUT) . e by A214, FUNCT_4:14
.= EL . e by A214, A219, FUNCT_1:70 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesOutOf {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) . e by A216, FUNCT_1:70; :: thesis: verum
end;
A220: dom (EL | EIN) = EIN by PARTFUN1:def 4;
A221: now
let e be set ; :: thesis: ( e in dom (EL | (G .edgesInto {sink})) implies (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e )
assume A222: e in dom (EL | (G .edgesInto {sink})) ; :: thesis: (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e
then A223: e in G .edgesInto {sink} by PARTFUN1:def 4;
now
per cases ( e in G .edgesDBetween {sink},{sink} or not e in G .edgesDBetween {sink},{sink} ) ;
suppose A224: e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = EL . e
then not e in EIN by XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = (EL | (G .edgesDBetween {sink},{sink})) . e by A220, FUNCT_4:12
.= EL . e by A213, A224, FUNCT_1:70 ;
:: thesis: verum
end;
suppose not e in G .edgesDBetween {sink},{sink} ; :: thesis: ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = EL . e
then A225: e in EIN by A223, XBOOLE_0:def 5;
hence ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e = (EL | EIN) . e by A220, FUNCT_4:14
.= EL . e by A220, A225, FUNCT_1:70 ;
:: thesis: verum
end;
end;
end;
hence (EL | (G .edgesInto {sink})) . e = ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) . e by A222, FUNCT_1:70; :: thesis: verum
end;
A226: (G .edgesDBetween {sink},{sink}) \/ EIN = (G .edgesInto {sink}) \/ (G .edgesDBetween {sink},{sink}) by XBOOLE_1:39
.= G .edgesInto {sink} by A212, XBOOLE_1:12 ;
dom ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EIN)) = (G .edgesDBetween {sink},{sink}) \/ EIN by A213, A220, FUNCT_4:def 1;
then A227: Sum (EL | (G .edgesInto {sink})) = (Sum (EL | EIN)) + (Sum (EL | (G .edgesDBetween {sink},{sink}))) by A226, A199, A221, FUNCT_1:9, GLIB_004:3;
(G .edgesDBetween {sink},{sink}) \/ EOUT = (G .edgesOutOf {sink}) \/ (G .edgesDBetween {sink},{sink}) by XBOOLE_1:39
.= G .edgesOutOf {sink} by A210, XBOOLE_1:12 ;
then A228: dom ((EL | (G .edgesDBetween {sink},{sink})) +* (EL | EOUT)) = G .edgesOutOf {sink} by A213, A214, FUNCT_4:def 1;
dom (EL | (G .edgesOutOf {sink})) = G .edgesOutOf {sink} by PARTFUN1:def 4;
then EL .flow source,sink = ((Sum (EL | EIN)) + (Sum (EL | (G .edgesDBetween {sink},{sink})))) - ((Sum (EL | (G .edgesDBetween {sink},{sink}))) + (Sum (EL | EOUT))) by A227, A228, A215, FUNCT_1:9, GLIB_004:3
.= (Sum (EL | EIN)) - (Sum (EL | EOUT)) ;
hence EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) by A208, A198; :: thesis: verum
end;
then A229: S1[1] ;
for n being non empty Nat holds S1[n] from NAT_1:sch 10(A229, A6);
hence EL .flow source,sink = (Sum (EL | (G .edgesDBetween V,((the_Vertices_of G) \ V)))) - (Sum (EL | (G .edgesDBetween ((the_Vertices_of G) \ V),V))) by A2, A3, A4; :: thesis: verum