:: GRAPH_1 semantic presentation  Show TPTP formulae Show IDV graph for whole article:: Showing IDV graph ... (Click the Palm Trees again to close it)

definition
attr c1 is strict;
struct MultiGraphStruct -> ;
aggr MultiGraphStruct(# Vertices, Edges, Source, Target #) -> MultiGraphStruct ;
sel Vertices c1 -> set ;
sel Edges c1 -> set ;
sel Source c1 -> Function of the Edges of c1,the Vertices of c1;
sel Target c1 -> Function of the Edges of c1,the Vertices of c1;
end;

set DomEx = {1,2};

reconsider empty1 = {} as Function of {} ,{1,2} by FUNCT_2:55, RELAT_1:60;

definition
let IT be MultiGraphStruct ;
attr IT is Graph-like means :Def1: :: GRAPH_1:def 1
the Vertices of IT is non empty set ;
end;

:: deftheorem Def1 defines Graph-like GRAPH_1:def 1 :
for IT being MultiGraphStruct holds
( IT is Graph-like iff the Vertices of IT is non empty set );

registration
cluster strict Graph-like MultiGraphStruct ;
existence
ex b1 being MultiGraphStruct st
( b1 is strict & b1 is Graph-like )
proof end;
end;

definition
mode Graph is Graph-like MultiGraphStruct ;
end;

Lm1: 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 )
proof end;

Lm2: for G being Graph
for x being Element of the Vertices of G holds x in the Vertices of G
proof end;

