Article PUA2MSS1, MML version 4.99.1005
:: PUA2MSS1:exreg 1
registration
let a1, a2 be non empty set;
cluster non empty Relation-like Function-like Relation of a1,a2;
end;
:: PUA2MSS1:condreg 1
registration
let a1 be with_non-empty_elements set;
cluster -> non-empty (FinSequence of a1);
end;
:: PUA2MSS1:exreg 2
registration
let a1 be non empty set;
cluster non empty Relation-like non-empty Function-like finite Function-yielding FinSequence-like homogeneous quasi_total FinSequence of PFuncs(a1 *,a1);
end;
:: PUA2MSS1:condreg 2
registration
cluster non-empty -> non empty (UAStr);
end;
:: PUA2MSS1:th 1
theorem
for b1, b2 being Relation-like non-empty Function-like set
st product b1 c= product b2
holds proj1 b1 = proj1 b2 &
(for b3 being set
st b3 in proj1 b1
holds b1 . b3 c= b2 . b3);
:: PUA2MSS1:th 2
theorem
for b1, b2 being Relation-like non-empty Function-like set
st product b1 = product b2
holds b1 = b2;
:: PUA2MSS1:funcnot 1 => PUA2MSS1:func 1
definition
let a1 be non empty set;
let a2 be FinSequence of PFuncs(a1 *,a1);
redefine func rng a2 -> Element of bool PFuncs(a1 *,a1);
end;
:: PUA2MSS1:modenot 1 => PUA2MSS1:mode 1
definition
let a1, a2 be non empty set;
let a3 be non empty Element of bool PFuncs(a1,a2);
redefine mode Element of a3 -> Function-like Relation of a1,a2;
end;
:: PUA2MSS1:modenot 2
definition
let a1 be non-empty UAStr;
mode OperSymbol of a1 is Element of dom the charact of a1;
end;
:: PUA2MSS1:modenot 3
definition
let a1 be non-empty UAStr;
mode operation of a1 is Element of rng the charact of a1;
end;
:: PUA2MSS1:funcnot 2 => PUA2MSS1:func 2
definition
let a1 be non-empty UAStr;
let a2 be Element of dom the charact of a1;
func Den(A2,A1) -> Element of rng the charact of a1 equals
(the charact of a1) . a2;
end;
:: PUA2MSS1:def 1
theorem
for b1 being non-empty UAStr
for b2 being Element of dom the charact of b1 holds
Den(b2,b1) = (the charact of b1) . b2;
:: PUA2MSS1:th 3
theorem
for b1 being set
for b2 being a_partition of b1
for b3, b4, b5 being set
st b3 in b4 & b4 in b2 & b3 in b5 & b5 in b2
holds b4 = b5;
:: PUA2MSS1:th 4
theorem
for b1, b2 being set
st b1 is_finer_than b2
for b3 being FinSequence of b1 holds
ex b4 being FinSequence of b2 st
product b3 c= product b4;
:: PUA2MSS1:th 5
theorem
for b1 being set
for b2, b3 being a_partition of b1
for b4 being Function-like quasi_total Relation of b2,b3
st for b5 being set
st b5 in b2
holds b5 c= b4 . b5
for b5 being FinSequence of b2
for b6 being FinSequence of b3 holds
product b5 c= product b6
iff
b4 * b5 = b6;
:: PUA2MSS1:th 6
theorem
for b1 being set
for b2 being Relation-like Function-like set
st proj2 b2 c= union b1
holds ex b3 being Relation-like Function-like set st
proj1 b3 = proj1 b2 & proj2 b3 c= b1 & b2 in product b3;
:: PUA2MSS1:th 7
theorem
for b1 being set
for b2 being a_partition of b1
for b3 being FinSequence of b1 holds
ex b4 being FinSequence of b2 st
b3 in product b4;
:: PUA2MSS1:th 8
theorem
for b1, b2 being non empty set
for b3 being a_partition of b1
for b4 being a_partition of b2 holds
{[:b5,b6:] where b5 is Element of b3, b6 is Element of b4: TRUE} is a_partition of [:b1,b2:];
:: PUA2MSS1:th 9
theorem
for b1 being non empty set
for b2 being a_partition of b1 holds
{product b3 where b3 is Element of b2 *: TRUE} is a_partition of b1 *;
:: PUA2MSS1:th 10
theorem
for b1 being non empty set
for b2 being Element of NAT
for b3 being a_partition of b1 holds
{product b4 where b4 is Element of b2 -tuples_on b3: TRUE} is a_partition of b2 -tuples_on b1;
:: PUA2MSS1:th 11
theorem
for b1 being non empty set
for b2 being set
st b2 c= b1
for b3 being a_partition of b1 holds
{b4 /\ b2 where b4 is Element of b3: b4 meets b2} is a_partition of b2;
:: PUA2MSS1:th 12
theorem
for b1 being non empty Relation-like Function-like set
for b2 being a_partition of proj1 b1 holds
{b1 | b3 where b3 is Element of b2: TRUE} is a_partition of b1;
:: PUA2MSS1:th 14
theorem
for b1 being set
for b2 being FinSequence of SmallestPartition b1 holds
ex b3 being FinSequence of b1 st
product b2 = {b3};
:: PUA2MSS1:modenot 4 => PUA2MSS1:mode 2
definition
let a1 be set;
mode IndexedPartition of A1 -> Relation-like Function-like set means
proj2 it is a_partition of a1 & it is one-to-one;
end;
:: PUA2MSS1:dfs 2
definiens
let a1 be set;
let a2 be Relation-like Function-like set;
To prove
a2 is IndexedPartition of a1
it is sufficient to prove
thus proj2 a2 is a_partition of a1 & a2 is one-to-one;
:: PUA2MSS1:def 3
theorem
for b1 being set
for b2 being Relation-like Function-like set holds
b2 is IndexedPartition of b1
iff
proj2 b2 is a_partition of b1 & b2 is one-to-one;
:: PUA2MSS1:funcnot 3 => PUA2MSS1:func 3
definition
let a1 be set;
let a2 be IndexedPartition of a1;
redefine func rng a2 -> a_partition of a1;
end;
:: PUA2MSS1:condreg 3
registration
let a1 be set;
cluster -> non-empty one-to-one (IndexedPartition of a1);
end;
:: PUA2MSS1:condreg 4
registration
let a1 be non empty set;
cluster -> non empty (IndexedPartition of a1);
end;
:: PUA2MSS1:funcnot 4 => PUA2MSS1:func 4
definition
let a1 be set;
let a2 be a_partition of a1;
redefine func id a2 -> IndexedPartition of a1;
end;
:: PUA2MSS1:funcnot 5 => PUA2MSS1:func 5
definition
let a1 be set;
let a2 be IndexedPartition of a1;
let a3 be set;
assume a3 in a1;
func A2 -index_of A3 -> set means
it in proj1 a2 & a3 in a2 . it;
end;
:: PUA2MSS1:def 4
theorem
for b1 being set
for b2 being IndexedPartition of b1
for b3 being set
st b3 in b1
for b4 being set holds
b4 = b2 -index_of b3
iff
b4 in proj1 b2 & b3 in b2 . b4;
:: PUA2MSS1:th 15
theorem
for b1 being set
for b2 being Relation-like non-empty Function-like set
st Union b2 = b1 &
(for b3, b4 being set
st b3 in proj1 b2 & b4 in proj1 b2 & b3 <> b4
holds b2 . b3 misses b2 . b4)
holds b2 is IndexedPartition of b1;
:: PUA2MSS1:th 16
theorem
for b1, b2 being non empty set
for b3 being a_partition of b2
for b4 being Function-like quasi_total Relation of b1,b3
st b3 c= rng b4 & b4 is one-to-one
holds b4 is IndexedPartition of b2;
:: PUA2MSS1:sch 1
scheme PUA2MSS1:sch 1
{F1 -> non empty set,
F2 -> non empty set,
F3 -> Element of NAT,
F4 -> Relation of F1(),F2(),
F5 -> Relation of F1(),F2()}:
ex b1 being Relation of F1(),F2() st
ex b2 being ManySortedSet of NAT st
b1 = b2 . F3() &
b2 . 0 = F4() &
(for b3 being Element of NAT
for b4 being Relation of F1(),F2()
st b4 = b2 . b3
holds b2 . (b3 + 1) = F5(b4, b3))
:: PUA2MSS1:sch 2
scheme PUA2MSS1:sch 2
{F1 -> non empty set,
F2 -> non empty set}:
for b1, b2 being Relation of F1(),F2()
st (for b3 being Element of F1()
for b4 being Element of F2() holds
[b3,b4] in b1
iff
P1[b3, b4]) &
(for b3 being Element of F1()
for b4 being Element of F2() holds
[b3,b4] in b2
iff
P1[b3, b4])
holds b1 = b2
:: PUA2MSS1:sch 3
scheme PUA2MSS1:sch 3
{F1 -> non empty set,
F2 -> non empty set,
F3 -> Element of NAT,
F4 -> Relation of F1(),F2(),
F5 -> Relation of F1(),F2()}:
for b1, b2 being Relation of F1(),F2()
st (ex b3 being ManySortedSet of NAT st
b1 = b3 . F3() &
b3 . 0 = F4() &
(for b4 being Element of NAT
for b5 being Relation of F1(),F2()
st b5 = b3 . b4
holds b3 . (b4 + 1) = F5(b5, b4))) &
(ex b3 being ManySortedSet of NAT st
b2 = b3 . F3() &
b3 . 0 = F4() &
(for b4 being Element of NAT
for b5 being Relation of F1(),F2()
st b5 = b3 . b4
holds b3 . (b4 + 1) = F5(b5, b4)))
holds b1 = b2
:: PUA2MSS1:funcnot 6 => PUA2MSS1:func 6
definition
let a1 be partial non-empty UAStr;
func DomRel A1 -> Relation of the carrier of a1,the carrier of a1 means
for b1, b2 being Element of the carrier of a1 holds
[b1,b2] in it
iff
for b3 being Element of rng the charact of a1
for b4, b5 being Relation-like Function-like FinSequence-like set holds
(b4 ^ <*b1*>) ^ b5 in dom b3
iff
(b4 ^ <*b2*>) ^ b5 in dom b3;
end;
:: PUA2MSS1:def 5
theorem
for b1 being partial non-empty UAStr
for b2 being Relation of the carrier of b1,the carrier of b1 holds
b2 = DomRel b1
iff
for b3, b4 being Element of the carrier of b1 holds
[b3,b4] in b2
iff
for b5 being Element of rng the charact of b1
for b6, b7 being Relation-like Function-like FinSequence-like set holds
(b6 ^ <*b3*>) ^ b7 in dom b5
iff
(b6 ^ <*b4*>) ^ b7 in dom b5;
:: PUA2MSS1:funcreg 1
registration
let a1 be partial non-empty UAStr;
cluster DomRel a1 -> symmetric transitive total;
end;
:: PUA2MSS1:funcnot 7 => PUA2MSS1:func 7
definition
let a1 be partial non-empty UAStr;
let a2 be Relation of the carrier of a1,the carrier of a1;
func A2 |^ A1 -> Relation of the carrier of a1,the carrier of a1 means
for b1, b2 being Element of the carrier of a1 holds
[b1,b2] in it
iff
[b1,b2] in a2 &
(for b3 being Element of rng the charact of a1
for b4, b5 being Relation-like Function-like FinSequence-like set
st (b4 ^ <*b1*>) ^ b5 in dom b3 &
(b4 ^ <*b2*>) ^ b5 in dom b3
holds [b3 . ((b4 ^ <*b1*>) ^ b5),b3 . ((b4 ^ <*b2*>) ^ b5)] in a2);
end;
:: PUA2MSS1:def 6
theorem
for b1 being partial non-empty UAStr
for b2, b3 being Relation of the carrier of b1,the carrier of b1 holds
b3 = b2 |^ b1
iff
for b4, b5 being Element of the carrier of b1 holds
[b4,b5] in b3
iff
[b4,b5] in b2 &
(for b6 being Element of rng the charact of b1
for b7, b8 being Relation-like Function-like FinSequence-like set
st (b7 ^ <*b4*>) ^ b8 in dom b6 &
(b7 ^ <*b5*>) ^ b8 in dom b6
holds [b6 . ((b7 ^ <*b4*>) ^ b8),b6 . ((b7 ^ <*b5*>) ^ b8)] in b2);
:: PUA2MSS1:funcnot 8 => PUA2MSS1:func 8
definition
let a1 be partial non-empty UAStr;
let a2 be Relation of the carrier of a1,the carrier of a1;
let a3 be Element of NAT;
func A2 |^(A1,A3) -> Relation of the carrier of a1,the carrier of a1 means
ex b1 being ManySortedSet of NAT st
it = b1 . a3 &
b1 . 0 = a2 &
(for b2 being Element of NAT
for b3 being Relation of the carrier of a1,the carrier of a1
st b3 = b1 . b2
holds b1 . (b2 + 1) = b3 |^ a1);
end;
:: PUA2MSS1:def 7
theorem
for b1 being partial non-empty UAStr
for b2 being Relation of the carrier of b1,the carrier of b1
for b3 being Element of NAT
for b4 being Relation of the carrier of b1,the carrier of b1 holds
b4 = b2 |^(b1,b3)
iff
ex b5 being ManySortedSet of NAT st
b4 = b5 . b3 &
b5 . 0 = b2 &
(for b6 being Element of NAT
for b7 being Relation of the carrier of b1,the carrier of b1
st b7 = b5 . b6
holds b5 . (b6 + 1) = b7 |^ b1);
:: PUA2MSS1:th 17
theorem
for b1 being partial non-empty UAStr
for b2 being Relation of the carrier of b1,the carrier of b1 holds
b2 |^(b1,0) = b2 & b2 |^(b1,1) = b2 |^ b1;
:: PUA2MSS1:th 18
theorem
for b1 being partial non-empty UAStr
for b2 being Element of NAT
for b3 being Relation of the carrier of b1,the carrier of b1 holds
b3 |^(b1,b2 + 1) = (b3 |^(b1,b2)) |^ b1;
:: PUA2MSS1:th 19
theorem
for b1 being partial non-empty UAStr
for b2, b3 being Element of NAT
for b4 being Relation of the carrier of b1,the carrier of b1 holds
b4 |^(b1,b2 + b3) = (b4 |^(b1,b2)) |^(b1,b3);
:: PUA2MSS1:th 20
theorem
for b1 being partial non-empty UAStr
for b2 being symmetric transitive total Relation of the carrier of b1,the carrier of b1
st b2 c= DomRel b1
holds b2 |^ b1 is total(the carrier of b1, the carrier of b1) & b2 |^ b1 is symmetric & b2 |^ b1 is transitive;
:: PUA2MSS1:th 21
theorem
for b1 being partial non-empty UAStr
for b2 being Relation of the carrier of b1,the carrier of b1 holds
b2 |^ b1 c= b2;
:: PUA2MSS1:th 22
theorem
for b1 being partial non-empty UAStr
for b2 being symmetric transitive total Relation of the carrier of b1,the carrier of b1
st b2 c= DomRel b1
for b3 being Element of NAT holds
b2 |^(b1,b3) is total(the carrier of b1, the carrier of b1) & b2 |^(b1,b3) is symmetric & b2 |^(b1,b3) is transitive;
:: PUA2MSS1:funcnot 9 => PUA2MSS1:func 9
definition
let a1 be partial non-empty UAStr;
func LimDomRel A1 -> Relation of the carrier of a1,the carrier of a1 means
for b1, b2 being Element of the carrier of a1 holds
[b1,b2] in it
iff
for b3 being Element of NAT holds
[b1,b2] in (DomRel a1) |^(a1,b3);
end;
:: PUA2MSS1:def 8
theorem
for b1 being partial non-empty UAStr
for b2 being Relation of the carrier of b1,the carrier of b1 holds
b2 = LimDomRel b1
iff
for b3, b4 being Element of the carrier of b1 holds
[b3,b4] in b2
iff
for b5 being Element of NAT holds
[b3,b4] in (DomRel b1) |^(b1,b5);
:: PUA2MSS1:th 23
theorem
for b1 being partial non-empty UAStr holds
LimDomRel b1 c= DomRel b1;
:: PUA2MSS1:funcreg 2
registration
let a1 be partial non-empty UAStr;
cluster LimDomRel a1 -> symmetric transitive total;
end;
:: PUA2MSS1:prednot 1 => PUA2MSS1:pred 1
definition
let a1 be non empty set;
let a2 be Function-like Relation of a1 *,a1;
let a3 be a_partition of a1;
pred A2 is_partitable_wrt A3 means
for b1 being FinSequence of a3 holds
ex b2 being Element of a3 st
a2 .: product b1 c= b2;
end;
:: PUA2MSS1:dfs 8
definiens
let a1 be non empty set;
let a2 be Function-like Relation of a1 *,a1;
let a3 be a_partition of a1;
To prove
a2 is_partitable_wrt a3
it is sufficient to prove
thus for b1 being FinSequence of a3 holds
ex b2 being Element of a3 st
a2 .: product b1 c= b2;
:: PUA2MSS1:def 9
theorem
for b1 being non empty set
for b2 being Function-like Relation of b1 *,b1
for b3 being a_partition of b1 holds
b2 is_partitable_wrt b3
iff
for b4 being FinSequence of b3 holds
ex b5 being Element of b3 st
b2 .: product b4 c= b5;
:: PUA2MSS1:prednot 2 => PUA2MSS1:pred 2
definition
let a1 be non empty set;
let a2 be Function-like Relation of a1 *,a1;
let a3 be a_partition of a1;
pred A2 is_exactly_partitable_wrt A3 means
a2 is_partitable_wrt a3 &
(for b1 being FinSequence of a3
st product b1 meets dom a2
holds product b1 c= dom a2);
end;
:: PUA2MSS1:dfs 9
definiens
let a1 be non empty set;
let a2 be Function-like Relation of a1 *,a1;
let a3 be a_partition of a1;
To prove
a2 is_exactly_partitable_wrt a3
it is sufficient to prove
thus a2 is_partitable_wrt a3 &
(for b1 being FinSequence of a3
st product b1 meets dom a2
holds product b1 c= dom a2);
:: PUA2MSS1:def 10
theorem
for b1 being non empty set
for b2 being Function-like Relation of b1 *,b1
for b3 being a_partition of b1 holds
b2 is_exactly_partitable_wrt b3
iff
b2 is_partitable_wrt b3 &
(for b4 being FinSequence of b3
st product b4 meets dom b2
holds product b4 c= dom b2);
:: PUA2MSS1:th 24
theorem
for b1 being partial non-empty UAStr
for b2 being Element of rng the charact of b1 holds
b2 is_exactly_partitable_wrt SmallestPartition the carrier of b1;
:: PUA2MSS1:sch 4
scheme PUA2MSS1:sch 4
{F1 -> Relation-like Function-like FinSequence-like set,
F2 -> Relation-like Function-like FinSequence-like set}:
P1[F2()]
provided
P1[F1()]
and
len F1() = len F2()
and
for b1, b2 being Relation-like Function-like FinSequence-like set
for b3, b4 being set
st P1[(b1 ^ <*b3*>) ^ b2] & P2[b3, b4]
holds P1[(b1 ^ <*b4*>) ^ b2]
and
for b1 being Element of NAT
st b1 in dom F1()
holds P2[F1() . b1, F2() . b1];
:: PUA2MSS1:th 25
theorem
for b1 being partial non-empty UAStr
for b2 being Element of rng the charact of b1 holds
b2 is_exactly_partitable_wrt Class LimDomRel b1;
:: PUA2MSS1:modenot 5 => PUA2MSS1:mode 3
definition
let a1 be partial non-empty UAStr;
mode a_partition of A1 -> a_partition of the carrier of a1 means
for b1 being Element of rng the charact of a1 holds
b1 is_exactly_partitable_wrt it;
end;
:: PUA2MSS1:dfs 10
definiens
let a1 be partial non-empty UAStr;
let a2 be a_partition of the carrier of a1;
To prove
a2 is a_partition of a1
it is sufficient to prove
thus for b1 being Element of rng the charact of a1 holds
b1 is_exactly_partitable_wrt a2;
:: PUA2MSS1:def 11
theorem
for b1 being partial non-empty UAStr
for b2 being a_partition of the carrier of b1 holds
b2 is a_partition of b1
iff
for b3 being Element of rng the charact of b1 holds
b3 is_exactly_partitable_wrt b2;
:: PUA2MSS1:modenot 6 => PUA2MSS1:mode 4
definition
let a1 be partial non-empty UAStr;
mode IndexedPartition of A1 -> IndexedPartition of the carrier of a1 means
rng it is a_partition of a1;
end;
:: PUA2MSS1:dfs 11
definiens
let a1 be partial non-empty UAStr;
let a2 be IndexedPartition of the carrier of a1;
To prove
a2 is IndexedPartition of a1
it is sufficient to prove
thus rng a2 is a_partition of a1;
:: PUA2MSS1:def 12
theorem
for b1 being partial non-empty UAStr
for b2 being IndexedPartition of the carrier of b1 holds
b2 is IndexedPartition of b1
iff
rng b2 is a_partition of b1;
:: PUA2MSS1:funcnot 10 => PUA2MSS1:func 10
definition
let a1 be partial non-empty UAStr;
let a2 be IndexedPartition of a1;
redefine func rng a2 -> a_partition of a1;
end;
:: PUA2MSS1:th 26
theorem
for b1 being partial non-empty UAStr holds
Class LimDomRel b1 is a_partition of b1;
:: PUA2MSS1:th 27
theorem
for b1 being non empty set
for b2 being a_partition of b1
for b3 being FinSequence of b2
for b4, b5 being Relation-like Function-like FinSequence-like set
for b6, b7 being set
st (b4 ^ <*b6*>) ^ b5 in product b3 &
(ex b8 being Element of b2 st
b6 in b8 & b7 in b8)
holds (b4 ^ <*b7*>) ^ b5 in product b3;
:: PUA2MSS1:th 28
theorem
for b1 being partial non-empty UAStr
for b2 being a_partition of b1 holds
b2 is_finer_than Class LimDomRel b1;
:: PUA2MSS1:prednot 3 => PUA2MSS1:pred 3
definition
let a1, a2 be ManySortedSign;
let a3, a4 be Relation-like Function-like set;
pred A3,A4 form_morphism_between A1,A2 means
proj1 a3 = the carrier of a1 &
proj1 a4 = the OperSymbols of a1 &
proj2 a3 c= the carrier of a2 &
proj2 a4 c= the OperSymbols of a2 &
(the ResultSort of a1) * a3 = a4 * the ResultSort of a2 &
(for b1 being set
for b2 being Relation-like Function-like set
st b1 in the OperSymbols of a1 & b2 = (the Arity of a1) . b1
holds b2 * a3 = (the Arity of a2) . (a4 . b1));
end;
:: PUA2MSS1:dfs 12
definiens
let a1, a2 be ManySortedSign;
let a3, a4 be Relation-like Function-like set;
To prove
a3,a4 form_morphism_between a1,a2
it is sufficient to prove
thus proj1 a3 = the carrier of a1 &
proj1 a4 = the OperSymbols of a1 &
proj2 a3 c= the carrier of a2 &
proj2 a4 c= the OperSymbols of a2 &
(the ResultSort of a1) * a3 = a4 * the ResultSort of a2 &
(for b1 being set
for b2 being Relation-like Function-like set
st b1 in the OperSymbols of a1 & b2 = (the Arity of a1) . b1
holds b2 * a3 = (the Arity of a2) . (a4 . b1));
:: PUA2MSS1:def 13
theorem
for b1, b2 being ManySortedSign
for b3, b4 being Relation-like Function-like set holds
b3,b4 form_morphism_between b1,b2
iff
proj1 b3 = the carrier of b1 &
proj1 b4 = the OperSymbols of b1 &
proj2 b3 c= the carrier of b2 &
proj2 b4 c= the OperSymbols of b2 &
(the ResultSort of b1) * b3 = b4 * the ResultSort of b2 &
(for b5 being set
for b6 being Relation-like Function-like set
st b5 in the OperSymbols of b1 & b6 = (the Arity of b1) . b5
holds b6 * b3 = (the Arity of b2) . (b4 . b5));
:: PUA2MSS1:th 29
theorem
for b1 being non empty non void ManySortedSign holds
id the carrier of b1,id the OperSymbols of b1 form_morphism_between b1,b1;
:: PUA2MSS1:th 30
theorem
for b1, b2, b3 being ManySortedSign
for b4, b5, b6, b7 being Relation-like Function-like set
st b4,b6 form_morphism_between b1,b2 & b5,b7 form_morphism_between b2,b3
holds b4 * b5,b6 * b7 form_morphism_between b1,b3;
:: PUA2MSS1:prednot 4 => PUA2MSS1:pred 4
definition
let a1, a2 be ManySortedSign;
pred A1 is_rougher_than A2 means
ex b1, b2 being Relation-like Function-like set st
b1,b2 form_morphism_between a2,a1 & proj2 b1 = the carrier of a1 & proj2 b2 = the OperSymbols of a1;
end;
:: PUA2MSS1:dfs 13
definiens
let a1, a2 be ManySortedSign;
To prove
a1 is_rougher_than a2
it is sufficient to prove
thus ex b1, b2 being Relation-like Function-like set st
b1,b2 form_morphism_between a2,a1 & proj2 b1 = the carrier of a1 & proj2 b2 = the OperSymbols of a1;
:: PUA2MSS1:def 14
theorem
for b1, b2 being ManySortedSign holds
b1 is_rougher_than b2
iff
ex b3, b4 being Relation-like Function-like set st
b3,b4 form_morphism_between b2,b1 & proj2 b3 = the carrier of b1 & proj2 b4 = the OperSymbols of b1;
:: PUA2MSS1:prednot 5 => PUA2MSS1:pred 5
definition
let a1, a2 be non empty non void ManySortedSign;
redefine pred a1 is_rougher_than a2;
reflexivity;
:: for a1 being non empty non void ManySortedSign holds
:: a1 is_rougher_than a1;
end;
:: PUA2MSS1:th 31
theorem
for b1, b2, b3 being ManySortedSign
st b1 is_rougher_than b2 & b2 is_rougher_than b3
holds b1 is_rougher_than b3;
:: PUA2MSS1:funcnot 11 => PUA2MSS1:func 11
definition
let a1 be partial non-empty UAStr;
let a2 be a_partition of a1;
func MSSign(A1,A2) -> strict ManySortedSign means
the carrier of it = a2 &
the OperSymbols of it = {[b1,b2] where b1 is Element of dom the charact of a1, b2 is Element of a2 *: product b2 meets dom Den(b1,a1)} &
(for b1 being Element of dom the charact of a1
for b2 being Element of a2 *
st product b2 meets dom Den(b1,a1)
holds (the Arity of it) . [b1,b2] = b2 &
(Den(b1,a1)) .: product b2 c= (the ResultSort of it) . [b1,b2]);
end;
:: PUA2MSS1:def 15
theorem
for b1 being partial non-empty UAStr
for b2 being a_partition of b1
for b3 being strict ManySortedSign holds
b3 = MSSign(b1,b2)
iff
the carrier of b3 = b2 &
the OperSymbols of b3 = {[b4,b5] where b4 is Element of dom the charact of b1, b5 is Element of b2 *: product b5 meets dom Den(b4,b1)} &
(for b4 being Element of dom the charact of b1
for b5 being Element of b2 *
st product b5 meets dom Den(b4,b1)
holds (the Arity of b3) . [b4,b5] = b5 &
(Den(b4,b1)) .: product b5 c= (the ResultSort of b3) . [b4,b5]);
:: PUA2MSS1:funcreg 3
registration
let a1 be partial non-empty UAStr;
let a2 be a_partition of a1;
cluster MSSign(a1,a2) -> non empty strict non void;
end;
:: PUA2MSS1:funcnot 12 => PUA2MSS1:func 12
definition
let a1 be partial non-empty UAStr;
let a2 be a_partition of a1;
let a3 be Element of the OperSymbols of MSSign(a1,a2);
redefine func a3 `1 -> Element of dom the charact of a1;
end;
:: PUA2MSS1:funcnot 13 => PUA2MSS1:func 13
definition
let a1 be partial non-empty UAStr;
let a2 be a_partition of a1;
let a3 be Element of the OperSymbols of MSSign(a1,a2);
redefine func a3 `2 -> Element of a2 *;
end;
:: PUA2MSS1:prednot 6 => PUA2MSS1:pred 6
definition
let a1 be partial non-empty UAStr;
let a2 be non empty non void ManySortedSign;
let a3 be MSAlgebra over a2;
let a4 be IndexedPartition of the OperSymbols of a2;
pred A1 can_be_characterized_by A2,A3,A4 means
the Sorts of a3 is IndexedPartition of a1 &
proj1 a4 = dom the charact of a1 &
(for b1 being Element of dom the charact of a1 holds
(the Charact of a3) | (a4 . b1) is IndexedPartition of Den(b1,a1));
end;
:: PUA2MSS1:dfs 15
definiens
let a1 be partial non-empty UAStr;
let a2 be non empty non void ManySortedSign;
let a3 be MSAlgebra over a2;
let a4 be IndexedPartition of the OperSymbols of a2;
To prove
a1 can_be_characterized_by a2,a3,a4
it is sufficient to prove
thus the Sorts of a3 is IndexedPartition of a1 &
proj1 a4 = dom the charact of a1 &
(for b1 being Element of dom the charact of a1 holds
(the Charact of a3) | (a4 . b1) is IndexedPartition of Den(b1,a1));
:: PUA2MSS1:def 16
theorem
for b1 being partial non-empty UAStr
for b2 being non empty non void ManySortedSign
for b3 being MSAlgebra over b2
for b4 being IndexedPartition of the OperSymbols of b2 holds
b1 can_be_characterized_by b2,b3,b4
iff
the Sorts of b3 is IndexedPartition of b1 &
proj1 b4 = dom the charact of b1 &
(for b5 being Element of dom the charact of b1 holds
(the Charact of b3) | (b4 . b5) is IndexedPartition of Den(b5,b1));
:: PUA2MSS1:prednot 7 => PUA2MSS1:pred 7
definition
let a1 be partial non-empty UAStr;
let a2 be non empty non void ManySortedSign;
pred A1 can_be_characterized_by A2 means
ex b1 being MSAlgebra over a2 st
ex b2 being IndexedPartition of the OperSymbols of a2 st
a1 can_be_characterized_by a2,b1,b2;
end;
:: PUA2MSS1:dfs 16
definiens
let a1 be partial non-empty UAStr;
let a2 be non empty non void ManySortedSign;
To prove
a1 can_be_characterized_by a2
it is sufficient to prove
thus ex b1 being MSAlgebra over a2 st
ex b2 being IndexedPartition of the OperSymbols of a2 st
a1 can_be_characterized_by a2,b1,b2;
:: PUA2MSS1:def 17
theorem
for b1 being partial non-empty UAStr
for b2 being non empty non void ManySortedSign holds
b1 can_be_characterized_by b2
iff
ex b3 being MSAlgebra over b2 st
ex b4 being IndexedPartition of the OperSymbols of b2 st
b1 can_be_characterized_by b2,b3,b4;
:: PUA2MSS1:th 32
theorem
for b1 being partial non-empty UAStr
for b2 being a_partition of b1 holds
b1 can_be_characterized_by MSSign(b1,b2);
:: PUA2MSS1:th 33
theorem
for b1 being partial non-empty UAStr
for b2 being non empty non void ManySortedSign
for b3 being MSAlgebra over b2
for b4 being IndexedPartition of the OperSymbols of b2
st b1 can_be_characterized_by b2,b3,b4
for b5 being Element of dom the charact of b1
for b6 being FinSequence of proj2 the Sorts of b3
st product b6 c= dom Den(b5,b1)
holds ex b7 being Element of the OperSymbols of b2 st
(the_arity_of b7) * the Sorts of b3 = b6 & b7 in b4 . b5;
:: PUA2MSS1:th 34
theorem
for b1 being partial non-empty UAStr
for b2 being a_partition of b1
st b2 = Class LimDomRel b1
for b3 being non empty non void ManySortedSign
st b1 can_be_characterized_by b3
holds MSSign(b1,b2) is_rougher_than b3;