Journal of Formalized Mathematics
Volume 8, 1996
University of Bialystok
Copyright (c) 1996
Association of Mizar Users
The abstract of the Mizar article:
-
- by
- Grzegorz Bancerek
- Received February 9, 1996
- MML identifier: MSUALG_6
- [
Mizar article,
MML identifier index
]
environ
vocabulary MSUALG_1, FUNCT_1, PBOOLE, PRALG_1, MSUALG_3, RELAT_1, BOOLE,
AMI_1, CARD_3, QC_LANG1, ZF_REFLE, MOD_4, ALG_1, TDGROUP, FUNCT_4,
REWRITE1, FINSEQ_1, FUNCT_7, FUNCT_2, MSUALG_4, CIRCUIT2, EQREL_1,
MCART_1, MSUALG_5, MSUALG_6, FINSEQ_4, PARTFUN1, RELAT_2;
notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, XREAL_0, NAT_1, MCART_1,
STRUCT_0, RELAT_1, RELAT_2, RELSET_1, EQREL_1, REWRITE1, FUNCT_1,
PARTFUN1, FUNCT_2, FINSEQ_1, CARD_3, FINSEQ_4, PBOOLE, PRALG_1, MSUALG_1,
MSUALG_3, MSUALG_4, MSUALG_5, FUNCT_7;
constructors NAT_1, MCART_1, REWRITE1, MSUALG_3, MSUALG_5, FUNCT_7, FINSEQ_4,
MEMBERED, EQREL_1, PARTFUN1;
clusters FUNCT_1, PBOOLE, PRALG_1, RELSET_1, STRUCT_0, MSUALG_1, REWRITE1,
MSUALG_3, MSUALG_4, MSUALG_5, ALTCAT_1, FUNCT_7, FINSEQ_1, XREAL_0,
ARYTM_3, FUNCT_2, NUMBERS, EQREL_1, PARTFUN1;
requirements NUMERALS, REAL, BOOLE, SUBSET, ARITHM;
begin :: Endomorphisms and translations
definition
let S be non empty ManySortedSign;
let A be MSAlgebra over S;
let s be SortSymbol of S;
mode Element of A,s is Element of (the Sorts of A).s;
end;
definition let I be set;
let A be ManySortedSet of I;
let h1,h2 be ManySortedFunction of A,A;
redefine func h2**h1 -> ManySortedFunction of A,A;
end;
theorem :: MSUALG_6:1
for S being non empty non void ManySortedSign
for A being MSAlgebra over S
for o being OperSymbol of S, a being set st a in Args(o,A)
holds a is Function;
theorem :: MSUALG_6:2
for S being non empty non void ManySortedSign
for A being MSAlgebra over S
for o being OperSymbol of S, a being Function st a in Args(o,A)
holds dom a = dom the_arity_of o &
for i being set st i in dom the_arity_of o
holds a.i in (the Sorts of A).((the_arity_of o)/.i);
definition
let S be non empty non void ManySortedSign;
let A be MSAlgebra over S;
attr A is feasible means
:: MSUALG_6:def 1
for o being OperSymbol of S st Args(o,A) <> {} holds Result(o,A) <> {};
end;
theorem :: MSUALG_6:3
for S being non empty non void ManySortedSign
for o being OperSymbol of S
for A being MSAlgebra over S holds
Args(o,A) <> {} iff for i being Nat st i in dom the_arity_of o
holds (the Sorts of A).((the_arity_of o)/.i) <> {};
definition
let S be non empty non void ManySortedSign;
cluster non-empty -> feasible MSAlgebra over S;
end;
definition
let S be non empty non void ManySortedSign;
cluster non-empty MSAlgebra over S;
end;
definition
let S be non empty non void ManySortedSign;
let A be MSAlgebra over S;
mode Endomorphism of A -> ManySortedFunction of A,A means
:: MSUALG_6:def 2
it is_homomorphism A,A;
end;
reserve S for non empty non void ManySortedSign,
A for MSAlgebra over S;
theorem :: MSUALG_6:4
id the Sorts of A is Endomorphism of A;
theorem :: MSUALG_6:5
for h1,h2 being ManySortedFunction of A,A
for o being OperSymbol of S
for a being Element of Args(o,A) st a in Args(o,A)
holds h2#(h1#a) = (h2**h1)#a;
theorem :: MSUALG_6:6
for h1,h2 being Endomorphism of A holds h2**h1 is Endomorphism of A;
definition let S be non empty non void ManySortedSign;
let A be MSAlgebra over S;
let h1,h2 be Endomorphism of A;
redefine func h2**h1 -> Endomorphism of A;
end;
definition
let S be non empty non void ManySortedSign;
func TranslationRel S -> Relation of the carrier of S means
:: MSUALG_6:def 3
for s1,s2 being SortSymbol of S holds [s1,s2] in it iff
ex o being OperSymbol of S st the_result_sort_of o = s2 &
ex i being Nat st i in dom the_arity_of o & (the_arity_of o)/.i = s1;
end;
theorem :: MSUALG_6:7
for S being non empty non void ManySortedSign, o being OperSymbol of S
for A being MSAlgebra over S, a being Function st a in Args(o,A)
for i being Nat, x being Element of A,(the_arity_of o)/.i holds
a+*(i,x) in Args(o,A);
theorem :: MSUALG_6:8
for A1,A2 being MSAlgebra over S, h being ManySortedFunction of A1,A2
for o being OperSymbol of S st Args(o,A1) <> {} & Args(o,A2) <> {}
for i being Nat st i in dom the_arity_of o
for x being Element of A1,(the_arity_of o)/.i holds
h.((the_arity_of o)/.i).x in (the Sorts of A2).((the_arity_of o)/.i);
theorem :: MSUALG_6:9
for S being non empty non void ManySortedSign, o being OperSymbol of S
for i being Nat st i in dom the_arity_of o
for A1,A2 being MSAlgebra over S
for h being ManySortedFunction of A1,A2
for a,b being Element of Args(o,A1) st a in Args(o,A1) & h#a in Args(o,A2)
for f,g1,g2 being Function st f = a & g1 = h#a & g2 = h#b
for x being Element of A1,((the_arity_of o)/.i)
st b = f+*(i,x)
holds g2.i = h.((the_arity_of o)/.i).x & h#b = g1+*(i,g2.i);
definition
let S be non empty non void ManySortedSign, o be OperSymbol of S;
let i be Nat;
let A be MSAlgebra over S;
let a be Function;
func transl(o,i,a,A) -> Function means
:: MSUALG_6:def 4
dom it = (the Sorts of A).((the_arity_of o)/.i) &
for x being set st x in (the Sorts of A).((the_arity_of o)/.i) holds
it.x = Den(o,A).(a+*(i,x));
end;
theorem :: MSUALG_6:10
for S being non empty non void ManySortedSign, o being OperSymbol of S
for i being Nat st i in dom the_arity_of o
for A being feasible MSAlgebra over S, a being Function
st a in Args(o,A) holds
transl(o,i,a,A) is Function of (the Sorts of A).((the_arity_of o)/.i),
(the Sorts of A).the_result_sort_of o;
definition
let S be non empty non void ManySortedSign, s1,s2 be SortSymbol of S;
let A be MSAlgebra over S;
let f be Function;
pred f is_e.translation_of A,s1,s2 means
:: MSUALG_6:def 5
ex o being OperSymbol of S st the_result_sort_of o = s2 &
ex i being Nat st i in dom the_arity_of o & ((the_arity_of o)/.i) = s1 &
ex a being Function st a in Args(o,A) & f = transl(o,i,a,A);
end;
theorem :: MSUALG_6:11
for S being non empty non void ManySortedSign, s1,s2 being SortSymbol of S
for A being feasible MSAlgebra over S, f being Function
st f is_e.translation_of A,s1,s2
holds f is Function of (the Sorts of A).s1, (the Sorts of A).s2 &
(the Sorts of A).s1 <> {} & (the Sorts of A).s2 <> {};
theorem :: MSUALG_6:12
for S being non empty non void ManySortedSign, s1,s2 being SortSymbol of S
for A being MSAlgebra over S, f being Function
st f is_e.translation_of A,s1,s2
holds [s1,s2] in TranslationRel S;
theorem :: MSUALG_6:13
for S being non empty non void ManySortedSign, s1,s2 being SortSymbol of S
for A being non-empty MSAlgebra over S st [s1,s2] in TranslationRel S
ex f being Function st f is_e.translation_of A,s1,s2;
theorem :: MSUALG_6:14
for S being non empty non void ManySortedSign
for A being feasible MSAlgebra over S
for s1,s2 being SortSymbol of S st TranslationRel S reduces s1,s2
for q being RedSequence of TranslationRel S,
p being Function-yielding FinSequence st
len q = len p+1 & s1 = q.1 & s2 = q.len q &
for i being Nat, f being Function, s1,s2 being SortSymbol of S st
i in dom p & f = p.i & s1 = q.i & s2 = q.(i+1)
holds f is_e.translation_of A,s1,s2
holds compose(p, (the Sorts of A).s1) is
Function of (the Sorts of A).s1, (the Sorts of A).s2 &
(p <> {} implies (the Sorts of A).s1 <> {} & (the Sorts of A).s2 <> {});
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let s1,s2 be SortSymbol of S such that
TranslationRel S reduces s1,s2;
mode Translation of A,s1,s2 ->
Function of (the Sorts of A).s1,(the Sorts of A).s2 means
:: MSUALG_6:def 6
ex q being RedSequence of TranslationRel S,
p being Function-yielding FinSequence st
it = compose(p, (the Sorts of A).s1) &
len q = len p+1 & s1 = q.1 & s2 = q.len q &
for i being Nat, f being Function, s1,s2 being SortSymbol of S st
i in dom p & f = p.i & s1 = q.i & s2 = q.(i+1)
holds f is_e.translation_of A,s1,s2;
end;
theorem :: MSUALG_6:15
for S being non empty non void ManySortedSign
for A being non-empty MSAlgebra over S
for s1,s2 being SortSymbol of S st TranslationRel S reduces s1,s2
for q being RedSequence of TranslationRel S,
p being Function-yielding FinSequence st
len q = len p+1 & s1 = q.1 & s2 = q.len q &
for i being Nat, f being Function, s1,s2 being SortSymbol of S st
i in dom p & f = p.i & s1 = q.i & s2 = q.(i+1)
holds f is_e.translation_of A,s1,s2
holds compose(p, (the Sorts of A).s1) is Translation of A,s1,s2;
reserve A for non-empty MSAlgebra over S;
theorem :: MSUALG_6:16
for s being SortSymbol of S
holds id ((the Sorts of A).s) is Translation of A,s,s;
theorem :: MSUALG_6:17
for s1,s2 being SortSymbol of S, f being Function
st f is_e.translation_of A,s1,s2 holds
TranslationRel S reduces s1,s2 & f is Translation of A,s1,s2;
theorem :: MSUALG_6:18
for s1,s2,s3 being SortSymbol of S st
TranslationRel S reduces s1,s2 & TranslationRel S reduces s2,s3
for t1 being Translation of A,s1,s2
for t2 being Translation of A,s2,s3
holds t2*t1 is Translation of A,s1,s3;
theorem :: MSUALG_6:19
for s1,s2,s3 being SortSymbol of S st TranslationRel S reduces s1,s2
for t being Translation of A,s1,s2
for f being Function st f is_e.translation_of A,s2,s3
holds f*t is Translation of A,s1,s3;
theorem :: MSUALG_6:20
for s1,s2,s3 being SortSymbol of S st TranslationRel S reduces s2,s3
for f being Function st f is_e.translation_of A,s1,s2
for t being Translation of A,s2,s3
holds t*f is Translation of A,s1,s3;
scheme TranslationInd
{S() -> non empty non void ManySortedSign,
A() -> non-empty MSAlgebra over S(),
P[set,set,set]}:
for s1,s2 being SortSymbol of S() st TranslationRel S() reduces s1,s2
for t being Translation of A(),s1,s2 holds P[t,s1,s2]
provided
for s being SortSymbol of S() holds P[id ((the Sorts of A()).s),s,s]
and
for s1,s2,s3 being SortSymbol of S() st TranslationRel S() reduces s1,s2
for t being Translation of A(),s1,s2 st P[t,s1,s2]
for f being Function st f is_e.translation_of A(),s2,s3
holds P[f*t,s1,s3];
theorem :: MSUALG_6:21
for A1,A2 being non-empty MSAlgebra over S
for h being ManySortedFunction of A1,A2 st h is_homomorphism A1,A2
for o being OperSymbol of S, i being Nat st i in dom the_arity_of o
for a being Element of Args(o,A1) holds
(h.the_result_sort_of o)*transl(o,i,a,A1) =
transl(o,i,h#a,A2)*(h.((the_arity_of o)/.i));
theorem :: MSUALG_6:22
for h being Endomorphism of A
for o being OperSymbol of S, i being Nat st i in dom the_arity_of o
for a being Element of Args(o,A) holds
(h.the_result_sort_of o)*transl(o,i,a,A) =
transl(o,i,h#a,A)*(h.((the_arity_of o)/.i));
theorem :: MSUALG_6:23
for A1,A2 being non-empty MSAlgebra over S
for h being ManySortedFunction of A1,A2 st h is_homomorphism A1,A2
for s1,s2 being SortSymbol of S, t being Function st
t is_e.translation_of A1,s1,s2
ex T being Function of (the Sorts of A2).s1, (the Sorts of A2).s2 st
T is_e.translation_of A2,s1,s2 & T*(h.s1) = (h.s2)*t;
theorem :: MSUALG_6:24
for h being Endomorphism of A
for s1,s2 being SortSymbol of S, t being Function st
t is_e.translation_of A,s1,s2
ex T being Function of (the Sorts of A).s1, (the Sorts of A).s2 st
T is_e.translation_of A,s1,s2 & T*(h.s1) = (h.s2)*t;
theorem :: MSUALG_6:25
for A1,A2 being non-empty MSAlgebra over S
for h being ManySortedFunction of A1,A2 st h is_homomorphism A1,A2
for s1,s2 being SortSymbol of S st TranslationRel S reduces s1,s2
for t being Translation of A1,s1,s2
ex T being Translation of A2,s1,s2 st T*(h.s1) = (h.s2)*t;
theorem :: MSUALG_6:26
for h being Endomorphism of A
for s1,s2 being SortSymbol of S st TranslationRel S reduces s1,s2
for t being Translation of A,s1,s2
ex T being Translation of A,s1,s2 st T*(h.s1) = (h.s2)*t;
begin :: Compatibility, invariantness, and stability
definition
let S be non empty non void ManySortedSign;
let A be MSAlgebra over S;
let R be ManySortedRelation of A;
attr R is compatible means
:: MSUALG_6:def 7
for o being OperSymbol of S, a,b being Function st
a in Args(o,A) & b in Args(o,A) &
(for n be Nat st n in dom the_arity_of o
holds [a.n,b.n] in R.((the_arity_of o)/.n))
holds [Den(o,A).a,Den(o,A).b] in R.(the_result_sort_of o);
attr R is invariant means
:: MSUALG_6:def 8
for s1,s2 being SortSymbol of S
for t being Function st t is_e.translation_of A,s1,s2
for a,b being set st [a,b] in R.s1 holds [t.a, t.b] in R.s2;
attr R is stable means
:: MSUALG_6:def 9
for h being Endomorphism of A
for s being SortSymbol of S
for a,b being set st [a,b] in R.s holds [(h.s).a, (h.s).b] in R.s;
end;
theorem :: MSUALG_6:27
for R being MSEquivalence-like ManySortedRelation of A holds
R is compatible iff R is MSCongruence of A;
theorem :: MSUALG_6:28
for R being ManySortedRelation of A holds R is invariant iff
for s1,s2 being SortSymbol of S st TranslationRel S reduces s1,s2
for f being Translation of A,s1,s2
for a,b being set st [a,b] in R.s1 holds [f.a,f.b] in R.s2;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
cluster invariant -> compatible (MSEquivalence-like ManySortedRelation of A);
cluster compatible -> invariant (MSEquivalence-like ManySortedRelation of A);
end;
definition
let X be non empty set;
cluster id X -> non empty;
end;
scheme MSRExistence
{I() -> non empty set,
A() -> non-empty ManySortedSet of I(), P[set,set,set]}:
ex R being ManySortedRelation of A() st
for i being Element of I() for a,b being Element of A().i holds
[a,b] in R.i iff P[i,a,b];
scheme MSRLambdaU{I() -> set, A() -> ManySortedSet of I(), F(set) -> set}:
(ex R being ManySortedRelation of A() st
for i being set st i in I() holds R.i = F(i)) &
for R1,R2 being ManySortedRelation of A() st
(for i being set st i in I() holds R1.i = F(i)) &
(for i being set st i in I() holds R2.i = F(i))
holds R1 = R2
provided
for i being set st i in I() holds F(i) is Relation of A().i, A().i;
definition
let I be set, A be ManySortedSet of I;
func id(I,A) -> ManySortedRelation of A means
:: MSUALG_6:def 10
for i being set st i in I holds it.i = id (A.i);
end;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
cluster MSEquivalence-like -> non-empty ManySortedRelation of A;
end;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
cluster invariant stable MSEquivalence-like ManySortedRelation of A;
end;
begin :: Invariant, stable, and invariant stable closure
reserve S for non empty non void ManySortedSign,
A for non-empty MSAlgebra over S,
R for ManySortedRelation of the Sorts of A;
scheme MSRelCl {S() -> non empty non void ManySortedSign,
A() -> non-empty MSAlgebra over S(),
P[set,set,set], R[set],
R,Q() -> ManySortedRelation of A()}:
R[Q()] & R() c= Q() &
for P being ManySortedRelation of A() st R[P] & R() c= P holds Q() c= P
provided
for R being ManySortedRelation of A() holds R[R] iff
for s1,s2 being SortSymbol of S()
for f being Function of (the Sorts of A()).s1,(the Sorts of A()).s2
st P[f,s1,s2]
for a,b being set st [a,b] in R.s1 holds [f.a,f.b] in R.s2
and
for s1,s2,s3 being SortSymbol of S()
for f1 being Function of (the Sorts of A()).s1,(the Sorts of A()).s2
for f2 being Function of (the Sorts of A()).s2,(the Sorts of A()).s3
st P[f1,s1,s2] & P[f2,s2,s3]
holds P[f2*f1,s1,s3]
and
for s being SortSymbol of S() holds P[id ((the Sorts of A()).s),s,s]
and
for s being SortSymbol of S(), a,b being Element of A(),s holds
[a,b] in Q().s iff
ex s' being SortSymbol of S(),
f being Function of (the Sorts of A()).s',(the Sorts of A()).s,
x,y being Element of A(),s' st
P[f,s',s] & [x,y] in R().s' & a = f.x & b = f.y;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let R be ManySortedRelation of the Sorts of A;
func InvCl R -> invariant ManySortedRelation of A means
:: MSUALG_6:def 11
R c= it &
for Q being invariant ManySortedRelation of A st R c= Q holds it c= Q;
end;
theorem :: MSUALG_6:29
for R being ManySortedRelation of the Sorts of A
for s being SortSymbol of S
for a,b being Element of A,s holds [a,b] in (InvCl R).s
iff
ex s' being SortSymbol of S, x,y being Element of A,s' st
ex t being Translation of A,s',s st
TranslationRel S reduces s',s & [x,y] in R.s' & a = t.x & b = t.y;
theorem :: MSUALG_6:30
for R being stable ManySortedRelation of A holds InvCl R is stable;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let R be ManySortedRelation of the Sorts of A;
func StabCl R -> stable ManySortedRelation of A means
:: MSUALG_6:def 12
R c= it &
for Q being stable ManySortedRelation of A st R c= Q holds it c= Q;
end;
theorem :: MSUALG_6:31
for R being ManySortedRelation of the Sorts of A
for s being SortSymbol of S
for a,b being Element of A,s holds [a,b] in (StabCl R).s
iff
ex x,y being Element of A,s, h being Endomorphism of A st
[x,y] in R.s & a = h.s.x & b = h.s.y;
theorem :: MSUALG_6:32
InvCl StabCl R is stable;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let R be ManySortedRelation of the Sorts of A;
func TRS R -> invariant stable ManySortedRelation of A means
:: MSUALG_6:def 13
R c= it &
for Q being invariant stable ManySortedRelation of A st R c= Q
holds it c= Q;
end;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let R be non-empty ManySortedRelation of A;
cluster InvCl R -> non-empty;
cluster StabCl R -> non-empty;
cluster TRS R -> non-empty;
end;
theorem :: MSUALG_6:33
for R being invariant ManySortedRelation of A holds InvCl R = R;
theorem :: MSUALG_6:34
for R being stable ManySortedRelation of A holds StabCl R = R;
theorem :: MSUALG_6:35
for R being invariant stable ManySortedRelation of A holds TRS R = R;
theorem :: MSUALG_6:36
StabCl R c= TRS R & InvCl R c= TRS R & StabCl InvCl R c= TRS R;
theorem :: MSUALG_6:37
InvCl StabCl R = TRS R;
theorem :: MSUALG_6:38
for R being ManySortedRelation of the Sorts of A
for s being SortSymbol of S, a,b being Element of A,s holds
[a,b] in (TRS R).s iff
ex s' being SortSymbol of S st TranslationRel S reduces s', s &
ex l,r being Element of A,s',
h being Endomorphism of A, t being Translation of A, s', s st
[l,r] in R.s' & a = t.(h.s'.l) & b = t.(h.s'.r);
begin :: Equational theory
theorem :: MSUALG_6:39
for A being set for R,E being Relation of A st
for a,b being set st a in A & b in A holds
[a,b] in E iff a,b are_convertible_wrt R
holds E is total symmetric transitive;
theorem :: MSUALG_6:40
for A being set, R being Relation of A
for E being Equivalence_Relation of A st R c= E
for a,b being set st a in A & b in A & a,b are_convertible_wrt R
holds [a,b] in E;
theorem :: MSUALG_6:41
for A being non empty set, R being Relation of A
for a,b being Element of A holds
[a,b] in EqCl R iff a,b are_convertible_wrt R;
theorem :: MSUALG_6:42
for S being non empty set, A being non-empty ManySortedSet of S
for R being ManySortedRelation of A
for s being Element of S for a,b being Element of A.s holds
[a,b] in (EqCl R).s iff a,b are_convertible_wrt R.s;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
mode EquationalTheory of A is
stable invariant MSEquivalence-like ManySortedRelation of A;
let R be ManySortedRelation of A;
func EqCl(R,A) -> MSEquivalence-like ManySortedRelation of A equals
:: MSUALG_6:def 14
EqCl R;
end;
theorem :: MSUALG_6:43
for R being ManySortedRelation of A holds R c= EqCl(R,A);
theorem :: MSUALG_6:44
for R being ManySortedRelation of A
for E being MSEquivalence-like ManySortedRelation of A
st R c= E holds EqCl(R,A) c= E;
theorem :: MSUALG_6:45
for R being stable ManySortedRelation of A
for s being SortSymbol of S for a,b being Element of A,s
st a,b are_convertible_wrt R.s
for h being Endomorphism of A holds h.s.a, h.s.b are_convertible_wrt R.s;
theorem :: MSUALG_6:46
for R being stable ManySortedRelation of A holds EqCl(R,A) is stable;
definition
let S,A; let R be stable ManySortedRelation of A;
cluster EqCl(R,A) -> stable;
end;
theorem :: MSUALG_6:47
for R being invariant ManySortedRelation of A
for s1,s2 being SortSymbol of S for a,b being Element of A,s1
st a,b are_convertible_wrt R.s1
for t being Function st t is_e.translation_of A,s1,s2
holds t.a, t.b are_convertible_wrt R.s2;
theorem :: MSUALG_6:48
for R being invariant ManySortedRelation of A holds EqCl(R,A) is invariant;
definition
let S,A; let R be invariant ManySortedRelation of A;
cluster EqCl(R,A) -> invariant;
end;
theorem :: MSUALG_6:49
for S being non empty set, A being non-empty ManySortedSet of S
for R,E being ManySortedRelation of A st
for s being Element of S for a,b being Element of A.s
holds [a,b] in E.s iff a,b are_convertible_wrt R.s
holds E is MSEquivalence_Relation-like;
theorem :: MSUALG_6:50
for R,E being ManySortedRelation of A st
for s being SortSymbol of S, a,b being Element of A,s
holds [a,b] in E.s iff a,b are_convertible_wrt (TRS R).s
holds E is EquationalTheory of A;
theorem :: MSUALG_6:51
for S being non empty set, A being non-empty ManySortedSet of S
for R being ManySortedRelation of A
for E being MSEquivalence_Relation-like ManySortedRelation of A st R c= E
for s being Element of S for a,b being Element of A.s
st a,b are_convertible_wrt R.s
holds [a,b] in E.s;
definition
let S be non empty non void ManySortedSign;
let A be non-empty MSAlgebra over S;
let R be ManySortedRelation of the Sorts of A;
func EqTh R -> EquationalTheory of A means
:: MSUALG_6:def 15
R c= it &
for Q being EquationalTheory of A st R c= Q holds it c= Q;
end;
theorem :: MSUALG_6:52
for R being ManySortedRelation of A holds
EqCl(R,A) c= EqTh R & InvCl R c= EqTh R &
StabCl R c= EqTh R & TRS R c= EqTh R;
theorem :: MSUALG_6:53
for R being ManySortedRelation of A
for s being SortSymbol of S, a,b being Element of A,s
holds [a,b] in (EqTh R).s iff a,b are_convertible_wrt (TRS R).s;
theorem :: MSUALG_6:54
for R being ManySortedRelation of A holds EqTh R = EqCl(TRS R,A);
Back to top