:: GLIB_000 semantic presentation
:: deftheorem Def1 defines GraphStruct GLIB_000:def 1 :
:: deftheorem Def2 defines VertexSelector GLIB_000:def 2 :
:: deftheorem Def3 defines EdgeSelector GLIB_000:def 3 :
:: deftheorem Def4 defines SourceSelector GLIB_000:def 4 :
:: deftheorem Def5 defines TargetSelector GLIB_000:def 5 :
:: deftheorem Def6 defines _GraphSelectors GLIB_000:def 6 :
:: deftheorem Def7 defines the_Vertices_of GLIB_000:def 7 :
:: deftheorem Def8 defines the_Edges_of GLIB_000:def 8 :
:: deftheorem Def9 defines the_Source_of GLIB_000:def 9 :
:: deftheorem Def10 defines the_Target_of GLIB_000:def 10 :
:: deftheorem Def11 defines [Graph-like] GLIB_000:def 11 :
Lemma31:
for G being _Graph holds
( dom (the_Source_of G) = the_Edges_of G & dom (the_Target_of G) = the_Edges_of G & rng (the_Source_of G) c= the_Vertices_of G & rng (the_Target_of G) c= the_Vertices_of G )
by FUNCT_2:def 1;
definition
let V be non
empty set ;
let E be
set ;
let S be
Function of
E,
V,
T be
Function of
E,
V;
func createGraph c1,
c2,
c3,
c4 -> _Graph equals :: GLIB_000:def 12
<*V,E,S,T*>;
coherence
<*V,E,S,T*> is _Graph
end;
:: deftheorem Def12 defines createGraph GLIB_000:def 12 :
Lemma33:
for V being non empty set
for E being set
for S, T being Function of E,V holds
( the_Vertices_of (createGraph V,E,S,T) = V & the_Edges_of (createGraph V,E,S,T) = E & the_Source_of (createGraph V,E,S,T) = S & the_Target_of (createGraph V,E,S,T) = T )
by FINSEQ_4:91;
:: deftheorem Def13 defines .set GLIB_000:def 13 :
:: deftheorem Def14 defines .strict GLIB_000:def 14 :
Lemma38:
for GS being GraphStruct holds
( GS is [Graph-like] iff ( _GraphSelectors c= dom GS & not the_Vertices_of GS is empty & the_Source_of GS is Function of the_Edges_of GS, the_Vertices_of GS & the_Target_of GS is Function of the_Edges_of GS, the_Vertices_of GS ) )
:: deftheorem Def15 defines Joins GLIB_000:def 15 :
:: deftheorem Def16 defines DJoins GLIB_000:def 16 :
:: deftheorem Def17 defines SJoins GLIB_000:def 17 :
:: deftheorem Def18 defines DSJoins GLIB_000:def 18 :
Lemma50:
for G being _Graph
for e, x, y being set holds
( e Joins x,y,G iff ( e DJoins x,y,G or e DJoins y,x,G ) )
definition
let G be
_Graph;
attr a1 is
finite means :
Def19:
:: GLIB_000:def 19
(
the_Vertices_of G is
finite &
the_Edges_of G is
finite );
attr a1 is
loopless means :
Def20:
:: GLIB_000:def 20
for
e being
set holds
( not
e in the_Edges_of G or not
(the_Source_of G) . e = (the_Target_of G) . e );
attr a1 is
trivial means :
Def21:
:: GLIB_000:def 21
Card (the_Vertices_of G) = 1;
attr a1 is
non-multi means :
Def22:
:: GLIB_000:def 22
for
e1,
e2,
v1,
v2 being
set st
e1 Joins v1,
v2,
G &
e2 Joins v1,
v2,
G holds
e1 = e2;
attr a1 is
non-Dmulti means :
Def23:
:: GLIB_000:def 23
for
e1,
e2,
v1,
v2 being
set st
e1 DJoins v1,
v2,
G &
e2 DJoins v1,
v2,
G holds
e1 = e2;
end;
:: deftheorem Def19 defines finite GLIB_000:def 19 :
:: deftheorem Def20 defines loopless GLIB_000:def 20 :
:: deftheorem Def21 defines trivial GLIB_000:def 21 :
:: deftheorem Def22 defines non-multi GLIB_000:def 22 :
:: deftheorem Def23 defines non-Dmulti GLIB_000:def 23 :
:: deftheorem Def24 defines simple GLIB_000:def 24 :
:: deftheorem Def25 defines Dsimple GLIB_000:def 25 :
Lemma62:
for G being _Graph st the_Edges_of G = {} holds
G is simple
:: deftheorem Def26 defines .order() GLIB_000:def 26 :
:: deftheorem Def27 defines .size() GLIB_000:def 27 :
:: deftheorem Def28 defines .edgesInto GLIB_000:def 28 :
:: deftheorem Def29 defines .edgesOutOf GLIB_000:def 29 :
:: deftheorem Def30 defines .edgesInOut GLIB_000:def 30 :
:: deftheorem Def31 defines .edgesBetween GLIB_000:def 31 :
definition
let G be
_Graph;
let X be
set ,
Y be
set ;
func c1 .edgesBetween c2,
c3 -> Subset of
(the_Edges_of a1) means :
Def32:
:: GLIB_000:def 32
for
e being
set holds
(
e in it iff
e SJoins X,
Y,
G );
existence
ex b1 being Subset of (the_Edges_of G) st
for e being set holds
( e in b1 iff e SJoins X,Y,G )
uniqueness
for b1, b2 being Subset of (the_Edges_of G) st ( for e being set holds
( e in b1 iff e SJoins X,Y,G ) ) & ( for e being set holds
( e in b2 iff e SJoins X,Y,G ) ) holds
b1 = b2
func c1 .edgesDBetween c2,
c3 -> Subset of
(the_Edges_of a1) means :
Def33:
:: GLIB_000:def 33
for
e being
set holds
(
e in it iff
e DSJoins X,
Y,
G );
existence
ex b1 being Subset of (the_Edges_of G) st
for e being set holds
( e in b1 iff e DSJoins X,Y,G )
uniqueness
for b1, b2 being Subset of (the_Edges_of G) st ( for e being set holds
( e in b1 iff e DSJoins X,Y,G ) ) & ( for e being set holds
( e in b2 iff e DSJoins X,Y,G ) ) holds
b1 = b2
end;
:: deftheorem Def32 defines .edgesBetween GLIB_000:def 32 :
:: deftheorem Def33 defines .edgesDBetween GLIB_000:def 33 :
:: deftheorem Def34 defines Subgraph GLIB_000:def 34 :
Lemma83:
for G being _Graph holds G is Subgraph of G
Lemma84:
for G1 being _Graph
for G2 being Subgraph of G1
for x, y, e being set st e Joins x,y,G2 holds
e Joins x,y,G1
:: deftheorem Def35 defines spanning GLIB_000:def 35 :
:: deftheorem Def36 defines == GLIB_000:def 36 :
:: deftheorem Def37 defines c= GLIB_000:def 37 :
:: deftheorem Def38 defines c< GLIB_000:def 38 :
for
G1,
G2 being
_Graph holds
(
G1 c< G2 iff (
G1 c= G2 &
G1 != G2 ) );
:: deftheorem Def39 defines inducedSubgraph GLIB_000:def 39 :
Lemma93:
for G being _Graph
for e, X being set holds
( ( e in the_Edges_of G & (the_Source_of G) . e in X & (the_Target_of G) . e in X ) iff e in G .edgesBetween X )
Lemma94:
for G being _Graph holds the_Edges_of G = G .edgesBetween (the_Vertices_of G)
:: deftheorem Def40 defines .edgesIn() GLIB_000:def 40 :
:: deftheorem Def41 defines .edgesOut() GLIB_000:def 41 :
:: deftheorem Def42 defines .edgesInOut() GLIB_000:def 42 :
Lemma98:
for G being _Graph
for v being Vertex of G
for e being set holds
( e in v .edgesIn() iff ( e in the_Edges_of G & (the_Target_of G) . e = v ) )
Lemma99:
for G being _Graph
for v being Vertex of G
for e being set holds
( e in v .edgesOut() iff ( e in the_Edges_of G & (the_Source_of G) . e = v ) )
:: deftheorem Def43 defines .adj GLIB_000:def 43 :
:: deftheorem Def44 defines .inDegree() GLIB_000:def 44 :
:: deftheorem Def45 defines .outDegree() GLIB_000:def 45 :
:: deftheorem Def46 defines .degree() GLIB_000:def 46 :
:: deftheorem Def47 defines .degree() GLIB_000:def 47 :
:: deftheorem Def48 defines .inNeighbors() GLIB_000:def 48 :
:: deftheorem Def49 defines .outNeighbors() GLIB_000:def 49 :
:: deftheorem Def50 defines .allNeighbors() GLIB_000:def 50 :
:: deftheorem Def51 defines isolated GLIB_000:def 51 :
:: deftheorem Def52 defines isolated GLIB_000:def 52 :
:: deftheorem Def53 defines endvertex GLIB_000:def 53 :
:: deftheorem Def54 defines endvertex GLIB_000:def 54 :
:: deftheorem Def55 defines Graph-yielding GLIB_000:def 55 :
:: deftheorem Def56 defines halting GLIB_000:def 56 :
:: deftheorem Def57 defines .Lifespan() GLIB_000:def 57 :
:: deftheorem Def58 defines .Result() GLIB_000:def 58 :
:: deftheorem Def59 GLIB_000:def 59 :
canceled;
:: deftheorem Def60 defines finite GLIB_000:def 60 :
:: deftheorem Def61 defines loopless GLIB_000:def 61 :
:: deftheorem Def62 defines trivial GLIB_000:def 62 :
:: deftheorem Def63 defines non-trivial GLIB_000:def 63 :
:: deftheorem Def64 defines non-multi GLIB_000:def 64 :
:: deftheorem Def65 defines non-Dmulti GLIB_000:def 65 :
:: deftheorem Def66 defines simple GLIB_000:def 66 :
:: deftheorem Def67 defines Dsimple GLIB_000:def 67 :
:: deftheorem Def68 defines halting GLIB_000:def 68 :
theorem Th1: :: GLIB_000:1
theorem Th2: :: GLIB_000:2
theorem Th3: :: GLIB_000:3
theorem Th4: :: GLIB_000:4
theorem Th5: :: GLIB_000:5
theorem Th6: :: GLIB_000:6
canceled;
theorem Th7: :: GLIB_000:7
theorem Th8: :: GLIB_000:8
for
V being non
empty set for
E being
set for
S,
T being
Function of
E,
V holds
(
the_Vertices_of (createGraph V,E,S,T) = V &
the_Edges_of (createGraph V,E,S,T) = E &
the_Source_of (createGraph V,E,S,T) = S &
the_Target_of (createGraph V,E,S,T) = T )
by ;
theorem Th9: :: GLIB_000:9
theorem Th10: :: GLIB_000:10
theorem Th11: :: GLIB_000:11
theorem Th12: :: GLIB_000:12
theorem Th13: :: GLIB_000:13
theorem Th14: :: GLIB_000:14
theorem Th15: :: GLIB_000:15
for
GS being
GraphStruct for
x,
y being
set for
n1,
n2 being
Nat st
n1 <> n2 holds
(
n1 in dom ((GS .set n1,x) .set n2,y) &
n2 in dom ((GS .set n1,x) .set n2,y) &
((GS .set n1,x) .set n2,y) . n1 = x &
((GS .set n1,x) .set n2,y) . n2 = y )
theorem Th16: :: GLIB_000:16
theorem Th17: :: GLIB_000:17
theorem Th18: :: GLIB_000:18
for
G being
_Graph for
e,
x1,
y1,
x2,
y2 being
set st
e Joins x1,
y1,
G &
e Joins x2,
y2,
G & not (
x1 = x2 &
y1 = y2 ) holds
(
x1 = y2 &
y1 = x2 )
theorem Th19: :: GLIB_000:19
theorem Th20: :: GLIB_000:20
theorem Th21: :: GLIB_000:21
theorem Th22: :: GLIB_000:22
theorem Th23: :: GLIB_000:23
theorem Th24: :: GLIB_000:24
theorem Th25: :: GLIB_000:25
theorem Th26: :: GLIB_000:26
theorem Th27: :: GLIB_000:27
theorem Th28: :: GLIB_000:28
theorem Th29: :: GLIB_000:29
theorem Th30: :: GLIB_000:30
theorem Th31: :: GLIB_000:31
theorem Th32: :: GLIB_000:32
theorem Th33: :: GLIB_000:33
theorem Th34: :: GLIB_000:34
theorem Th35: :: GLIB_000:35
theorem Th36: :: GLIB_000:36
theorem Th37: :: GLIB_000:37
theorem Th38: :: GLIB_000:38
theorem Th39: :: GLIB_000:39
theorem Th40: :: GLIB_000:40
theorem Th41: :: GLIB_000:41
theorem Th42: :: GLIB_000:42
theorem Th43: :: GLIB_000:43
theorem Th44: :: GLIB_000:44
theorem Th45: :: GLIB_000:45
theorem Th46: :: GLIB_000:46
theorem Th47: :: GLIB_000:47
theorem Th48: :: GLIB_000:48
theorem Th49: :: GLIB_000:49
theorem Th50: :: GLIB_000:50
theorem Th51: :: GLIB_000:51
theorem Th52: :: GLIB_000:52
theorem Th53: :: GLIB_000:53
theorem Th54: :: GLIB_000:54
theorem Th55: :: GLIB_000:55
theorem Th56: :: GLIB_000:56
theorem Th57: :: GLIB_000:57
theorem Th58: :: GLIB_000:58
theorem Th59: :: GLIB_000:59
theorem Th60: :: GLIB_000:60
theorem Th61: :: GLIB_000:61
theorem Th62: :: GLIB_000:62
theorem Th63: :: GLIB_000:63
theorem Th64: :: GLIB_000:64
theorem Th65: :: GLIB_000:65
theorem Th66: :: GLIB_000:66
theorem Th67: :: GLIB_000:67
theorem Th68: :: GLIB_000:68
theorem Th69: :: GLIB_000:69
theorem Th70: :: GLIB_000:70
theorem Th71: :: GLIB_000:71
theorem Th72: :: GLIB_000:72
theorem Th73: :: GLIB_000:73
theorem Th74: :: GLIB_000:74
theorem Th75: :: GLIB_000:75
for
G1 being
_Graph for
G2 being
Subgraph of
G1 for
x,
y,
e being
set 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 ) )
theorem Th76: :: GLIB_000:76
for
G1 being
_Graph for
G2 being
Subgraph of
G1 for
x,
y,
e being
set st
e in the_Edges_of G2 holds
( (
e Joins x,
y,
G1 implies
e Joins x,
y,
G2 ) & (
e DJoins x,
y,
G1 implies
e DJoins x,
y,
G2 ) & (
e SJoins x,
y,
G1 implies
e SJoins x,
y,
G2 ) & (
e DSJoins x,
y,
G1 implies
e DSJoins x,
y,
G2 ) )
theorem Th77: :: GLIB_000:77
theorem Th78: :: GLIB_000:78
theorem Th79: :: GLIB_000:79
theorem Th80: :: GLIB_000:80
theorem Th81: :: GLIB_000:81
theorem Th82: :: GLIB_000:82
theorem Th83: :: GLIB_000:83
theorem Th84: :: GLIB_000:84
theorem Th85: :: GLIB_000:85
theorem Th86: :: GLIB_000:86
theorem Th87: :: GLIB_000:87
theorem Th88: :: GLIB_000:88
for
G1,
G2,
G3 being
_Graph st
G1 == G2 &
G2 == G3 holds
G1 == G3
theorem Th89: :: GLIB_000:89
theorem Th90: :: GLIB_000:90
theorem Th91: :: GLIB_000:91
for
G1,
G2 being
_Graph for
e,
x,
y,
X,
Y being
set st
G1 == G2 holds
( (
e Joins x,
y,
G1 implies
e Joins x,
y,
G2 ) & (
e DJoins x,
y,
G1 implies
e DJoins x,
y,
G2 ) & (
e SJoins X,
Y,
G1 implies
e SJoins X,
Y,
G2 ) & (
e DSJoins X,
Y,
G1 implies
e DSJoins X,
Y,
G2 ) )
theorem Th92: :: GLIB_000:92
theorem Th93: :: GLIB_000:93
theorem Th94: :: GLIB_000:94
theorem Th95: :: GLIB_000:95
theorem Th96: :: GLIB_000:96
theorem Th97: :: GLIB_000:97
theorem Th98: :: GLIB_000:98
theorem Th99: :: GLIB_000:99
theorem Th100: :: GLIB_000:100
theorem Th101: :: GLIB_000:101
theorem Th102: :: GLIB_000:102