reserve m, n for non zero Element of NAT;
reserve i, j, k for Element of NAT;
reserve Z for Subset of REAL 2;
reserve c for Real;
reserve I for non empty FinSequence of NAT;
reserve d1, d2 for Element of REAL;

theorem :: Th20:
  for c be Real ex u be PartFunc of REAL 2, REAL st
  u is_partial_differentiable_on [#](REAL 2),<*1*> ^ <*1*> &
  u is_partial_differentiable_on [#](REAL 2),<*2*> ^ <*2*> &
  for x, t be Real
  holds u`partial|([#](REAL 2), <*2*>^<*2*>)/.<*x, t*>
  = c^2*(u`partial|([#](REAL 2), <*1*>^<*1*>)/.<*x, t*>)
  proof
    let c be Real;
    set A = the Real;
    set B = the Real;
    set C = the Real;
    set D = the Real;
    set e = the Real;
    consider f be Function of REAL,REAL such that
    A1: for x be Real holds f.x = A*cos.(e*x) + B*sin.(e*x) by LM42;
    consider g be Function of REAL,REAL such that
    A2: for t be Real holds g.t = C*cos.((e*c)*t) + D*sin.((e*c)*t) by LM42;
    F1: dom f = [#]REAL & dom g = [#]REAL by FUNCT_2:def 1;
    consider u be PartFunc of REAL 2,REAL such that
    F2: dom u = {<*x, t*> where x, t is Real: x in [#]REAL & t in [#]REAL} &
    for x, t be Real st x in [#]REAL & t in [#]REAL holds
    u/.<*x, t*> = f/.x*g/.t by LM10, F1;
    u is total by PARTFUN1:def 2,F2, LMOP3;
    then reconsider u as Function of REAL 2,REAL;
    take u;
    A3: for x, t be Real holds u/.<*x, t*> = f/.x*g/.t
    proof
      let x, t be Real;
      x in [#]REAL & t in [#]REAL by XREAL_0:def 1;
      hence u/.<*x, t*> = f/.x*g/.t by F2;
    end;
    X1: f is_differentiable_on 2,[#]REAL by LM41, A1;
    X2: g is_differentiable_on 2,[#]REAL by LM41, A2;
    for x, t be Real holds
    f/.x*((diff(g,[#]REAL).2)/.t) = c^2*(diff(f,[#]REAL).2)/.x *g/.t
    by LM43, A1, A2;
    hence u is_partial_differentiable_on [#](REAL 2), <*1*> ^ <*1*> &
    u is_partial_differentiable_on [#](REAL 2),<*2*> ^ <*2*> &
    for x, t be Real holds
    u`partial|([#](REAL 2), <*2*>^<*2*>)/.<*x, t*>
    = c^2*(u`partial|([#](REAL 2), <*1*>^<*1*>)/. <*x, t*>)
    by X1, X2, LM50, A3;
  end;
