now for x1, x2 being object st x1 in dom (f ~) & x2 in dom (f ~) & (f ~) . x1 = (f ~) . x2 holds
x1 = x2let x1,
x2 be
object ;
( x1 in dom (f ~) & x2 in dom (f ~) & (f ~) . x1 = (f ~) . x2 implies b1 = b2 )assume A1:
(
x1 in dom (f ~) &
x2 in dom (f ~) &
(f ~) . x1 = (f ~) . x2 )
;
b1 = b2then A2:
(
x1 in dom f &
x2 in dom f )
by FUNCOP_1:def 1;
per cases then
( ( f . x1 = (f ~) . x1 & ( for y1, z1 being object holds f . x1 <> [y1,z1] ) ) or ex y1, z1 being object st f . x1 = [y1,z1] )
by FUNCOP_1:def 1;
suppose
ex
y1,
z1 being
object st
f . x1 = [y1,z1]
;
b1 = b2then consider y1,
z1 being
object such that A5:
f . x1 = [y1,z1]
;
[z1,y1] = (f ~) . x2
by A1, A2, A5, FUNCOP_1:def 1;
then [y1,z1] =
((f ~) ~) . x2
by A1, FUNCOP_1:def 1
.=
f . x2
;
hence
x1 = x2
by A2, A5, FUNCT_1:def 4;
verum end; end; end;
hence
f ~ is one-to-one
by FUNCT_1:def 4; verum