Conversation

The basics are the same. Notable difference: evaluation/conversion should be non-type directed, types shouldn't appear in semantics; it's both simpler and faster. Andreas Abel & Danny use types to eta expand nfs and check conversion on nfs...
1
2
Instead we should check conversion on semantic values directly, and it's known that eta for Pi and Sigma are decidable in purely syntax-directed way. The result is that types don't appear in evaluation, nor do we have to build up useless intermediate nfs just to check conversion
3
2
(syntax-directed eta doesn't work for unit type, but in that case it's better to handle eta in the elaborator, by tagging irrelevant terms during checking, than in the unifier, where hauling types around is a major overhead)
1
Replying to
Awesome, thanks for the detailed reply! I did wonder about the types-in-semantics, and asked about it here: twitter.com/brendanzab/sta - nice to know that there is an alternative! cc.
Quote Tweet
Replying to @dannygratzer
Linking back twitter.com/brendanzab/sta - yeah, for the neutral and normal forms.
Show replies