reserve i,k,n,m for Element of NAT;
reserve a,b,r,r1,r2,s,x,x1,x2 for Real;
reserve A for non empty closed_interval Subset of REAL;
reserve X for set;

theorem Th4:
  for f,g being PartFunc of REAL,REAL, C being non empty Subset of
  REAL holds (f||C)(#)(g||C) = (f(#)g)||C
proof
  let f,g be PartFunc of REAL,REAL;
  let C be non empty Subset of REAL;
A1: dom ((f(#)g)||C)= dom(f(#)g) /\ C by RELAT_1:61
    .= (dom f /\ dom g) /\ C by VALUED_1:def 4;
A2: dom (f||C(#)g||C)= dom (f|C) /\ dom(g||C) by VALUED_1:def 4
    .= (dom f /\ C) /\ dom (g|C) by RELAT_1:61
    .= (dom f /\ C) /\ (dom g /\ C) by RELAT_1:61
    .= ((dom f /\ C) /\ C) /\ dom g by XBOOLE_1:16
    .= (dom f /\ (C /\ C)) /\ dom g by XBOOLE_1:16
    .= (dom f /\ C) /\ dom g;
  then
A3: dom (f||C(#)g||C) = dom ((f(#)g)||C) by A1,XBOOLE_1:16;
  for c being Element of C st c in dom(f||C(#)g||C) holds (f||C(#)g||C).c
  = ((f(#)g)||C).c
  proof
    let c be Element of C;
A4: (f||C(#)g||C).c =(f|C).c * (g|C).c by VALUED_1:5;
    assume
A5: c in dom(f||C(#)g||C);
    then
A6: c in dom (f||C) /\ dom (g||C) by VALUED_1:def 4;
    then
A7: c in dom (f||C) by XBOOLE_0:def 4;
A8: c in dom (g||C) by A6,XBOOLE_0:def 4;
    ((f(#)g)||C).c =(f(#)g).c by A3,A5,FUNCT_1:47
      .=f.c * g.c by VALUED_1:5
      .= (f|C).c * g.c by A7,FUNCT_1:47;
    hence thesis by A8,A4,FUNCT_1:47;
  end;
  hence thesis by A2,A1,PARTFUN1:5,XBOOLE_1:16;
end;
