:: GLIB_005 semantic presentation :: Showing IDV graph ... (Click the Palm Trees again to close it)
:: deftheorem Def1 defines complete-elabeled GLIB_005:def 1 :
:: deftheorem Def2 defines complete-elabeled GLIB_005:def 2 :
:: deftheorem Def3 defines natural-weighted GLIB_005:def 3 :
:: deftheorem Def4 defines natural-elabeled GLIB_005:def 4 :
:: deftheorem Def5 defines natural-weighted GLIB_005:def 5 :
:: deftheorem Def6 defines natural-elabeled GLIB_005:def 6 :
:: deftheorem Def7 defines has_valid_flow_from GLIB_005:def 7 :
:: deftheorem Def8 defines .flow GLIB_005:def 8 :
:: deftheorem Def9 defines has_maximum_flow_from GLIB_005:def 9 :
:: deftheorem Def10 defines is_forward_labeling_in GLIB_005:def 10 :
:: deftheorem Def11 defines is_backward_labeling_in GLIB_005:def 11 :
:: deftheorem Def12 defines augmenting GLIB_005:def 12 :
theorem :: GLIB_005:1 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th2: :: GLIB_005:2 :: Showing IDV graph ... (Click the Palm Tree again to close it)
:: deftheorem Def13 defines AP:NextBestEdges GLIB_005:def 13 :
:: deftheorem Def14 defines AP:Step GLIB_005:def 14 :
:: deftheorem Def15 defines AP:CompSeq GLIB_005:def 15 :
theorem Th3: :: GLIB_005:3 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th4: :: GLIB_005:4 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th5: :: GLIB_005:5 :: Showing IDV graph ... (Click the Palm Tree again to close it)
:: deftheorem defines AP:FindAugPath GLIB_005:def 16 :
theorem Th6: :: GLIB_005:6 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th7: :: GLIB_005:7 :: Showing IDV graph ... (Click the Palm Tree again to close it)
definition
let G be
finite real-weighted real-elabeled WEGraph;
let source,
sink be
Vertex of
G;
func AP:GetAugPath G,
source,
sink -> vertex-distinct augmenting Path of
G means :
Def17:
:: GLIB_005:def 17
(
it is_Walk_from source,
sink & ( for
n being
even Nat st
n in dom it holds
it . n = (the_VLabel_of (AP:FindAugPath G,source)) . (it . (n + 1)) ) )
if sink in (AP:FindAugPath G,source) .labeledV() otherwise it = G .walkOf source;
existence
( ( sink in (AP:FindAugPath G,source) .labeledV() implies ex b1 being vertex-distinct augmenting Path of G st
( b1 is_Walk_from source,sink & ( for n being even Nat st n in dom b1 holds
b1 . n = (the_VLabel_of (AP:FindAugPath G,source)) . (b1 . (n + 1)) ) ) ) & ( not sink in (AP:FindAugPath G,source) .labeledV() implies ex b1 being vertex-distinct augmenting Path of G st b1 = G .walkOf source ) )
uniqueness
for b1, b2 being vertex-distinct augmenting Path of G holds
( ( sink in (AP:FindAugPath G,source) .labeledV() & b1 is_Walk_from source,sink & ( for n being even Nat st n in dom b1 holds
b1 . n = (the_VLabel_of (AP:FindAugPath G,source)) . (b1 . (n + 1)) ) & b2 is_Walk_from source,sink & ( for n being even Nat st n in dom b2 holds
b2 . n = (the_VLabel_of (AP:FindAugPath G,source)) . (b2 . (n + 1)) ) implies b1 = b2 ) & ( not sink in (AP:FindAugPath G,source) .labeledV() & b1 = G .walkOf source & b2 = G .walkOf source implies b1 = b2 ) )
consistency
for b1 being vertex-distinct augmenting Path of G holds verum
;
end;
:: deftheorem Def17 defines AP:GetAugPath GLIB_005:def 17 :
theorem Th8: :: GLIB_005:8 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th9: :: GLIB_005:9 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th10: :: GLIB_005:10 :: Showing IDV graph ... (Click the Palm Tree again to close it)
definition
let G be
real-weighted real-elabeled WEGraph;
let W be
augmenting Walk of
G;
func W .flowSeq() -> FinSequence of
REAL means :
Def18:
:: GLIB_005:def 18
(
dom it = dom (W .edgeSeq() ) & ( for
n being
Nat st
n in dom it holds
( (
W . (2 * n) DJoins W . ((2 * n) - 1),
W . ((2 * n) + 1),
G implies
it . n = ((the_Weight_of G) . (W . (2 * n))) - ((the_ELabel_of G) . (W . (2 * n))) ) & ( not
W . (2 * n) DJoins W . ((2 * n) - 1),
W . ((2 * n) + 1),
G implies
it . n = (the_ELabel_of G) . (W . (2 * n)) ) ) ) );
existence
ex b1 being FinSequence of REAL st
( dom b1 = dom (W .edgeSeq() ) & ( for n being Nat st n in dom b1 holds
( ( W . (2 * n) DJoins W . ((2 * n) - 1),W . ((2 * n) + 1),G implies b1 . n = ((the_Weight_of G) . (W . (2 * n))) - ((the_ELabel_of G) . (W . (2 * n))) ) & ( not W . (2 * n) DJoins W . ((2 * n) - 1),W . ((2 * n) + 1),G implies b1 . n = (the_ELabel_of G) . (W . (2 * n)) ) ) ) )
uniqueness
for b1, b2 being FinSequence of REAL st dom b1 = dom (W .edgeSeq() ) & ( for n being Nat st n in dom b1 holds
( ( W . (2 * n) DJoins W . ((2 * n) - 1),W . ((2 * n) + 1),G implies b1 . n = ((the_Weight_of G) . (W . (2 * n))) - ((the_ELabel_of G) . (W . (2 * n))) ) & ( not W . (2 * n) DJoins W . ((2 * n) - 1),W . ((2 * n) + 1),G implies b1 . n = (the_ELabel_of G) . (W . (2 * n)) ) ) ) & dom b2 = dom (W .edgeSeq() ) & ( for n being Nat st n in dom b2 holds
( ( W . (2 * n) DJoins W . ((2 * n) - 1),W . ((2 * n) + 1),G implies b2 . n = ((the_Weight_of G) . (W . (2 * n))) - ((the_ELabel_of G) . (W . (2 * n))) ) & ( not W . (2 * n) DJoins W . ((2 * n) - 1),W . ((2 * n) + 1),G implies b2 . n = (the_ELabel_of G) . (W . (2 * n)) ) ) ) holds
b1 = b2
end;
:: deftheorem Def18 defines .flowSeq() GLIB_005:def 18 :
:: deftheorem Def19 defines .tolerance() GLIB_005:def 19 :
definition
let G be
real-weighted real-elabeled WEGraph;
let P be
augmenting Path of
G;
func FF:PushFlow G,
P -> ManySortedSet of
the_Edges_of G means :
Def20:
:: GLIB_005:def 20
( ( for
e being
set st
e in the_Edges_of G & not
e in P .edges() holds
it . e = (the_ELabel_of G) . e ) & ( for
n being
odd Nat st
n < len P holds
( (
P . (n + 1) DJoins P . n,
P . (n + 2),
G implies
it . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) + (P .tolerance() ) ) & ( not
P . (n + 1) DJoins P . n,
P . (n + 2),
G implies
it . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) - (P .tolerance() ) ) ) ) );
existence
ex b1 being ManySortedSet of the_Edges_of G st
( ( for e being set st e in the_Edges_of G & not e in P .edges() holds
b1 . e = (the_ELabel_of G) . e ) & ( for n being odd Nat st n < len P holds
( ( P . (n + 1) DJoins P . n,P . (n + 2),G implies b1 . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) + (P .tolerance() ) ) & ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies b1 . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) - (P .tolerance() ) ) ) ) )
uniqueness
for b1, b2 being ManySortedSet of the_Edges_of G st ( for e being set st e in the_Edges_of G & not e in P .edges() holds
b1 . e = (the_ELabel_of G) . e ) & ( for n being odd Nat st n < len P holds
( ( P . (n + 1) DJoins P . n,P . (n + 2),G implies b1 . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) + (P .tolerance() ) ) & ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies b1 . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) - (P .tolerance() ) ) ) ) & ( for e being set st e in the_Edges_of G & not e in P .edges() holds
b2 . e = (the_ELabel_of G) . e ) & ( for n being odd Nat st n < len P holds
( ( P . (n + 1) DJoins P . n,P . (n + 2),G implies b2 . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) + (P .tolerance() ) ) & ( not P . (n + 1) DJoins P . n,P . (n + 2),G implies b2 . (P . (n + 1)) = ((the_ELabel_of G) . (P . (n + 1))) - (P .tolerance() ) ) ) ) holds
b1 = b2
end;
:: deftheorem Def20 defines FF:PushFlow GLIB_005:def 20 :
:: deftheorem defines FF:AugmentPath GLIB_005:def 21 :
definition
let G be
finite real-weighted real-elabeled complete-elabeled WEGraph;
let sink,
source be
Vertex of
G;
func FF:Step G,
source,
sink -> finite real-weighted real-elabeled complete-elabeled WEGraph equals :
Def22:
:: GLIB_005:def 22
FF:AugmentPath G,
(AP:GetAugPath G,source,sink) if sink in (AP:FindAugPath G,source) .labeledV() otherwise G;
coherence
( ( sink in (AP:FindAugPath G,source) .labeledV() implies FF:AugmentPath G,(AP:GetAugPath G,source,sink) is finite real-weighted real-elabeled complete-elabeled WEGraph ) & ( not sink in (AP:FindAugPath G,source) .labeledV() implies G is finite real-weighted real-elabeled complete-elabeled WEGraph ) )
;
consistency
for b1 being finite real-weighted real-elabeled complete-elabeled WEGraph holds verum
;
end;
:: deftheorem Def22 defines FF:Step GLIB_005:def 22 :
for
G being
finite real-weighted real-elabeled complete-elabeled WEGraph for
sink,
source being
Vertex of
G holds
( (
sink in (AP:FindAugPath G,source) .labeledV() implies
FF:Step G,
source,
sink = FF:AugmentPath G,
(AP:GetAugPath G,source,sink) ) & ( not
sink in (AP:FindAugPath G,source) .labeledV() implies
FF:Step G,
source,
sink = G ) );
definition
let G be
finite real-weighted WGraph;
let source,
sink be
Vertex of
G;
func FF:CompSeq G,
source,
sink -> finite real-weighted real-elabeled complete-elabeled WEGraphSeq means :
Def23:
:: GLIB_005:def 23
(
it .-> 0
= G .set ELabelSelector ,
((the_Edges_of G) --> 0) & ( for
n being
Nat ex
source',
sink' being
Vertex of
(it .-> n) st
(
source' = source &
sink' = sink &
it .-> (n + 1) = FF:Step (it .-> n),
source',
sink' ) ) );
existence
ex b1 being finite real-weighted real-elabeled complete-elabeled WEGraphSeq st
( b1 .-> 0 = G .set ELabelSelector ,((the_Edges_of G) --> 0) & ( for n being Nat ex source', sink' being Vertex of (b1 .-> n) st
( source' = source & sink' = sink & b1 .-> (n + 1) = FF:Step (b1 .-> n),source',sink' ) ) )
uniqueness
for b1, b2 being finite real-weighted real-elabeled complete-elabeled WEGraphSeq st b1 .-> 0 = G .set ELabelSelector ,((the_Edges_of G) --> 0) & ( for n being Nat ex source', sink' being Vertex of (b1 .-> n) st
( source' = source & sink' = sink & b1 .-> (n + 1) = FF:Step (b1 .-> n),source',sink' ) ) & b2 .-> 0 = G .set ELabelSelector ,((the_Edges_of G) --> 0) & ( for n being Nat ex source', sink' being Vertex of (b2 .-> n) st
( source' = source & sink' = sink & b2 .-> (n + 1) = FF:Step (b2 .-> n),source',sink' ) ) holds
b1 = b2
end;
:: deftheorem Def23 defines FF:CompSeq GLIB_005:def 23 :
:: deftheorem defines FF:MaxFlow GLIB_005:def 24 :
theorem Th11: :: GLIB_005:11 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th12: :: GLIB_005:12 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th13: :: GLIB_005:13 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th14: :: GLIB_005:14 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th15: :: GLIB_005:15 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th16: :: GLIB_005:16 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th17: :: GLIB_005:17 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th18: :: GLIB_005:18 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th19: :: GLIB_005:19 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem Th20: :: GLIB_005:20 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: GLIB_005:21 :: Showing IDV graph ... (Click the Palm Tree again to close it)
theorem :: GLIB_005:22 :: Showing IDV graph ... (Click the Palm Tree again to close it)