We give a little more detail in this proof than usual, since it's a short proof and paradigmatic of many little proofs heavy on trivial computation.
The idea, as with many of our proofs of
In this case we map
We show the expressions gotten by expanding
Def InvFuns(A;B;f;g) == (x:A. g(f(x)) = x) & (y:B. f(g(y)) = y)
then instantiating the arguments with the appopriate nested pairs and compute down.
Here's one reduction step-by-step; watch
((abc.abc/a,bc. bc/b,c. <<a,b>,c>)(<a1,a3,a4>)) look
*
(abc.abc/a,bc. bc/b,c. <<a,b>,c>)(<a1,a3,a4>)/xy,z. xy/x,y. <x,y,z>
*
(<a1,a3,a4>/a,bc. bc/b,c. <<a,b>,c>)/xy,z. xy/x,y. <x,y,z>
*
(<a3,a4>/b,c. <<a1,b>,c>)/xy,z. xy/x,y. <x,y,z>
*
<<a1,a3>,a4>/xy,z. xy/x,y. <x,y,z> look
*
<a1,a3>/x,y. <x,y,a4>
*
<a1,a3,a4> look
Also see the amusing proof of
About: