Skip to content

Instantly share code, notes, and snippets.

View Ptival's full-sized avatar
🐵
Monkey see, monkey do.

Valentin Robert Ptival

🐵
Monkey see, monkey do.
View GitHub Profile
@Ptival
Ptival / .gitignore
Last active October 28, 2021 10:40
Accompanying code for https://ptival.github.io/deep-dive-meta-theory-carte-3 (NOTE: there should be a "Download ZIP" button in the top-right corner)
*.aux
*.glob
*.vo
*.vok
*.vos
.envrc
.Makefile.coq.d
Makefile.coq
Makefile.coq.conf
(** Preliminary definitions *)
Class SupportsFeature (E F : Set -> Set) :=
{
inject : forall (A : Set), F A -> E A;
}.
Arguments inject {E F _ A}.
Notation "E 'supports' F" := (SupportsFeature E F) (at level 50).
Global Instance supports_Refl F
(** Our two extensible language feature definitions *)
Inductive Boolean (E : Set) : Set :=
| MkBoolean (b : bool)
| IfThenElse (condition thenBranch elseBranch : E)
.
Arguments MkBoolean {E}.
Arguments IfThenElse {E}.
Inductive Natural (E : Set) : Set :=