[Agda] What do you use for variable binding in 2020?

Andreas Abel andreas.abel at ifi.lmu.de
Fri Apr 24 16:04:37 CEST 2020


De Bruijn indices.

 > * Type/scope safe universes: I haven't fully grokked this one, but it's
 > got a lot of smart people behind it.

This paper is a systematization of de Bruijn indices.  (If I understand 
it correctly.)

On 2020-04-22 06:07, Joey Eremondi wrote:
> I'm modelling a programming language/core-calculus in Agda, and I'm 
> wondering what people use to model binding and name capture?
> I'm familiar with a few techniques in general, but I'm wondering if 
> specific ones works better in Agda, or have libraries to support them, 
> or at least good examples of code using them.
> 
> My language has a lot of constructs, so the ideal for me is something 
> that either doesn't require me to implement substitution myself, or 
> where I can do it generically, so I'm not writing a ton of boiler plate.
> 
> I'm aware of:
> 
> * De Bruijn/ Locally Nameless: seems pretty solid, but requires 
> implementing substitution and other traversals myself, possibly twice.
> * PHOAS: handles capturing and shadowing easily, but seems to be more 
> popular with Coq? Not sure how it scales modelling to things like type 
> rules and small-step semantics
> * Shifted Names: looks promising, but I'm not sure how mature this idea 
> is http://tydeworkshop.org/2019-abstracts/paper16.pdf
> * Type/scope safe universes: I haven't fully grokked this one, but it's 
> got a lot of smart people behind it. https://dl.acm.org/doi/10.1145/3236785
> 
> What do you use? What do you like? What has tutorials / code examples / 
> libraries?
> 
> Thanks!
> 
> _______________________________________________
> Agda mailing list
> Agda at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/agda
> 


More information about the Agda mailing list