syntaxexclamation.wordpress.com
Quick, dirty and shallow definitions | Syntax!
https://syntaxexclamation.wordpress.com/2013/11/21/quick-dirty-and-shallow-definitions
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Quick, dirty and shallow definitions. Here is a quick hack. A few months ago. Have you ever implemented an quick prototype for a language, and be annoyed by the lack of definition mechanism? For instance, you define a small calculus and encode a few constructs to test it, but end up with outputs like:. When you only wanted the system to print:. Some would call this a deep encoding.
syntaxexclamation.wordpress.com
1 ≠ 0 | Syntax!
https://syntaxexclamation.wordpress.com/2013/12/04/1-≠-0
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Is usually an enlightening experience. I know it first-hand, it can also be a quite frustrating one, because it seems at first to involve remembering quite a lot of arbitrarily-named tactics, that one might not fully understand the effect of. Is one of them: “if you’re faced with an obvious inequality, just apply. It goes like this (in a very pedestrian style):. December 4, 2013.
syntaxexclamation.wordpress.com
Reverse natural deduction and get sequent calculus | Syntax!
https://syntaxexclamation.wordpress.com/2011/09/01/reverse-natural-deduction-and-get-sequent-calculus
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Reverse natural deduction and get sequent calculus. This is a follow-up on my previous post. It should be readable by itself if you just take a quick peek at. We shall here start by writing a type-checker for the usual simply typed lambda-calculus, natural deduction-style. Types are:. Type tp = Nat Arr of tp * tp. Let us make a. Process. Having redexes in the syntax and eliminat...
syntaxexclamation.wordpress.com
New draft on Normalization by Evaluation using GADTs | Syntax!
https://syntaxexclamation.wordpress.com/2013/10/29/new-draft-on-normalization-by-evaluation-using-gadts
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. New draft on Normalization by Evaluation using GADTs. There is a new draft. On my web page! Tagless and Typeful Normalization by Evaluation using Generalized Algebraic Data Types. Which is a mouthful, but only describes accurately the cool new OCaml development we elaborated together with Olivier. Definitely, Aarhus University, my new home, is not the worst place to learn about it.
syntaxexclamation.wordpress.com
Update on Typeful Normalization by Evaluation | Syntax!
https://syntaxexclamation.wordpress.com/2014/02/14/update-on-typeful-normalization-by-evaluation
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Update on Typeful Normalization by Evaluation. In October, I publicized here a new draft on normalization by evaluation. Which provoked some very helpful comments and constructive criticisms. Together with Chantal. We thus revised the draft profoundly and a revamped version is available. On my web site. What I really liked about working on program transformations with GADTs, is that...
syntaxexclamation.wordpress.com
Typeful disjunctive normal form | Syntax!
https://syntaxexclamation.wordpress.com/2014/04/18/547
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Typeful disjunctive normal form. This is the answer to last post’s puzzle. I gave an algorithm to put a formula in disjunctive normal form, and suggested to prove it correct in OCaml. Thanks to GADTs. My solution happens to include a wealth of little exercises that could be reused I think, so here it is. What we are eventually looking for is a function. Must return the pair of a.
syntaxexclamation.wordpress.com
Representing pattern-matching with GADTs | Syntax!
https://syntaxexclamation.wordpress.com/2014/04/12/representing-pattern-matching-with-gadts
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Representing pattern-matching with GADTs. Here is a little programming pearl. I’ve been wanting to work on pattern-matching for a while now, and it seems like I will finally have this opportunity here at my new (academic) home, McGill. Match E with (y, z) - E. Actually is sugar for. Match E with ( , ) - fun x y - E. The ideas probably extends seamlessly to De Bruijn indices, by thre...
syntaxexclamation.wordpress.com
New draft: Proofs, upside down | Syntax!
https://syntaxexclamation.wordpress.com/2013/06/17/new-draft-proofs-upside-down
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. New draft: Proofs, upside down. There is a new draft on my web page. That should be of interest to those who enjoyed my posts about reversing data structures. And the relation between natural deduction and sequent calculus. It is an article submitted to APLAS 2013. And it is called. Proofs, upside down. Written in direct style , and that equivalent, iterative version:. June 17, 2013.
syntaxexclamation.wordpress.com
Disjunctive normal forms in big steps | Syntax!
https://syntaxexclamation.wordpress.com/2014/04/15/big-step-disjunctive-normal-forms
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Disjunctive normal forms in big steps. This is probably a second-semester functional programming exercise, but I found it surprisingly hard, and could not find a solution online. So at the risk of depriving a TA from a problem for its mid-term exam, here is my take on it, that I painfully put together yesterday. Formulas are described by the type. Is isomorphic to a non-empty list of.
syntaxexclamation.wordpress.com
Parametric HOAS with first-class modules | Syntax!
https://syntaxexclamation.wordpress.com/2014/06/27/parametric-hoas-with-first-class-modules
A research blog about programming languages, formal logics, software development and their interactions, by Matthias Puech. Parametric HOAS with first-class modules. One of the first choice to make when starting the development of a compiler, or any program manipulating syntax with binders (e.g. programs with functions and variables), is how to represent these terms. Some specialized programming languages, like Beluga. Parametric HOAS, the traditional way. Of variables. We will call these. Its variables ...
SOCIAL ENGAGEMENT