definition
let G1, G2 be Graph;
assume A1: ( the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 ) ;
func G1 \/ G2 -> strict Graph means :Def2: :: GRAPH_1:def 2
( the Vertices of it = the Vertices of G1 \/ the Vertices of G2 & the Edges of it = the Edges of G1 \/ the Edges of G2 & ( for v being set st v in the Edges of G1 holds
( the Source of it . v = the Source of G1 . v & the Target of it . v = the Target of G1 . v ) ) & ( for v being set st v in the Edges of G2 holds
( the Source of it . v = the Source of G2 . v & the Target of it . v = the Target of G2 . v ) ) );
existence
ex b1 being strict Graph st
( the Vertices of b1 = the Vertices of G1 \/ the Vertices of G2 & the Edges of b1 = the Edges of G1 \/ the Edges of G2 & ( for v being set st v in the Edges of G1 holds
( the Source of b1 . v = the Source of G1 . v & the Target of b1 . v = the Target of G1 . v ) ) & ( for v being set st v in the Edges of G2 holds
( the Source of b1 . v = the Source of G2 . v & the Target of b1 . v = the Target of G2 . v ) ) )
proof end;
uniqueness
for b1, b2 being strict Graph st the Vertices of b1 = the Vertices of G1 \/ the Vertices of G2 & the Edges of b1 = the Edges of G1 \/ the Edges of G2 & ( for v being set st v in the Edges of G1 holds
( the Source of b1 . v = the Source of G1 . v & the Target of b1 . v = the Target of G1 . v ) ) & ( for v being set st v in the Edges of G2 holds
( the Source of b1 . v = the Source of G2 . v & the Target of b1 . v = the Target of G2 . v ) ) & the Vertices of b2 = the Vertices of G1 \/ the Vertices of G2 & the Edges of b2 = the Edges of G1 \/ the Edges of G2 & ( for v being set st v in the Edges of G1 holds
( the Source of b2 . v = the Source of G1 . v & the Target of b2 . v = the Target of G1 . v ) ) & ( for v being set st v in the Edges of G2 holds
( the Source of b2 . v = the Source of G2 . v & the Target of b2 . v = the Target of G2 . v ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def2 defines \/ GRAPH_1:def 2 :
for G1, G2 being Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 holds
for b3 being strict Graph holds
( b3 = G1 \/ G2 iff ( the Vertices of b3 = the Vertices of G1 \/ the Vertices of G2 & the Edges of b3 = the Edges of G1 \/ the Edges of G2 & ( for v being set st v in the Edges of G1 holds
( the Source of b3 . v = the Source of G1 . v & the Target of b3 . v = the Target of G1 . v ) ) & ( for v being set st v in the Edges of G2 holds
( the Source of b3 . v = the Source of G2 . v & the Target of b3 . v = the Target of G2 . v ) ) ) );

definition
let G, G1, G2 be Graph;
pred G is_sum_of G1,G2 means :Def3: :: GRAPH_1:def 3
( the Target of G1 tolerates the Target of G2 & the Source of G1 tolerates the Source of G2 & MultiGraphStruct(# the Vertices of G,the Edges of G,the Source of G,the Target of G #) = G1 \/ G2 );
end;

:: deftheorem Def3 defines is_sum_of GRAPH_1:def 3 :
for G, G1, G2 being Graph holds
( G is_sum_of G1,G2 iff ( the Target of G1 tolerates the Target of G2 & the Source of G1 tolerates the Source of G2 & MultiGraphStruct(# the Vertices of G,the Edges of G,the Source of G,the Target of G #) = G1 \/ G2 ) );

definition
let IT be Graph;
attr IT is oriented means :Def4: :: GRAPH_1:def 4
for x, y being set st x in the Edges of IT & y in the Edges of IT & the Source of IT . x = the Source of IT . y & the Target of IT . x = the Target of IT . y holds
x = y;
attr IT is non-multi means :Def5: :: GRAPH_1:def 5
for x, y being set st x in the Edges of IT & y in the Edges of IT & ( ( the Source of IT . x = the Source of IT . y & the Target of IT . x = the Target of IT . y ) or ( the Source of IT . x = the Target of IT . y & the Source of IT . y = the Target of IT . x ) ) holds
x = y;
attr IT is simple means :Def6: :: GRAPH_1:def 6
for x being set holds
( not x in the Edges of IT or not the Source of IT . x = the Target of IT . x );
attr IT is connected means :Def7: :: GRAPH_1:def 7
for G1, G2 being Graph holds
( not the Vertices of G1 misses the Vertices of G2 or not IT is_sum_of G1,G2 );
end;

:: deftheorem Def4 defines oriented GRAPH_1:def 4 :
for IT being Graph holds
( IT is oriented iff for x, y being set st x in the Edges of IT & y in the Edges of IT & the Source of IT . x = the Source of IT . y & the Target of IT . x = the Target of IT . y holds
x = y );

:: deftheorem Def5 defines non-multi GRAPH_1:def 5 :
for IT being Graph holds
( IT is non-multi iff for x, y being set st x in the Edges of IT & y in the Edges of IT & ( ( the Source of IT . x = the Source of IT . y & the Target of IT . x = the Target of IT . y ) or ( the Source of IT . x = the Target of IT . y & the Source of IT . y = the Target of IT . x ) ) holds
x = y );

:: deftheorem Def6 defines simple GRAPH_1:def 6 :
for IT being Graph holds
( IT is simple iff for x being set holds
( not x in the Edges of IT or not the Source of IT . x = the Target of IT . x ) );

:: deftheorem Def7 defines connected GRAPH_1:def 7 :
for IT being Graph holds
( IT is connected iff for G1, G2 being Graph holds
( not the Vertices of G1 misses the Vertices of G2 or not IT is_sum_of G1,G2 ) );

definition
let IT be MultiGraphStruct ;
attr IT is finite means :Def8: :: GRAPH_1:def 8
( the Vertices of IT is finite & the Edges of IT is finite );
end;

:: deftheorem Def8 defines finite GRAPH_1:def 8 :
for IT being MultiGraphStruct holds
( IT is finite iff ( the Vertices of IT is finite & the Edges of IT is finite ) );

registration
cluster finite MultiGraphStruct ;
existence
ex b1 being MultiGraphStruct st b1 is finite
proof end;
cluster oriented non-multi simple connected finite MultiGraphStruct ;
existence
ex b1 being Graph st
( b1 is finite & b1 is non-multi & b1 is oriented & b1 is simple & b1 is connected )
proof end;
end;

definition
let G be Graph;
let x, y be Element of the Vertices of G;
let v be set ;
pred v joins x,y means :: GRAPH_1:def 9
( ( the Source of G . v = x & the Target of G . v = y ) or ( the Source of G . v = y & the Target of G . v = x ) );
end;

:: deftheorem defines joins GRAPH_1:def 9 :
for G being Graph
for x, y being Element of the Vertices of G
for v being set holds
( v joins x,y iff ( ( the Source of G . v = x & the Target of G . v = y ) or ( the Source of G . v = y & the Target of G . v = x ) ) );

definition
let G be Graph;
let x, y be Element of the Vertices of G;
pred x,y are_incydent means :: GRAPH_1:def 10
ex v being set st
( v in the Edges of G & v joins x,y );
end;

:: deftheorem defines are_incydent GRAPH_1:def 10 :
for G being Graph
for x, y being Element of the Vertices of G holds
( x,y are_incydent iff ex v being set st
( v in the Edges of G & v joins x,y ) );

definition
let G be Graph;
mode Chain of G -> FinSequence means :Def11: :: GRAPH_1:def 11
( ( for n being Nat st 1 <= n & n <= len it holds
it . n in the Edges of G ) & ex p being FinSequence st
( len p = (len it) + 1 & ( for n being Nat st 1 <= n & n <= len p holds
p . n in the Vertices of G ) & ( for n being Nat st 1 <= n & n <= len it holds
ex x', y' being Element of the Vertices of G st
( x' = p . n & y' = p . (n + 1) & it . n joins x',y' ) ) ) );
existence
ex b1 being FinSequence st
( ( for n being Nat st 1 <= n & n <= len b1 holds
b1 . n in the Edges of G ) & ex p being FinSequence st
( len p = (len b1) + 1 & ( for n being Nat st 1 <= n & n <= len p holds
p . n in the Vertices of G ) & ( for n being Nat st 1 <= n & n <= len b1 holds
ex x', y' being Element of the Vertices of G st
( x' = p . n & y' = p . (n + 1) & b1 . n joins x',y' ) ) ) )
proof end;
end;

:: deftheorem Def11 defines Chain GRAPH_1:def 11 :
for G being Graph
for b2 being FinSequence holds
( b2 is Chain of G iff ( ( for n being Nat st 1 <= n & n <= len b2 holds
b2 . n in the Edges of G ) & ex p being FinSequence st
( len p = (len b2) + 1 & ( for n being Nat st 1 <= n & n <= len p holds
p . n in the Vertices of G ) & ( for n being Nat st 1 <= n & n <= len b2 holds
ex x', y' being Element of the Vertices of G st
( x' = p . n & y' = p . (n + 1) & b2 . n joins x',y' ) ) ) ) );

Lm3: for G being Graph holds {} is Chain of G
proof end;

definition
let G be Graph;
:: original: Chain
redefine mode Chain of G -> FinSequence of the Edges of G;
coherence
for b1 being Chain of G holds b1 is FinSequence of the Edges of G
proof end;
end;

definition
let G be Graph;
let IT be Chain of G;
attr IT is oriented means :Def12: :: GRAPH_1:def 12
for n being Nat st 1 <= n & n < len IT holds
the Source of G . (IT . (n + 1)) = the Target of G . (IT . n);
end;

:: deftheorem Def12 defines oriented GRAPH_1:def 12 :
for G being Graph
for IT being Chain of G holds
( IT is oriented iff for n being Nat st 1 <= n & n < len IT holds
the Source of G . (IT . (n + 1)) = the Target of G . (IT . n) );

registration
let G be Graph;
cluster oriented Chain of G;
existence
ex b1 being Chain of G st b1 is oriented
proof end;
end;

Lm4: for G being Graph holds {} is oriented Chain of G
proof end;

definition
let G be Graph;
let IT be Chain of G;
:: original: one-to-one
redefine attr IT is one-to-one means :: GRAPH_1:def 13
for n, m being Nat st 1 <= n & n < m & m <= len IT holds
IT . n <> IT . m;
compatibility
( IT is one-to-one iff for n, m being Nat st 1 <= n & n < m & m <= len IT holds
IT . n <> IT . m )
proof end;
end;

:: deftheorem defines one-to-one GRAPH_1:def 13 :
for G being Graph
for IT being Chain of G holds
( IT is one-to-one iff for n, m being Nat st 1 <= n & n < m & m <= len IT holds
IT . n <> IT . m );

registration
let G be Graph;
cluster V5 Chain of G;
existence
ex b1 being Chain of G st b1 is one-to-one
proof end;
end;

definition
let G be Graph;
mode Path of G is V5 Chain of G;
end;

registration
let G be Graph;
cluster V5 oriented Chain of G;
existence
ex b1 being Chain of G st
( b1 is one-to-one & b1 is oriented )
proof end;
end;

definition
let G be Graph;
mode OrientedPath of G is V5 oriented Chain of G;
end;

definition
let G be Graph;
let IT be Path of G;
canceled;
attr IT is cyclic means :Def15: :: GRAPH_1:def 15
ex p being FinSequence st
( len p = (len IT) + 1 & ( for n being Nat st 1 <= n & n <= len p holds
p . n in the Vertices of G ) & ( for n being Nat st 1 <= n & n <= len IT holds
ex x', y' being Element of the Vertices of G st
( x' = p . n & y' = p . (n + 1) & IT . n joins x',y' ) ) & p . 1 = p . (len p) );
end;

:: deftheorem GRAPH_1:def 14 :
canceled;

:: deftheorem Def15 defines cyclic GRAPH_1:def 15 :
for G being Graph
for IT being Path of G holds
( IT is cyclic iff ex p being FinSequence st
( len p = (len IT) + 1 & ( for n being Nat st 1 <= n & n <= len p holds
p . n in the Vertices of G ) & ( for n being Nat st 1 <= n & n <= len IT holds
ex x', y' being Element of the Vertices of G st
( x' = p . n & y' = p . (n + 1) & IT . n joins x',y' ) ) & p . 1 = p . (len p) ) );

registration
let G be Graph;
cluster cyclic Chain of G;
existence
ex b1 being Path of G st b1 is cyclic
proof end;
end;

definition
let G be Graph;
mode Cycle of G is cyclic Path of G;
end;

Lm5: for G being Graph holds {} is Cycle of G
proof end;

registration
let G be Graph;
cluster cyclic Chain of G;
existence
ex b1 being OrientedPath of G st b1 is cyclic
proof end;
end;

definition
let G be Graph;
mode OrientedCycle of G is cyclic OrientedPath of G;
end;

Lm6: for G being Graph
for v being set st v in the Edges of G holds
( the Source of G . v in the Vertices of G & the Target of G . v in the Vertices of G )
proof end;

definition
let G be Graph;
canceled;
mode Subgraph of G -> Graph means :Def17: :: GRAPH_1:def 17
( the Vertices of it c= the Vertices of G & the Edges of it c= the Edges of G & ( for v being set st v in the Edges of it holds
( the Source of it . v = the Source of G . v & the Target of it . v = the Target of G . v & the Source of G . v in the Vertices of it & the Target of G . v in the Vertices of it ) ) );
existence
ex b1 being Graph st
( the Vertices of b1 c= the Vertices of G & the Edges of b1 c= the Edges of G & ( for v being set st v in the Edges of b1 holds
( the Source of b1 . v = the Source of G . v & the Target of b1 . v = the Target of G . v & the Source of G . v in the Vertices of b1 & the Target of G . v in the Vertices of b1 ) ) )
proof end;
end;

:: deftheorem GRAPH_1:def 16 :
canceled;

:: deftheorem Def17 defines Subgraph GRAPH_1:def 17 :
for G, b2 being Graph holds
( b2 is Subgraph of G iff ( the Vertices of b2 c= the Vertices of G & the Edges of b2 c= the Edges of G & ( for v being set st v in the Edges of b2 holds
( the Source of b2 . v = the Source of G . v & the Target of b2 . v = the Target of G . v & the Source of G . v in the Vertices of b2 & the Target of G . v in the Vertices of b2 ) ) ) );

registration
let G be Graph;
cluster strict Subgraph of G;
existence
ex b1 being Subgraph of G st b1 is strict
proof end;
end;

definition
let G be finite Graph;
func VerticesCount G -> Nat means :: GRAPH_1:def 18
ex B being finite set st
( B = the Vertices of G & it = card B );
existence
ex b1 being Nat ex B being finite set st
( B = the Vertices of G & b1 = card B )
proof end;
uniqueness
for b1, b2 being Nat st ex B being finite set st
( B = the Vertices of G & b1 = card B ) & ex B being finite set st
( B = the Vertices of G & b2 = card B ) holds
b1 = b2
;
func EdgesCount G -> Nat means :: GRAPH_1:def 19
ex B being finite set st
( B = the Edges of G & it = card B );
existence
ex b1 being Nat ex B being finite set st
( B = the Edges of G & b1 = card B )
proof end;
uniqueness
for b1, b2 being Nat st ex B being finite set st
( B = the Edges of G & b1 = card B ) & ex B being finite set st
( B = the Edges of G & b2 = card B ) holds
b1 = b2
;
end;

:: deftheorem defines VerticesCount GRAPH_1:def 18 :
for G being finite Graph
for b2 being Nat holds
( b2 = VerticesCount G iff ex B being finite set st
( B = the Vertices of G & b2 = card B ) );

:: deftheorem defines EdgesCount GRAPH_1:def 19 :
for G being finite Graph
for b2 being Nat holds
( b2 = EdgesCount G iff ex B being finite set st
( B = the Edges of G & b2 = card B ) );

definition
let G be finite Graph;
let x be Element of the Vertices of G;
func EdgesIn x -> Nat means :: GRAPH_1:def 20
ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Target of G . z = x ) ) ) & it = card X );
existence
ex b1 being Nat ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Target of G . z = x ) ) ) & b1 = card X )
proof end;
uniqueness
for b1, b2 being Nat st ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Target of G . z = x ) ) ) & b1 = card X ) & ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Target of G . z = x ) ) ) & b2 = card X ) holds
b1 = b2
proof end;
func EdgesOut x -> Nat means :: GRAPH_1:def 21
ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Source of G . z = x ) ) ) & it = card X );
existence
ex b1 being Nat ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Source of G . z = x ) ) ) & b1 = card X )
proof end;
uniqueness
for b1, b2 being Nat st ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Source of G . z = x ) ) ) & b1 = card X ) & ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Source of G . z = x ) ) ) & b2 = card X ) holds
b1 = b2
proof end;
end;

