reserve S for locally_directed OrderSortedSign;
reserve o for Element of the carrier' of S;

theorem
  for U1 being non-empty OSAlgebra of S, U2 being monotone non-empty
OSAlgebra of S, F being ManySortedFunction of U1,U2 st F is_homomorphism U1,U2
  & F is order-sorted holds OSCng(F) is monotone
proof
  let U1 be non-empty OSAlgebra of S, U2 be monotone non-empty OSAlgebra of S,
  F be ManySortedFunction of U1,U2 such that
A1: F is_homomorphism U1,U2 and
A2: F is order-sorted;
  reconsider S1 = the Sorts of U1 as OrderSortedSet of S by OSALG_1:17;
  set O1 = the Sorts of U1;
  let o1,o2 being OperSymbol of S such that
A3: o1 <= o2;
A4: Den(o2,U2)|Args(o1,U2) = Den(o1,U2) by A3,OSALG_1:def 21;
  set R = OSCng(F), rs1 = the_result_sort_of o1, rs2 = the_result_sort_of o2;
  let x1 being (Element of Args(o1,U1)), x2 being Element of Args(o2,U1) such
  that
A5: for y being Nat st y in dom x1 holds [x1.y,x2.y] in R.((the_arity_of
  o2)/.y);
  Args(o1,U1) c= Args(o2,U1) by A3,OSALG_1:26;
  then reconsider x12=x1 as Element of Args(o2,U1);
  set D1 = Den(o1,U1).x1, D2 = Den(o2,U1).x2, M = MSCng(F);
A6: D1 in S1.rs1 by MSUALG_9:18;
  F#x1 in Args(o1,U2);
  then
A7: F#x1 in dom Den(o1,U2) by FUNCT_2:def 1;
A8: rs1 <= rs2 by A3;
  then S1.rs1 c= S1.rs2 by OSALG_1:def 16;
  then reconsider D11=D1,D12=Den(o2,U1).x12 as Element of O1.rs2 by
MSUALG_9:18;
  D1 in dom (F.rs1) by A6,FUNCT_2:def 1;
  then (F.rs2).(Den(o1,U1).x1) = (F.rs1).(Den(o1,U1).x1) by A2,A8
    .= Den(o1,U2).(F#x1) by A1
    .= Den(o2,U2).(F#x1) by A7,A4,FUNCT_1:47
    .= Den(o2,U2).(F#x12) by A2,A3,OSALG_3:12
    .= (F.rs2).(Den(o2,U1).x12) by A1;
  then
A9: D2 in O1.rs2 & [D11,D12] in MSCng(F,rs2) by MSUALG_4:def 17,MSUALG_9:18;
  field(R.rs2) = (O1.rs2) by ORDERS_1:12;
  then
A10: (R.rs2) is_transitive_in (O1.rs2) by RELAT_2:def 16;
A11: [Den(o2,U1).x12,Den(o2,U1).x2] in R.rs2 by A5,MSUALG_4:def 4;
  M.rs2 = MSCng(F,rs2) & M = R by A1,A2,Def23,MSUALG_4:def 18;
  hence thesis by A11,A9,A10,RELAT_2:def 8;
end;
