theorem Th3:
for
i,
j being
Nat st
i > (i -' 1) + j holds
j = 0
Th7:
for p being FinSequence
for n being Nat st n in dom p holds
mid (p,n,n) = <*(p . n)*>
by JORDAN4:15;
Th8:
for p being FinSequence
for k1, k2 being Nat st k1 < k2 & k1 in dom p holds
mid (p,k1,k2) = <*(p . k1)*> ^ (mid (p,(k1 + 1),k2))
by FINSEQ_6:126;
theorem
for
G being
_Graph for
W being
Walk of
G for
u,
e,
v being
object st
e Joins u,
v,
G &
e in W .edges() & not
G .walkOf (
u,
e,
v)
is_odd_substring_of W,
0 holds
G .walkOf (
v,
e,
u)
is_odd_substring_of W,
0
definition
let G be
_Graph;
let W1,
W2 be
Walk of
G;
existence
( ( W2 is_odd_substring_of W1, 0 implies ex b1 being odd Element of NAT st
( b1 <= len W1 & ex k being even Nat st
( b1 = k + 1 & ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (k + n) = W2 . n ) & ( for l being even Nat st ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (l + n) = W2 . n ) holds
k <= l ) ) ) ) & ( not W2 is_odd_substring_of W1, 0 implies ex b1 being odd Element of NAT st b1 = len W1 ) )
uniqueness
for b1, b2 being odd Element of NAT holds
( ( W2 is_odd_substring_of W1, 0 & b1 <= len W1 & ex k being even Nat st
( b1 = k + 1 & ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (k + n) = W2 . n ) & ( for l being even Nat st ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (l + n) = W2 . n ) holds
k <= l ) ) & b2 <= len W1 & ex k being even Nat st
( b2 = k + 1 & ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (k + n) = W2 . n ) & ( for l being even Nat st ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (l + n) = W2 . n ) holds
k <= l ) ) implies b1 = b2 ) & ( not W2 is_odd_substring_of W1, 0 & b1 = len W1 & b2 = len W1 implies b1 = b2 ) )
consistency
for b1 being odd Element of NAT holds verum
;
existence
( ( W2 is_odd_substring_of W1, 0 implies ex b1 being odd Element of NAT st
( b1 <= len W1 & ex k being even Nat st
( b1 = k + (len W2) & ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (k + n) = W2 . n ) & ( for l being even Nat st ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (l + n) = W2 . n ) holds
k <= l ) ) ) ) & ( not W2 is_odd_substring_of W1, 0 implies ex b1 being odd Element of NAT st b1 = len W1 ) )
uniqueness
for b1, b2 being odd Element of NAT holds
( ( W2 is_odd_substring_of W1, 0 & b1 <= len W1 & ex k being even Nat st
( b1 = k + (len W2) & ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (k + n) = W2 . n ) & ( for l being even Nat st ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (l + n) = W2 . n ) holds
k <= l ) ) & b2 <= len W1 & ex k being even Nat st
( b2 = k + (len W2) & ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (k + n) = W2 . n ) & ( for l being even Nat st ( for n being Nat st 1 <= n & n <= len W2 holds
W1 . (l + n) = W2 . n ) holds
k <= l ) ) implies b1 = b2 ) & ( not W2 is_odd_substring_of W1, 0 & b1 = len W1 & b2 = len W1 implies b1 = b2 ) )
consistency
for b1 being odd Element of NAT holds verum
;
end;
definition
let G be
_Graph;
let W1,
W3 be
Walk of
G;
let e be
object ;
correctness
coherence
( ( e Joins W3 .first() ,W3 .last() ,G & G .walkOf ((W3 .first()),e,(W3 .last())) is_odd_substring_of W1, 0 implies W1 .replaceWith ((G .walkOf ((W3 .first()),e,(W3 .last()))),W3) is Walk of G ) & ( ( not e Joins W3 .first() ,W3 .last() ,G or not G .walkOf ((W3 .first()),e,(W3 .last())) is_odd_substring_of W1, 0 ) implies W1 is Walk of G ) );
consistency
for b1 being Walk of G holds verum;
;
end;
::
deftheorem Def6 defines
.replaceEdgeWith GLIB_006:def 6 :
for G being _Graph
for W1, W3 being Walk of G
for e being object holds
( ( e Joins W3 .first() ,W3 .last() ,G & G .walkOf ((W3 .first()),e,(W3 .last())) is_odd_substring_of W1, 0 implies W1 .replaceEdgeWith (e,W3) = W1 .replaceWith ((G .walkOf ((W3 .first()),e,(W3 .last()))),W3) ) & ( ( not e Joins W3 .first() ,W3 .last() ,G or not G .walkOf ((W3 .first()),e,(W3 .last())) is_odd_substring_of W1, 0 ) implies W1 .replaceEdgeWith (e,W3) = W1 ) );
definition
let G be
_Graph;
let W1,
W2 be
Walk of
G;
let e be
object ;
correctness
coherence
( ( W2 is_odd_substring_of W1, 0 & e Joins W2 .first() ,W2 .last() ,G implies W1 .replaceWith (W2,(G .walkOf ((W2 .first()),e,(W2 .last())))) is Walk of G ) & ( ( not W2 is_odd_substring_of W1, 0 or not e Joins W2 .first() ,W2 .last() ,G ) implies W1 is Walk of G ) );
consistency
for b1 being Walk of G holds verum;
;
end;
::
deftheorem Def7 defines
.replaceWithEdge GLIB_006:def 7 :
for G being _Graph
for W1, W2 being Walk of G
for e being object holds
( ( W2 is_odd_substring_of W1, 0 & e Joins W2 .first() ,W2 .last() ,G implies W1 .replaceWithEdge (W2,e) = W1 .replaceWith (W2,(G .walkOf ((W2 .first()),e,(W2 .last())))) ) & ( ( not W2 is_odd_substring_of W1, 0 or not e Joins W2 .first() ,W2 .last() ,G ) implies W1 .replaceWithEdge (W2,e) = W1 ) );
theorem Th42:
for
G being
_Graph for
W1,
W3 being
Walk of
G for
e being
object st
e Joins W3 .first() ,
W3 .last() ,
G &
G .walkOf (
(W3 .first()),
e,
(W3 .last()))
is_odd_substring_of W1,
0 holds
(
e in (W1 .replaceEdgeWith (e,W3)) .edges() iff (
e in (W1 .cut (1,(W1 .findFirstVertex (G .walkOf ((W3 .first()),e,(W3 .last())))))) .edges() or
e in W3 .edges() or
e in (W1 .cut ((W1 .findLastVertex (G .walkOf ((W3 .first()),e,(W3 .last())))),(len W1))) .edges() ) )
theorem Th74:
for
G2 being
_Graph for
G1 being
Supergraph of
G2 for
x,
y being
set for
e being
object holds
( (
e Joins x,
y,
G2 implies
e Joins x,
y,
G1 ) & (
e DJoins x,
y,
G2 implies
e DJoins x,
y,
G1 ) & (
e SJoins x,
y,
G2 implies
e SJoins x,
y,
G1 ) & (
e DSJoins x,
y,
G2 implies
e DSJoins x,
y,
G1 ) )
Lm1:
for X being set holds {X} \ X <> {}
::
deftheorem Def12 defines
addAdjVertex GLIB_006:def 12 :
for G being _Graph
for v1, e, v2 being object
for b5 being Supergraph of G holds
( ( v1 in the_Vertices_of G & not v2 in the_Vertices_of G & not e in the_Edges_of G implies ( b5 is addAdjVertex of G,v1,e,v2 iff ( the_Vertices_of b5 = (the_Vertices_of G) \/ {v2} & the_Edges_of b5 = (the_Edges_of G) \/ {e} & the_Source_of b5 = (the_Source_of G) +* (e .--> v1) & the_Target_of b5 = (the_Target_of G) +* (e .--> v2) ) ) ) & ( not v1 in the_Vertices_of G & v2 in the_Vertices_of G & not e in the_Edges_of G implies ( b5 is addAdjVertex of G,v1,e,v2 iff ( the_Vertices_of b5 = (the_Vertices_of G) \/ {v1} & the_Edges_of b5 = (the_Edges_of G) \/ {e} & the_Source_of b5 = (the_Source_of G) +* (e .--> v1) & the_Target_of b5 = (the_Target_of G) +* (e .--> v2) ) ) ) & ( ( not v1 in the_Vertices_of G or v2 in the_Vertices_of G or e in the_Edges_of G ) & ( v1 in the_Vertices_of G or not v2 in the_Vertices_of G or e in the_Edges_of G ) implies ( b5 is addAdjVertex of G,v1,e,v2 iff b5 == G ) ) );