:: deftheorem defines EdgesIn GRAPH_1:def 20 :
for G being finite Graph
for x being Element of the Vertices of G
for b3 being Nat holds
( b3 = EdgesIn x iff ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Target of G . z = x ) ) ) & b3 = card X ) );

:: deftheorem defines EdgesOut GRAPH_1:def 21 :
for G being finite Graph
for x being Element of the Vertices of G
for b3 being Nat holds
( b3 = EdgesOut x iff ex X being finite set st
( ( for z being set holds
( z in X iff ( z in the Edges of G & the Source of G . z = x ) ) ) & b3 = card X ) );

definition
let G be finite Graph;
let x be Element of the Vertices of G;
func Degree x -> Nat equals :: GRAPH_1:def 22
(EdgesIn x) + (EdgesOut x);
correctness
coherence
(EdgesIn x) + (EdgesOut x) is Nat
;
;
end;

:: deftheorem defines Degree GRAPH_1:def 22 :
for G being finite Graph
for x being Element of the Vertices of G holds Degree x = (EdgesIn x) + (EdgesOut x);

Lm7: for n being Nat
for G being Graph
for p being Chain of G holds p | (Seg n) is Chain of G
proof end;

Lm8: for G being Graph
for H1, H2 being strict Subgraph of G st the Vertices of H1 = the Vertices of H2 & the Edges of H1 = the Edges of H2 holds
H1 = H2
proof end;

