begin
theorem Th1:
theorem Th2:
theorem Th3:
theorem Th4:
theorem Th5:
theorem Th6:
begin
:: deftheorem Def1 defines VertexSeq GLIB_001:def 1 :
for G being _Graph
for b2 being FinSequence of the_Vertices_of G holds
( b2 is VertexSeq of G iff for n being Element of NAT st 1 <= n & n < len b2 holds
ex e being set st e Joins b2 . n,b2 . (n + 1),G );
:: deftheorem Def2 defines EdgeSeq GLIB_001:def 2 :
for G being _Graph
for b2 being FinSequence of the_Edges_of G holds
( b2 is EdgeSeq of G iff ex vs being FinSequence of the_Vertices_of G st
( len vs = (len b2) + 1 & ( for n being Element of NAT st 1 <= n & n <= len b2 holds
b2 . n Joins vs . n,vs . (n + 1),G ) ) );
:: deftheorem Def3 defines Walk GLIB_001:def 3 :
for G being _Graph
for b2 being FinSequence of (the_Vertices_of G) \/ (the_Edges_of G) holds
( b2 is Walk of G iff ( not len b2 is even & b2 . 1 in the_Vertices_of G & ( for n being odd Element of NAT st n < len b2 holds
b2 . (n + 1) Joins b2 . n,b2 . (n + 2),G ) ) );
:: deftheorem defines .walkOf GLIB_001:def 4 :
for G being _Graph
for v being Vertex of G holds G .walkOf v = <*v*>;
definition
let G be
_Graph;
let x,
y,
e be
set ;
func G .walkOf (
x,
e,
y)
-> Walk of
G equals :
Def5:
<*x,e,y*> if e Joins x,
y,
G otherwise G .walkOf (choose (the_Vertices_of G));
coherence
( ( e Joins x,y,G implies <*x,e,y*> is Walk of G ) & ( not e Joins x,y,G implies G .walkOf (choose (the_Vertices_of G)) is Walk of G ) )
consistency
for b1 being Walk of G holds verum
;
end;
:: deftheorem Def5 defines .walkOf GLIB_001:def 5 :
for G being _Graph
for x, y, e being set holds
( ( e Joins x,y,G implies G .walkOf (x,e,y) = <*x,e,y*> ) & ( not e Joins x,y,G implies G .walkOf (x,e,y) = G .walkOf (choose (the_Vertices_of G)) ) );
:: deftheorem defines .first() GLIB_001:def 6 :
for G being _Graph
for W being Walk of G holds W .first() = W . 1;
:: deftheorem defines .last() GLIB_001:def 7 :
for G being _Graph
for W being Walk of G holds W .last() = W . (len W);
:: deftheorem Def8 defines .vertexAt GLIB_001:def 8 :
for G being _Graph
for W being Walk of G
for n being Nat holds
( ( not n is even & n <= len W implies W .vertexAt n = W . n ) & ( ( n is even or not n <= len W ) implies W .vertexAt n = W .first() ) );
:: deftheorem defines .reverse() GLIB_001:def 9 :
for G being _Graph
for W being Walk of G holds W .reverse() = Rev W;
:: deftheorem Def10 defines .append GLIB_001:def 10 :
for G being _Graph
for W1, W2 being Walk of G holds
( ( W1 .last() = W2 .first() implies W1 .append W2 = W1 ^' W2 ) & ( not W1 .last() = W2 .first() implies W1 .append W2 = W1 ) );
:: deftheorem Def11 defines .cut GLIB_001:def 11 :
for G being _Graph
for W being Walk of G
for m, n being Nat holds
( ( not m is even & not n is even & m <= n & n <= len W implies W .cut (m,n) = (m,n) -cut W ) & ( ( m is even or n is even or not m <= n or not n <= len W ) implies W .cut (m,n) = W ) );
:: deftheorem Def12 defines .remove GLIB_001:def 12 :
for G being _Graph
for W being Walk of G
for m, n being Element of NAT holds
( ( not m is even & not n is even & m <= n & n <= len W & W . m = W . n implies W .remove (m,n) = (W .cut (1,m)) .append (W .cut (n,(len W))) ) & ( ( m is even or n is even or not m <= n or not n <= len W or not W . m = W . n ) implies W .remove (m,n) = W ) );
:: deftheorem defines .addEdge GLIB_001:def 13 :
for G being _Graph
for W being Walk of G
for e being set holds W .addEdge e = W .append (G .walkOf ((W .last()),e,((W .last()) .adj e)));
:: deftheorem Def14 defines .vertexSeq() GLIB_001:def 14 :
for G being _Graph
for W being Walk of G
for b3 being VertexSeq of G holds
( b3 = W .vertexSeq() iff ( (len W) + 1 = 2 * (len b3) & ( for n being Nat st 1 <= n & n <= len b3 holds
b3 . n = W . ((2 * n) - 1) ) ) );
:: deftheorem Def15 defines .edgeSeq() GLIB_001:def 15 :
for G being _Graph
for W being Walk of G
for b3 being EdgeSeq of G holds
( b3 = W .edgeSeq() iff ( len W = (2 * (len b3)) + 1 & ( for n being Nat st 1 <= n & n <= len b3 holds
b3 . n = W . (2 * n) ) ) );
:: deftheorem defines .vertices() GLIB_001:def 16 :
for G being _Graph
for W being Walk of G holds W .vertices() = rng (W .vertexSeq());
:: deftheorem defines .edges() GLIB_001:def 17 :
for G being _Graph
for W being Walk of G holds W .edges() = rng (W .edgeSeq());
:: deftheorem defines .length() GLIB_001:def 18 :
for G being _Graph
for W being Walk of G holds W .length() = len (W .edgeSeq());
:: deftheorem Def19 defines .find GLIB_001:def 19 :
for G being _Graph
for W being Walk of G
for v being set
for b4 being odd Element of NAT holds
( ( v in W .vertices() implies ( b4 = W .find v iff ( b4 <= len W & W . b4 = v & ( for n being odd Nat st n <= len W & W . n = v holds
b4 <= n ) ) ) ) & ( not v in W .vertices() implies ( b4 = W .find v iff b4 = len W ) ) );
:: deftheorem Def20 defines .find GLIB_001:def 20 :
for G being _Graph
for W being Walk of G
for n being Element of NAT
for b4 being odd Element of NAT holds
( ( not n is even & n <= len W implies ( b4 = W .find n iff ( b4 <= len W & W . b4 = W . n & ( for k being odd Nat st k <= len W & W . k = W . n holds
b4 <= k ) ) ) ) & ( ( n is even or not n <= len W ) implies ( b4 = W .find n iff b4 = len W ) ) );
:: deftheorem Def21 defines .rfind GLIB_001:def 21 :
for G being _Graph
for W being Walk of G
for v being set
for b4 being odd Element of NAT holds
( ( v in W .vertices() implies ( b4 = W .rfind v iff ( b4 <= len W & W . b4 = v & ( for n being odd Element of NAT st n <= len W & W . n = v holds
n <= b4 ) ) ) ) & ( not v in W .vertices() implies ( b4 = W .rfind v iff b4 = len W ) ) );
:: deftheorem Def22 defines .rfind GLIB_001:def 22 :
for G being _Graph
for W being Walk of G
for n being Element of NAT
for b4 being odd Element of NAT holds
( ( not n is even & n <= len W implies ( b4 = W .rfind n iff ( b4 <= len W & W . b4 = W . n & ( for k being odd Element of NAT st k <= len W & W . k = W . n holds
k <= b4 ) ) ) ) & ( ( n is even or not n <= len W ) implies ( b4 = W .rfind n iff b4 = len W ) ) );
:: deftheorem Def23 defines is_Walk_from GLIB_001:def 23 :
for G being _Graph
for u, v being set
for W being Walk of G holds
( W is_Walk_from u,v iff ( W .first() = u & W .last() = v ) );
:: deftheorem Def24 defines closed GLIB_001:def 24 :
for G being _Graph
for W being Walk of G holds
( W is closed iff W .first() = W .last() );
:: deftheorem Def25 defines directed GLIB_001:def 25 :
for G being _Graph
for W being Walk of G holds
( W is directed iff for n being odd Element of NAT st n < len W holds
(the_Source_of G) . (W . (n + 1)) = W . n );
:: deftheorem Def26 defines trivial GLIB_001:def 26 :
for G being _Graph
for W being Walk of G holds
( W is trivial iff W .length() = 0 );
:: deftheorem Def27 defines Trail-like GLIB_001:def 27 :
for G being _Graph
for W being Walk of G holds
( W is Trail-like iff W .edgeSeq() is one-to-one );
:: deftheorem Def28 defines Path-like GLIB_001:def 28 :
for G being _Graph
for W being Walk of G holds
( W is Path-like iff ( W is Trail-like & ( for m, n being odd Element of NAT st m < n & n <= len W & W . m = W . n holds
( m = 1 & n = len W ) ) ) );
:: deftheorem Def29 defines vertex-distinct GLIB_001:def 29 :
for G being _Graph
for W being Walk of G holds
( W is vertex-distinct iff for m, n being odd Element of NAT st m <= len W & n <= len W & W . m = W . n holds
m = n );
:: deftheorem Def30 defines Circuit-like GLIB_001:def 30 :
for G being _Graph
for W being Walk of G holds
( W is Circuit-like iff ( W is closed & W is Trail-like & not W is trivial ) );
:: deftheorem Def31 defines Cycle-like GLIB_001:def 31 :
for G being _Graph
for W being Walk of G holds
( W is Cycle-like iff ( W is closed & W is Path-like & not W is trivial ) );
Lm1:
for G being _Graph
for W being Walk of G
for n being odd Element of NAT st n <= len W holds
W . n in the_Vertices_of G
Lm2:
for G being _Graph
for W being Walk of G
for n being even Element of NAT st n in dom W holds
ex naa1 being odd Element of NAT st
( naa1 = n - 1 & n - 1 in dom W & n + 1 in dom W & W . n Joins W . naa1,W . (n + 1),G )
Lm3:
for G being _Graph
for W being Walk of G
for n being odd Element of NAT st n < len W holds
( n in dom W & n + 1 in dom W & n + 2 in dom W )
Lm4:
for G being _Graph
for v being Vertex of G holds
( G .walkOf v is closed & G .walkOf v is directed & G .walkOf v is trivial & G .walkOf v is Trail-like & G .walkOf v is Path-like )
Lm5:
for G being _Graph
for x, e, y being set st e Joins x,y,G holds
len (G .walkOf (x,e,y)) = 3
Lm6:
for G being _Graph
for x, e, y being set st e Joins x,y,G holds
( (G .walkOf (x,e,y)) .first() = x & (G .walkOf (x,e,y)) .last() = y & G .walkOf (x,e,y) is_Walk_from x,y )
Lm7:
for G being _Graph
for W being Walk of G holds
( W .first() = (W .reverse()) .last() & W .last() = (W .reverse()) .first() )
Lm8:
for G being _Graph
for W being Walk of G
for n being Element of NAT st n in dom (W .reverse()) holds
( (W .reverse()) . n = W . (((len W) - n) + 1) & ((len W) - n) + 1 in dom W )
Lm9:
for G being _Graph
for W1, W2 being Walk of G st W1 .last() = W2 .first() holds
(len (W1 .append W2)) + 1 = (len W1) + (len W2)
Lm10:
for G being _Graph
for W1, W2 being Walk of G st W1 .last() = W2 .first() holds
( len W1 <= len (W1 .append W2) & len W2 <= len (W1 .append W2) )
Lm11:
for G being _Graph
for W1, W2 being Walk of G st W1 .last() = W2 .first() holds
( (W1 .append W2) .first() = W1 .first() & (W1 .append W2) .last() = W2 .last() & W1 .append W2 is_Walk_from W1 .first() ,W2 .last() )
Lm12:
for G being _Graph
for W1, W2 being Walk of G
for n being Element of NAT st n in dom W1 holds
( (W1 .append W2) . n = W1 . n & n in dom (W1 .append W2) )
Lm13:
for G being _Graph
for W1, W2 being Walk of G st W1 .last() = W2 .first() holds
for n being Element of NAT st n < len W2 holds
( (W1 .append W2) . ((len W1) + n) = W2 . (n + 1) & (len W1) + n in dom (W1 .append W2) )
Lm14:
for G being _Graph
for W1, W2 being Walk of G
for n being Element of NAT holds
( not n in dom (W1 .append W2) or n in dom W1 or ex k being Element of NAT st
( k < len W2 & n = (len W1) + k ) )
Lm15:
for G being _Graph
for W being Walk of G
for m, n being odd Element of NAT st m <= n & n <= len W holds
( (len (W .cut (m,n))) + m = n + 1 & ( for i being Element of NAT st i < len (W .cut (m,n)) holds
( (W .cut (m,n)) . (i + 1) = W . (m + i) & m + i in dom W ) ) )
Lm16:
for G being _Graph
for W being Walk of G
for m, n being odd Element of NAT st m <= n & n <= len W holds
( (W .cut (m,n)) .first() = W . m & (W .cut (m,n)) .last() = W . n & W .cut (m,n) is_Walk_from W . m,W . n )
Lm17:
for G being _Graph
for W being Walk of G
for m, n, o being odd Element of NAT st m <= n & n <= o & o <= len W holds
(W .cut (m,n)) .append (W .cut (n,o)) = W .cut (m,o)
Lm18:
for G being _Graph
for W being Walk of G holds W .cut (1,(len W)) = W
Lm19:
for G being _Graph
for W being Walk of G
for n being odd Element of NAT st n <= len W holds
W .cut (n,n) = <*(W .vertexAt n)*>
Lm20:
for G being _Graph
for W being Walk of G
for m, n being Element of NAT st not m is even & m <= n holds
(W .cut (1,n)) .cut (1,m) = W .cut (1,m)
Lm21:
for G being _Graph
for W1, W2 being Walk of G
for m, n being odd Element of NAT st m <= n & n <= len W1 & W1 .last() = W2 .first() holds
(W1 .append W2) .cut (m,n) = W1 .cut (m,n)
Lm22:
for G being _Graph
for W being Walk of G
for m being odd Element of NAT st m <= len W holds
len (W .cut (1,m)) = m
Lm23:
for G being _Graph
for W being Walk of G
for m being odd Element of NAT
for x being Element of NAT st x in dom (W .cut (1,m)) & m <= len W holds
(W .cut (1,m)) . x = W . x
Lm24:
for G being _Graph
for W being Walk of G
for m, n being odd Element of NAT st m <= n & n <= len W & W . m = W . n holds
(len (W .remove (m,n))) + n = (len W) + m
Lm25:
for G being _Graph
for W being Walk of G
for m, n being Element of NAT
for x, y being set st W is_Walk_from x,y holds
W .remove (m,n) is_Walk_from x,y
Lm26:
for G being _Graph
for W being Walk of G
for m, n being Element of NAT holds len (W .remove (m,n)) <= len W
Lm27:
for G being _Graph
for W being Walk of G
for m being Element of NAT holds W .remove (m,m) = W
Lm28:
for G being _Graph
for W being Walk of G
for m, n being odd Element of NAT st m <= n & n <= len W & W . m = W . n holds
(W .cut (1,m)) .last() = (W .cut (n,(len W))) .first()
Lm29:
for G being _Graph
for W being Walk of G
for x, y being set
for m, n being odd Element of NAT st m <= n & n <= len W & W . m = W . n holds
for x being Element of NAT st x in Seg m holds
(W .remove (m,n)) . x = W . x
Lm30:
for G being _Graph
for W being Walk of G
for m, n being odd Element of NAT st m <= n & n <= len W & W . m = W . n holds
for x being Element of NAT st m <= x & x <= len (W .remove (m,n)) holds
( (W .remove (m,n)) . x = W . ((x - m) + n) & (x - m) + n is Element of NAT & (x - m) + n <= len W )
Lm31:
for G being _Graph
for W being Walk of G
for m, n being odd Element of NAT st m <= n & n <= len W & W . m = W . n holds
len (W .remove (m,n)) = ((len W) + m) - n
Lm32:
for G being _Graph
for W being Walk of G
for m being Element of NAT st W .first() = W . m holds
W .remove (1,m) = W .cut (m,(len W))
Lm33:
for G being _Graph
for W being Walk of G
for m, n being Element of NAT holds
( (W .remove (m,n)) .first() = W .first() & (W .remove (m,n)) .last() = W .last() )
Lm34:
for G being _Graph
for W being Walk of G
for m, n being odd Element of NAT
for x being Element of NAT holds
( not x in dom (W .remove (m,n)) or x in Seg m or ( m <= x & x <= len (W .remove (m,n)) ) )
Lm35:
for G being _Graph
for W being Walk of G
for e, x being set st e Joins W .last() ,x,G holds
W .addEdge e = W ^ <*e,x*>
Lm36:
for G being _Graph
for W being Walk of G
for e, x being set st e Joins W .last() ,x,G holds
( (W .addEdge e) .first() = W .first() & (W .addEdge e) .last() = x & W .addEdge e is_Walk_from W .first() ,x )
Lm37:
for G being _Graph
for W being Walk of G
for e, x being set st e Joins W .last() ,x,G holds
len (W .addEdge e) = (len W) + 2
Lm38:
for G being _Graph
for W being Walk of G
for e, x being set st e Joins W .last() ,x,G holds
( (W .addEdge e) . ((len W) + 1) = e & (W .addEdge e) . ((len W) + 2) = x & ( for n being Element of NAT st n in dom W holds
(W .addEdge e) . n = W . n ) )
Lm39:
for G being _Graph
for W being Walk of G
for e, x, y, z being set st W is_Walk_from x,y & e Joins y,z,G holds
W .addEdge e is_Walk_from x,z
Lm40:
for G being _Graph
for W being Walk of G
for n being even Element of NAT st 1 <= n & n <= len W holds
( n div 2 in dom (W .edgeSeq()) & W . n = (W .edgeSeq()) . (n div 2) )
Lm41:
for G being _Graph
for W being Walk of G
for n being Element of NAT holds
( n in dom (W .edgeSeq()) iff 2 * n in dom W )
Lm42:
for G being _Graph
for W being Walk of G ex lenWaa1 being even Element of NAT st
( lenWaa1 = (len W) - 1 & len (W .edgeSeq()) = lenWaa1 div 2 )
Lm43:
for G being _Graph
for W being Walk of G
for n being Element of NAT holds (W .cut (1,n)) .edgeSeq() c= W .edgeSeq()
Lm44:
for G being _Graph
for W being Walk of G
for e, x being set st e Joins W .last() ,x,G holds
(W .addEdge e) .edgeSeq() = (W .edgeSeq()) ^ <*e*>
Lm45:
for G being _Graph
for W being Walk of G
for x being set holds
( x in W .vertices() iff ex n being odd Element of NAT st
( n <= len W & W . n = x ) )
Lm46:
for G being _Graph
for W being Walk of G
for e being set holds
( e in W .edges() iff ex n being even Element of NAT st
( 1 <= n & n <= len W & W . n = e ) )
Lm47:
for G being _Graph
for W being Walk of G
for e being set st e in W .edges() holds
ex v1, v2 being Vertex of G ex n being odd Element of NAT st
( n + 2 <= len W & v1 = W . n & e = W . (n + 1) & v2 = W . (n + 2) & e Joins v1,v2,G )
Lm48:
for G being _Graph
for W being Walk of G
for e, x, y being set st e in W .edges() & e Joins x,y,G holds
( x in W .vertices() & y in W .vertices() )
Lm49:
for G being _Graph
for W being Walk of G
for n being odd Element of NAT st n <= len W holds
W .find n <= n
Lm50:
for G being _Graph
for W being Walk of G
for n being odd Element of NAT st n <= len W holds
W .rfind n >= n
Lm51:
for G being _Graph
for W being Walk of G holds
( W is directed iff for n being odd Element of NAT st n < len W holds
W . (n + 1) DJoins W . n,W . (n + 2),G )
Lm52:
for G being _Graph
for W being Walk of G
for x, e, y, z being set st W is directed & W is_Walk_from x,y & e DJoins y,z,G holds
( W .addEdge e is directed & W .addEdge e is_Walk_from x,z )
Lm53:
for G being _Graph
for W being Walk of G
for m, n being Element of NAT st W is directed holds
W .cut (m,n) is directed
Lm54:
for G being _Graph
for W being Walk of G holds
( not W is trivial iff 3 <= len W )
Lm55:
for G being _Graph
for W being Walk of G holds
( not W is trivial iff len W <> 1 )
Lm56:
for G being _Graph
for W being Walk of G holds
( W is trivial iff ex v being Vertex of G st W = G .walkOf v )
Lm57:
for G being _Graph
for W being Walk of G holds
( W is Trail-like iff for m, n being even Element of NAT st 1 <= m & m < n & n <= len W holds
W . m <> W . n )
Lm58:
for G being _Graph
for W being Walk of G holds
( W is Trail-like iff W .reverse() is Trail-like )
Lm59:
for G being _Graph
for W being Walk of G
for m, n being Element of NAT st W is Trail-like holds
W .cut (m,n) is Trail-like
Lm60:
for G being _Graph
for W being Walk of G
for e being set st W is Trail-like & e in (W .last()) .edgesInOut() & not e in W .edges() holds
W .addEdge e is Trail-like
Lm61:
for G being _Graph
for W being Walk of G st len W <= 3 holds
W is Trail-like
Lm62:
for G being _Graph
for x, e, y being set st e Joins x,y,G holds
G .walkOf (x,e,y) is Path-like
Lm63:
for G being _Graph
for W being Walk of G holds
( W is Path-like iff W .reverse() is Path-like )
Lm64:
for G being _Graph
for W being Walk of G
for m, n being Element of NAT st W is Path-like holds
W .cut (m,n) is Path-like
Lm65:
for G being _Graph
for W being Walk of G
for e, v being set st W is Path-like & e Joins W .last() ,v,G & not e in W .edges() & ( W is trivial or not W is closed ) & ( for n being odd Element of NAT st 1 < n & n <= len W holds
W . n <> v ) holds
W .addEdge e is Path-like
Lm66:
for G being _Graph
for W being Walk of G st ( for m, n being odd Element of NAT st m <= len W & n <= len W & W . m = W . n holds
m = n ) holds
W is Path-like
Lm67:
for G being _Graph
for W being Walk of G st ( for n being odd Element of NAT st n <= len W holds
W .rfind n = n ) holds
W is Path-like
Lm68:
for G being _Graph
for W being Walk of G
for e, v being set st e Joins W .last() ,v,G & W is Path-like & not v in W .vertices() & ( W is trivial or not W is closed ) holds
W .addEdge e is Path-like
Lm69:
for G being _Graph
for W being Walk of G st len W <= 3 holds
W is Path-like
:: deftheorem Def32 defines Subwalk GLIB_001:def 32 :
for G being _Graph
for W, b3 being Walk of G holds
( b3 is Subwalk of W iff ( b3 is_Walk_from W .first() ,W .last() & ex es being Subset of (W .edgeSeq()) st b3 .edgeSeq() = Seq es ) );
Lm70:
for G being _Graph
for W being Walk of G holds W is Subwalk of W
Lm71:
for G being _Graph
for W1 being Walk of G
for W2 being Subwalk of W1
for W3 being Subwalk of W2 holds W3 is Subwalk of W1
Lm72:
for G being _Graph
for W1, W2 being Walk of G st W1 is Subwalk of W2 holds
len W1 <= len W2
:: deftheorem defines .allWalks() GLIB_001:def 33 :
for G being _Graph holds G .allWalks() = { W where W is Walk of G : verum } ;
:: deftheorem defines .allTrails() GLIB_001:def 34 :
for G being _Graph holds G .allTrails() = { W where W is Trail of G : verum } ;
:: deftheorem defines .allPaths() GLIB_001:def 35 :
for G being _Graph holds G .allPaths() = { W where W is Path of G : verum } ;
:: deftheorem defines .allDWalks() GLIB_001:def 36 :
for G being _Graph holds G .allDWalks() = { W where W is DWalk of G : verum } ;
:: deftheorem defines .allDTrails() GLIB_001:def 37 :
for G being _Graph holds G .allDTrails() = { W where W is DTrail of G : verum } ;
:: deftheorem defines .allDPaths() GLIB_001:def 38 :
for G being _Graph holds G .allDPaths() = { W where W is directed Path of G : verum } ;
begin
theorem
canceled;
theorem
theorem Th9:
theorem
theorem Th11:
theorem Th12:
theorem
theorem Th14:
theorem Th15:
theorem Th16:
for
G being
_Graph for
e,
x,
y being
set st
e Joins x,
y,
G holds
(
(G .walkOf (x,e,y)) .first() = x &
(G .walkOf (x,e,y)) .last() = y &
G .walkOf (
x,
e,
y)
is_Walk_from x,
y )
theorem
theorem Th18:
theorem
theorem
theorem
theorem
theorem Th23:
theorem Th24:
theorem Th25:
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th32:
theorem
theorem
theorem
theorem Th36:
theorem
theorem
theorem
theorem
theorem Th41:
theorem Th42:
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th49:
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th58:
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th68:
theorem Th69:
theorem
theorem Th71:
theorem
theorem
theorem Th74:
theorem
theorem Th76:
theorem Th77:
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th84:
theorem
theorem
theorem Th87:
theorem
theorem Th89:
theorem Th90:
theorem
theorem Th92:
theorem
theorem Th94:
theorem
theorem Th96:
theorem
theorem
theorem
theorem
theorem Th101:
theorem Th102:
theorem Th103:
theorem
theorem Th105:
theorem
theorem
theorem Th108:
theorem Th109:
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th116:
theorem
theorem
theorem Th119:
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th133:
theorem Th134:
theorem Th135:
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th151:
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem
theorem Th162:
theorem
theorem Th164:
theorem Th165:
theorem
theorem
theorem Th168:
theorem Th169:
theorem Th170:
theorem Th171:
theorem
theorem
theorem Th174:
theorem
theorem Th176:
theorem Th177:
theorem
theorem
theorem
theorem
theorem