-
Notifications
You must be signed in to change notification settings - Fork 94
Plugin Projects in Template Coq
Gregory Malecha edited this page Aug 5, 2019
·
7 revisions
This is a list of potential plugins one could write using Template Coq. Feel free to add links to finished or ongoing projects, or add potential projects yourself.
- Induction principles
- Induction principles for mutual inductive types
- Induction principles for simple nested inductive types only mentioning
prod
,option
andlist
- Induction principles for nested inductive types
- Equality deciders (similar to
Scheme Equality
) - Finiteness proofs
- Countability (/enumerability) proofs
- Selectors (e.g.
is_nil : forall A, list A -> bool
andis_cons
, or more advanced versions likeinv_cons : forall A, list A -> option (A * list A)
) - Lenses & Prisms, extending https://github.com/gmalecha/coq-lens, for instance with proofs
- Subterm relations (similar to
Derive Subterm
in Equations) - Show instances, i.e.
Show A := show : A -> string
- Sized instances, i.e.
Sized A := size : A -> nat/ord
- Haskell-style deriving of
Functor
,Monad
,Applicative
- Haskell-style deriving of an ordering relation, e.g.
Ord