
theorem Th4:
  for B being non empty set, A,C being set for f being uncurrying
Function for g being currying Function st dom f c= Funcs(A, Funcs(B, C)) & rng
  f c= dom g holds g*f = id dom f
proof
  let B be non empty set;
  let A,C be set;
  let f be uncurrying Function;
  let g be currying 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 Def1;
A5: ex F being Function st X = F & dom F = A & rng F c=
    Funcs(B, C) by A1,A4,FUNCT_2:def 2;
A6: f.x in rng f by A4,FUNCT_1:def 3;
    then reconsider Y=f.x as Function by A2,Def2;
    thus (g*f).x = g.(f.x) by A4,FUNCT_1:13
      .= curry Y by A2,A6,Def2
      .= curry (uncurry X) by A4,Def1
      .= x by A5,FUNCT_5:48;
  end;
  dom (g*f) = dom f by A2,RELAT_1:27;
  hence thesis by A3,FUNCT_1:17;
end;
