reserve V, C for set;
reserve A, B, D for Element of Fin PFuncs (V, C);

theorem Th3:
  A^B = B^A
proof
  deffunc U(Element of PFuncs (V,C),Element of PFuncs (V,C)) = $1 \/ $2;
  defpred X[Function,Function] means $1 in A & $2 in B & $1 tolerates $2;
  defpred Y[Function,Function] means $2 in B & $1 in A & $2 tolerates $1;
  set X1 = { U(s,t) where s is Element of PFuncs (V,C), t is Element of PFuncs
  (V,C) : X[s,t] };
  set X2 = { U(t,s) where s is Element of PFuncs (V,C), t is Element of PFuncs
  (V,C) : Y[s,t] };
A1: now
    let x be object;
    x in X2 iff ex s,t being Element of PFuncs (V,C) st x = U(t,s) & Y[s,t ];
    then
    x in X2 iff ex t,s being Element of PFuncs (V,C) st x = t \/ s & t in
    B & s in A & t tolerates s;
    hence x in X2 iff x in { t \/ s where t is Element of PFuncs (V,C), s is
    Element of PFuncs (V,C) : t in B & s in A & t tolerates s };
  end;
A2: for s, t being Element of PFuncs (V,C) holds U(s,t) = U(t,s);
A3: for s, t being Element of PFuncs (V,C) holds X[s,t] iff Y[s,t];
  X1 = X2 from FRAENKEL:sch 8(A3,A2);
  hence thesis by A1,TARSKI:2;
end;
