reserve i for Nat, x,y for set;
reserve S for non empty non void ManySortedSign;
reserve X for non-empty ManySortedSet of S;

theorem Th2:
  for I being set
  for f,g being ManySortedSet of I st f c= g holds f# c= g#
  proof
    let I be set;
    let f,g be ManySortedSet of I;
    assume A1: f c= g;
    let x be object; assume x in I*; then
    reconsider p = x as Element of I*;
A2: f#.p = product(f*p) & g#.p = product(g*p) by FINSEQ_2:def 5;
    let y be object; assume y in f#.x; then
    consider h being Function such that
A3: y = h & dom h = dom(f*p) &
for x being object st x in dom(f*p) holds h.x in (f*p).x
    by A2,CARD_3:def 5;
    p is FinSequence of I by FINSEQ_1:def 11; then
A4: dom f = I & dom g = I & rng p c= I by PARTFUN1:def 2,FINSEQ_1:def 4; then
A5: dom(f*p) = dom p & dom(g*p) = dom p by RELAT_1:27;
    now
      let x be object; assume x in dom(g*p); then
A6:   h.x in (f*p).x & (f*p).x = f.(p.x) & (g*p).x = g.(p.x) & p.x in rng p
      by A3,A5,FUNCT_1:13,def 3; then
      f.(p.x) c= g.(p.x) by A4,A1;
      hence h.x in (g*p).x by A6;
    end;
    hence y in g#.x by A2,A3,A5,CARD_3:9;
  end;
