reserve S for non void non empty ManySortedSign,
  U1,U2 for MSAlgebra over S,
  o for OperSymbol of S,
  n for Nat;

theorem Th12:
  for U1,U2,U3 being non-empty MSAlgebra over S for F be
  ManySortedFunction of U1,U2, G be ManySortedFunction of U2,U3 st F
is_monomorphism U1,U2 & G is_monomorphism U2,U3 holds G**F is_monomorphism U1,
  U3
proof
  let U1,U2,U3 be non-empty MSAlgebra over S;
  let F be ManySortedFunction of U1,U2, G be ManySortedFunction of U2,U3;
  assume that
A1: F is_monomorphism U1,U2 and
A2: G is_monomorphism U2,U3;
A3: G is "1-1" by A2;
A4: F is "1-1" by A1;
  for i be set, h be Function st i in dom (G**F) & (G**F).i = h holds h is
  one-to-one
  proof
    let i be set,h be Function;
    assume that
A5: i in dom (G**F) and
A6: (G**F).i = h;
A7: i in the carrier of S by A5,PARTFUN1:def 2;
    then reconsider
    g = G.i as Function of (the Sorts of U2).i,(the Sorts of U3).i
    by PBOOLE:def 15;
    reconsider f = F.i as Function of (the Sorts of U1).i,(the Sorts of U2).i
    by A7,PBOOLE:def 15;
    i in dom G by A7,PARTFUN1:def 2;
    then
A8: g is one-to-one by A3;
    i in dom F by A7,PARTFUN1:def 2;
    then f is one-to-one by A4;
    then g*f is one-to-one by A8;
    hence thesis by A6,A7,Th2;
  end;
  then
A9: G**F is "1-1";
  F is_homomorphism U1,U2 & G is_homomorphism U2,U3 by A1,A2;
  then G**F is_homomorphism U1,U3 by Th10;
  hence thesis by A9;
end;
