reserve a,a1,a2,b,c,d for Ordinal,
  n,m,k for Nat,
  x,y,z,t,X,Y,Z for set;
reserve f,g for Function;
reserve A,B,C for array;

theorem Th42:
  x in X & y in X & f = Swap(id X,x,y) & X = dom A implies
  Swap(A,x,y) = A*f
  proof assume that
A1: x in X & y in X and
A2: f = Swap(id X,x,y) & X = dom A;
    set g = id X;
    set s = Swap(A,x,y);
A3: dom g = X & rng g = X; then
A4: dom f = X & rng f = X by A2,FUNCT_7:99,103;
A5: dom s = dom A by FUNCT_7:99;
A6: dom (A*f) = dom f by A2,A4,RELAT_1:27;
    now
      let z be object; assume
A7:   z in X;
A8:   g.x = x & g.y = y & g.z = z by A1,A7,FUNCT_1:17;
      z = x or z = y or z <> x & z <> y; then
      s.z = A.y & f.z = g.y or
      s.z = A.x & f.z = g.x or
      s.z = A.z & f.z = g.z by A1,A2,A3,Th29,Th31,Th33;
      hence s.z = (A*f).z by A7,A8,A4,FUNCT_1:13;
    end;
    hence Swap(A,x,y) = A*f by A2,A4,A5,A6;
  end;
