[CST-2] Types
M.Y.W.Y. Becker
mywyb2@cam.ac.uk
Sat, 02 Jun 2001 14:26:58 +0100
Hi Matthew,
--On 02 June 2001 08:29 +0100 Matthew Richards <mwr22@cam.ac.uk> wrote:
[...]
> My answer for this is rather long and horrid, but...
>
> [Using \ for little lambda and /\ for big lambda]
> Assuming
> Opt_a = all a'(a' -> (a->a') -> a')
> None_a = /\a (x':a', f:a->a'(x'))
^^^
A \ missing here.
> Some_a = \x:a (/\a' (\x':a', f:a->a'(f x)))
> Then I think:
>
> Compose_g_d_e = \f:g->Opt_d, g:d->Opt_e ( \v:g (
> /\a' (\x':a', f':e->a' (
> (f v) a' x' (\v':d (
> (g v') a' x' (\v'':e (f' v''))
> )))
A better solution would be
Compose_g_d_e = \f:gamma->Opt_d, g:d->Opt_e (\x:gamma (f x Opt_e None_e g)).
> Sorry, that looks even worse in ASCII than on paper! As usual with Types
> questions, it took far too long to do for 5 marks :-( I just hope we
> wouldn't be expected to prove it's right too! Looking at it now, I'm not
> entirely sure about whether the \v:g is in the right place, but I'll leave
> it as it is and see if anyone corrects it!
I'm not sure whether your formula is correct but it's too complicated
anyway.
>> Also, 1998 P7 Q10, I think every function N -> N is PLC representable,
>> but cannot justify it :-(
>
> I think that not all functions N -> N are representable, since PLC is not
> Turing powerful (due to the Strong Normalisation property).
Even if PLC was Turing powerful not all functions N->N could be
represented, since there are also uncomputable (total) functions N->N. But
since PLC is not even Turing powerful it can of course not represent all
total functions.
Mo