scheme :: MSUALG_6:sch 4
MSRelCl{ F1() -> non empty non void ManySortedSign , F2() -> non-empty MSAlgebra over F1(), P1[ set , set , set ], P2[ set ], F3() -> ManySortedRelation of F2(), F4() -> ManySortedRelation of F2() } :
( P2[F4()] & F3() c= F4() & ( for P being ManySortedRelation of F2() st P2[P] & F3() c= P holds
F4() c= P ) )
provided
A1: for R being ManySortedRelation of F2() holds
( P2[R] iff for s1, s2 being SortSymbol of F1()
for f being Function of ( the Sorts of F2() . s1),( the Sorts of F2() . s2) st P1[f,s1,s2] holds
for a, b being set st [a,b] in R . s1 holds
[(f . a),(f . b)] in R . s2 ) and
A2: for s1, s2, s3 being SortSymbol of F1()
for f1 being Function of ( the Sorts of F2() . s1),( the Sorts of F2() . s2)
for f2 being Function of ( the Sorts of F2() . s2),( the Sorts of F2() . s3) st P1[f1,s1,s2] & P1[f2,s2,s3] holds
P1[f2 * f1,s1,s3] and
A3: for s being SortSymbol of F1() holds P1[ id ( the Sorts of F2() . s),s,s] and
A4: for s being SortSymbol of F1()
for a, b being Element of F2(),s holds
( [a,b] in F4() . s iff ex s9 being SortSymbol of F1() ex f being Function of ( the Sorts of F2() . s9),( the Sorts of F2() . s) ex x, y being Element of F2(),s9 st
( P1[f,s9,s] & [x,y] in F3() . s9 & a = f . x & b = f . y ) )