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 Z0:
( 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);
A0:
( 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 let z be
set ;
( 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 C1:
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 Z0, A0, TSa
.=
A . z
by Z0, C1, TSb
;
verum end; suppose C1:
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 Z0, A0, TSb
.=
A . z
by Z0, C1, TSa
;
verum end; end; end;
hence
Swap ((Swap (A,x,y)),x,y) = A
by A0, FUNCT_1:2; verum