reserve x, y, i for object,
  L for up-complete Semilattice;
reserve L for complete LATTICE,
  a, b, c for Element of L,
  J for non empty set,
  K for non-empty ManySortedSet of J;
reserve J, K, D for non empty set,
  j for Element of J,
  k for Element of K;
reserve J for non empty set,
  K for non-empty ManySortedSet of J;

theorem Th32:
  for J, A, B being non empty set, K being ManySortedSet of J for
F being DoubleIndexedSet of K, A for f being Function of A, B holds doms((J =>
  f)**F) = doms F
proof
  let J, A, B be non empty set;
  let K be ManySortedSet of J;
  let F be DoubleIndexedSet of K, A;
  let f be Function of A, B;
A1: dom doms((J => f)**F) = dom((J => f)**F) by FUNCT_6:59
    .= J by MSUALG_3:2;
A2: now
    let x be object;
    assume
A3: x in J;
    then reconsider j = x as Element of J;
A4: j in dom F by A3,PARTFUN1:def 2;
A5: rng(F.j) c= A & dom f = A by FUNCT_2:def 1;
    j in dom((J => f)**F) by A1,A3,FUNCT_6:59;
    then (doms((J => f)**F)).j = dom(((J => f)**F).j) by FUNCT_6:22
      .= dom(((J => f).j)*(F.j)) by MSUALG_3:2
      .= dom(f*(F.j))
      .= dom(F.j) by A5,RELAT_1:27
      .= (doms F).j by A4,FUNCT_6:22;
    hence (doms((J => f)**F)).x = (doms F).x;
  end;
  dom doms F = dom F by FUNCT_6:59
    .= J by PARTFUN1:def 2;
  hence thesis by A1,A2,FUNCT_1:2;
end;
