reserve f for Function;
reserve p,q for FinSequence;
reserve A,B,C for set,x,x1,x2,y,z for object;
reserve k,l,m,n for Nat;
reserve a for Nat;

theorem Th8:
  f is one-to-one iff for y st y in rng f holds f just_once_values y
proof
  thus f is one-to-one implies for y st y in rng f holds f just_once_values y
  proof
    assume
A1: f is one-to-one;
    let y;
    assume y in rng f;
    then consider x being object such that
A2: x in dom f & f.x = y by FUNCT_1:def 3;
    for z being object holds z in dom f & z <> x implies f.z <> y
   by A1,A2;
    hence thesis by A2,Th7;
  end;
  assume
A3: for y st y in rng f holds f just_once_values y;
  let x,y be object;
  assume that
A4: x in dom f and
A5: y in dom f & f.x = f.y;
  f.x in rng f by A4,FUNCT_1:def 3;
  then f just_once_values f.x by A3;
  then consider x1 such that
A6: {x1} = f " {f.x} by Th6;
A7: f.x in {f.x} by TARSKI:def 1;
  then
A8: y in f "{f.x} by A5,FUNCT_1:def 7;
  x in f " {f.x} by A4,A7,FUNCT_1:def 7;
  then x = x1 by A6,TARSKI:def 1;
  hence thesis by A6,A8,TARSKI:def 1;
end;
