reserve S for non void non empty ManySortedSign,
  U1 for MSAlgebra over S,
  o for OperSymbol of S,
  s for SortSymbol of S;

theorem Th2:
  for A be non-empty MSAlgebra over S, R be MSCongruence of A, x be
set st x in ((Class R)# * the Arity of S).o ex a be Element of Args(o,A) st x =
  R # a
proof
  let A be non-empty MSAlgebra over S, R be MSCongruence of A, x be set;
  assume
A1: x in ((Class R)# * the Arity of S).o;
  set ar = the_arity_of o;
A2: ar = (the Arity of S).o by MSUALG_1:def 1;
  then ((Class R)# * the Arity of S).o = product ((Class R) * ar) by MSAFREE:1;
  then consider f be Function such that
A3: f = x and
A4: dom f = dom ((Class R) * ar) and
A5: for y be object st y in dom ((Class R) * ar) holds f.y in ((Class R) *
  ar).y by A1,CARD_3:def 5;
  defpred P[object,object] means $2 in f.$1;
:: !!! ??? Kuratowski function
A6: dom ((Class R) * ar) = dom ar by PARTFUN1:def 2;
A7: for n be Nat st n in dom f holds f.n in Class (R.(ar/.n))
  proof
    let n be Nat;
    reconsider s = ar/.n as Element of S;
    assume
A8: n in dom f;
    then ar.n = ar/.n by A4,A6,PARTFUN1:def 6;
    then ((Class R) * ar).n = (Class R).s by A4,A8,FUNCT_1:12
      .= Class (R.s) by Def6;
    hence thesis by A4,A5,A8;
  end;
A9: for a be object st a in dom f ex b be object st P[a,b]
  proof
    let a be object;
    reconsider s = ar/.a as Element of S;
    assume
A10: a in dom f;
    then reconsider n = a as Nat by A4,ORDINAL1:def 12;
    f.n in Class (R.s) by A7,A10;
    then consider a1 be object such that
A11: a1 in (the Sorts of A).s & f.n = Class(R.s,a1) by EQREL_1:def 3;
    take a1;
    thus thesis by A11,EQREL_1:20;
  end;
  consider g be Function such that
A12: dom g = dom f & for a be object st a in dom f holds P[a,g.a] from
  CLASSES1:sch 1(A9);
  dom (the Sorts of A) = the carrier of S by PARTFUN1:def 2;
  then rng ar c= dom (the Sorts of A);
  then
A13: dom g = dom ((the Sorts of A) * ar) by A4,A6,A12,RELAT_1:27;
A14: for y be object st y in dom ((the Sorts of A) * ar) holds g.y in ((the
  Sorts of A) * ar).y
  proof
    let y be object;
    assume
A15: y in dom ((the Sorts of A) * ar);
    then
A16: g.y in f.y & f.y in ((Class R) * ar).y by A4,A5,A12,A13;
    reconsider n = y as Nat by A15,ORDINAL1:def 12;
    reconsider s = ar/.n as Element of S;
A17: ar.n = ar/.n by A4,A6,A12,A13,A15,PARTFUN1:def 6;
    then ((Class R) * ar).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 thesis by A15,A17,FUNCT_1:12;
  end;
  Args(o,A) = ((the Sorts of A)# * (the Arity of S)).o by MSUALG_1:def 4
    .= product ((the Sorts of A) * ar) by A2,MSAFREE:1;
  then reconsider g as Element of Args(o,A) by A13,A14,CARD_3:9;
A18: now
    let x be object;
    assume
A19: x in dom ar;
    then reconsider n = x as Nat by ORDINAL1:def 12;
    reconsider s = ar/.n as Element of S;
    f.n in Class (R.s) by A4,A6,A7,A19;
    then consider a1 be object 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;
  end;
  take g;
  dom (R # g) = dom ((Class R) * ar) by CARD_3:9;
  hence thesis by A3,A4,A6,A18,FUNCT_1:2;
end;
