Conversation

You need annotations for eta-expansion in read-back. Depending on the type you will quote [x] differently (for booleans its a normal form, but not for functions!). So you want type information when quoting most terms.
1
1
The annotations on neutrals come from implementing "do_ap" and similar things. Neutrals are not quoted in a type-directed fashion and so some components of neutrals must be normals (the argument in Ap for instance). See the neutral case of do_ap for why we annotate neutrals
1
1
They don't seem to include eta in Mini-TT (unsure if this is a compromise to handle non-termination slightly better or just for simplicity) so nothing in quotation is type-directed.
1
No problem! Well, there are a couple advantages, the biggest for the user is that more "obviously equal things" are judged equal by the system. For instance, \x. 0 + x = \x. x. But it also captures the universal properties for certain types.
1
1
I should be more careful with my examples.. that one holds in systems without eta for pi I expect. But composition with identity being the identity is an example of eta :)
1
1
You mentioned that this might interact poorly with non-termination. Why might that be, and could it lead me astray given I want a more Idrisy style of language, mixing total and unsure-if total stuff?
1
Show replies