
theorem Th66:
  for S,T being non empty RelStr, f being Function
  of S,T holds f is isomorphic iff
  f is one-to-one & rng f = the carrier of T &
  for x,y being Element of S holds x <= y iff f.x <= f.y
proof
  let S,T be non empty RelStr;
  let f be Function of S,T;
  hereby
    assume
A1: f is isomorphic;
    hence f is one-to-one by Def38;
    consider g being Function of T,S such that
A2: g = f" and
A3: g is monotone by A1,Def38;
A4: f is one-to-one monotone by A1,Def38;
    then rng f = dom g by A2,FUNCT_1:33;
    hence rng f = the carrier of T by FUNCT_2:def 1;
    let x,y be Element of S;
    thus x <= y implies f.x <= f.y by A4;
    assume
A5: f.x <= f.y;
A6: g.(f.x) = x by A2,A4,FUNCT_2:26;
    g.(f.y) = y by A2,A4,FUNCT_2:26;
    hence x <= y by A3,A5,A6;
  end;
  assume that
A7: f is one-to-one and
A8: rng f = the carrier of T and
A9: for x,y being Element of S holds x <= y iff f.x <= f.y;
  per cases;
  case S is non empty & T is non empty;
    thus f is one-to-one by A7;
    thus for x,y being Element of S st x <= y
    for a,b being Element of T st a = f.x & b = f.y holds a <= b by A9;
    reconsider g = f" as Function of T,S by A7,A8,FUNCT_2:25;
    take g;
    thus g = f";
    let x,y be Element of T;
    consider a being object such that
A10: a in dom f and
A11: x = f.a by A8,FUNCT_1:def 3;
    consider b being object such that
A12: b in dom f and
A13: y = f.b by A8,FUNCT_1:def 3;
    reconsider a,b as Element of S by A10,A12;
A14: g.x = a by A7,A11,FUNCT_2:26;
    g.y = b by A7,A13,FUNCT_2:26;
    hence thesis by A9,A11,A13,A14;
  end;
  case S is empty or T is empty;
    hence thesis;
  end;
end;
