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 real-valued Function, g be Function holds
    (2|^f) * g = 2|^(f * g)
  proof
    let f be real-valued Function, g be Function;
    set 2f=2|^f,fg=f*g;
    A1:dom 2f=dom f & dom (2|^fg)= dom fg by Def4;
    A2:dom (2f*g) c= dom (2|^fg)
    proof
      let x;
      assume x in dom (2f*g);
      then x in dom g & g.x in dom 2f by FUNCT_1:11;
      hence thesis by A1,FUNCT_1:11;
    end;
    dom (2|^fg) c= dom (2f*g)
    proof
      let x;
      assume x in dom (2|^fg);
      then x in dom g & g.x in dom f by A1,FUNCT_1:11;
      hence thesis by A1,FUNCT_1:11;
    end;
    then A3:dom (2|^fg) = dom (2f*g) by A2;
    for x st x in dom (2|^fg) holds (2f*g).x = (2|^fg).x
    proof
      let x;
      assume A4: x in dom (2|^fg);
      then x in dom g & g.x in dom f by A1,FUNCT_1:11;
      then
      (2f*g).x = 2f.(g.x) & 2f.(g.x) = 2 to_power (f.(g.x)) & f.(g.x) = fg.x
        by Def4,FUNCT_1:13;
      hence thesis by A4,A1,Def4;
    end;
    hence thesis by A3;
  end;
