let x, y be set ; for A being array st x in dom A & y in dom A holds
Swap ((Swap (A,x,y)),x,y) = A
let A be array; ( x in dom A & y in dom A implies Swap ((Swap (A,x,y)),x,y) = A )
assume A1:
( x in dom A & y in dom A )
; Swap ((Swap (A,x,y)),x,y) = A
set B = Swap (A,x,y);
set C = Swap ((Swap (A,x,y)),x,y);
A2:
( dom (Swap ((Swap (A,x,y)),x,y)) = dom (Swap (A,x,y)) & dom (Swap (A,x,y)) = dom A )
by FUNCT_7:99;
now for z being object st z in dom (Swap (A,x,y)) holds
(Swap ((Swap (A,x,y)),x,y)) . z = A . zlet z be
object ;
( z in dom (Swap (A,x,y)) implies (Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1 )assume
z in dom (Swap (A,x,y))
;
(Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1per cases
( ( z <> x & z <> y ) or z = x or z = y )
;
suppose A4:
z = x
;
(Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1hence (Swap ((Swap (A,x,y)),x,y)) . z =
(Swap (A,x,y)) . y
by A1, A2, Th29
.=
A . z
by A1, A4, Th31
;
verum end; suppose A5:
z = y
;
(Swap ((Swap (A,x,y)),x,y)) . b1 = A . b1hence (Swap ((Swap (A,x,y)),x,y)) . z =
(Swap (A,x,y)) . x
by A1, A2, Th31
.=
A . z
by A1, A5, Th29
;
verum end; end; end;
hence
Swap ((Swap (A,x,y)),x,y) = A
by A2; verum