
theorem Th1:
  for f,g being non-empty Function st product f c= product g holds
  dom f = dom g & for x being set st x in dom f holds f.x c= g.x
proof
  let f,g be non-empty Function;
  assume
A1: product f c= product g;
  set h = the Element of product f;
  h in product f;
  then
A2: ex i being Function st h = i & dom i = dom g &
for x being object st x in
  dom g holds i.x in g.x by A1,CARD_3:def 5;
A3: ex i being Function st h = i & dom i = dom f &
for x being object st x in
  dom f holds i.x in f.x by CARD_3:def 5;
  hence dom f = dom g by A2;
  let x be set;
  assume
A4: x in dom f;
  let z be object;
   reconsider zz=z as set by TARSKI:1;
  set k = the Element of product f;
  reconsider k as Function;
  defpred P[object] means $1 = x;
  deffunc F1(object) = zz;
  deffunc F2(object) = k.$1;
  consider h being Function such that
A5: dom h = dom f & for y being object st y in dom f holds
  (P[y] implies h.y = F1(y)) & (not P[y] implies h.y = F2(y)) from
  PARTFUN1:sch 1;
  assume
A6: z in f.x;
  now
    let y be object;
    assume
A7: y in dom f;
    then y <> x implies h.y = k.y by A5;
    hence h.y in f.y by A5,A6,A7,CARD_3:9;
  end;
  then h in product f by A5,CARD_3:9;
  then h.x in g.x by A1,A2,A3,A4,CARD_3:9;
  hence thesis by A4,A5;
end;
