This learning exercise has come to an end. We are continuing work in this area here
This repo reexamines a few papers on regular expressions using Coq as a learning exercise. We try to prove some things that are mentioned in the papers as a way to teach ourselves some Coq.
- Brzozowski In this folder we explore proving theorems from the original paper Derivatives of Regular Expressions - Janusz A Brzozowski We have retyped and modified it a bit to aid readability.
- Coinduction In this folder we explore using coinduction to prove regular expressions are equivalent.
- Reexamined In this folder we explore a modern version of derivatives defined in the paper Regular-expression derivatives reexamined This paper is a great introduction to using derivatives for regular expressions, since it has been not only been updated, but is also one of the easier papers to read.
- CoqStock standard library.
If you are unfamiliar with Brzozowski's Derivatives you can watch this video.
- Install Coq 8.13.0
- Remember to set coq in your PATH. For example, in your
~/.bash_profile
addPATH="/Applications/CoqIDE_8.13.0.app/Contents/Resources/bin/:${PATH}"
and run$ source ~/.bash_profile
. - Run make in this folder.
Note:
make cleanall
cleans all files even.aux
files.
Please read the contributing guidelines. They are short and shouldn't be surprising.
Coq version upgrade requires regenerating the Makefile with the following command:
$ coq_makefile -f _CoqProject -o Makefile
We used to pair program. The schedule was posted as meetups events on meetup.com