:: MSUALG_4 semantic presentation begin registration let I be set ; cluster Relation-like I -defined Function-like total Relation-yielding for set ; existence ex b1 being ManySortedSet of I st b1 is Relation-yielding proof set R = the Relation; set f = I --> the Relation; reconsider f = I --> the Relation as ManySortedSet of I ; take f ; ::_thesis: f is Relation-yielding for x being set st x in dom f holds f . x is Relation by FUNCOP_1:7; hence f is Relation-yielding by FUNCOP_1:def_11; ::_thesis: verum end; end; definition let I be set ; let A, B be ManySortedSet of I; mode ManySortedRelation of A,B -> ManySortedSet of I means :Def1: :: MSUALG_4:def 1 for i being set st i in I holds it . i is Relation of (A . i),(B . i); existence ex b1 being ManySortedSet of I st for i being set st i in I holds b1 . i is Relation of (A . i),(B . i) proof consider R being Relation such that A1: R = {} ; set f = I --> R; reconsider f = I --> R as ManySortedSet of I ; take f ; ::_thesis: for i being set st i in I holds f . i is Relation of (A . i),(B . i) for i being set st i in I holds f . i is Relation of (A . i),(B . i) proof let i be set ; ::_thesis: ( i in I implies f . i is Relation of (A . i),(B . i) ) assume i in I ; ::_thesis: f . i is Relation of (A . i),(B . i) then f . i = {} by A1, FUNCOP_1:7; hence f . i is Relation of (A . i),(B . i) by RELSET_1:12; ::_thesis: verum end; hence for i being set st i in I holds f . i is Relation of (A . i),(B . i) ; ::_thesis: verum end; end; :: deftheorem Def1 defines ManySortedRelation MSUALG_4:def_1_:_ for I being set for A, B, b4 being ManySortedSet of I holds ( b4 is ManySortedRelation of A,B iff for i being set st i in I holds b4 . i is Relation of (A . i),(B . i) ); registration let I be set ; let A, B be ManySortedSet of I; cluster -> Relation-yielding for ManySortedRelation of A,B; coherence for b1 being ManySortedRelation of A,B holds b1 is Relation-yielding proof let R be ManySortedRelation of A,B; ::_thesis: R is Relation-yielding let x be set ; :: according to FUNCOP_1:def_11 ::_thesis: ( not x in dom R or R . x is set ) assume x in dom R ; ::_thesis: R . x is set then x in I ; hence R . x is set by Def1; ::_thesis: verum end; end; definition let I be set ; let A be ManySortedSet of I; mode ManySortedRelation of A is ManySortedRelation of A,A; end; definition let I be set ; let A be ManySortedSet of I; let IT be ManySortedRelation of A; attrIT is MSEquivalence_Relation-like means :Def2: :: MSUALG_4:def 2 for i being set for R being Relation of (A . i) st i in I & IT . i = R holds R is Equivalence_Relation of (A . i); end; :: deftheorem Def2 defines MSEquivalence_Relation-like MSUALG_4:def_2_:_ for I being set for A being ManySortedSet of I for IT being ManySortedRelation of A holds ( IT is MSEquivalence_Relation-like iff for i being set for R being Relation of (A . i) st i in I & IT . i = R holds R is Equivalence_Relation of (A . i) ); definition let I be non empty set ; let A, B be ManySortedSet of I; let F be ManySortedRelation of A,B; let i be Element of I; :: original: . redefine funcF . i -> Relation of (A . i),(B . i); coherence F . i is Relation of (A . i),(B . i) by Def1; end; definition let S be non empty ManySortedSign ; let U1 be MSAlgebra over S; mode ManySortedRelation of U1 is ManySortedRelation of the Sorts of U1; end; definition let S be non empty ManySortedSign ; let U1 be MSAlgebra over S; let IT be ManySortedRelation of U1; attrIT is MSEquivalence-like means :Def3: :: MSUALG_4:def 3 IT is MSEquivalence_Relation-like ; end; :: deftheorem Def3 defines MSEquivalence-like MSUALG_4:def_3_:_ for S being non empty ManySortedSign for U1 being MSAlgebra over S for IT being ManySortedRelation of U1 holds ( IT is MSEquivalence-like iff IT is MSEquivalence_Relation-like ); registration let S be non empty non void ManySortedSign ; let U1 be MSAlgebra over S; cluster non empty Relation-like the carrier of S -defined Function-like total Relation-yielding MSEquivalence-like for ManySortedRelation of the Sorts of U1, the Sorts of U1; existence ex b1 being ManySortedRelation of U1 st b1 is MSEquivalence-like proof deffunc H1( Element of S) -> Element of K10(K11(( the Sorts of U1 . S),( the Sorts of U1 . S))) = id ( the Sorts of U1 . S); consider f being Function such that A1: ( dom f = the carrier of S & ( for d being Element of S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); reconsider f = f as ManySortedSet of the carrier of S by A1, PARTFUN1:def_2, RELAT_1:def_18; for i being set st i in the carrier of S holds f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) proof let i be set ; ::_thesis: ( i in the carrier of S implies f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) ) assume i in the carrier of S ; ::_thesis: f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) then f . i = id ( the Sorts of U1 . i) by A1; hence f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedRelation of the Sorts of U1, the Sorts of U1 by Def1; reconsider f = f as ManySortedRelation of U1 ; take f ; ::_thesis: f is MSEquivalence-like for i being set for R being Relation of ( the Sorts of U1 . i) st i in the carrier of S & f . i = R holds R is Equivalence_Relation of ( the Sorts of U1 . i) proof let i be set ; ::_thesis: for R being Relation of ( the Sorts of U1 . i) st i in the carrier of S & f . i = R holds R is Equivalence_Relation of ( the Sorts of U1 . i) let R be Relation of ( the Sorts of U1 . i); ::_thesis: ( i in the carrier of S & f . i = R implies R is Equivalence_Relation of ( the Sorts of U1 . i) ) assume ( i in the carrier of S & f . i = R ) ; ::_thesis: R is Equivalence_Relation of ( the Sorts of U1 . i) then R = id ( the Sorts of U1 . i) by A1; hence R is Equivalence_Relation of ( the Sorts of U1 . i) ; ::_thesis: verum end; then f is MSEquivalence_Relation-like by Def2; hence f is MSEquivalence-like by Def3; ::_thesis: verum end; end; theorem Th1: :: MSUALG_4:1 for S being non empty non void ManySortedSign for U1 being MSAlgebra over S for s being SortSymbol of S for R being MSEquivalence-like ManySortedRelation of U1 holds R . s is Equivalence_Relation of ( the Sorts of U1 . s) proof let S be non empty non void ManySortedSign ; ::_thesis: for U1 being MSAlgebra over S for s being SortSymbol of S for R being MSEquivalence-like ManySortedRelation of U1 holds R . s is Equivalence_Relation of ( the Sorts of U1 . s) let U1 be MSAlgebra over S; ::_thesis: for s being SortSymbol of S for R being MSEquivalence-like ManySortedRelation of U1 holds R . s is Equivalence_Relation of ( the Sorts of U1 . s) let s be SortSymbol of S; ::_thesis: for R being MSEquivalence-like ManySortedRelation of U1 holds R . s is Equivalence_Relation of ( the Sorts of U1 . s) let R be MSEquivalence-like ManySortedRelation of U1; ::_thesis: R . s is Equivalence_Relation of ( the Sorts of U1 . s) R is MSEquivalence_Relation-like by Def3; hence R . s is Equivalence_Relation of ( the Sorts of U1 . s) by Def2; ::_thesis: verum end; definition let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; let R be MSEquivalence-like ManySortedRelation of U1; attrR is MSCongruence-like means :Def4: :: MSUALG_4:def 4 for o being OperSymbol of S for x, y being Element of Args (o,U1) st ( for n being Nat st n in dom x holds [(x . n),(y . n)] in R . ((the_arity_of o) /. n) ) holds [((Den (o,U1)) . x),((Den (o,U1)) . y)] in R . (the_result_sort_of o); end; :: deftheorem Def4 defines MSCongruence-like MSUALG_4:def_4_:_ for S being non empty non void ManySortedSign for U1 being non-empty MSAlgebra over S for R being MSEquivalence-like ManySortedRelation of U1 holds ( R is MSCongruence-like iff for o being OperSymbol of S for x, y being Element of Args (o,U1) st ( for n being Nat st n in dom x holds [(x . n),(y . n)] in R . ((the_arity_of o) /. n) ) holds [((Den (o,U1)) . x),((Den (o,U1)) . y)] in R . (the_result_sort_of o) ); registration let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; cluster non empty Relation-like the carrier of S -defined Function-like total Relation-yielding MSEquivalence-like MSCongruence-like for ManySortedRelation of the Sorts of U1, the Sorts of U1; existence ex b1 being MSEquivalence-like ManySortedRelation of U1 st b1 is MSCongruence-like proof deffunc H1( Element of S) -> Element of K10(K11(( the Sorts of U1 . S),( the Sorts of U1 . S))) = id ( the Sorts of U1 . S); consider f being Function such that A1: ( dom f = the carrier of S & ( for d being Element of S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); reconsider f = f as ManySortedSet of the carrier of S by A1, PARTFUN1:def_2, RELAT_1:def_18; for i being set st i in the carrier of S holds f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) proof let i be set ; ::_thesis: ( i in the carrier of S implies f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) ) assume i in the carrier of S ; ::_thesis: f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) then f . i = id ( the Sorts of U1 . i) by A1; hence f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedRelation of the Sorts of U1, the Sorts of U1 by Def1; reconsider f = f as ManySortedRelation of U1 ; for i being set for R being Relation of ( the Sorts of U1 . i) st i in the carrier of S & f . i = R holds R is Equivalence_Relation of ( the Sorts of U1 . i) proof let i be set ; ::_thesis: for R being Relation of ( the Sorts of U1 . i) st i in the carrier of S & f . i = R holds R is Equivalence_Relation of ( the Sorts of U1 . i) let R be Relation of ( the Sorts of U1 . i); ::_thesis: ( i in the carrier of S & f . i = R implies R is Equivalence_Relation of ( the Sorts of U1 . i) ) assume ( i in the carrier of S & f . i = R ) ; ::_thesis: R is Equivalence_Relation of ( the Sorts of U1 . i) then R = id ( the Sorts of U1 . i) by A1; hence R is Equivalence_Relation of ( the Sorts of U1 . i) ; ::_thesis: verum end; then f is MSEquivalence_Relation-like by Def2; then reconsider f = f as MSEquivalence-like ManySortedRelation of U1 by Def3; take f ; ::_thesis: f is MSCongruence-like for o being OperSymbol of S for x, y being Element of Args (o,U1) st ( for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ) holds [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) proof A2: dom the ResultSort of S = the carrier' of S by FUNCT_2:def_1; then A3: dom ( the Sorts of U1 * the ResultSort of S) = dom the ResultSort of S by PARTFUN1:def_2; let o be OperSymbol of S; ::_thesis: for x, y being Element of Args (o,U1) st ( for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ) holds [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) let x, y be Element of Args (o,U1); ::_thesis: ( ( for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ) implies [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) ) A4: dom x = dom (the_arity_of o) by MSUALG_3:6; assume A5: for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ; ::_thesis: [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) A6: for a being set st a in dom (the_arity_of o) holds x . a = y . a proof set ao = the_arity_of o; let a be set ; ::_thesis: ( a in dom (the_arity_of o) implies x . a = y . a ) assume A7: a in dom (the_arity_of o) ; ::_thesis: x . a = y . a then reconsider n = a as Nat by ORDINAL1:def_12; (the_arity_of o) . n in rng (the_arity_of o) by A7, FUNCT_1:def_3; then A8: f . ((the_arity_of o) . n) = id ( the Sorts of U1 . ((the_arity_of o) . n)) by A1; (the_arity_of o) /. n = (the_arity_of o) . n by A7, PARTFUN1:def_6; then [(x . n),(y . n)] in f . ((the_arity_of o) . n) by A5, A4, A7; hence x . a = y . a by A8, RELAT_1:def_10; ::_thesis: verum end; set r = the_result_sort_of o; A9: f . (the_result_sort_of o) = id ( the Sorts of U1 . (the_result_sort_of o)) by A1; A10: Result (o,U1) = ( the Sorts of U1 * the ResultSort of S) . o by MSUALG_1:def_5 .= the Sorts of U1 . ( the ResultSort of S . o) by A2, A3, FUNCT_1:12 .= the Sorts of U1 . (the_result_sort_of o) by MSUALG_1:def_2 ; dom y = dom (the_arity_of o) by MSUALG_3:6; then (Den (o,U1)) . x = (Den (o,U1)) . y by A4, A6, FUNCT_1:2; hence [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) by A9, A10, RELAT_1:def_10; ::_thesis: verum end; hence f is MSCongruence-like by Def4; ::_thesis: verum end; end; definition let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; mode MSCongruence of U1 is MSEquivalence-like MSCongruence-like ManySortedRelation of U1; end; definition let S be non empty non void ManySortedSign ; let U1 be MSAlgebra over S; let R be MSEquivalence-like ManySortedRelation of U1; let i be Element of S; :: original: . redefine funcR . i -> Equivalence_Relation of ( the Sorts of U1 . i); coherence R . i is Equivalence_Relation of ( the Sorts of U1 . i) by Th1; end; definition let S be non empty non void ManySortedSign ; let U1 be MSAlgebra over S; let R be MSEquivalence-like ManySortedRelation of U1; let i be Element of S; let x be Element of the Sorts of U1 . i; func Class (R,x) -> Subset of ( the Sorts of U1 . i) equals :: MSUALG_4:def 5 Class ((R . i),x); correctness coherence Class ((R . i),x) is Subset of ( the Sorts of U1 . i); ; end; :: deftheorem defines Class MSUALG_4:def_5_:_ for S being non empty non void ManySortedSign for U1 being MSAlgebra over S for R being MSEquivalence-like ManySortedRelation of U1 for i being Element of S for x being Element of the Sorts of U1 . i holds Class (R,x) = Class ((R . i),x); definition let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; let R be MSCongruence of U1; func Class R -> V8() ManySortedSet of the carrier of S means :Def6: :: MSUALG_4:def 6 for s being Element of S holds it . s = Class (R . s); existence ex b1 being V8() ManySortedSet of the carrier of S st for s being Element of S holds b1 . s = Class (R . s) proof deffunc H1( Element of S) -> a_partition of the Sorts of U1 . $1 = Class (R . $1); consider f being Function such that A1: ( dom f = the carrier of S & ( for d being Element of S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); reconsider f = f as ManySortedSet of the carrier of S by A1, PARTFUN1:def_2, RELAT_1:def_18; for i being set st i in the carrier of S holds not f . i is empty proof let i be set ; ::_thesis: ( i in the carrier of S implies not f . i is empty ) assume i in the carrier of S ; ::_thesis: not f . i is empty then reconsider s = i as Element of S ; consider x being set such that A2: x in the Sorts of U1 . s by XBOOLE_0:def_1; reconsider y = x as Element of the Sorts of U1 . s by A2; f . s = Class (R . s) by A1; then Class ((R . s),y) in f . s by EQREL_1:def_3; hence not f . i is empty ; ::_thesis: verum end; then reconsider f = f as V8() ManySortedSet of the carrier of S by PBOOLE:def_13; take f ; ::_thesis: for s being Element of S holds f . s = Class (R . s) thus for s being Element of S holds f . s = Class (R . s) by A1; ::_thesis: verum end; uniqueness for b1, b2 being V8() ManySortedSet of the carrier of S st ( for s being Element of S holds b1 . s = Class (R . s) ) & ( for s being Element of S holds b2 . s = Class (R . s) ) holds b1 = b2 proof let C, D be V8() ManySortedSet of the carrier of S; ::_thesis: ( ( for s being Element of S holds C . s = Class (R . s) ) & ( for s being Element of S holds D . s = Class (R . s) ) implies C = D ) assume that A3: for s being Element of S holds C . s = Class (R . s) and A4: for s being Element of S holds D . s = Class (R . s) ; ::_thesis: C = D now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_S_holds_ C_._i_=_D_._i let i be set ; ::_thesis: ( i in the carrier of S implies C . i = D . i ) assume i in the carrier of S ; ::_thesis: C . i = D . i then reconsider s = i as Element of S ; C . s = Class (R . s) by A3; hence C . i = D . i by A4; ::_thesis: verum end; hence C = D by PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def6 defines Class MSUALG_4:def_6_:_ for S being non empty non void ManySortedSign for U1 being non-empty MSAlgebra over S for R being MSCongruence of U1 for b4 being V8() ManySortedSet of the carrier of S holds ( b4 = Class R iff for s being Element of S holds b4 . s = Class (R . s) ); begin definition let S be non empty non void ManySortedSign ; let M1, M2 be ManySortedSet of the carrier' of S; let F be ManySortedFunction of M1,M2; let o be OperSymbol of S; :: original: . redefine funcF . o -> Function of (M1 . o),(M2 . o); coherence F . o is Function of (M1 . o),(M2 . o) by PBOOLE:def_15; end; registration let I be non empty set ; let p be FinSequence of I; let X be ManySortedSet of I; clusterp * X -> dom p -defined for Function; coherence for b1 being Function st b1 = X * p holds b1 is dom p -defined proof rng p c= I ; then rng p c= dom X by PARTFUN1:def_2; then dom (X * p) = dom p by RELAT_1:27; then reconsider Xp = X * p as ManySortedSet of dom p by PARTFUN1:def_2, RELAT_1:def_18; Xp is ManySortedSet of dom p ; hence for b1 being Function st b1 = X * p holds b1 is dom p -defined ; ::_thesis: verum end; end; registration let I be non empty set ; let p be FinSequence of I; let X be ManySortedSet of I; clusterp * X -> dom p -defined total for dom p -defined Function; coherence for b1 being dom p -defined Function st b1 = X * p holds b1 is total proof rng p c= I ; then rng p c= dom X by PARTFUN1:def_2; then dom (X * p) = dom p by RELAT_1:27; then reconsider Xp = X * p as ManySortedSet of dom p by PARTFUN1:def_2; Xp is ManySortedSet of dom p ; hence for b1 being dom p -defined Function st b1 = X * p holds b1 is total ; ::_thesis: verum end; end; definition let S be non empty non void ManySortedSign ; let o be OperSymbol of S; let A be non-empty MSAlgebra over S; let R be MSCongruence of A; let x be Element of Args (o,A); funcR # x -> Element of product ((Class R) * (the_arity_of o)) means :Def7: :: MSUALG_4:def 7 for n being Nat st n in dom (the_arity_of o) holds it . n = Class ((R . ((the_arity_of o) /. n)),(x . n)); existence ex b1 being Element of product ((Class R) * (the_arity_of o)) st for n being Nat st n in dom (the_arity_of o) holds b1 . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) proof defpred S1[ set , set ] means for n being Nat st n = $1 holds $2 = Class ((R . ((the_arity_of o) /. n)),(x . n)); set ar = the_arity_of o; set da = dom (the_arity_of o); A1: for y being set st y in dom (the_arity_of o) holds ex u being set st S1[y,u] proof let y be set ; ::_thesis: ( y in dom (the_arity_of o) implies ex u being set st S1[y,u] ) assume y in dom (the_arity_of o) ; ::_thesis: ex u being set st S1[y,u] then reconsider n = y as Nat by ORDINAL1:def_12; take Class ((R . ((the_arity_of o) /. n)),(x . n)) ; ::_thesis: S1[y, Class ((R . ((the_arity_of o) /. n)),(x . n))] thus S1[y, Class ((R . ((the_arity_of o) /. n)),(x . n))] ; ::_thesis: verum end; consider f being Function such that A2: ( dom f = dom (the_arity_of o) & ( for x being set st x in dom (the_arity_of o) holds S1[x,f . x] ) ) from CLASSES1:sch_1(A1); A3: dom ((Class R) * (the_arity_of o)) = dom (the_arity_of o) by PARTFUN1:def_2; for y being set st y in dom ((Class R) * (the_arity_of o)) holds f . y in ((Class R) * (the_arity_of o)) . y proof let y be set ; ::_thesis: ( y in dom ((Class R) * (the_arity_of o)) implies f . y in ((Class R) * (the_arity_of o)) . y ) assume A4: y in dom ((Class R) * (the_arity_of o)) ; ::_thesis: f . y in ((Class R) * (the_arity_of o)) . y then reconsider n = y as Nat by ORDINAL1:def_12; (the_arity_of o) . y in rng (the_arity_of o) by A3, A4, FUNCT_1:def_3; then reconsider s = (the_arity_of o) . y as Element of S ; A5: y in dom ( the Sorts of A * (the_arity_of o)) by A3, A4, PARTFUN1:def_2; then ( the Sorts of A * (the_arity_of o)) . y = the Sorts of A . ((the_arity_of o) . y) by FUNCT_1:12; then A6: x . y in the Sorts of A . s by A5, MSUALG_3:6; ( f . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) & (the_arity_of o) /. n = (the_arity_of o) . n ) by A2, A3, A4, PARTFUN1:def_6; then A7: f . y in Class (R . s) by A6, EQREL_1:def_3; ((Class R) * (the_arity_of o)) . y = (Class R) . ((the_arity_of o) . y) by A4, FUNCT_1:12; hence f . y in ((Class R) * (the_arity_of o)) . y by A7, Def6; ::_thesis: verum end; then reconsider f = f as Element of product ((Class R) * (the_arity_of o)) by A2, A3, CARD_3:9; take f ; ::_thesis: for n being Nat st n in dom (the_arity_of o) holds f . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) let n be Nat; ::_thesis: ( n in dom (the_arity_of o) implies f . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) ) assume n in dom (the_arity_of o) ; ::_thesis: f . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) hence f . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) by A2; ::_thesis: verum end; uniqueness for b1, b2 being Element of product ((Class R) * (the_arity_of o)) st ( for n being Nat st n in dom (the_arity_of o) holds b1 . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) ) & ( for n being Nat st n in dom (the_arity_of o) holds b2 . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) ) holds b1 = b2 proof let F, G be Element of product ((Class R) * (the_arity_of o)); ::_thesis: ( ( for n being Nat st n in dom (the_arity_of o) holds F . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) ) & ( for n being Nat st n in dom (the_arity_of o) holds G . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) ) implies F = G ) assume that A8: for n being Nat st n in dom (the_arity_of o) holds F . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) and A9: for n being Nat st n in dom (the_arity_of o) holds G . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) ; ::_thesis: F = G A10: for y being set st y in dom (the_arity_of o) holds F . y = G . y proof let y be set ; ::_thesis: ( y in dom (the_arity_of o) implies F . y = G . y ) assume A11: y in dom (the_arity_of o) ; ::_thesis: F . y = G . y then reconsider n = y as Nat by ORDINAL1:def_12; F . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) by A8, A11; hence F . y = G . y by A9, A11; ::_thesis: verum end; A12: dom G = dom (the_arity_of o) by PARTFUN1:def_2; dom F = dom (the_arity_of o) by PARTFUN1:def_2; hence F = G by A12, A10, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def7 defines # MSUALG_4:def_7_:_ for S being non empty non void ManySortedSign for o being OperSymbol of S for A being non-empty MSAlgebra over S for R being MSCongruence of A for x being Element of Args (o,A) for b6 being Element of product ((Class R) * (the_arity_of o)) holds ( b6 = R # x iff for n being Nat st n in dom (the_arity_of o) holds b6 . n = Class ((R . ((the_arity_of o) /. n)),(x . n)) ); definition let S be non empty non void ManySortedSign ; let o be OperSymbol of S; let A be non-empty MSAlgebra over S; let R be MSCongruence of A; func QuotRes (R,o) -> Function of (( the Sorts of A * the ResultSort of S) . o),(((Class R) * the ResultSort of S) . o) means :Def8: :: MSUALG_4:def 8 for x being Element of the Sorts of A . (the_result_sort_of o) holds it . x = Class (R,x); existence ex b1 being Function of (( the Sorts of A * the ResultSort of S) . o),(((Class R) * the ResultSort of S) . o) st for x being Element of the Sorts of A . (the_result_sort_of o) holds b1 . x = Class (R,x) proof set rs = the_result_sort_of o; set D = the Sorts of A . (the_result_sort_of o); deffunc H1( Element of the Sorts of A . (the_result_sort_of o)) -> Subset of ( the Sorts of A . (the_result_sort_of o)) = Class (R,$1); consider f being Function such that A1: ( dom f = the Sorts of A . (the_result_sort_of o) & ( for d being Element of the Sorts of A . (the_result_sort_of o) holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); A2: for x being set st x in the Sorts of A . (the_result_sort_of o) holds f . x in (Class R) . (the_result_sort_of o) proof let x be set ; ::_thesis: ( x in the Sorts of A . (the_result_sort_of o) implies f . x in (Class R) . (the_result_sort_of o) ) assume x in the Sorts of A . (the_result_sort_of o) ; ::_thesis: f . x in (Class R) . (the_result_sort_of o) then reconsider x1 = x as Element of the Sorts of A . (the_result_sort_of o) ; f . x1 = Class (R,x1) by A1; then f . x1 in Class (R . (the_result_sort_of o)) by EQREL_1:def_3; hence f . x in (Class R) . (the_result_sort_of o) by Def6; ::_thesis: verum end; o in the carrier' of S ; then o in dom ( the Sorts of A * the ResultSort of S) by PARTFUN1:def_2; then A3: ( the Sorts of A * the ResultSort of S) . o = the Sorts of A . ( the ResultSort of S . o) by FUNCT_1:12 .= the Sorts of A . (the_result_sort_of o) by MSUALG_1:def_2 ; A4: dom the ResultSort of S = the carrier' of S by FUNCT_2:def_1; then dom ((Class R) * the ResultSort of S) = dom the ResultSort of S by PARTFUN1:def_2; then ((Class R) * the ResultSort of S) . o = (Class R) . ( the ResultSort of S . o) by A4, FUNCT_1:12 .= (Class R) . (the_result_sort_of o) by MSUALG_1:def_2 ; then reconsider f = f as Function of (( the Sorts of A * the ResultSort of S) . o),(((Class R) * the ResultSort of S) . o) by A1, A3, A2, FUNCT_2:3; take f ; ::_thesis: for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = Class (R,x) thus for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = Class (R,x) by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of (( the Sorts of A * the ResultSort of S) . o),(((Class R) * the ResultSort of S) . o) st ( for x being Element of the Sorts of A . (the_result_sort_of o) holds b1 . x = Class (R,x) ) & ( for x being Element of the Sorts of A . (the_result_sort_of o) holds b2 . x = Class (R,x) ) holds b1 = b2 proof set SA = the Sorts of A; set RS = the ResultSort of S; set rs = the_result_sort_of o; let f, g be Function of (( the Sorts of A * the ResultSort of S) . o),(((Class R) * the ResultSort of S) . o); ::_thesis: ( ( for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = Class (R,x) ) & ( for x being Element of the Sorts of A . (the_result_sort_of o) holds g . x = Class (R,x) ) implies f = g ) assume that A5: for x being Element of the Sorts of A . (the_result_sort_of o) holds f . x = Class (R,x) and A6: for x being Element of the Sorts of A . (the_result_sort_of o) holds g . x = Class (R,x) ; ::_thesis: f = g A7: now__::_thesis:_for_x_being_set_st_x_in_the_Sorts_of_A_._(the_result_sort_of_o)_holds_ f_._x_=_g_._x let x be set ; ::_thesis: ( x in the Sorts of A . (the_result_sort_of o) implies f . x = g . x ) assume x in the Sorts of A . (the_result_sort_of o) ; ::_thesis: f . x = g . x then reconsider x1 = x as Element of the Sorts of A . (the_result_sort_of o) ; f . x1 = Class (R,x1) by A5; hence f . x = g . x by A6; ::_thesis: verum end; o in the carrier' of S ; then o in dom ( the Sorts of A * the ResultSort of S) by PARTFUN1:def_2; then ( the Sorts of A * the ResultSort of S) . o = the Sorts of A . ( the ResultSort of S . o) by FUNCT_1:12 .= the Sorts of A . (the_result_sort_of o) by MSUALG_1:def_2 ; then ( dom f = the Sorts of A . (the_result_sort_of o) & dom g = the Sorts of A . (the_result_sort_of o) ) by FUNCT_2:def_1; hence f = g by A7, FUNCT_1:2; ::_thesis: verum end; func QuotArgs (R,o) -> Function of ((( the Sorts of A #) * the Arity of S) . o),((((Class R) #) * the Arity of S) . o) means :: MSUALG_4:def 9 for x being Element of Args (o,A) holds it . x = R # x; existence ex b1 being Function of ((( the Sorts of A #) * the Arity of S) . o),((((Class R) #) * the Arity of S) . o) st for x being Element of Args (o,A) holds b1 . x = R # x proof set ao = the_arity_of o; set D = Args (o,A); deffunc H1( Element of Args (o,A)) -> Element of product ((Class R) * (the_arity_of o)) = R # $1; consider f being Function such that A8: ( dom f = Args (o,A) & ( for d being Element of Args (o,A) holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); A9: o in the carrier' of S ; then o in dom (( the Sorts of A #) * the Arity of S) by PARTFUN1:def_2; then A10: (( the Sorts of A #) * the Arity of S) . o = ( the Sorts of A #) . ( the Arity of S . o) by FUNCT_1:12 .= ( the Sorts of A #) . (the_arity_of o) by MSUALG_1:def_1 ; A11: for x being set st x in ( the Sorts of A #) . (the_arity_of o) holds f . x in ((Class R) #) . (the_arity_of o) proof let x be set ; ::_thesis: ( x in ( the Sorts of A #) . (the_arity_of o) implies f . x in ((Class R) #) . (the_arity_of o) ) assume x in ( the Sorts of A #) . (the_arity_of o) ; ::_thesis: f . x in ((Class R) #) . (the_arity_of o) then reconsider x1 = x as Element of Args (o,A) by A10, MSUALG_1:def_4; ( f . x1 = R # x1 & ((Class R) #) . (the_arity_of o) = product ((Class R) * (the_arity_of o)) ) by A8, FINSEQ_2:def_5; hence f . x in ((Class R) #) . (the_arity_of o) ; ::_thesis: verum end; o in dom (((Class R) #) * the Arity of S) by A9, PARTFUN1:def_2; then (((Class R) #) * the Arity of S) . o = ((Class R) #) . ( the Arity of S . o) by FUNCT_1:12 .= ((Class R) #) . (the_arity_of o) by MSUALG_1:def_1 ; then reconsider f = f as Function of ((( the Sorts of A #) * the Arity of S) . o),((((Class R) #) * the Arity of S) . o) by A8, A10, A11, FUNCT_2:3, MSUALG_1:def_4; take f ; ::_thesis: for x being Element of Args (o,A) holds f . x = R # x thus for x being Element of Args (o,A) holds f . x = R # x by A8; ::_thesis: verum end; uniqueness for b1, b2 being Function of ((( the Sorts of A #) * the Arity of S) . o),((((Class R) #) * the Arity of S) . o) st ( for x being Element of Args (o,A) holds b1 . x = R # x ) & ( for x being Element of Args (o,A) holds b2 . x = R # x ) holds b1 = b2 proof set ao = the_arity_of o; let f, g be Function of ((( the Sorts of A #) * the Arity of S) . o),((((Class R) #) * the Arity of S) . o); ::_thesis: ( ( for x being Element of Args (o,A) holds f . x = R # x ) & ( for x being Element of Args (o,A) holds g . x = R # x ) implies f = g ) assume that A12: for x being Element of Args (o,A) holds f . x = R # x and A13: for x being Element of Args (o,A) holds g . x = R # x ; ::_thesis: f = g o in the carrier' of S ; then o in dom (( the Sorts of A #) * the Arity of S) by PARTFUN1:def_2; then A14: (( the Sorts of A #) * the Arity of S) . o = ( the Sorts of A #) . ( the Arity of S . o) by FUNCT_1:12 .= ( the Sorts of A #) . (the_arity_of o) by MSUALG_1:def_1 ; A15: now__::_thesis:_for_x_being_set_st_x_in_(_the_Sorts_of_A_#)_._(the_arity_of_o)_holds_ f_._x_=_g_._x let x be set ; ::_thesis: ( x in ( the Sorts of A #) . (the_arity_of o) implies f . x = g . x ) assume x in ( the Sorts of A #) . (the_arity_of o) ; ::_thesis: f . x = g . x then reconsider x1 = x as Element of Args (o,A) by A14, MSUALG_1:def_4; f . x1 = R # x1 by A12; hence f . x = g . x by A13; ::_thesis: verum end; ( dom f = ( the Sorts of A #) . (the_arity_of o) & dom g = ( the Sorts of A #) . (the_arity_of o) ) by A14, FUNCT_2:def_1; hence f = g by A15, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def8 defines QuotRes MSUALG_4:def_8_:_ for S being non empty non void ManySortedSign for o being OperSymbol of S for A being non-empty MSAlgebra over S for R being MSCongruence of A for b5 being Function of (( the Sorts of A * the ResultSort of S) . o),(((Class R) * the ResultSort of S) . o) holds ( b5 = QuotRes (R,o) iff for x being Element of the Sorts of A . (the_result_sort_of o) holds b5 . x = Class (R,x) ); :: deftheorem defines QuotArgs MSUALG_4:def_9_:_ for S being non empty non void ManySortedSign for o being OperSymbol of S for A being non-empty MSAlgebra over S for R being MSCongruence of A for b5 being Function of ((( the Sorts of A #) * the Arity of S) . o),((((Class R) #) * the Arity of S) . o) holds ( b5 = QuotArgs (R,o) iff for x being Element of Args (o,A) holds b5 . x = R # x ); definition let S be non empty non void ManySortedSign ; let A be non-empty MSAlgebra over S; let R be MSCongruence of A; func QuotRes R -> ManySortedFunction of the Sorts of A * the ResultSort of S,(Class R) * the ResultSort of S means :: MSUALG_4:def 10 for o being OperSymbol of S holds it . o = QuotRes (R,o); existence ex b1 being ManySortedFunction of the Sorts of A * the ResultSort of S,(Class R) * the ResultSort of S st for o being OperSymbol of S holds b1 . o = QuotRes (R,o) proof defpred S1[ set , set ] means for o being OperSymbol of S st o = $1 holds $2 = QuotRes (R,o); set O = the carrier' of S; A1: for x being set st x in the carrier' of S holds ex y being set st S1[x,y] proof let x be set ; ::_thesis: ( x in the carrier' of S implies ex y being set st S1[x,y] ) assume x in the carrier' of S ; ::_thesis: ex y being set st S1[x,y] then reconsider x1 = x as OperSymbol of S ; take QuotRes (R,x1) ; ::_thesis: S1[x, QuotRes (R,x1)] thus S1[x, QuotRes (R,x1)] ; ::_thesis: verum end; consider f being Function such that A2: ( dom f = the carrier' of S & ( for x being set st x in the carrier' of S holds S1[x,f . x] ) ) from CLASSES1:sch_1(A1); reconsider f = f as ManySortedSet of the carrier' of S by A2, PARTFUN1:def_2, RELAT_1:def_18; for x being set st x in dom f holds f . x is Function proof let x be set ; ::_thesis: ( x in dom f implies f . x is Function ) assume x in dom f ; ::_thesis: f . x is Function then reconsider x1 = x as OperSymbol of S ; f . x1 = QuotRes (R,x1) by A2; hence f . x is Function ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the carrier' of S by FUNCOP_1:def_6; for i being set st i in the carrier' of S holds f . i is Function of (( the Sorts of A * the ResultSort of S) . i),(((Class R) * the ResultSort of S) . i) proof let i be set ; ::_thesis: ( i in the carrier' of S implies f . i is Function of (( the Sorts of A * the ResultSort of S) . i),(((Class R) * the ResultSort of S) . i) ) assume i in the carrier' of S ; ::_thesis: f . i is Function of (( the Sorts of A * the ResultSort of S) . i),(((Class R) * the ResultSort of S) . i) then reconsider i1 = i as OperSymbol of S ; f . i1 = QuotRes (R,i1) by A2; hence f . i is Function of (( the Sorts of A * the ResultSort of S) . i),(((Class R) * the ResultSort of S) . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the Sorts of A * the ResultSort of S,(Class R) * the ResultSort of S by PBOOLE:def_15; take f ; ::_thesis: for o being OperSymbol of S holds f . o = QuotRes (R,o) thus for o being OperSymbol of S holds f . o = QuotRes (R,o) by A2; ::_thesis: verum end; uniqueness for b1, b2 being ManySortedFunction of the Sorts of A * the ResultSort of S,(Class R) * the ResultSort of S st ( for o being OperSymbol of S holds b1 . o = QuotRes (R,o) ) & ( for o being OperSymbol of S holds b2 . o = QuotRes (R,o) ) holds b1 = b2 proof let f, g be ManySortedFunction of the Sorts of A * the ResultSort of S,(Class R) * the ResultSort of S; ::_thesis: ( ( for o being OperSymbol of S holds f . o = QuotRes (R,o) ) & ( for o being OperSymbol of S holds g . o = QuotRes (R,o) ) implies f = g ) assume that A3: for o being OperSymbol of S holds f . o = QuotRes (R,o) and A4: for o being OperSymbol of S holds g . o = QuotRes (R,o) ; ::_thesis: f = g now__::_thesis:_for_i_being_set_st_i_in_the_carrier'_of_S_holds_ f_._i_=_g_._i let i be set ; ::_thesis: ( i in the carrier' of S implies f . i = g . i ) assume i in the carrier' of S ; ::_thesis: f . i = g . i then reconsider i1 = i as OperSymbol of S ; f . i1 = QuotRes (R,i1) by A3; hence f . i = g . i by A4; ::_thesis: verum end; hence f = g by PBOOLE:3; ::_thesis: verum end; func QuotArgs R -> ManySortedFunction of ( the Sorts of A #) * the Arity of S,((Class R) #) * the Arity of S means :: MSUALG_4:def 11 for o being OperSymbol of S holds it . o = QuotArgs (R,o); existence ex b1 being ManySortedFunction of ( the Sorts of A #) * the Arity of S,((Class R) #) * the Arity of S st for o being OperSymbol of S holds b1 . o = QuotArgs (R,o) proof defpred S1[ set , set ] means for o being OperSymbol of S st o = $1 holds $2 = QuotArgs (R,o); set O = the carrier' of S; A5: for x being set st x in the carrier' of S holds ex y being set st S1[x,y] proof let x be set ; ::_thesis: ( x in the carrier' of S implies ex y being set st S1[x,y] ) assume x in the carrier' of S ; ::_thesis: ex y being set st S1[x,y] then reconsider x1 = x as OperSymbol of S ; take QuotArgs (R,x1) ; ::_thesis: S1[x, QuotArgs (R,x1)] thus S1[x, QuotArgs (R,x1)] ; ::_thesis: verum end; consider f being Function such that A6: ( dom f = the carrier' of S & ( for x being set st x in the carrier' of S holds S1[x,f . x] ) ) from CLASSES1:sch_1(A5); reconsider f = f as ManySortedSet of the carrier' of S by A6, PARTFUN1:def_2, RELAT_1:def_18; for x being set st x in dom f holds f . x is Function proof let x be set ; ::_thesis: ( x in dom f implies f . x is Function ) assume x in dom f ; ::_thesis: f . x is Function then reconsider x1 = x as OperSymbol of S ; f . x1 = QuotArgs (R,x1) by A6; hence f . x is Function ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the carrier' of S by FUNCOP_1:def_6; for i being set st i in the carrier' of S holds f . i is Function of ((( the Sorts of A #) * the Arity of S) . i),((((Class R) #) * the Arity of S) . i) proof let i be set ; ::_thesis: ( i in the carrier' of S implies f . i is Function of ((( the Sorts of A #) * the Arity of S) . i),((((Class R) #) * the Arity of S) . i) ) assume i in the carrier' of S ; ::_thesis: f . i is Function of ((( the Sorts of A #) * the Arity of S) . i),((((Class R) #) * the Arity of S) . i) then reconsider i1 = i as OperSymbol of S ; f . i1 = QuotArgs (R,i1) by A6; hence f . i is Function of ((( the Sorts of A #) * the Arity of S) . i),((((Class R) #) * the Arity of S) . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of ( the Sorts of A #) * the Arity of S,((Class R) #) * the Arity of S by PBOOLE:def_15; take f ; ::_thesis: for o being OperSymbol of S holds f . o = QuotArgs (R,o) thus for o being OperSymbol of S holds f . o = QuotArgs (R,o) by A6; ::_thesis: verum end; uniqueness for b1, b2 being ManySortedFunction of ( the Sorts of A #) * the Arity of S,((Class R) #) * the Arity of S st ( for o being OperSymbol of S holds b1 . o = QuotArgs (R,o) ) & ( for o being OperSymbol of S holds b2 . o = QuotArgs (R,o) ) holds b1 = b2 proof let f, g be ManySortedFunction of ( the Sorts of A #) * the Arity of S,((Class R) #) * the Arity of S; ::_thesis: ( ( for o being OperSymbol of S holds f . o = QuotArgs (R,o) ) & ( for o being OperSymbol of S holds g . o = QuotArgs (R,o) ) implies f = g ) assume that A7: for o being OperSymbol of S holds f . o = QuotArgs (R,o) and A8: for o being OperSymbol of S holds g . o = QuotArgs (R,o) ; ::_thesis: f = g now__::_thesis:_for_i_being_set_st_i_in_the_carrier'_of_S_holds_ f_._i_=_g_._i let i be set ; ::_thesis: ( i in the carrier' of S implies f . i = g . i ) assume i in the carrier' of S ; ::_thesis: f . i = g . i then reconsider i1 = i as OperSymbol of S ; f . i1 = QuotArgs (R,i1) by A7; hence f . i = g . i by A8; ::_thesis: verum end; hence f = g by PBOOLE:3; ::_thesis: verum end; end; :: deftheorem defines QuotRes MSUALG_4:def_10_:_ for S being non empty non void ManySortedSign for A being non-empty MSAlgebra over S for R being MSCongruence of A for b4 being ManySortedFunction of the Sorts of A * the ResultSort of S,(Class R) * the ResultSort of S holds ( b4 = QuotRes R iff for o being OperSymbol of S holds b4 . o = QuotRes (R,o) ); :: deftheorem defines QuotArgs MSUALG_4:def_11_:_ for S being non empty non void ManySortedSign for A being non-empty MSAlgebra over S for R being MSCongruence of A for b4 being ManySortedFunction of ( the Sorts of A #) * the Arity of S,((Class R) #) * the Arity of S holds ( b4 = QuotArgs R iff for o being OperSymbol of S holds b4 . o = QuotArgs (R,o) ); theorem Th2: :: MSUALG_4:2 for S being non empty non void ManySortedSign for o being OperSymbol of S for A being non-empty MSAlgebra over S for R being MSCongruence of A for x being set st x in (((Class R) #) * the Arity of S) . o holds ex a being Element of Args (o,A) st x = R # a proof let S be non empty non void ManySortedSign ; ::_thesis: for o being OperSymbol of S for A being non-empty MSAlgebra over S for R being MSCongruence of A for x being set st x in (((Class R) #) * the Arity of S) . o holds ex a being Element of Args (o,A) st x = R # a let o be OperSymbol of S; ::_thesis: for A being non-empty MSAlgebra over S for R being MSCongruence of A for x being set st x in (((Class R) #) * the Arity of S) . o holds ex a being Element of Args (o,A) st x = R # a let A be non-empty MSAlgebra over S; ::_thesis: for R being MSCongruence of A for x being set st x in (((Class R) #) * the Arity of S) . o holds ex a being Element of Args (o,A) st x = R # a let R be MSCongruence of A; ::_thesis: for x being set st x in (((Class R) #) * the Arity of S) . o holds ex a being Element of Args (o,A) st x = R # a let x be set ; ::_thesis: ( x in (((Class R) #) * the Arity of S) . o implies ex a being Element of Args (o,A) st x = R # a ) assume A1: x in (((Class R) #) * the Arity of S) . o ; ::_thesis: ex a being Element of Args (o,A) st x = R # a set ar = the_arity_of o; A2: the_arity_of o = the Arity of S . o by MSUALG_1:def_1; then (((Class R) #) * the Arity of S) . o = product ((Class R) * (the_arity_of o)) by MSAFREE:1; then consider f being Function such that A3: f = x and A4: dom f = dom ((Class R) * (the_arity_of o)) and A5: for y being set st y in dom ((Class R) * (the_arity_of o)) holds f . y in ((Class R) * (the_arity_of o)) . y by A1, CARD_3:def_5; defpred S1[ set , set ] means $2 in f . $1; A6: dom ((Class R) * (the_arity_of o)) = dom (the_arity_of o) by PARTFUN1:def_2; A7: for n being Nat st n in dom f holds f . n in Class (R . ((the_arity_of o) /. n)) proof let n be Nat; ::_thesis: ( n in dom f implies f . n in Class (R . ((the_arity_of o) /. n)) ) reconsider s = (the_arity_of o) /. n as Element of S ; assume A8: n in dom f ; ::_thesis: f . n in Class (R . ((the_arity_of o) /. n)) then (the_arity_of o) . n = (the_arity_of o) /. n by A4, A6, PARTFUN1:def_6; then ((Class R) * (the_arity_of o)) . n = (Class R) . s by A4, A8, FUNCT_1:12 .= Class (R . s) by Def6 ; hence f . n in Class (R . ((the_arity_of o) /. n)) by A4, A5, A8; ::_thesis: verum end; A9: for a being set st a in dom f holds ex b being set st S1[a,b] proof let a be set ; ::_thesis: ( a in dom f implies ex b being set st S1[a,b] ) reconsider s = (the_arity_of o) /. a as Element of S ; assume A10: a in dom f ; ::_thesis: ex b being set st S1[a,b] then reconsider n = a as Nat by A4, ORDINAL1:def_12; f . n in Class (R . s) by A7, A10; then consider a1 being set such that A11: ( a1 in the Sorts of A . s & f . n = Class ((R . s),a1) ) by EQREL_1:def_3; take a1 ; ::_thesis: S1[a,a1] thus S1[a,a1] by A11, EQREL_1:20; ::_thesis: verum end; consider g being Function such that A12: ( dom g = dom f & ( for a being set st a in dom f holds S1[a,g . a] ) ) from CLASSES1:sch_1(A9); dom the Sorts of A = the carrier of S by PARTFUN1:def_2; then rng (the_arity_of o) c= dom the Sorts of A ; then A13: dom g = dom ( the Sorts of A * (the_arity_of o)) by A4, A6, A12, RELAT_1:27; A14: for y being set st y in dom ( the Sorts of A * (the_arity_of o)) holds g . y in ( the Sorts of A * (the_arity_of o)) . y proof let y be set ; ::_thesis: ( y in dom ( the Sorts of A * (the_arity_of o)) implies g . y in ( the Sorts of A * (the_arity_of o)) . y ) assume A15: y in dom ( the Sorts of A * (the_arity_of o)) ; ::_thesis: g . y in ( the Sorts of A * (the_arity_of o)) . y then A16: ( g . y in f . y & f . y in ((Class R) * (the_arity_of o)) . y ) by A4, A5, A12, A13; reconsider n = y as Nat by A15, ORDINAL1:def_12; reconsider s = (the_arity_of o) /. n as Element of S ; A17: (the_arity_of o) . n = (the_arity_of o) /. n by A4, A6, A12, A13, A15, PARTFUN1:def_6; then ((Class R) * (the_arity_of o)) . y = (Class R) . s by A4, A12, A13, A15, FUNCT_1:12 .= Class (R . s) by Def6 ; then g . n in the Sorts of A . s by A16; hence g . y in ( the Sorts of A * (the_arity_of o)) . y by A15, A17, FUNCT_1:12; ::_thesis: verum end; Args (o,A) = (( the Sorts of A #) * the Arity of S) . o by MSUALG_1:def_4 .= product ( the Sorts of A * (the_arity_of o)) by A2, MSAFREE:1 ; then reconsider g = g as Element of Args (o,A) by A13, A14, CARD_3:9; A18: now__::_thesis:_for_x_being_set_st_x_in_dom_(the_arity_of_o)_holds_ f_._x_=_(R_#_g)_._x let x be set ; ::_thesis: ( x in dom (the_arity_of o) implies f . x = (R # g) . x ) assume A19: x in dom (the_arity_of o) ; ::_thesis: f . x = (R # g) . x then reconsider n = x as Nat by ORDINAL1:def_12; reconsider s = (the_arity_of o) /. n as Element of S ; f . n in Class (R . s) by A4, A6, A7, A19; then consider a1 being set such that A20: a1 in the Sorts of A . s and A21: f . n = Class ((R . s),a1) by EQREL_1:def_3; g . n in f . n by A4, A6, A12, A19; then Class ((R . s),(g . n)) = Class ((R . s),a1) by A20, A21, EQREL_1:23; hence f . x = (R # g) . x by A19, A21, Def7; ::_thesis: verum end; take g ; ::_thesis: x = R # g dom (R # g) = dom ((Class R) * (the_arity_of o)) by CARD_3:9; hence x = R # g by A3, A4, A6, A18, FUNCT_1:2; ::_thesis: verum end; definition let S be non empty non void ManySortedSign ; let o be OperSymbol of S; let A be non-empty MSAlgebra over S; let R be MSCongruence of A; func QuotCharact (R,o) -> Function of ((((Class R) #) * the Arity of S) . o),(((Class R) * the ResultSort of S) . o) means :Def12: :: MSUALG_4:def 12 for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds it . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a; existence ex b1 being Function of ((((Class R) #) * the Arity of S) . o),(((Class R) * the ResultSort of S) . o) st for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds b1 . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a proof defpred S1[ set , set ] means for a being Element of Args (o,A) st $1 = R # a holds $2 = ((QuotRes (R,o)) * (Den (o,A))) . a; set Ca = (((Class R) #) * the Arity of S) . o; set Cr = ((Class R) * the ResultSort of S) . o; A1: for x being set st x in (((Class R) #) * the Arity of S) . o holds ex y being set st ( y in ((Class R) * the ResultSort of S) . o & S1[x,y] ) proof set ro = the_result_sort_of o; set ar = the_arity_of o; let x be set ; ::_thesis: ( x in (((Class R) #) * the Arity of S) . o implies ex y being set st ( y in ((Class R) * the ResultSort of S) . o & S1[x,y] ) ) assume x in (((Class R) #) * the Arity of S) . o ; ::_thesis: ex y being set st ( y in ((Class R) * the ResultSort of S) . o & S1[x,y] ) then consider a being Element of Args (o,A) such that A2: x = R # a by Th2; take y = ((QuotRes (R,o)) * (Den (o,A))) . a; ::_thesis: ( y in ((Class R) * the ResultSort of S) . o & S1[x,y] ) A3: o in the carrier' of S ; then o in dom ((Class R) * the ResultSort of S) by PARTFUN1:def_2; then A4: ((Class R) * the ResultSort of S) . o = (Class R) . ( the ResultSort of S . o) by FUNCT_1:12 .= (Class R) . (the_result_sort_of o) by MSUALG_1:def_2 ; o in dom ( the Sorts of A * the ResultSort of S) by A3, PARTFUN1:def_2; then A5: ( the Sorts of A * the ResultSort of S) . o = the Sorts of A . ( the ResultSort of S . o) by FUNCT_1:12 .= the Sorts of A . (the_result_sort_of o) by MSUALG_1:def_2 ; then A6: ( dom (QuotRes (R,o)) = the Sorts of A . (the_result_sort_of o) & Result (o,A) = the Sorts of A . (the_result_sort_of o) ) by FUNCT_2:def_1, MSUALG_1:def_5; rng (Den (o,A)) c= Result (o,A) ; then A7: ( dom (Den (o,A)) = Args (o,A) & dom ((QuotRes (R,o)) * (Den (o,A))) = dom (Den (o,A)) ) by A6, FUNCT_2:def_1, RELAT_1:27; (QuotRes (R,o)) . ((Den (o,A)) . a) in rng (QuotRes (R,o)) by A6, FUNCT_1:def_3; then (QuotRes (R,o)) . ((Den (o,A)) . a) in (Class R) . (the_result_sort_of o) by A4; hence y in ((Class R) * the ResultSort of S) . o by A4, A7, FUNCT_1:12; ::_thesis: S1[x,y] let b be Element of Args (o,A); ::_thesis: ( x = R # b implies y = ((QuotRes (R,o)) * (Den (o,A))) . b ) reconsider da = (Den (o,A)) . a, db = (Den (o,A)) . b as Element of the Sorts of A . (the_result_sort_of o) by A5, MSUALG_1:def_5; A8: ((QuotRes (R,o)) * (Den (o,A))) . b = (QuotRes (R,o)) . db by A7, FUNCT_1:12 .= Class (R,db) by Def8 .= Class ((R . (the_result_sort_of o)),db) ; assume A9: x = R # b ; ::_thesis: y = ((QuotRes (R,o)) * (Den (o,A))) . b for n being Nat st n in dom a holds [(a . n),(b . n)] in R . ((the_arity_of o) /. n) proof let n be Nat; ::_thesis: ( n in dom a implies [(a . n),(b . n)] in R . ((the_arity_of o) /. n) ) A10: dom a = dom (the_arity_of o) by MSUALG_3:6; assume A11: n in dom a ; ::_thesis: [(a . n),(b . n)] in R . ((the_arity_of o) /. n) then A12: ( (R # a) . n = Class ((R . ((the_arity_of o) /. n)),(a . n)) & (R # b) . n = Class ((R . ((the_arity_of o) /. n)),(b . n)) ) by A10, Def7; dom the Sorts of A = the carrier of S by PARTFUN1:def_2; then rng (the_arity_of o) c= dom the Sorts of A ; then A13: dom ( the Sorts of A * (the_arity_of o)) = dom (the_arity_of o) by RELAT_1:27; then A14: a . n in ( the Sorts of A * (the_arity_of o)) . n by A11, A10, MSUALG_3:6; ( the Sorts of A * (the_arity_of o)) . n = the Sorts of A . ((the_arity_of o) . n) by A13, A11, A10, FUNCT_1:12 .= the Sorts of A . ((the_arity_of o) /. n) by A11, A10, PARTFUN1:def_6 ; hence [(a . n),(b . n)] in R . ((the_arity_of o) /. n) by A2, A9, A14, A12, EQREL_1:35; ::_thesis: verum end; then A15: [da,db] in R . (the_result_sort_of o) by Def4; y = (QuotRes (R,o)) . ((Den (o,A)) . a) by A7, FUNCT_1:12 .= Class (R,da) by Def8 .= Class ((R . (the_result_sort_of o)),da) ; hence y = ((QuotRes (R,o)) * (Den (o,A))) . b by A8, A15, EQREL_1:35; ::_thesis: verum end; consider f being Function such that A16: ( dom f = (((Class R) #) * the Arity of S) . o & rng f c= ((Class R) * the ResultSort of S) . o & ( for x being set st x in (((Class R) #) * the Arity of S) . o holds S1[x,f . x] ) ) from FUNCT_1:sch_5(A1); reconsider f = f as Function of ((((Class R) #) * the Arity of S) . o),(((Class R) * the ResultSort of S) . o) by A16, FUNCT_2:2; take f ; ::_thesis: for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds f . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a thus for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds f . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a by A16; ::_thesis: verum end; uniqueness for b1, b2 being Function of ((((Class R) #) * the Arity of S) . o),(((Class R) * the ResultSort of S) . o) st ( for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds b1 . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a ) & ( for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds b2 . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a ) holds b1 = b2 proof set ao = the_arity_of o; let F, G be Function of ((((Class R) #) * the Arity of S) . o),(((Class R) * the ResultSort of S) . o); ::_thesis: ( ( for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds F . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a ) & ( for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds G . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a ) implies F = G ) assume that A17: for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds F . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a and A18: for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds G . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a ; ::_thesis: F = G A19: dom the Arity of S = the carrier' of S by FUNCT_2:def_1; then dom (((Class R) #) * the Arity of S) = dom the Arity of S by PARTFUN1:def_2; then A20: (((Class R) #) * the Arity of S) . o = ((Class R) #) . ( the Arity of S . o) by A19, FUNCT_1:12 .= ((Class R) #) . (the_arity_of o) by MSUALG_1:def_1 ; A21: now__::_thesis:_for_x_being_set_st_x_in_((Class_R)_#)_._(the_arity_of_o)_holds_ F_._x_=_G_._x let x be set ; ::_thesis: ( x in ((Class R) #) . (the_arity_of o) implies F . x = G . x ) assume A22: x in ((Class R) #) . (the_arity_of o) ; ::_thesis: F . x = G . x then consider a being Element of Args (o,A) such that A23: x = R # a by A20, Th2; F . x = ((QuotRes (R,o)) * (Den (o,A))) . a by A17, A20, A22, A23; hence F . x = G . x by A18, A20, A22, A23; ::_thesis: verum end; ( dom F = ((Class R) #) . (the_arity_of o) & dom G = ((Class R) #) . (the_arity_of o) ) by A20, FUNCT_2:def_1; hence F = G by A21, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def12 defines QuotCharact MSUALG_4:def_12_:_ for S being non empty non void ManySortedSign for o being OperSymbol of S for A being non-empty MSAlgebra over S for R being MSCongruence of A for b5 being Function of ((((Class R) #) * the Arity of S) . o),(((Class R) * the ResultSort of S) . o) holds ( b5 = QuotCharact (R,o) iff for a being Element of Args (o,A) st R # a in (((Class R) #) * the Arity of S) . o holds b5 . (R # a) = ((QuotRes (R,o)) * (Den (o,A))) . a ); definition let S be non empty non void ManySortedSign ; let A be non-empty MSAlgebra over S; let R be MSCongruence of A; func QuotCharact R -> ManySortedFunction of ((Class R) #) * the Arity of S,(Class R) * the ResultSort of S means :Def13: :: MSUALG_4:def 13 for o being OperSymbol of S holds it . o = QuotCharact (R,o); existence ex b1 being ManySortedFunction of ((Class R) #) * the Arity of S,(Class R) * the ResultSort of S st for o being OperSymbol of S holds b1 . o = QuotCharact (R,o) proof defpred S1[ set , set ] means for o being OperSymbol of S st o = $1 holds $2 = QuotCharact (R,o); set O = the carrier' of S; A1: for x being set st x in the carrier' of S holds ex y being set st S1[x,y] proof let x be set ; ::_thesis: ( x in the carrier' of S implies ex y being set st S1[x,y] ) assume x in the carrier' of S ; ::_thesis: ex y being set st S1[x,y] then reconsider x1 = x as OperSymbol of S ; take QuotCharact (R,x1) ; ::_thesis: S1[x, QuotCharact (R,x1)] thus S1[x, QuotCharact (R,x1)] ; ::_thesis: verum end; consider f being Function such that A2: ( dom f = the carrier' of S & ( for x being set st x in the carrier' of S holds S1[x,f . x] ) ) from CLASSES1:sch_1(A1); reconsider f = f as ManySortedSet of the carrier' of S by A2, PARTFUN1:def_2, RELAT_1:def_18; for x being set st x in dom f holds f . x is Function proof let x be set ; ::_thesis: ( x in dom f implies f . x is Function ) assume x in dom f ; ::_thesis: f . x is Function then reconsider x1 = x as OperSymbol of S ; f . x1 = QuotCharact (R,x1) by A2; hence f . x is Function ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the carrier' of S by FUNCOP_1:def_6; for i being set st i in the carrier' of S holds f . i is Function of ((((Class R) #) * the Arity of S) . i),(((Class R) * the ResultSort of S) . i) proof let i be set ; ::_thesis: ( i in the carrier' of S implies f . i is Function of ((((Class R) #) * the Arity of S) . i),(((Class R) * the ResultSort of S) . i) ) assume i in the carrier' of S ; ::_thesis: f . i is Function of ((((Class R) #) * the Arity of S) . i),(((Class R) * the ResultSort of S) . i) then reconsider i1 = i as OperSymbol of S ; f . i1 = QuotCharact (R,i1) by A2; hence f . i is Function of ((((Class R) #) * the Arity of S) . i),(((Class R) * the ResultSort of S) . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of ((Class R) #) * the Arity of S,(Class R) * the ResultSort of S by PBOOLE:def_15; take f ; ::_thesis: for o being OperSymbol of S holds f . o = QuotCharact (R,o) thus for o being OperSymbol of S holds f . o = QuotCharact (R,o) by A2; ::_thesis: verum end; uniqueness for b1, b2 being ManySortedFunction of ((Class R) #) * the Arity of S,(Class R) * the ResultSort of S st ( for o being OperSymbol of S holds b1 . o = QuotCharact (R,o) ) & ( for o being OperSymbol of S holds b2 . o = QuotCharact (R,o) ) holds b1 = b2 proof let f, g be ManySortedFunction of ((Class R) #) * the Arity of S,(Class R) * the ResultSort of S; ::_thesis: ( ( for o being OperSymbol of S holds f . o = QuotCharact (R,o) ) & ( for o being OperSymbol of S holds g . o = QuotCharact (R,o) ) implies f = g ) assume that A3: for o being OperSymbol of S holds f . o = QuotCharact (R,o) and A4: for o being OperSymbol of S holds g . o = QuotCharact (R,o) ; ::_thesis: f = g now__::_thesis:_for_i_being_set_st_i_in_the_carrier'_of_S_holds_ f_._i_=_g_._i let i be set ; ::_thesis: ( i in the carrier' of S implies f . i = g . i ) assume i in the carrier' of S ; ::_thesis: f . i = g . i then reconsider i1 = i as OperSymbol of S ; f . i1 = QuotCharact (R,i1) by A3; hence f . i = g . i by A4; ::_thesis: verum end; hence f = g by PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def13 defines QuotCharact MSUALG_4:def_13_:_ for S being non empty non void ManySortedSign for A being non-empty MSAlgebra over S for R being MSCongruence of A for b4 being ManySortedFunction of ((Class R) #) * the Arity of S,(Class R) * the ResultSort of S holds ( b4 = QuotCharact R iff for o being OperSymbol of S holds b4 . o = QuotCharact (R,o) ); definition let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; let R be MSCongruence of U1; func QuotMSAlg (U1,R) -> MSAlgebra over S equals :: MSUALG_4:def 14 MSAlgebra(# (Class R),(QuotCharact R) #); coherence MSAlgebra(# (Class R),(QuotCharact R) #) is MSAlgebra over S ; end; :: deftheorem defines QuotMSAlg MSUALG_4:def_14_:_ for S being non empty non void ManySortedSign for U1 being non-empty MSAlgebra over S for R being MSCongruence of U1 holds QuotMSAlg (U1,R) = MSAlgebra(# (Class R),(QuotCharact R) #); registration let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; let R be MSCongruence of U1; cluster QuotMSAlg (U1,R) -> strict non-empty ; coherence ( QuotMSAlg (U1,R) is strict & QuotMSAlg (U1,R) is non-empty ) by MSUALG_1:def_3; end; definition let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; let R be MSCongruence of U1; let s be SortSymbol of S; func MSNat_Hom (U1,R,s) -> Function of ( the Sorts of U1 . s),((Class R) . s) means :Def15: :: MSUALG_4:def 15 for x being set st x in the Sorts of U1 . s holds it . x = Class ((R . s),x); existence ex b1 being Function of ( the Sorts of U1 . s),((Class R) . s) st for x being set st x in the Sorts of U1 . s holds b1 . x = Class ((R . s),x) proof deffunc H1( set ) -> Element of K10(( the Sorts of U1 . s)) = Class ((R . s),$1); consider f being Function such that A1: ( dom f = the Sorts of U1 . s & ( for x being set st x in the Sorts of U1 . s holds f . x = H1(x) ) ) from FUNCT_1:sch_3(); for x being set st x in the Sorts of U1 . s holds f . x in (Class R) . s proof let x be set ; ::_thesis: ( x in the Sorts of U1 . s implies f . x in (Class R) . s ) assume A2: x in the Sorts of U1 . s ; ::_thesis: f . x in (Class R) . s then Class ((R . s),x) in Class (R . s) by EQREL_1:def_3; then f . x in Class (R . s) by A1, A2; hence f . x in (Class R) . s by Def6; ::_thesis: verum end; then reconsider f = f as Function of ( the Sorts of U1 . s),((Class R) . s) by A1, FUNCT_2:3; take f ; ::_thesis: for x being set st x in the Sorts of U1 . s holds f . x = Class ((R . s),x) thus for x being set st x in the Sorts of U1 . s holds f . x = Class ((R . s),x) by A1; ::_thesis: verum end; uniqueness for b1, b2 being Function of ( the Sorts of U1 . s),((Class R) . s) st ( for x being set st x in the Sorts of U1 . s holds b1 . x = Class ((R . s),x) ) & ( for x being set st x in the Sorts of U1 . s holds b2 . x = Class ((R . s),x) ) holds b1 = b2 proof let f, g be Function of ( the Sorts of U1 . s),((Class R) . s); ::_thesis: ( ( for x being set st x in the Sorts of U1 . s holds f . x = Class ((R . s),x) ) & ( for x being set st x in the Sorts of U1 . s holds g . x = Class ((R . s),x) ) implies f = g ) assume that A3: for x being set st x in the Sorts of U1 . s holds f . x = Class ((R . s),x) and A4: for x being set st x in the Sorts of U1 . s holds g . x = Class ((R . s),x) ; ::_thesis: f = g A5: now__::_thesis:_for_x_being_set_st_x_in_the_Sorts_of_U1_._s_holds_ f_._x_=_g_._x let x be set ; ::_thesis: ( x in the Sorts of U1 . s implies f . x = g . x ) assume A6: x in the Sorts of U1 . s ; ::_thesis: f . x = g . x then f . x = Class ((R . s),x) by A3; hence f . x = g . x by A4, A6; ::_thesis: verum end; ( dom f = the Sorts of U1 . s & dom g = the Sorts of U1 . s ) by FUNCT_2:def_1; hence f = g by A5, FUNCT_1:2; ::_thesis: verum end; end; :: deftheorem Def15 defines MSNat_Hom MSUALG_4:def_15_:_ for S being non empty non void ManySortedSign for U1 being non-empty MSAlgebra over S for R being MSCongruence of U1 for s being SortSymbol of S for b5 being Function of ( the Sorts of U1 . s),((Class R) . s) holds ( b5 = MSNat_Hom (U1,R,s) iff for x being set st x in the Sorts of U1 . s holds b5 . x = Class ((R . s),x) ); definition let S be non empty non void ManySortedSign ; let U1 be non-empty MSAlgebra over S; let R be MSCongruence of U1; func MSNat_Hom (U1,R) -> ManySortedFunction of U1,(QuotMSAlg (U1,R)) means :Def16: :: MSUALG_4:def 16 for s being SortSymbol of S holds it . s = MSNat_Hom (U1,R,s); existence ex b1 being ManySortedFunction of U1,(QuotMSAlg (U1,R)) st for s being SortSymbol of S holds b1 . s = MSNat_Hom (U1,R,s) proof deffunc H1( Element of S) -> Function of ( the Sorts of U1 . $1),((Class R) . $1) = MSNat_Hom (U1,R,$1); consider f being Function such that A1: ( dom f = the carrier of S & ( for d being Element of S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); reconsider f = f as ManySortedSet of the carrier of S by A1, PARTFUN1:def_2, RELAT_1:def_18; for x being set st x in dom f holds f . x is Function proof let x be set ; ::_thesis: ( x in dom f implies f . x is Function ) assume x in dom f ; ::_thesis: f . x is Function then reconsider y = x as Element of S ; f . y = MSNat_Hom (U1,R,y) by A1; hence f . x is Function ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the carrier of S by FUNCOP_1:def_6; for i being set st i in the carrier of S holds f . i is Function of ( the Sorts of U1 . i),((Class R) . i) proof let i be set ; ::_thesis: ( i in the carrier of S implies f . i is Function of ( the Sorts of U1 . i),((Class R) . i) ) assume i in the carrier of S ; ::_thesis: f . i is Function of ( the Sorts of U1 . i),((Class R) . i) then reconsider s = i as Element of S ; f . s = MSNat_Hom (U1,R,s) by A1; hence f . i is Function of ( the Sorts of U1 . i),((Class R) . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the Sorts of U1, Class R by PBOOLE:def_15; reconsider f = f as ManySortedFunction of U1,(QuotMSAlg (U1,R)) ; take f ; ::_thesis: for s being SortSymbol of S holds f . s = MSNat_Hom (U1,R,s) thus for s being SortSymbol of S holds f . s = MSNat_Hom (U1,R,s) by A1; ::_thesis: verum end; uniqueness for b1, b2 being ManySortedFunction of U1,(QuotMSAlg (U1,R)) st ( for s being SortSymbol of S holds b1 . s = MSNat_Hom (U1,R,s) ) & ( for s being SortSymbol of S holds b2 . s = MSNat_Hom (U1,R,s) ) holds b1 = b2 proof let F, G be ManySortedFunction of U1,(QuotMSAlg (U1,R)); ::_thesis: ( ( for s being SortSymbol of S holds F . s = MSNat_Hom (U1,R,s) ) & ( for s being SortSymbol of S holds G . s = MSNat_Hom (U1,R,s) ) implies F = G ) assume that A2: for s being SortSymbol of S holds F . s = MSNat_Hom (U1,R,s) and A3: for s being SortSymbol of S holds G . s = MSNat_Hom (U1,R,s) ; ::_thesis: F = G now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_S_holds_ F_._i_=_G_._i let i be set ; ::_thesis: ( i in the carrier of S implies F . i = G . i ) assume i in the carrier of S ; ::_thesis: F . i = G . i then reconsider s = i as SortSymbol of S ; F . s = MSNat_Hom (U1,R,s) by A2; hence F . i = G . i by A3; ::_thesis: verum end; hence F = G by PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def16 defines MSNat_Hom MSUALG_4:def_16_:_ for S being non empty non void ManySortedSign for U1 being non-empty MSAlgebra over S for R being MSCongruence of U1 for b4 being ManySortedFunction of U1,(QuotMSAlg (U1,R)) holds ( b4 = MSNat_Hom (U1,R) iff for s being SortSymbol of S holds b4 . s = MSNat_Hom (U1,R,s) ); theorem :: MSUALG_4:3 for S being non empty non void ManySortedSign for U1 being non-empty MSAlgebra over S for R being MSCongruence of U1 holds MSNat_Hom (U1,R) is_epimorphism U1, QuotMSAlg (U1,R) proof let S be non empty non void ManySortedSign ; ::_thesis: for U1 being non-empty MSAlgebra over S for R being MSCongruence of U1 holds MSNat_Hom (U1,R) is_epimorphism U1, QuotMSAlg (U1,R) let U1 be non-empty MSAlgebra over S; ::_thesis: for R being MSCongruence of U1 holds MSNat_Hom (U1,R) is_epimorphism U1, QuotMSAlg (U1,R) let R be MSCongruence of U1; ::_thesis: MSNat_Hom (U1,R) is_epimorphism U1, QuotMSAlg (U1,R) set F = MSNat_Hom (U1,R); set QA = QuotMSAlg (U1,R); set S1 = the Sorts of U1; for o being OperSymbol of S st Args (o,U1) <> {} holds for x being Element of Args (o,U1) holds ((MSNat_Hom (U1,R)) . (the_result_sort_of o)) . ((Den (o,U1)) . x) = (Den (o,(QuotMSAlg (U1,R)))) . ((MSNat_Hom (U1,R)) # x) proof let o be OperSymbol of S; ::_thesis: ( Args (o,U1) <> {} implies for x being Element of Args (o,U1) holds ((MSNat_Hom (U1,R)) . (the_result_sort_of o)) . ((Den (o,U1)) . x) = (Den (o,(QuotMSAlg (U1,R)))) . ((MSNat_Hom (U1,R)) # x) ) assume Args (o,U1) <> {} ; ::_thesis: for x being Element of Args (o,U1) holds ((MSNat_Hom (U1,R)) . (the_result_sort_of o)) . ((Den (o,U1)) . x) = (Den (o,(QuotMSAlg (U1,R)))) . ((MSNat_Hom (U1,R)) # x) let x be Element of Args (o,U1); ::_thesis: ((MSNat_Hom (U1,R)) . (the_result_sort_of o)) . ((Den (o,U1)) . x) = (Den (o,(QuotMSAlg (U1,R)))) . ((MSNat_Hom (U1,R)) # x) set ro = the_result_sort_of o; set ar = the_arity_of o; the Arity of S . o = the_arity_of o by MSUALG_1:def_1; then A1: (((Class R) #) * the Arity of S) . o = product ((Class R) * (the_arity_of o)) by MSAFREE:1; A2: dom x = dom (the_arity_of o) by MSUALG_3:6; A3: for a being set st a in dom (the_arity_of o) holds ((MSNat_Hom (U1,R)) # x) . a = (R # x) . a proof let a be set ; ::_thesis: ( a in dom (the_arity_of o) implies ((MSNat_Hom (U1,R)) # x) . a = (R # x) . a ) assume A4: a in dom (the_arity_of o) ; ::_thesis: ((MSNat_Hom (U1,R)) # x) . a = (R # x) . a then reconsider n = a as Nat by ORDINAL1:def_12; set Fo = MSNat_Hom (U1,R,((the_arity_of o) /. n)); set s = (the_arity_of o) /. n; A5: n in dom ( the Sorts of U1 * (the_arity_of o)) by A4, PARTFUN1:def_2; then ( the Sorts of U1 * (the_arity_of o)) . n = the Sorts of U1 . ((the_arity_of o) . n) by FUNCT_1:12 .= the Sorts of U1 . ((the_arity_of o) /. n) by A4, PARTFUN1:def_6 ; then reconsider xn = x . n as Element of the Sorts of U1 . ((the_arity_of o) /. n) by A5, MSUALG_3:6; thus ((MSNat_Hom (U1,R)) # x) . a = ((MSNat_Hom (U1,R)) . ((the_arity_of o) /. n)) . (x . n) by A2, A4, MSUALG_3:def_6 .= (MSNat_Hom (U1,R,((the_arity_of o) /. n))) . xn by Def16 .= Class ((R . ((the_arity_of o) /. n)),(x . n)) by Def15 .= (R # x) . a by A4, Def7 ; ::_thesis: verum end; dom the Sorts of U1 = the carrier of S by PARTFUN1:def_2; then rng the ResultSort of S c= dom the Sorts of U1 ; then ( dom the ResultSort of S = the carrier' of S & dom ( the Sorts of U1 * the ResultSort of S) = dom the ResultSort of S ) by FUNCT_2:def_1, RELAT_1:27; then A6: ( the Sorts of U1 * the ResultSort of S) . o = the Sorts of U1 . ( the ResultSort of S . o) by FUNCT_1:12 .= the Sorts of U1 . (the_result_sort_of o) by MSUALG_1:def_2 ; then reconsider dx = (Den (o,U1)) . x as Element of the Sorts of U1 . (the_result_sort_of o) by MSUALG_1:def_5; ( rng (Den (o,U1)) c= Result (o,U1) & Result (o,U1) = the Sorts of U1 . (the_result_sort_of o) ) by A6, MSUALG_1:def_5; then rng (Den (o,U1)) c= dom (QuotRes (R,o)) by A6, FUNCT_2:def_1; then A7: ( dom (Den (o,U1)) = Args (o,U1) & dom ((QuotRes (R,o)) * (Den (o,U1))) = dom (Den (o,U1)) ) by FUNCT_2:def_1, RELAT_1:27; dom (Class R) = the carrier of S by PARTFUN1:def_2; then ( dom (R # x) = dom ((Class R) * (the_arity_of o)) & rng (the_arity_of o) c= dom (Class R) ) by CARD_3:9; then ( dom ((MSNat_Hom (U1,R)) # x) = dom (the_arity_of o) & dom (R # x) = dom (the_arity_of o) ) by MSUALG_3:6, RELAT_1:27; then A8: (MSNat_Hom (U1,R)) # x = R # x by A3, FUNCT_1:2; Den (o,(QuotMSAlg (U1,R))) = (QuotCharact R) . o by MSUALG_1:def_6 .= QuotCharact (R,o) by Def13 ; then (Den (o,(QuotMSAlg (U1,R)))) . ((MSNat_Hom (U1,R)) # x) = ((QuotRes (R,o)) * (Den (o,U1))) . x by A1, A8, Def12 .= (QuotRes (R,o)) . dx by A7, FUNCT_1:12 .= Class (R,dx) by Def8 .= (MSNat_Hom (U1,R,(the_result_sort_of o))) . dx by Def15 .= ((MSNat_Hom (U1,R)) . (the_result_sort_of o)) . ((Den (o,U1)) . x) by Def16 ; hence ((MSNat_Hom (U1,R)) . (the_result_sort_of o)) . ((Den (o,U1)) . x) = (Den (o,(QuotMSAlg (U1,R)))) . ((MSNat_Hom (U1,R)) # x) ; ::_thesis: verum end; hence MSNat_Hom (U1,R) is_homomorphism U1, QuotMSAlg (U1,R) by MSUALG_3:def_7; :: according to MSUALG_3:def_8 ::_thesis: MSNat_Hom (U1,R) is "onto" for i being set st i in the carrier of S holds rng ((MSNat_Hom (U1,R)) . i) = the Sorts of (QuotMSAlg (U1,R)) . i proof let i be set ; ::_thesis: ( i in the carrier of S implies rng ((MSNat_Hom (U1,R)) . i) = the Sorts of (QuotMSAlg (U1,R)) . i ) assume i in the carrier of S ; ::_thesis: rng ((MSNat_Hom (U1,R)) . i) = the Sorts of (QuotMSAlg (U1,R)) . i then reconsider s = i as Element of S ; reconsider f = (MSNat_Hom (U1,R)) . i as Function of ( the Sorts of U1 . s),( the Sorts of (QuotMSAlg (U1,R)) . s) by PBOOLE:def_15; A9: dom f = the Sorts of U1 . s by FUNCT_2:def_1; A10: the Sorts of (QuotMSAlg (U1,R)) . s = Class (R . s) by Def6; for x being set st x in the Sorts of (QuotMSAlg (U1,R)) . i holds x in rng f proof let x be set ; ::_thesis: ( x in the Sorts of (QuotMSAlg (U1,R)) . i implies x in rng f ) A11: f = MSNat_Hom (U1,R,s) by Def16; assume x in the Sorts of (QuotMSAlg (U1,R)) . i ; ::_thesis: x in rng f then consider a1 being set such that A12: a1 in the Sorts of U1 . s and A13: x = Class ((R . s),a1) by A10, EQREL_1:def_3; f . a1 in rng f by A9, A12, FUNCT_1:def_3; hence x in rng f by A12, A13, A11, Def15; ::_thesis: verum end; then the Sorts of (QuotMSAlg (U1,R)) . i c= rng f by TARSKI:def_3; hence rng ((MSNat_Hom (U1,R)) . i) = the Sorts of (QuotMSAlg (U1,R)) . i by XBOOLE_0:def_10; ::_thesis: verum end; hence MSNat_Hom (U1,R) is "onto" by MSUALG_3:def_3; ::_thesis: verum end; definition let S be non empty non void ManySortedSign ; let U1, U2 be non-empty MSAlgebra over S; let F be ManySortedFunction of U1,U2; let s be SortSymbol of S; func MSCng (F,s) -> Equivalence_Relation of ( the Sorts of U1 . s) means :Def17: :: MSUALG_4:def 17 for x, y being Element of the Sorts of U1 . s holds ( [x,y] in it iff (F . s) . x = (F . s) . y ); existence ex b1 being Equivalence_Relation of ( the Sorts of U1 . s) st for x, y being Element of the Sorts of U1 . s holds ( [x,y] in b1 iff (F . s) . x = (F . s) . y ) proof defpred S1[ set , set ] means (F . s) . $1 = (F . s) . $2; set S1 = the Sorts of U1 . s; A1: for x, y being set st S1[x,y] holds S1[y,x] ; A2: for x, y, z being set st S1[x,y] & S1[y,z] holds S1[x,z] ; A3: for x being set st x in the Sorts of U1 . s holds S1[x,x] ; consider R being Equivalence_Relation of ( the Sorts of U1 . s) such that A4: for x, y being set holds ( [x,y] in R iff ( x in the Sorts of U1 . s & y in the Sorts of U1 . s & S1[x,y] ) ) from EQREL_1:sch_1(A3, A1, A2); take R ; ::_thesis: for x, y being Element of the Sorts of U1 . s holds ( [x,y] in R iff (F . s) . x = (F . s) . y ) let x, y be Element of the Sorts of U1 . s; ::_thesis: ( [x,y] in R iff (F . s) . x = (F . s) . y ) thus ( [x,y] in R iff (F . s) . x = (F . s) . y ) by A4; ::_thesis: verum end; uniqueness for b1, b2 being Equivalence_Relation of ( the Sorts of U1 . s) st ( for x, y being Element of the Sorts of U1 . s holds ( [x,y] in b1 iff (F . s) . x = (F . s) . y ) ) & ( for x, y being Element of the Sorts of U1 . s holds ( [x,y] in b2 iff (F . s) . x = (F . s) . y ) ) holds b1 = b2 proof let R, S be Equivalence_Relation of ( the Sorts of U1 . s); ::_thesis: ( ( for x, y being Element of the Sorts of U1 . s holds ( [x,y] in R iff (F . s) . x = (F . s) . y ) ) & ( for x, y being Element of the Sorts of U1 . s holds ( [x,y] in S iff (F . s) . x = (F . s) . y ) ) implies R = S ) assume that A5: for x, y being Element of the Sorts of U1 . s holds ( [x,y] in R iff (F . s) . x = (F . s) . y ) and A6: for x, y being Element of the Sorts of U1 . s holds ( [x,y] in S iff (F . s) . x = (F . s) . y ) ; ::_thesis: R = S now__::_thesis:_for_x,_y_being_set_holds_ (_(_[x,y]_in_R_implies_[x,y]_in_S_)_&_(_[x,y]_in_S_implies_[x,y]_in_R_)_) let x, y be set ; ::_thesis: ( ( [x,y] in R implies [x,y] in S ) & ( [x,y] in S implies [x,y] in R ) ) thus ( [x,y] in R implies [x,y] in S ) ::_thesis: ( [x,y] in S implies [x,y] in R ) proof assume A7: [x,y] in R ; ::_thesis: [x,y] in S then reconsider a = x, b = y as Element of the Sorts of U1 . s by ZFMISC_1:87; (F . s) . a = (F . s) . b by A5, A7; hence [x,y] in S by A6; ::_thesis: verum end; assume A8: [x,y] in S ; ::_thesis: [x,y] in R then reconsider a = x, b = y as Element of the Sorts of U1 . s by ZFMISC_1:87; (F . s) . a = (F . s) . b by A6, A8; hence [x,y] in R by A5; ::_thesis: verum end; hence R = S by RELAT_1:def_2; ::_thesis: verum end; end; :: deftheorem Def17 defines MSCng MSUALG_4:def_17_:_ for S being non empty non void ManySortedSign for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 for s being SortSymbol of S for b6 being Equivalence_Relation of ( the Sorts of U1 . s) holds ( b6 = MSCng (F,s) iff for x, y being Element of the Sorts of U1 . s holds ( [x,y] in b6 iff (F . s) . x = (F . s) . y ) ); definition let S be non empty non void ManySortedSign ; let U1, U2 be non-empty MSAlgebra over S; let F be ManySortedFunction of U1,U2; assume A1: F is_homomorphism U1,U2 ; func MSCng F -> MSCongruence of U1 means :Def18: :: MSUALG_4:def 18 for s being SortSymbol of S holds it . s = MSCng (F,s); existence ex b1 being MSCongruence of U1 st for s being SortSymbol of S holds b1 . s = MSCng (F,s) proof deffunc H1( Element of S) -> Equivalence_Relation of ( the Sorts of U1 . $1) = MSCng (F,$1); consider f being Function such that A2: ( dom f = the carrier of S & ( for d being Element of S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); reconsider f = f as ManySortedSet of the carrier of S by A2, PARTFUN1:def_2, RELAT_1:def_18; for i being set st i in the carrier of S holds f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) proof let i be set ; ::_thesis: ( i in the carrier of S implies f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) ) assume i in the carrier of S ; ::_thesis: f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) then reconsider s = i as Element of S ; f . i = MSCng (F,s) by A2; hence f . i is Relation of ( the Sorts of U1 . i),( the Sorts of U1 . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedRelation of the Sorts of U1 by Def1; reconsider f = f as ManySortedRelation of U1 ; for i being set for R being Relation of ( the Sorts of U1 . i) st i in the carrier of S & f . i = R holds R is Equivalence_Relation of ( the Sorts of U1 . i) proof let i be set ; ::_thesis: for R being Relation of ( the Sorts of U1 . i) st i in the carrier of S & f . i = R holds R is Equivalence_Relation of ( the Sorts of U1 . i) let R be Relation of ( the Sorts of U1 . i); ::_thesis: ( i in the carrier of S & f . i = R implies R is Equivalence_Relation of ( the Sorts of U1 . i) ) assume that A3: i in the carrier of S and A4: f . i = R ; ::_thesis: R is Equivalence_Relation of ( the Sorts of U1 . i) reconsider s = i as Element of S by A3; R = MSCng (F,s) by A2, A4; hence R is Equivalence_Relation of ( the Sorts of U1 . i) ; ::_thesis: verum end; then f is MSEquivalence_Relation-like by Def2; then reconsider f = f as MSEquivalence-like ManySortedRelation of U1 by Def3; for o being OperSymbol of S for x, y being Element of Args (o,U1) st ( for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ) holds [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) proof let o be OperSymbol of S; ::_thesis: for x, y being Element of Args (o,U1) st ( for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ) holds [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) let x, y be Element of Args (o,U1); ::_thesis: ( ( for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ) implies [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) ) set ao = the_arity_of o; set ro = the_result_sort_of o; set S1 = the Sorts of U1; A5: dom x = dom (the_arity_of o) by MSUALG_3:6; A6: dom y = dom (the_arity_of o) by MSUALG_3:6; assume A7: for n being Nat st n in dom x holds [(x . n),(y . n)] in f . ((the_arity_of o) /. n) ; ::_thesis: [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) A8: now__::_thesis:_for_n_being_set_st_n_in_dom_(the_arity_of_o)_holds_ (F_#_x)_._n_=_(F_#_y)_._n let n be set ; ::_thesis: ( n in dom (the_arity_of o) implies (F # x) . n = (F # y) . n ) assume A9: n in dom (the_arity_of o) ; ::_thesis: (F # x) . n = (F # y) . n then reconsider m = n as Nat by ORDINAL1:def_12; A10: ( (F # x) . m = (F . ((the_arity_of o) /. m)) . (x . m) & (F # y) . m = (F . ((the_arity_of o) /. m)) . (y . m) ) by A5, A6, A9, MSUALG_3:def_6; (the_arity_of o) . m in rng (the_arity_of o) by A9, FUNCT_1:def_3; then reconsider s = (the_arity_of o) . m as SortSymbol of S ; A11: n in dom ( the Sorts of U1 * (the_arity_of o)) by A9, PARTFUN1:def_2; then ( x . m in ( the Sorts of U1 * (the_arity_of o)) . n & y . m in ( the Sorts of U1 * (the_arity_of o)) . n ) by MSUALG_3:6; then reconsider x1 = x . m, y1 = y . m as Element of the Sorts of U1 . s by A11, FUNCT_1:12; A12: [x1,y1] in f . ((the_arity_of o) /. m) by A7, A5, A9; A13: (the_arity_of o) /. m = (the_arity_of o) . m by A9, PARTFUN1:def_6; then f . ((the_arity_of o) /. m) = MSCng (F,s) by A2; hence (F # x) . n = (F # y) . n by A10, A13, A12, Def17; ::_thesis: verum end; ( dom (F # x) = dom (the_arity_of o) & dom (F # y) = dom (the_arity_of o) ) by MSUALG_3:6; then A14: F # x = F # y by A8, FUNCT_1:2; reconsider ro = the_result_sort_of o as SortSymbol of S ; A15: dom the ResultSort of S = the carrier' of S by FUNCT_2:def_1; then A16: dom ( the Sorts of U1 * the ResultSort of S) = dom the ResultSort of S by PARTFUN1:def_2; Result (o,U1) = ( the Sorts of U1 * the ResultSort of S) . o by MSUALG_1:def_5 .= the Sorts of U1 . ( the ResultSort of S . o) by A15, A16, FUNCT_1:12 .= the Sorts of U1 . ro by MSUALG_1:def_2 ; then reconsider Dx = (Den (o,U1)) . x, Dy = (Den (o,U1)) . y as Element of the Sorts of U1 . ro ; A17: (F . ro) . Dy = (Den (o,U2)) . (F # y) by A1, MSUALG_3:def_7; ( f . ro = MSCng (F,ro) & (F . ro) . Dx = (Den (o,U2)) . (F # x) ) by A1, A2, MSUALG_3:def_7; hence [((Den (o,U1)) . x),((Den (o,U1)) . y)] in f . (the_result_sort_of o) by A14, A17, Def17; ::_thesis: verum end; then reconsider f = f as MSCongruence of U1 by Def4; take f ; ::_thesis: for s being SortSymbol of S holds f . s = MSCng (F,s) thus for s being SortSymbol of S holds f . s = MSCng (F,s) by A2; ::_thesis: verum end; uniqueness for b1, b2 being MSCongruence of U1 st ( for s being SortSymbol of S holds b1 . s = MSCng (F,s) ) & ( for s being SortSymbol of S holds b2 . s = MSCng (F,s) ) holds b1 = b2 proof let C1, C2 be MSCongruence of U1; ::_thesis: ( ( for s being SortSymbol of S holds C1 . s = MSCng (F,s) ) & ( for s being SortSymbol of S holds C2 . s = MSCng (F,s) ) implies C1 = C2 ) assume that A18: for s being SortSymbol of S holds C1 . s = MSCng (F,s) and A19: for s being SortSymbol of S holds C2 . s = MSCng (F,s) ; ::_thesis: C1 = C2 now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_S_holds_ C1_._i_=_C2_._i let i be set ; ::_thesis: ( i in the carrier of S implies C1 . i = C2 . i ) assume i in the carrier of S ; ::_thesis: C1 . i = C2 . i then reconsider s = i as Element of S ; C1 . s = MSCng (F,s) by A18; hence C1 . i = C2 . i by A19; ::_thesis: verum end; hence C1 = C2 by PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def18 defines MSCng MSUALG_4:def_18_:_ for S being non empty non void ManySortedSign for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 st F is_homomorphism U1,U2 holds for b5 being MSCongruence of U1 holds ( b5 = MSCng F iff for s being SortSymbol of S holds b5 . s = MSCng (F,s) ); definition let S be non empty non void ManySortedSign ; let U1, U2 be non-empty MSAlgebra over S; let F be ManySortedFunction of U1,U2; let s be SortSymbol of S; assume A1: F is_homomorphism U1,U2 ; func MSHomQuot (F,s) -> Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . s),( the Sorts of U2 . s) means :Def19: :: MSUALG_4:def 19 for x being Element of the Sorts of U1 . s holds it . (Class ((MSCng (F,s)),x)) = (F . s) . x; existence ex b1 being Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . s),( the Sorts of U2 . s) st for x being Element of the Sorts of U1 . s holds b1 . (Class ((MSCng (F,s)),x)) = (F . s) . x proof set qa = QuotMSAlg (U1,(MSCng F)); set cqa = the Sorts of (QuotMSAlg (U1,(MSCng F))); set S1 = the Sorts of U1; set S2 = the Sorts of U2; defpred S1[ set , set ] means for a being Element of the Sorts of U1 . s st $1 = Class ((MSCng (F,s)),a) holds $2 = (F . s) . a; A2: the Sorts of (QuotMSAlg (U1,(MSCng F))) . s = Class ((MSCng F) . s) by Def6 .= Class (MSCng (F,s)) by A1, Def18 ; A3: for x being set st x in the Sorts of (QuotMSAlg (U1,(MSCng F))) . s holds ex y being set st ( y in the Sorts of U2 . s & S1[x,y] ) proof let x be set ; ::_thesis: ( x in the Sorts of (QuotMSAlg (U1,(MSCng F))) . s implies ex y being set st ( y in the Sorts of U2 . s & S1[x,y] ) ) assume A4: x in the Sorts of (QuotMSAlg (U1,(MSCng F))) . s ; ::_thesis: ex y being set st ( y in the Sorts of U2 . s & S1[x,y] ) then reconsider x1 = x as Subset of ( the Sorts of U1 . s) by A2; consider a being set such that A5: a in the Sorts of U1 . s and A6: x1 = Class ((MSCng (F,s)),a) by A2, A4, EQREL_1:def_3; reconsider a = a as Element of the Sorts of U1 . s by A5; take y = (F . s) . a; ::_thesis: ( y in the Sorts of U2 . s & S1[x,y] ) thus y in the Sorts of U2 . s ; ::_thesis: S1[x,y] let b be Element of the Sorts of U1 . s; ::_thesis: ( x = Class ((MSCng (F,s)),b) implies y = (F . s) . b ) assume x = Class ((MSCng (F,s)),b) ; ::_thesis: y = (F . s) . b then b in Class ((MSCng (F,s)),a) by A6, EQREL_1:23; then [b,a] in MSCng (F,s) by EQREL_1:19; hence y = (F . s) . b by Def17; ::_thesis: verum end; consider G being Function such that A7: ( dom G = the Sorts of (QuotMSAlg (U1,(MSCng F))) . s & rng G c= the Sorts of U2 . s & ( for x being set st x in the Sorts of (QuotMSAlg (U1,(MSCng F))) . s holds S1[x,G . x] ) ) from FUNCT_1:sch_5(A3); reconsider G = G as Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . s),( the Sorts of U2 . s) by A7, FUNCT_2:def_1, RELSET_1:4; take G ; ::_thesis: for x being Element of the Sorts of U1 . s holds G . (Class ((MSCng (F,s)),x)) = (F . s) . x let a be Element of the Sorts of U1 . s; ::_thesis: G . (Class ((MSCng (F,s)),a)) = (F . s) . a Class ((MSCng (F,s)),a) in Class (MSCng (F,s)) by EQREL_1:def_3; hence G . (Class ((MSCng (F,s)),a)) = (F . s) . a by A2, A7; ::_thesis: verum end; uniqueness for b1, b2 being Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . s),( the Sorts of U2 . s) st ( for x being Element of the Sorts of U1 . s holds b1 . (Class ((MSCng (F,s)),x)) = (F . s) . x ) & ( for x being Element of the Sorts of U1 . s holds b2 . (Class ((MSCng (F,s)),x)) = (F . s) . x ) holds b1 = b2 proof set qa = QuotMSAlg (U1,(MSCng F)); set cqa = the Sorts of (QuotMSAlg (U1,(MSCng F))); set u1 = the Sorts of U1; set u2 = the Sorts of U2; let H, G be Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . s),( the Sorts of U2 . s); ::_thesis: ( ( for x being Element of the Sorts of U1 . s holds H . (Class ((MSCng (F,s)),x)) = (F . s) . x ) & ( for x being Element of the Sorts of U1 . s holds G . (Class ((MSCng (F,s)),x)) = (F . s) . x ) implies H = G ) assume that A8: for a being Element of the Sorts of U1 . s holds H . (Class ((MSCng (F,s)),a)) = (F . s) . a and A9: for a being Element of the Sorts of U1 . s holds G . (Class ((MSCng (F,s)),a)) = (F . s) . a ; ::_thesis: H = G A10: the Sorts of (QuotMSAlg (U1,(MSCng F))) . s = Class ((MSCng F) . s) by Def6 .= Class (MSCng (F,s)) by A1, Def18 ; for x being set st x in the Sorts of (QuotMSAlg (U1,(MSCng F))) . s holds H . x = G . x proof let x be set ; ::_thesis: ( x in the Sorts of (QuotMSAlg (U1,(MSCng F))) . s implies H . x = G . x ) assume A11: x in the Sorts of (QuotMSAlg (U1,(MSCng F))) . s ; ::_thesis: H . x = G . x then reconsider x1 = x as Subset of ( the Sorts of U1 . s) by A10; consider a being set such that A12: a in the Sorts of U1 . s and A13: x1 = Class ((MSCng (F,s)),a) by A10, A11, EQREL_1:def_3; reconsider a = a as Element of the Sorts of U1 . s by A12; thus H . x = (F . s) . a by A8, A13 .= G . x by A9, A13 ; ::_thesis: verum end; hence H = G by FUNCT_2:12; ::_thesis: verum end; end; :: deftheorem Def19 defines MSHomQuot MSUALG_4:def_19_:_ for S being non empty non void ManySortedSign for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 for s being SortSymbol of S st F is_homomorphism U1,U2 holds for b6 being Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . s),( the Sorts of U2 . s) holds ( b6 = MSHomQuot (F,s) iff for x being Element of the Sorts of U1 . s holds b6 . (Class ((MSCng (F,s)),x)) = (F . s) . x ); definition let S be non empty non void ManySortedSign ; let U1, U2 be non-empty MSAlgebra over S; let F be ManySortedFunction of U1,U2; func MSHomQuot F -> ManySortedFunction of (QuotMSAlg (U1,(MSCng F))),U2 means :Def20: :: MSUALG_4:def 20 for s being SortSymbol of S holds it . s = MSHomQuot (F,s); existence ex b1 being ManySortedFunction of (QuotMSAlg (U1,(MSCng F))),U2 st for s being SortSymbol of S holds b1 . s = MSHomQuot (F,s) proof deffunc H1( Element of S) -> Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . $1),( the Sorts of U2 . $1) = MSHomQuot (F,$1); consider f being Function such that A1: ( dom f = the carrier of S & ( for d being Element of S holds f . d = H1(d) ) ) from FUNCT_1:sch_4(); reconsider f = f as ManySortedSet of the carrier of S by A1, PARTFUN1:def_2, RELAT_1:def_18; for x being set st x in dom f holds f . x is Function proof let x be set ; ::_thesis: ( x in dom f implies f . x is Function ) assume x in dom f ; ::_thesis: f . x is Function then reconsider y = x as Element of S ; f . y = MSHomQuot (F,y) by A1; hence f . x is Function ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the carrier of S by FUNCOP_1:def_6; for i being set st i in the carrier of S holds f . i is Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . i),( the Sorts of U2 . i) proof let i be set ; ::_thesis: ( i in the carrier of S implies f . i is Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . i),( the Sorts of U2 . i) ) assume i in the carrier of S ; ::_thesis: f . i is Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . i),( the Sorts of U2 . i) then reconsider s = i as Element of S ; f . s = MSHomQuot (F,s) by A1; hence f . i is Function of ( the Sorts of (QuotMSAlg (U1,(MSCng F))) . i),( the Sorts of U2 . i) ; ::_thesis: verum end; then reconsider f = f as ManySortedFunction of the Sorts of (QuotMSAlg (U1,(MSCng F))), the Sorts of U2 by PBOOLE:def_15; reconsider f = f as ManySortedFunction of (QuotMSAlg (U1,(MSCng F))),U2 ; take f ; ::_thesis: for s being SortSymbol of S holds f . s = MSHomQuot (F,s) thus for s being SortSymbol of S holds f . s = MSHomQuot (F,s) by A1; ::_thesis: verum end; uniqueness for b1, b2 being ManySortedFunction of (QuotMSAlg (U1,(MSCng F))),U2 st ( for s being SortSymbol of S holds b1 . s = MSHomQuot (F,s) ) & ( for s being SortSymbol of S holds b2 . s = MSHomQuot (F,s) ) holds b1 = b2 proof let H, G be ManySortedFunction of (QuotMSAlg (U1,(MSCng F))),U2; ::_thesis: ( ( for s being SortSymbol of S holds H . s = MSHomQuot (F,s) ) & ( for s being SortSymbol of S holds G . s = MSHomQuot (F,s) ) implies H = G ) assume that A2: for s being SortSymbol of S holds H . s = MSHomQuot (F,s) and A3: for s being SortSymbol of S holds G . s = MSHomQuot (F,s) ; ::_thesis: H = G now__::_thesis:_for_i_being_set_st_i_in_the_carrier_of_S_holds_ H_._i_=_G_._i let i be set ; ::_thesis: ( i in the carrier of S implies H . i = G . i ) assume i in the carrier of S ; ::_thesis: H . i = G . i then reconsider s = i as SortSymbol of S ; H . s = MSHomQuot (F,s) by A2; hence H . i = G . i by A3; ::_thesis: verum end; hence H = G by PBOOLE:3; ::_thesis: verum end; end; :: deftheorem Def20 defines MSHomQuot MSUALG_4:def_20_:_ for S being non empty non void ManySortedSign for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 for b5 being ManySortedFunction of (QuotMSAlg (U1,(MSCng F))),U2 holds ( b5 = MSHomQuot F iff for s being SortSymbol of S holds b5 . s = MSHomQuot (F,s) ); theorem Th4: :: MSUALG_4:4 for S being non empty non void ManySortedSign for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 st F is_homomorphism U1,U2 holds MSHomQuot F is_monomorphism QuotMSAlg (U1,(MSCng F)),U2 proof let S be non empty non void ManySortedSign ; ::_thesis: for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 st F is_homomorphism U1,U2 holds MSHomQuot F is_monomorphism QuotMSAlg (U1,(MSCng F)),U2 let U1, U2 be non-empty MSAlgebra over S; ::_thesis: for F being ManySortedFunction of U1,U2 st F is_homomorphism U1,U2 holds MSHomQuot F is_monomorphism QuotMSAlg (U1,(MSCng F)),U2 let F be ManySortedFunction of U1,U2; ::_thesis: ( F is_homomorphism U1,U2 implies MSHomQuot F is_monomorphism QuotMSAlg (U1,(MSCng F)),U2 ) set mc = MSCng F; set qa = QuotMSAlg (U1,(MSCng F)); set qh = MSHomQuot F; set S1 = the Sorts of U1; assume A1: F is_homomorphism U1,U2 ; ::_thesis: MSHomQuot F is_monomorphism QuotMSAlg (U1,(MSCng F)),U2 for o being OperSymbol of S st Args (o,(QuotMSAlg (U1,(MSCng F)))) <> {} holds for x being Element of Args (o,(QuotMSAlg (U1,(MSCng F)))) holds ((MSHomQuot F) . (the_result_sort_of o)) . ((Den (o,(QuotMSAlg (U1,(MSCng F))))) . x) = (Den (o,U2)) . ((MSHomQuot F) # x) proof let o be OperSymbol of S; ::_thesis: ( Args (o,(QuotMSAlg (U1,(MSCng F)))) <> {} implies for x being Element of Args (o,(QuotMSAlg (U1,(MSCng F)))) holds ((MSHomQuot F) . (the_result_sort_of o)) . ((Den (o,(QuotMSAlg (U1,(MSCng F))))) . x) = (Den (o,U2)) . ((MSHomQuot F) # x) ) assume Args (o,(QuotMSAlg (U1,(MSCng F)))) <> {} ; ::_thesis: for x being Element of Args (o,(QuotMSAlg (U1,(MSCng F)))) holds ((MSHomQuot F) . (the_result_sort_of o)) . ((Den (o,(QuotMSAlg (U1,(MSCng F))))) . x) = (Den (o,U2)) . ((MSHomQuot F) # x) let x be Element of Args (o,(QuotMSAlg (U1,(MSCng F)))); ::_thesis: ((MSHomQuot F) . (the_result_sort_of o)) . ((Den (o,(QuotMSAlg (U1,(MSCng F))))) . x) = (Den (o,U2)) . ((MSHomQuot F) # x) set ro = the_result_sort_of o; set ar = the_arity_of o; A2: dom x = dom (the_arity_of o) by MSUALG_3:6; Args (o,(QuotMSAlg (U1,(MSCng F)))) = (((Class (MSCng F)) #) * the Arity of S) . o by MSUALG_1:def_4; then consider a being Element of Args (o,U1) such that A3: x = (MSCng F) # a by Th2; A4: dom a = dom (the_arity_of o) by MSUALG_3:6; A5: now__::_thesis:_for_y_being_set_st_y_in_dom_(the_arity_of_o)_holds_ ((MSHomQuot_F)_#_x)_._y_=_(F_#_a)_._y let y be set ; ::_thesis: ( y in dom (the_arity_of o) implies ((MSHomQuot F) # x) . y = (F # a) . y ) assume A6: y in dom (the_arity_of o) ; ::_thesis: ((MSHomQuot F) # x) . y = (F # a) . y then reconsider n = y as Nat by ORDINAL1:def_12; (the_arity_of o) . n in rng (the_arity_of o) by A6, FUNCT_1:def_3; then reconsider s = (the_arity_of o) . n as SortSymbol of S ; A7: (the_arity_of o) /. n = (the_arity_of o) . n by A6, PARTFUN1:def_6; then x . n = Class (((MSCng F) . s),(a . n)) by A3, A6, Def7; then A8: x . n = Class ((MSCng (F,s)),(a . n)) by A1, Def18; A9: n in dom ( the Sorts of U1 * (the_arity_of o)) by A6, PARTFUN1:def_2; then a . n in ( the Sorts of U1 * (the_arity_of o)) . n by MSUALG_3:6; then reconsider an = a . n as Element of the Sorts of U1 . s by A9, FUNCT_1:12; ((MSHomQuot F) # x) . n = ((MSHomQuot F) . s) . (x . n) by A2, A6, A7, MSUALG_3:def_6 .= (MSHomQuot (F,s)) . (x . n) by Def20 .= (F . s) . an by A1, A8, Def19 .= (F # a) . n by A4, A6, A7, MSUALG_3:def_6 ; hence ((MSHomQuot F) # x) . y = (F # a) . y ; ::_thesis: verum end; o in the carrier' of S ; then o in dom ( the Sorts of U1 * the ResultSort of S) by PARTFUN1:def_2; then A10: ( the Sorts of U1 * the ResultSort of S) . o = the Sorts of U1 . ( the ResultSort of S . o) by FUNCT_1:12 .= the Sorts of U1 . (the_result_sort_of o) by MSUALG_1:def_2 ; then ( rng (Den (o,U1)) c= Result (o,U1) & Result (o,U1) = the Sorts of U1 . (the_result_sort_of o) ) by MSUALG_1:def_5; then rng (Den (o,U1)) c= dom (QuotRes ((MSCng F),o)) by A10, FUNCT_2:def_1; then A11: ( dom (Den (o,U1)) = Args (o,U1) & dom ((QuotRes ((MSCng F),o)) * (Den (o,U1))) = dom (Den (o,U1)) ) by FUNCT_2:def_1, RELAT_1:27; the_arity_of o = the Arity of S . o by MSUALG_1:def_1; then A12: product ((Class (MSCng F)) * (the_arity_of o)) = (((Class (MSCng F)) #) * the Arity of S) . o by MSAFREE:1; reconsider da = (Den (o,U1)) . a as Element of the Sorts of U1 . (the_result_sort_of o) by A10, MSUALG_1:def_5; A13: (MSHomQuot F) . (the_result_sort_of o) = MSHomQuot (F,(the_result_sort_of o)) by Def20; Den (o,(QuotMSAlg (U1,(MSCng F)))) = (QuotCharact (MSCng F)) . o by MSUALG_1:def_6 .= QuotCharact ((MSCng F),o) by Def13 ; then (Den (o,(QuotMSAlg (U1,(MSCng F))))) . x = ((QuotRes ((MSCng F),o)) * (Den (o,U1))) . a by A3, A12, Def12 .= (QuotRes ((MSCng F),o)) . da by A11, FUNCT_1:12 .= Class ((MSCng F),da) by Def8 .= Class ((MSCng (F,(the_result_sort_of o))),da) by A1, Def18 ; then A14: ((MSHomQuot F) . (the_result_sort_of o)) . ((Den (o,(QuotMSAlg (U1,(MSCng F))))) . x) = (F . (the_result_sort_of o)) . ((Den (o,U1)) . a) by A1, A13, Def19 .= (Den (o,U2)) . (F # a) by A1, MSUALG_3:def_7 ; ( dom ((MSHomQuot F) # x) = dom (the_arity_of o) & dom (F # a) = dom (the_arity_of o) ) by MSUALG_3:6; hence ((MSHomQuot F) . (the_result_sort_of o)) . ((Den (o,(QuotMSAlg (U1,(MSCng F))))) . x) = (Den (o,U2)) . ((MSHomQuot F) # x) by A5, A14, FUNCT_1:2; ::_thesis: verum end; hence MSHomQuot F is_homomorphism QuotMSAlg (U1,(MSCng F)),U2 by MSUALG_3:def_7; :: according to MSUALG_3:def_9 ::_thesis: MSHomQuot F is "1-1" for i being set st i in the carrier of S holds (MSHomQuot F) . i is one-to-one proof let i be set ; ::_thesis: ( i in the carrier of S implies (MSHomQuot F) . i is one-to-one ) set f = (MSHomQuot F) . i; assume i in the carrier of S ; ::_thesis: (MSHomQuot F) . i is one-to-one then reconsider s = i as SortSymbol of S ; A15: (MSHomQuot F) . i = MSHomQuot (F,s) by Def20; for x1, x2 being set st x1 in dom ((MSHomQuot F) . i) & x2 in dom ((MSHomQuot F) . i) & ((MSHomQuot F) . i) . x1 = ((MSHomQuot F) . i) . x2 holds x1 = x2 proof let x1, x2 be set ; ::_thesis: ( x1 in dom ((MSHomQuot F) . i) & x2 in dom ((MSHomQuot F) . i) & ((MSHomQuot F) . i) . x1 = ((MSHomQuot F) . i) . x2 implies x1 = x2 ) assume that A16: x1 in dom ((MSHomQuot F) . i) and A17: x2 in dom ((MSHomQuot F) . i) and A18: ((MSHomQuot F) . i) . x1 = ((MSHomQuot F) . i) . x2 ; ::_thesis: x1 = x2 x1 in (Class (MSCng F)) . s by A15, A16, FUNCT_2:def_1; then x1 in Class ((MSCng F) . s) by Def6; then consider a1 being set such that A19: a1 in the Sorts of U1 . s and A20: x1 = Class (((MSCng F) . s),a1) by EQREL_1:def_3; x2 in (Class (MSCng F)) . s by A15, A17, FUNCT_2:def_1; then x2 in Class ((MSCng F) . s) by Def6; then consider a2 being set such that A21: a2 in the Sorts of U1 . s and A22: x2 = Class (((MSCng F) . s),a2) by EQREL_1:def_3; reconsider a2 = a2 as Element of the Sorts of U1 . s by A21; A23: (MSCng F) . s = MSCng (F,s) by A1, Def18; then A24: ((MSHomQuot F) . i) . x2 = (F . s) . a2 by A1, A15, A22, Def19; reconsider a1 = a1 as Element of the Sorts of U1 . s by A19; ((MSHomQuot F) . i) . x1 = (F . s) . a1 by A1, A15, A23, A20, Def19; then [a1,a2] in MSCng (F,s) by A18, A24, Def17; hence x1 = x2 by A23, A20, A22, EQREL_1:35; ::_thesis: verum end; hence (MSHomQuot F) . i is one-to-one by FUNCT_1:def_4; ::_thesis: verum end; hence MSHomQuot F is "1-1" by MSUALG_3:1; ::_thesis: verum end; theorem Th5: :: MSUALG_4:5 for S being non empty non void ManySortedSign for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 st F is_epimorphism U1,U2 holds MSHomQuot F is_isomorphism QuotMSAlg (U1,(MSCng F)),U2 proof let S be non empty non void ManySortedSign ; ::_thesis: for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 st F is_epimorphism U1,U2 holds MSHomQuot F is_isomorphism QuotMSAlg (U1,(MSCng F)),U2 let U1, U2 be non-empty MSAlgebra over S; ::_thesis: for F being ManySortedFunction of U1,U2 st F is_epimorphism U1,U2 holds MSHomQuot F is_isomorphism QuotMSAlg (U1,(MSCng F)),U2 let F be ManySortedFunction of U1,U2; ::_thesis: ( F is_epimorphism U1,U2 implies MSHomQuot F is_isomorphism QuotMSAlg (U1,(MSCng F)),U2 ) set mc = MSCng F; set qa = QuotMSAlg (U1,(MSCng F)); set qh = MSHomQuot F; set Sq = the Sorts of (QuotMSAlg (U1,(MSCng F))); set S1 = the Sorts of U1; set S2 = the Sorts of U2; assume A1: F is_epimorphism U1,U2 ; ::_thesis: MSHomQuot F is_isomorphism QuotMSAlg (U1,(MSCng F)),U2 then A2: F is_homomorphism U1,U2 by MSUALG_3:def_8; A3: F is "onto" by A1, MSUALG_3:def_8; for i being set st i in the carrier of S holds rng ((MSHomQuot F) . i) = the Sorts of U2 . i proof let i be set ; ::_thesis: ( i in the carrier of S implies rng ((MSHomQuot F) . i) = the Sorts of U2 . i ) set f = (MSHomQuot F) . i; assume i in the carrier of S ; ::_thesis: rng ((MSHomQuot F) . i) = the Sorts of U2 . i then reconsider s = i as SortSymbol of S ; A4: rng (F . s) = the Sorts of U2 . s by A3, MSUALG_3:def_3; A5: (MSHomQuot F) . i = MSHomQuot (F,s) by Def20; hence rng ((MSHomQuot F) . i) c= the Sorts of U2 . i by RELAT_1:def_19; :: according to XBOOLE_0:def_10 ::_thesis: the Sorts of U2 . i c= rng ((MSHomQuot F) . i) let x be set ; :: according to TARSKI:def_3 ::_thesis: ( not x in the Sorts of U2 . i or x in rng ((MSHomQuot F) . i) ) assume x in the Sorts of U2 . i ; ::_thesis: x in rng ((MSHomQuot F) . i) then consider a being set such that A6: a in dom (F . s) and A7: (F . s) . a = x by A4, FUNCT_1:def_3; A8: ( MSCng (F,s) = (MSCng F) . s & the Sorts of (QuotMSAlg (U1,(MSCng F))) . s = Class ((MSCng F) . s) ) by A2, Def6, Def18; reconsider a = a as Element of the Sorts of U1 . s by A6; dom ((MSHomQuot F) . i) = the Sorts of (QuotMSAlg (U1,(MSCng F))) . s by A5, FUNCT_2:def_1; then A9: Class ((MSCng (F,s)),a) in dom ((MSHomQuot F) . i) by A8, EQREL_1:def_3; ((MSHomQuot F) . i) . (Class ((MSCng (F,s)),a)) = x by A2, A5, A7, Def19; hence x in rng ((MSHomQuot F) . i) by A9, FUNCT_1:def_3; ::_thesis: verum end; then A10: MSHomQuot F is "onto" by MSUALG_3:def_3; MSHomQuot F is_monomorphism QuotMSAlg (U1,(MSCng F)),U2 by A2, Th4; then ( MSHomQuot F is_homomorphism QuotMSAlg (U1,(MSCng F)),U2 & MSHomQuot F is "1-1" ) by MSUALG_3:def_9; hence MSHomQuot F is_isomorphism QuotMSAlg (U1,(MSCng F)),U2 by A10, MSUALG_3:13; ::_thesis: verum end; theorem :: MSUALG_4:6 for S being non empty non void ManySortedSign for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 st F is_epimorphism U1,U2 holds QuotMSAlg (U1,(MSCng F)),U2 are_isomorphic proof let S be non empty non void ManySortedSign ; ::_thesis: for U1, U2 being non-empty MSAlgebra over S for F being ManySortedFunction of U1,U2 st F is_epimorphism U1,U2 holds QuotMSAlg (U1,(MSCng F)),U2 are_isomorphic let U1, U2 be non-empty MSAlgebra over S; ::_thesis: for F being ManySortedFunction of U1,U2 st F is_epimorphism U1,U2 holds QuotMSAlg (U1,(MSCng F)),U2 are_isomorphic let F be ManySortedFunction of U1,U2; ::_thesis: ( F is_epimorphism U1,U2 implies QuotMSAlg (U1,(MSCng F)),U2 are_isomorphic ) assume F is_epimorphism U1,U2 ; ::_thesis: QuotMSAlg (U1,(MSCng F)),U2 are_isomorphic then MSHomQuot F is_isomorphism QuotMSAlg (U1,(MSCng F)),U2 by Th5; hence QuotMSAlg (U1,(MSCng F)),U2 are_isomorphic by MSUALG_3:def_11; ::_thesis: verum end;