<?xml version="1.0" encoding="UTF-8"?>

<doc url="research/coq" base="/" title="Coq stuff">
  <contribs>
    <intro>
      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.
    </intro>
    
    <entry title="Algebra of Programming" repo="coq/misc/AoP">
      A port of the <cite-paper key="mu08aop">"Algebra of Programming Using
	Dependent Types"</cite-paper> paper, using "setoid" rewriting 
      and type classes.
    </entry>

    <entry title="Order" repo="coq/order">
      Order theory in Coq using the type classes mechanism and in
      particular the new "setoid" rewriting tactic based on classes.
    </entry>

    <entry title="Cat" repo="coq/cat">
      Some category theory in Coq using the type classes mechanism.
    </entry>

    <entry title="Genuine shift/reset" repo="coq/misc/shiftreset"
	   link="repos/coq/misc/shiftreset/GenuineShiftReset.html">
      Type-safe sprintf using delimited continuations in Coq. Requires
      Prelude.
    </entry>
    
    <entry title="Finger Trees" local-link="research/russell/fingertrees"
	   repo="coq/fingertrees">
      A formalization of the Finger Tree datastructure in Coq. Requires
      Prelude and Safe.
    </entry>

    <entry title="Prelude" 
	   repo="coq/prelude">
      This is a port of the Haskell prelude implementations of the usual
      functors, applicative and monad structures. 
    </entry>
    
    <entry title="Safe" repo="coq/safe">
      Safe (dependently-typed) list combinators.
    </entry>

    <entry title="Celebrities" link="repos/coq/misc/celebs/celebs.html"
	   repo="coq/misc/celebs">
      A formalization of the Celebrities problem proposed by Richard
      Bird <cite-paper key="DBLP:journals/jfp/BirdC06"/>.
    </entry>
    
    <entry title="Quicksort" link="repos/coq/misc/sort/quicksort.html"
	   repo="coq/misc/sort">
      A certified implementation of the quicksort algorithm.
    </entry>
    
    <entry title="Simply-typed lambda calculus"
	   repo="coq/misc/nbe">
      I developed a complete <cite-paper key="sozeau.Coq/lambda/notes">formalization</cite-paper>
      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.
    </entry>
    
    <entry title="Kripke semantics for simply-typed lambda calculus"
	   repo="coq/misc/kripke">
      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.
    </entry>
    
    <entry title="Russell metatheoretic study"
	   repo="coq/Russell"
	   local-link="research/russell/meta">
      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).
    </entry>

<!--     <entry title="Conway" local-link="research/coq/conway"> -->
<!--       A formalization of Conway algebras and some of their properties. -->
<!--     </entry> -->
  </contribs>
</doc>
