begin
Lm1:
for p being FinSequence
for f being Function st dom f = dom p holds
f is FinSequence
Lm2:
for X being set
for Y being non empty set
for p being FinSequence of X
for f being Function of X,Y holds f * p is FinSequence of Y
theorem Th1:
theorem Th2:
:: deftheorem defines Den PUA2MSS1:def 1 :
for A being non-empty UAStr
for o being OperSymbol of A holds Den (o,A) = the charact of A . o;
begin
theorem Th3:
theorem Th4:
theorem Th5:
theorem Th6:
theorem Th7:
theorem
theorem Th9:
theorem
theorem Th11:
theorem Th12:
theorem
canceled;
theorem Th14:
:: deftheorem PUA2MSS1:def 2 :
canceled;
:: deftheorem Def3 defines IndexedPartition PUA2MSS1:def 3 :
for X being set
for b2 being Function holds
( b2 is IndexedPartition of X iff ( rng b2 is a_partition of X & b2 is one-to-one ) );
:: deftheorem Def4 defines -index_of PUA2MSS1:def 4 :
for X being set
for P being IndexedPartition of X
for x being set st x in X holds
for b4 being set holds
( b4 = P -index_of x iff ( b4 in dom P & x in P . b4 ) );
theorem Th15:
theorem Th16:
begin
definition
let A be
partial non-empty UAStr ;
func DomRel A -> Relation of the
carrier of
A means :
Def5:
for
x,
y being
Element of
A holds
(
[x,y] in it iff for
f being
operation of
A for
p,
q being
FinSequence holds
(
(p ^ <*x*>) ^ q in dom f iff
(p ^ <*y*>) ^ q in dom f ) );
existence
ex b1 being Relation of the carrier of A st
for x, y being Element of A holds
( [x,y] in b1 iff for f being operation of A
for p, q being FinSequence holds
( (p ^ <*x*>) ^ q in dom f iff (p ^ <*y*>) ^ q in dom f ) )
uniqueness
for b1, b2 being Relation of the carrier of A st ( for x, y being Element of A holds
( [x,y] in b1 iff for f being operation of A
for p, q being FinSequence holds
( (p ^ <*x*>) ^ q in dom f iff (p ^ <*y*>) ^ q in dom f ) ) ) & ( for x, y being Element of A holds
( [x,y] in b2 iff for f being operation of A
for p, q being FinSequence holds
( (p ^ <*x*>) ^ q in dom f iff (p ^ <*y*>) ^ q in dom f ) ) ) holds
b1 = b2
end;
:: deftheorem Def5 defines DomRel PUA2MSS1:def 5 :
for A being partial non-empty UAStr
for b2 being Relation of the carrier of A holds
( b2 = DomRel A iff for x, y being Element of A holds
( [x,y] in b2 iff for f being operation of A
for p, q being FinSequence holds
( (p ^ <*x*>) ^ q in dom f iff (p ^ <*y*>) ^ q in dom f ) ) );
definition
let A be
partial non-empty UAStr ;
let R be
Relation of the
carrier of
A;
func R |^ A -> Relation of the
carrier of
A means :
Def6:
for
x,
y being
Element of
A holds
(
[x,y] in it iff (
[x,y] in R & ( for
f being
operation of
A for
p,
q being
FinSequence st
(p ^ <*x*>) ^ q in dom f &
(p ^ <*y*>) ^ q in dom f holds
[(f . ((p ^ <*x*>) ^ q)),(f . ((p ^ <*y*>) ^ q))] in R ) ) );
existence
ex b1 being Relation of the carrier of A st
for x, y being Element of A holds
( [x,y] in b1 iff ( [x,y] in R & ( for f being operation of A
for p, q being FinSequence st (p ^ <*x*>) ^ q in dom f & (p ^ <*y*>) ^ q in dom f holds
[(f . ((p ^ <*x*>) ^ q)),(f . ((p ^ <*y*>) ^ q))] in R ) ) )
uniqueness
for b1, b2 being Relation of the carrier of A st ( for x, y being Element of A holds
( [x,y] in b1 iff ( [x,y] in R & ( for f being operation of A
for p, q being FinSequence st (p ^ <*x*>) ^ q in dom f & (p ^ <*y*>) ^ q in dom f holds
[(f . ((p ^ <*x*>) ^ q)),(f . ((p ^ <*y*>) ^ q))] in R ) ) ) ) & ( for x, y being Element of A holds
( [x,y] in b2 iff ( [x,y] in R & ( for f being operation of A
for p, q being FinSequence st (p ^ <*x*>) ^ q in dom f & (p ^ <*y*>) ^ q in dom f holds
[(f . ((p ^ <*x*>) ^ q)),(f . ((p ^ <*y*>) ^ q))] in R ) ) ) ) holds
b1 = b2
end;
:: deftheorem Def6 defines |^ PUA2MSS1:def 6 :
for A being partial non-empty UAStr
for R, b3 being Relation of the carrier of A holds
( b3 = R |^ A iff for x, y being Element of A holds
( [x,y] in b3 iff ( [x,y] in R & ( for f being operation of A
for p, q being FinSequence st (p ^ <*x*>) ^ q in dom f & (p ^ <*y*>) ^ q in dom f holds
[(f . ((p ^ <*x*>) ^ q)),(f . ((p ^ <*y*>) ^ q))] in R ) ) ) );
:: deftheorem Def7 defines |^ PUA2MSS1:def 7 :
for A being partial non-empty UAStr
for R being Relation of the carrier of A
for i being Element of NAT
for b4 being Relation of the carrier of A holds
( b4 = R |^ (A,i) iff ex F being ManySortedSet of NAT st
( b4 = F . i & F . 0 = R & ( for i being Element of NAT
for R being Relation of the carrier of A st R = F . i holds
F . (i + 1) = R |^ A ) ) );
theorem Th17:
theorem Th18:
theorem
theorem Th20:
theorem Th21:
theorem Th22:
definition
let A be
partial non-empty UAStr ;
defpred S1[
set ,
set ]
means for
i being
Element of
NAT holds
[$1,$2] in (DomRel A) |^ (
A,
i);
func LimDomRel A -> Relation of the
carrier of
A means :
Def8:
for
x,
y being
Element of
A holds
(
[x,y] in it iff for
i being
Element of
NAT holds
[x,y] in (DomRel A) |^ (
A,
i) );
existence
ex b1 being Relation of the carrier of A st
for x, y being Element of A holds
( [x,y] in b1 iff for i being Element of NAT holds [x,y] in (DomRel A) |^ (A,i) )
uniqueness
for b1, b2 being Relation of the carrier of A st ( for x, y being Element of A holds
( [x,y] in b1 iff for i being Element of NAT holds [x,y] in (DomRel A) |^ (A,i) ) ) & ( for x, y being Element of A holds
( [x,y] in b2 iff for i being Element of NAT holds [x,y] in (DomRel A) |^ (A,i) ) ) holds
b1 = b2
end;
:: deftheorem Def8 defines LimDomRel PUA2MSS1:def 8 :
for A being partial non-empty UAStr
for b2 being Relation of the carrier of A holds
( b2 = LimDomRel A iff for x, y being Element of A holds
( [x,y] in b2 iff for i being Element of NAT holds [x,y] in (DomRel A) |^ (A,i) ) );
theorem Th23:
begin
:: deftheorem Def9 defines is_partitable_wrt PUA2MSS1:def 9 :
for X being non empty set
for f being PartFunc of (X *),X
for P being a_partition of X holds
( f is_partitable_wrt P iff for p being FinSequence of P ex a being Element of P st f .: (product p) c= a );
:: deftheorem Def10 defines is_exactly_partitable_wrt PUA2MSS1:def 10 :
for X being non empty set
for f being PartFunc of (X *),X
for P being a_partition of X holds
( f is_exactly_partitable_wrt P iff ( f is_partitable_wrt P & ( for p being FinSequence of P st product p meets dom f holds
product p c= dom f ) ) );
theorem
theorem Th25:
:: deftheorem Def11 defines a_partition PUA2MSS1:def 11 :
for A being partial non-empty UAStr
for b2 being a_partition of the carrier of A holds
( b2 is a_partition of A iff for f being operation of A holds f is_exactly_partitable_wrt b2 );
:: deftheorem Def12 defines IndexedPartition PUA2MSS1:def 12 :
for A being partial non-empty UAStr
for b2 being IndexedPartition of the carrier of A holds
( b2 is IndexedPartition of A iff rng b2 is a_partition of A );
theorem
theorem Th27:
theorem Th28:
begin
:: deftheorem Def13 defines form_morphism_between PUA2MSS1:def 13 :
for S1, S2 being ManySortedSign
for f, g being Function holds
( f,g form_morphism_between S1,S2 iff ( dom f = the carrier of S1 & dom g = the carrier' of S1 & rng f c= the carrier of S2 & rng g c= the carrier' of S2 & f * the ResultSort of S1 = the ResultSort of S2 * g & ( for o being set
for p being Function st o in the carrier' of S1 & p = the Arity of S1 . o holds
f * p = the Arity of S2 . (g . o) ) ) );
theorem Th29:
theorem Th30:
for
S1,
S2,
S3 being
ManySortedSign for
f1,
f2,
g1,
g2 being
Function st
f1,
g1 form_morphism_between S1,
S2 &
f2,
g2 form_morphism_between S2,
S3 holds
f2 * f1,
g2 * g1 form_morphism_between S1,
S3
:: deftheorem defines is_rougher_than PUA2MSS1:def 14 :
for S1, S2 being ManySortedSign holds
( S1 is_rougher_than S2 iff ex f, g being Function st
( f,g form_morphism_between S2,S1 & rng f = the carrier of S1 & rng g = the carrier' of S1 ) );
theorem
begin
definition
let A be
partial non-empty UAStr ;
let P be
a_partition of
A;
func MSSign (
A,
P)
-> strict ManySortedSign means :
Def15:
( the
carrier of
it = P & the
carrier' of
it = { [o,p] where o is OperSymbol of A, p is Element of P * : product p meets dom (Den (o,A)) } & ( for
o being
OperSymbol of
A for
p being
Element of
P * st
product p meets dom (Den (o,A)) holds
( the
Arity of
it . [o,p] = p &
(Den (o,A)) .: (product p) c= the
ResultSort of
it . [o,p] ) ) );
existence
ex b1 being strict ManySortedSign st
( the carrier of b1 = P & the carrier' of b1 = { [o,p] where o is OperSymbol of A, p is Element of P * : product p meets dom (Den (o,A)) } & ( for o being OperSymbol of A
for p being Element of P * st product p meets dom (Den (o,A)) holds
( the Arity of b1 . [o,p] = p & (Den (o,A)) .: (product p) c= the ResultSort of b1 . [o,p] ) ) )
correctness
uniqueness
for b1, b2 being strict ManySortedSign st the carrier of b1 = P & the carrier' of b1 = { [o,p] where o is OperSymbol of A, p is Element of P * : product p meets dom (Den (o,A)) } & ( for o being OperSymbol of A
for p being Element of P * st product p meets dom (Den (o,A)) holds
( the Arity of b1 . [o,p] = p & (Den (o,A)) .: (product p) c= the ResultSort of b1 . [o,p] ) ) & the carrier of b2 = P & the carrier' of b2 = { [o,p] where o is OperSymbol of A, p is Element of P * : product p meets dom (Den (o,A)) } & ( for o being OperSymbol of A
for p being Element of P * st product p meets dom (Den (o,A)) holds
( the Arity of b2 . [o,p] = p & (Den (o,A)) .: (product p) c= the ResultSort of b2 . [o,p] ) ) holds
b1 = b2;
end;
:: deftheorem Def15 defines MSSign PUA2MSS1:def 15 :
for A being partial non-empty UAStr
for P being a_partition of A
for b3 being strict ManySortedSign holds
( b3 = MSSign (A,P) iff ( the carrier of b3 = P & the carrier' of b3 = { [o,p] where o is OperSymbol of A, p is Element of P * : product p meets dom (Den (o,A)) } & ( for o being OperSymbol of A
for p being Element of P * st product p meets dom (Den (o,A)) holds
( the Arity of b3 . [o,p] = p & (Den (o,A)) .: (product p) c= the ResultSort of b3 . [o,p] ) ) ) );
:: deftheorem Def16 defines can_be_characterized_by PUA2MSS1:def 16 :
for A being partial non-empty UAStr
for S being non empty non void ManySortedSign
for G being MSAlgebra of S
for P being IndexedPartition of the carrier' of S holds
( A can_be_characterized_by S,G,P iff ( the Sorts of G is IndexedPartition of A & dom P = dom the charact of A & ( for o being OperSymbol of A holds the Charact of G | (P . o) is IndexedPartition of Den (o,A) ) ) );
:: deftheorem defines can_be_characterized_by PUA2MSS1:def 17 :
for A being partial non-empty UAStr
for S being non empty non void ManySortedSign holds
( A can_be_characterized_by S iff ex G being MSAlgebra of S ex P being IndexedPartition of the carrier' of S st A can_be_characterized_by S,G,P );
theorem
theorem Th33:
theorem