Zulip Chat Archive
Stream: Is there code for X?
Topic: PL theory stuff
Joachim Breitner (Apr 23 2022 at 15:16):
I might have to play around with a weird program language calculus, with non-trivial binders, reduction rules, contexts etc. I think intuitively I’d reach for Isabelle (its Nominal2
package is great to talk about terms up-to-alpha-equivalence, and get strong induction principles for free) or maybe Coq (because that’s what everyone else is using). But before I do that: How well does Lean fare for PL theory formalization? Any particular good libraries or tools I should be aware of?
Mario Carneiro (Apr 24 2022 at 04:30):
It doesn't have any particular support specific to PL theory, but the usual stuff with constructing inductive types and inductive predicates and doing cases and induction works well enough, and I have done some nontrivial PL theory stuff in lean (both 3 and 4). I think the situation is fairly similar to Coq formalization, assuming you aren't using one of the big libraries like Iris
Joachim Breitner (Apr 24 2022 at 11:01):
Thanks. Maybe I’m spoiled a bit, but I appreciate some automation for reasoning up to alpha-equivalence and substitution. Too bad PLT Redex is implemented in Racket and not Lean :-)
Last updated: Dec 20 2023 at 11:08 UTC