reserve x,y for object,
        D,D1,D2 for non empty set,
        i,j,k,m,n for Nat,
        f,g for FinSequence of D*,
        f1 for FinSequence of D1*,
        f2 for FinSequence of D2*;
reserve f for complex-valued Function,
        g,h for complex-valued FinSequence;

theorem
   for f be Function-yielding Function, g be Function
    holds Values(g*.f) =g.:Values f
proof
  let f be Function-yielding Function, g be Function;
  set gf=g*.f;
  A1: dom gf = dom f by FOMODEL2:def 6;
  thus Values gf c= g.:Values f
  proof
    let a be object;
    assume a in Values gf;
    then consider x,y be object such that
    A2:x in dom gf & y in dom (gf.x) & a = gf.x.y by Th1;
    gf.x = g*(f.x) by A1,FOMODEL2:def 6,A2;
    then A3:gf.x.y = g.(f.x.y) & y in dom (f.x) & f.x.y in dom g
      by A2,FUNCT_1:11,12;
    then f.x.y in Values f by A1,A2,Th1;
    hence thesis by A3,A2,FUNCT_1:def 6;
  end;
  let a be object;
  assume a in g.:Values f;
  then consider b be object such that
  A4:b in dom g & b in Values f & g.b = a by FUNCT_1:def 6;
  consider x,y be object such that
  A5:x in dom f & y in dom (f.x) & b = f.x.y by A4,Th1;
  A6: g.(f.x.y) = (g*(f.x)).y & y in dom (g*(f.x))
    by A4,A5,FUNCT_1:11,13;
  g*(f.x) = gf.x & x in dom gf by A5,FOMODEL2:def 6;
  hence thesis by Th1,A4,A5,A6;
end;
