
theorem Th3:
  for A,B being non empty set, C being set for f,g being commuting
Function st dom f c= Funcs(A, Funcs(B, C)) & rng f c= dom g holds g*f = id dom
  f
proof
  let A,B be non empty set;
  let C be set;
  let f,g be commuting Function;
  assume that
A1: dom f c= Funcs(A, Funcs(B, C)) and
A2: rng f c= dom g;
A3: now
    let x be object;
    assume
A4: x in dom f;
    then reconsider X=x as Function by Def3;
A5: f.x in rng f by A4,FUNCT_1:def 3;
    then reconsider Y=f.x as Function by A2,Def3;
    thus (g*f).x = g.(f.x) by A4,FUNCT_1:13
      .= commute Y by A2,A5,Def3
      .= commute (commute X) by A4,Def3
      .= x by A1,A4,FUNCT_6:57;
  end;
  dom (g*f) = dom f by A2,RELAT_1:27;
  hence thesis by A3,FUNCT_1:17;
end;