definition
let G1, G2 be Graph;
pred G1 c= G2 means :Def23: :: GRAPH_1:def 23
G1 is Subgraph of G2;
reflexivity
for G1 being Graph holds G1 is Subgraph of G1
proof end;
end;

:: deftheorem Def23 defines c= GRAPH_1:def 23 :
for G1, G2 being Graph holds
( G1 c= G2 iff G1 is Subgraph of G2 );

Lm9: for G being Graph
for H being Subgraph of G holds
( the Source of H in PFuncs the Edges of G,the Vertices of G & the Target of H in PFuncs the Edges of G,the Vertices of G )
proof end;

definition
let G be Graph;
func bool G -> set means :Def24: :: GRAPH_1:def 24
for x being set holds
( x in it iff x is strict Subgraph of G );
existence
ex b1 being set st
for x being set holds
( x in b1 iff x is strict Subgraph of G )
proof end;
uniqueness
for b1, b2 being set st ( for x being set holds
( x in b1 iff x is strict Subgraph of G ) ) & ( for x being set holds
( x in b2 iff x is strict Subgraph of G ) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def24 defines bool GRAPH_1:def 24 :
for G being Graph
for b2 being set holds
( b2 = bool G iff for x being set holds
( x in b2 iff x is strict Subgraph of G ) );

scheme :: GRAPH_1:sch 1
GraphSeparation{ F1() -> Graph, P1[ set ] } :
ex X being set st
for x being set holds
( x in X iff ( x is strict Subgraph of F1() & P1[x] ) )
proof end;

theorem :: GRAPH_1:1  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
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 Lm1;

theorem :: GRAPH_1:2  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Graph
for x being Element of the Vertices of G holds x in the Vertices of G by Lm2;

theorem :: GRAPH_1:3  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Graph
for v being set st v in the Edges of G holds
( the Source of G . v in the Vertices of G & the Target of G . v in the Vertices of G ) by Lm6;

theorem :: GRAPH_1:4  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for n being Nat
for G being Graph
for p being Chain of G holds p | (Seg n) is Chain of G by Lm7;

theorem Th5: :: GRAPH_1:5  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G being Graph st G1 c= G holds
( the Source of G1 c= the Source of G & the Target of G1 c= the Target of G )
proof end;

theorem :: GRAPH_1:6  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 holds
( the Source of (G1 \/ G2) = the Source of G1 \/ the Source of G2 & the Target of (G1 \/ G2) = the Target of G1 \/ the Target of G2 )
proof end;

theorem Th7: :: GRAPH_1:7  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being strict Graph holds G = G \/ G
proof end;

theorem Th8: :: GRAPH_1:8  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 holds
G1 \/ G2 = G2 \/ G1
proof end;

theorem Th9: :: GRAPH_1:9  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2, G3 being Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 & the Source of G1 tolerates the Source of G3 & the Target of G1 tolerates the Target of G3 & the Source of G2 tolerates the Source of G3 & the Target of G2 tolerates the Target of G3 holds
(G1 \/ G2) \/ G3 = G1 \/ (G2 \/ G3)
proof end;

theorem Th10: :: GRAPH_1:10  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G, G1, G2 being Graph st G is_sum_of G1,G2 holds
G is_sum_of G2,G1
proof end;

theorem :: GRAPH_1:11  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being strict Graph holds G is_sum_of G,G
proof end;

theorem Th12: :: GRAPH_1:12  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being Graph st ex G being Graph st
( G1 c= G & G2 c= G ) holds
G1 \/ G2 = G2 \/ G1
proof end;

theorem :: GRAPH_1:13  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2, G3 being Graph st ex G being Graph st
( G1 c= G & G2 c= G & G3 c= G ) holds
(G1 \/ G2) \/ G3 = G1 \/ (G2 \/ G3)
proof end;

theorem :: GRAPH_1:14  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Graph holds {} is oriented cyclic Path of G by Lm4, Lm5;

theorem :: GRAPH_1:15  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Graph
for H1, H2 being strict Subgraph of G st the Vertices of H1 = the Vertices of H2 & the Edges of H1 = the Edges of H2 holds
H1 = H2 by Lm8;

theorem Th16: :: GRAPH_1:16  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being strict Graph st G1 c= G2 & G2 c= G1 holds
G1 = G2
proof end;

theorem Th17: :: GRAPH_1:17  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2, G3 being Graph st G1 c= G2 & G2 c= G3 holds
G1 c= G3
proof end;

theorem Th18: :: GRAPH_1:18  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G, G1, G2 being Graph st G is_sum_of G1,G2 holds
( G1 c= G & G2 c= G )
proof end;

theorem Th19: :: GRAPH_1:19  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 holds
( G1 c= G1 \/ G2 & G2 c= G1 \/ G2 )
proof end;

theorem Th20: :: GRAPH_1:20  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being Graph st ex G being Graph st
( G1 c= G & G2 c= G ) holds
( G1 c= G1 \/ G2 & G2 c= G1 \/ G2 )
proof end;

theorem Th21: :: GRAPH_1:21  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G3, G2, G being Graph st G1 c= G3 & G2 c= G3 & G is_sum_of G1,G2 holds
G c= G3
proof end;

theorem Th22: :: GRAPH_1:22  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G, G2 being Graph st G1 c= G & G2 c= G holds
G1 \/ G2 c= G
proof end;

theorem :: GRAPH_1:23  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being strict Graph st G1 c= G2 holds
( G1 \/ G2 = G2 & G2 \/ G1 = G2 )
proof end;

theorem Th24: :: GRAPH_1:24  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 & ( G1 \/ G2 = G2 or G2 \/ G1 = G2 ) holds
G1 c= G2
proof end;

theorem :: GRAPH_1:25  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GRAPH_1:26  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GRAPH_1:27  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1 being Graph
for G being oriented Graph st G1 c= G holds
G1 is oriented
proof end;

theorem :: GRAPH_1:28  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1 being Graph
for G being non-multi Graph st G1 c= G holds
G1 is non-multi
proof end;

theorem :: GRAPH_1:29  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1 being Graph
for G being simple Graph st G1 c= G holds
G1 is simple
proof end;

theorem :: GRAPH_1:30  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being Graph
for G1 being strict Graph holds
( G1 in bool G iff G1 c= G )
proof end;

theorem Th31: :: GRAPH_1:31  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being strict Graph holds G in bool G
proof end;

theorem :: GRAPH_1:32  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G2 being Graph
for G1 being strict Graph holds
( G1 c= G2 iff bool G1 c= bool G2 )
proof end;

theorem :: GRAPH_1:33  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
canceled;

theorem :: GRAPH_1:34  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G being strict Graph holds {G} c= bool G
proof end;

theorem :: GRAPH_1:35  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being strict Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 & bool (G1 \/ G2) c= (bool G1) \/ (bool G2) & not G1 c= G2 holds
G2 c= G1
proof end;

theorem :: GRAPH_1:36  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G2 being Graph st the Source of G1 tolerates the Source of G2 & the Target of G1 tolerates the Target of G2 holds
(bool G1) \/ (bool G2) c= bool (G1 \/ G2)
proof end;

theorem :: GRAPH_1:37  Show TPTP formulae Show IDV graph:: Showing IDV graph ... (Click the Palm Tree again to close it) Show TPTP problem
for G1, G, G2 being Graph st G1 in bool G & G2 in bool G holds
G1 \/ G2 in bool G
proof end;