reserve i, I for set,
  f, g, h for Function,
  s for ManySortedSet of I;
reserve G1, G2, G3 for non empty multMagma,
  x1, x2 for Element of G1,
  y1, y2 for Element of G2,
  z1, z2 for Element of G3;

theorem
  <*x1,y1*> * <*x2,y2*> = <*x1*x2,y1*y2*>
proof
  set G = <*G1,G2*>;
A1: G.1 = G1;
A2: G.2 = G2;
  reconsider l = <*x1,y1*>, p = <*x2,y2*>, lpl = <*x1,y1*> * <*x2,y2*>, lpp =
  <*x1*x2,y1*y2*> as Element of product Carrier G by Def2;
A3: 2 in {1,2} by TARSKI:def 2;
A4: l.1 = x1;
A6: p.2 = y2;
A8: p.1 = x2;
A9: l.2 = y1;
A10: 1 in {1,2} by TARSKI:def 2;
A11: for k being Nat st 1 <= k & k <= 2 holds lpl.k = lpp.k
  proof
    let k be Nat;
    assume that
A12: 1 <= k and
A13: k <= 2;
A14: k in Seg 2 by A12,A13;
    per cases by A14,FINSEQ_1:2,TARSKI:def 2;
    suppose
      k = 1;
      hence thesis by A10,A4,A8,A1,Th1;
    end;
    suppose
      k = 2;
      hence thesis by A3,A9,A6,A2,Th1;
    end;
  end;
  dom lpl = dom Carrier G by CARD_3:9
    .= Seg 2 by FINSEQ_1:2,PARTFUN1:def 2;
  then
A15: len lpl = 2 by FINSEQ_1:def 3;
  len lpp = 2 by FINSEQ_1:44;
  hence thesis by A15,A11;
end;
