Article MSSCYC_1, MML version 4.99.1005
:: MSSCYC_1:th 1
theorem
for b1 being Relation-like Function-like finite set
st for b2 being set
st b2 in proj1 b1
holds b1 . b2 is finite
holds product b1 is finite;
:: MSSCYC_1:modenot 1 => GRAPH_1:mode 1
definition
let a1 be Graph-like MultiGraphStruct;
mode Chain of A1 -> Relation-like Function-like FinSequence-like set means
it is FinSequence of the Edges of a1 &
(ex b1 being FinSequence of the Vertices of a1 st
b1 is_vertex_seq_of it);
end;
:: MSSCYC_1:dfs 1
definiens
let a1 be Graph-like MultiGraphStruct;
let a2 be Relation-like Function-like FinSequence-like set;
To prove
a2 is Chain of a1
it is sufficient to prove
thus a2 is FinSequence of the Edges of a1 &
(ex b1 being FinSequence of the Vertices of a1 st
b1 is_vertex_seq_of a2);
:: MSSCYC_1:def 1
theorem
for b1 being Graph-like MultiGraphStruct
for b2 being Relation-like Function-like FinSequence-like set holds
b2 is Chain of b1
iff
b2 is FinSequence of the Edges of b1 &
(ex b3 being FinSequence of the Vertices of b1 st
b3 is_vertex_seq_of b2);
:: MSSCYC_1:th 2
theorem
for b1 being Element of NAT
for b2, b3 being Relation-like Function-like FinSequence-like set
st b1 <= len b2
holds (1,b1)-cut b2 = (1,b1)-cut (b2 ^ b3);
:: MSSCYC_1:attrnot 1 => GRAPH_1:attr 8
notation
let a1 be Graph-like MultiGraphStruct;
let a2 be Chain of a1;
synonym directed for oriented;
end;
:: MSSCYC_1:attrnot 2 => MSSCYC_1:attr 1
definition
let a1 be Graph-like MultiGraphStruct;
let a2 be Chain of a1;
attr a2 is cyclic means
ex b1 being FinSequence of the Vertices of a1 st
b1 is_vertex_seq_of a2 & b1 . 1 = b1 . len b1;
end;
:: MSSCYC_1:dfs 2
definiens
let a1 be Graph-like MultiGraphStruct;
let a2 be Chain of a1;
To prove
a2 is cyclic
it is sufficient to prove
thus ex b1 being FinSequence of the Vertices of a1 st
b1 is_vertex_seq_of a2 & b1 . 1 = b1 . len b1;
:: MSSCYC_1:def 2
theorem
for b1 being Graph-like MultiGraphStruct
for b2 being Chain of b1 holds
b2 is cyclic(b1)
iff
ex b3 being FinSequence of the Vertices of b1 st
b3 is_vertex_seq_of b2 & b3 . 1 = b3 . len b3;
:: MSSCYC_1:attrnot 3 => MSSCYC_1:attr 2
definition
let a1 be Graph-like MultiGraphStruct;
attr a1 is empty means
the Edges of a1 is empty;
end;
:: MSSCYC_1:dfs 3
definiens
let a1 be Graph-like MultiGraphStruct;
To prove
a1 is empty
it is sufficient to prove
thus the Edges of a1 is empty;
:: MSSCYC_1:def 3
theorem
for b1 being Graph-like MultiGraphStruct holds
b1 is empty
iff
the Edges of b1 is empty;
:: MSSCYC_1:exreg 1
registration
cluster Graph-like empty MultiGraphStruct;
end;
:: MSSCYC_1:th 3
theorem
for b1 being Graph-like MultiGraphStruct holds
(proj2 the Source of b1) \/ proj2 the Target of b1 c= the Vertices of b1;
:: MSSCYC_1:exreg 2
registration
cluster strict Graph-like simple connected finite non empty MultiGraphStruct;
end;
:: MSSCYC_1:funcreg 1
registration
let a1 be Graph-like non empty MultiGraphStruct;
cluster the Edges of a1 -> non empty;
end;
:: MSSCYC_1:th 4
theorem
for b1 being Graph-like MultiGraphStruct
for b2 being set
for b3, b4 being Element of the Vertices of b1
st b3 = (the Source of b1) . b2 & b4 = (the Target of b1) . b2
holds <*b3,b4*> is_vertex_seq_of <*b2*>;
:: MSSCYC_1:th 5
theorem
for b1 being Graph-like MultiGraphStruct
for b2 being set
st b2 in the Edges of b1
holds <*b2*> is oriented Chain of b1;
:: MSSCYC_1:exreg 3
registration
let a1 be Graph-like non empty MultiGraphStruct;
cluster Relation-like Function-like one-to-one non empty finite FinSequence-like oriented Chain of a1;
end;
:: MSSCYC_1:th 6
theorem
for b1 being Graph-like MultiGraphStruct
for b2 being Chain of b1
for b3 being FinSequence of the Vertices of b1
st b2 is cyclic(b1) & b3 is_vertex_seq_of b2
holds b3 . 1 = b3 . len b3;
:: MSSCYC_1:th 7
theorem
for b1 being Graph-like MultiGraphStruct
for b2 being set
st b2 in the Edges of b1
for b3 being oriented Chain of b1
st b3 = <*b2*>
holds vertex-seq b3 = <*(the Source of b1) . b2,(the Target of b1) . b2*>;
:: MSSCYC_1:th 8
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like FinSequence-like set holds
len ((b1,b2)-cut b3) <= len b3;
:: MSSCYC_1:th 9
theorem
for b1, b2 being Element of NAT
for b3 being Graph-like non empty MultiGraphStruct
for b4 being oriented Chain of b3
st 1 <= b1 & b1 <= b2 & b2 <= len b4
holds (b1,b2)-cut b4 is oriented Chain of b3;
:: MSSCYC_1:th 10
theorem
for b1 being Graph-like non empty MultiGraphStruct
for b2 being non empty oriented Chain of b1 holds
len vertex-seq b2 = (len b2) + 1;
:: MSSCYC_1:funcreg 2
registration
let a1 be Graph-like non empty MultiGraphStruct;
let a2 be non empty oriented Chain of a1;
cluster vertex-seq a2 -> non empty;
end;
:: MSSCYC_1:th 11
theorem
for b1 being Graph-like non empty MultiGraphStruct
for b2 being non empty oriented Chain of b1
for b3 being Element of NAT
st 1 <= b3 & b3 <= len b2
holds (vertex-seq b2) . b3 = (the Source of b1) . (b2 . b3) &
(vertex-seq b2) . (b3 + 1) = (the Target of b1) . (b2 . b3);
:: MSSCYC_1:th 12
theorem
for b1, b2 being Element of NAT
for b3 being Relation-like Function-like non empty FinSequence-like set
st 1 <= b1 & b1 <= b2 & b2 <= len b3
holds (b1,b2)-cut b3 is not empty;
:: MSSCYC_1:th 13
theorem
for b1, b2 being Element of NAT
for b3 being Graph-like non empty MultiGraphStruct
for b4, b5 being oriented Chain of b3
st 1 <= b1 & b1 <= b2 & b2 <= len b4 & b5 = (b1,b2)-cut b4
holds vertex-seq b5 = (b1,b2 + 1)-cut vertex-seq b4;
:: MSSCYC_1:th 14
theorem
for b1 being Graph-like non empty MultiGraphStruct
for b2 being non empty oriented Chain of b1 holds
(vertex-seq b2) . ((len b2) + 1) = (the Target of b1) . (b2 . len b2);
:: MSSCYC_1:th 15
theorem
for b1 being Graph-like non empty MultiGraphStruct
for b2, b3 being non empty oriented Chain of b1 holds
(vertex-seq b2) . ((len b2) + 1) = (vertex-seq b3) . 1
iff
b2 ^ b3 is non empty oriented Chain of b1;
:: MSSCYC_1:th 16
theorem
for b1 being Graph-like non empty MultiGraphStruct
for b2, b3, b4 being non empty oriented Chain of b1
st b2 = b3 ^ b4
holds (vertex-seq b2) . 1 = (vertex-seq b3) . 1 &
(vertex-seq b2) . ((len b2) + 1) = (vertex-seq b4) . ((len b4) + 1);
:: MSSCYC_1:th 17
theorem
for b1 being Graph-like non empty MultiGraphStruct
for b2 being non empty oriented Chain of b1
st b2 is cyclic(b1)
holds (vertex-seq b2) . 1 = (vertex-seq b2) . ((len b2) + 1);
:: MSSCYC_1:th 18
theorem
for b1 being Graph-like non empty MultiGraphStruct
for b2 being non empty oriented Chain of b1
st b2 is cyclic(b1)
for b3 being Element of NAT holds
ex b4 being oriented Chain of b1 st
len b4 = b3 & b4 ^ b2 is non empty oriented Chain of b1;
:: MSSCYC_1:attrnot 4 => MSSCYC_1:attr 3
definition
let a1 be Graph-like MultiGraphStruct;
attr a1 is directed_cycle-less means
for b1 being oriented Chain of a1
st b1 is not empty
holds b1 is not cyclic(a1);
end;
:: MSSCYC_1:dfs 4
definiens
let a1 be Graph-like MultiGraphStruct;
To prove
a1 is directed_cycle-less
it is sufficient to prove
thus for b1 being oriented Chain of a1
st b1 is not empty
holds b1 is not cyclic(a1);
:: MSSCYC_1:def 4
theorem
for b1 being Graph-like MultiGraphStruct holds
b1 is directed_cycle-less
iff
for b2 being oriented Chain of b1
st b2 is not empty
holds b2 is not cyclic(b1);
:: MSSCYC_1:attrnot 5 => MSSCYC_1:attr 3
notation
let a1 be Graph-like MultiGraphStruct;
antonym with_directed_cycle for directed_cycle-less;
end;
:: MSSCYC_1:condreg 1
registration
cluster Graph-like empty -> directed_cycle-less (MultiGraphStruct);
end;
:: MSSCYC_1:attrnot 6 => MSSCYC_1:attr 4
definition
let a1 be Graph-like MultiGraphStruct;
attr a1 is well-founded means
for b1 being Element of the Vertices of a1 holds
ex b2 being Element of NAT st
for b3 being oriented Chain of a1
st b3 is not empty &
(vertex-seq b3) . ((len b3) + 1) = b1
holds len b3 <= b2;
end;
:: MSSCYC_1:dfs 5
definiens
let a1 be Graph-like MultiGraphStruct;
To prove
a1 is well-founded
it is sufficient to prove
thus for b1 being Element of the Vertices of a1 holds
ex b2 being Element of NAT st
for b3 being oriented Chain of a1
st b3 is not empty &
(vertex-seq b3) . ((len b3) + 1) = b1
holds len b3 <= b2;
:: MSSCYC_1:def 5
theorem
for b1 being Graph-like MultiGraphStruct holds
b1 is well-founded
iff
for b2 being Element of the Vertices of b1 holds
ex b3 being Element of NAT st
for b4 being oriented Chain of b1
st b4 is not empty &
(vertex-seq b4) . ((len b4) + 1) = b2
holds len b4 <= b3;
:: MSSCYC_1:condreg 2
registration
let a1 be Graph-like empty MultiGraphStruct;
cluster -> empty (Chain of a1);
end;
:: MSSCYC_1:condreg 3
registration
cluster Graph-like empty -> well-founded (MultiGraphStruct);
end;
:: MSSCYC_1:condreg 4
registration
cluster Graph-like non well-founded -> non empty (MultiGraphStruct);
end;
:: MSSCYC_1:exreg 4
registration
cluster Graph-like well-founded MultiGraphStruct;
end;
:: MSSCYC_1:condreg 5
registration
cluster Graph-like well-founded -> directed_cycle-less (MultiGraphStruct);
end;
:: MSSCYC_1:exreg 5
registration
cluster Graph-like non well-founded MultiGraphStruct;
end;
:: MSSCYC_1:exreg 6
registration
cluster Graph-like directed_cycle-less MultiGraphStruct;
end;
:: MSSCYC_1:th 19
theorem
for b1 being Relation-like Function-like DecoratedTree-like set
for b2 being Element of proj1 b1
for b3 being Element of NAT holds
b2 | b3 is Element of proj1 b1;
:: MSSCYC_1:th 20
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of b1 -Terms b2
st b3 is not root
holds ex b4 being Element of the OperSymbols of b1 st
b3 . {} = [b4,the carrier of b1];
:: MSSCYC_1:th 21
theorem
for b1 being non empty non void ManySortedSign
for b2 being MSAlgebra over b1
for b3 being GeneratorSet of b2
for b4 being ManySortedSubset of the Sorts of b2
st b3 c= b4
holds b4 is GeneratorSet of b2;
:: MSSCYC_1:exreg 7
registration
let a1 be non empty non void ManySortedSign;
let a2 be non-empty finitely-generated MSAlgebra over a1;
cluster Relation-like non-empty Function-like finite-yielding GeneratorSet of a2;
end;
:: MSSCYC_1:th 22
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being non-empty GeneratorSet of b2 holds
ex b4 being ManySortedFunction of the Sorts of FreeMSA b3,the Sorts of b2 st
b4 is_epimorphism FreeMSA b3,b2;
:: MSSCYC_1:th 23
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being non-empty GeneratorSet of b2
st b2 is not locally-finite(b1)
holds FreeMSA b3 is not locally-finite(b1);
:: MSSCYC_1:funcreg 3
registration
let a1 be non empty non void ManySortedSign;
let a2 be non-empty finite-yielding ManySortedSet of the carrier of a1;
let a3 be Element of the carrier of a1;
cluster FreeGen(a3,a2) -> finite;
end;
:: MSSCYC_1:th 25
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Element of the OperSymbols of b1
st (the Arity of b1) . b3 = {}
holds proj1 Den(b3,b2) = {{}};
:: MSSCYC_1:attrnot 7 => MSSCYC_1:attr 5
definition
let a1 be non empty non void ManySortedSign;
attr a1 is finitely_operated means
for b1 being Element of the carrier of a1 holds
{b2 where b2 is Element of the OperSymbols of a1: the_result_sort_of b2 = b1} is finite;
end;
:: MSSCYC_1:dfs 6
definiens
let a1 be non empty non void ManySortedSign;
To prove
a1 is finitely_operated
it is sufficient to prove
thus for b1 being Element of the carrier of a1 holds
{b2 where b2 is Element of the OperSymbols of a1: the_result_sort_of b2 = b1} is finite;
:: MSSCYC_1:def 6
theorem
for b1 being non empty non void ManySortedSign holds
b1 is finitely_operated
iff
for b2 being Element of the carrier of b1 holds
{b3 where b3 is Element of the OperSymbols of b1: the_result_sort_of b3 = b2} is finite;
:: MSSCYC_1:th 26
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty MSAlgebra over b1
for b3 being Element of the carrier of b1
st b1 is finitely_operated
holds Constants(b2,b3) is finite;
:: MSSCYC_1:th 27
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3 being Element of the carrier of b1 holds
{b4 where b4 is Element of (the Sorts of FreeMSA b2) . b3: depth b4 = 0} = (FreeGen(b3,b2)) \/ Constants(FreeMSA b2,b3);
:: MSSCYC_1:th 28
theorem
for b1 being non empty non void ManySortedSign
for b2 being non-empty ManySortedSet of the carrier of b1
for b3, b4 being Element of the carrier of b1
for b5 being Element of the OperSymbols of b1
for b6 being Element of (the Sorts of FreeMSA b2) . b3
for b7 being ArgumentSeq of Sym(b5,b2)
for b8 being Element of NAT
for b9 being Element of (the Sorts of FreeMSA b2) . b4
st b6 = [b5,the carrier of b1] -tree b7 & b8 in dom b7 & b9 = b7 . b8
holds depth b9 < depth b6;