Coq stuff
Coq is an interactive theorem prover made for formalizing mathematical theories and algorithms using type theory. I am fond of using it to prove everything that is shown to me and I don't understand at first. So here's a list of Coq stuff I use to prove things and some developments.
A port of the "Algebra of Programming Using Dependent Types" [1] paper, using "setoid" rewriting and type classes.
Order theory in Coq using the type classes mechanism and in particular the new "setoid" rewriting tactic based on classes.
Cat
Some category theory in Coq using the type classes mechanism.
Type-safe sprintf using delimited continuations in Coq. Requires Prelude.
A formalization of the Finger Tree datastructure in Coq. Requires Prelude and Safe.
This is a port of the Haskell prelude implementations of the usual functors, applicative and monad structures.
Safe (dependently-typed) list combinators.
A formalization of the Celebrities problem proposed by Richard Bird .
A certified implementation of the quicksort algorithm.
I developed a complete formalization [2] of simply-typed lambda calculus with constants in the dependently-typed style with the help of Program. It includes a tait-style proof of weak normalization.
A formalization of simply-typed lambda calculus and its proof of normalization using a kripke model. Includes a proof that peirce's law is not derivable using models and the syntactic characterization of normal forms. This is joint work with Thorsten Altenkirch.
A proof of subject-reduction and equivalence between the declarative and an algorithmic presentation of the type system of Russell (a Calculus of Constructions with dependent sums and some subtyping).
1
Algebra of Programming Using Dependent Types in Mathematics of Program Construction. Shin-Cheng Mu, Hsiang-Shang Ko & Patrik Jansson. Philippe Audebaud and Christine Paulin-Mohring (Eds). Volume 5133 of Lecture Notes in Computer Science. Berlin Heidelberg: Springer-Verlag, July 2008, pp.268-283.
Valid XHTML 1.1! Valid CSS!