Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/katydid/regex-deriv-coq
https://github.com/katydid/regex-deriv-coq
coq
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/katydid/regex-deriv-coq
- Owner: katydid
- License: apache-2.0
- Created: 2020-02-01T19:18:15.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-12-03T15:55:09.000Z (about 2 months ago)
- Last Synced: 2025-01-15T01:23:07.034Z (7 days ago)
- Topics: coq
- Language: Coq
- Size: 1020 KB
- Stars: 21
- Watchers: 7
- Forks: 7
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
![Check Proofs](https://github.com/awalterschulze/regex-reexamined-coq/workflows/Check%20Proofs/badge.svg)
**This learning exercise has come to an end. We are continuing work in this area [here](https://github.com/katydid/proofs)**
# Derivatives for Regular Expressions with Coq
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](./src/Brzozowski)
In this folder we explore proving theorems from the original paper [Derivatives of Regular Expressions - Janusz A Brzozowski](./src/Brzozowski/Derivatives%20of%20Regular%20Expressions%20-%20Janusz%20A%20Brzozowski.md)
We have retyped and modified it a bit to aid readability.
- [Coinduction](./src/Coinduction)
In this folder we explore using coinduction to prove regular expressions are equivalent.
- [Reexamined](./src/Reexamined)
In this folder we explore a modern version of derivatives defined in the paper [Regular-expression derivatives reexamined](https://www.ccs.neu.edu/home/turon/re-deriv.pdf)
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](./src/CoqStock) standard library.## Background
### Brzozowski's Derivatives of Regular Expressions
If you are unfamiliar with Brzozowski's Derivatives you can watch this video.
## Setup
1. Install Coq 8.13.0
2. Remember to set coq in your PATH. For example, in your `~/.bash_profile` add `PATH="/Applications/CoqIDE_8.13.0.app/Contents/Resources/bin/:${PATH}"` and run `$ source ~/.bash_profile`.
3. Run make in this folder.Note:
- `make cleanall` cleans all files even `.aux` files.
## Contributing
Please read the [contributing guidelines](https://github.com/awalterschulze/regex-reexamined-coq/blob/master/CONTRIBUTING.md). They are short and shouldn't be surprising.
## Regenerate Makefile
Coq version upgrade requires regenerating the Makefile with the following command:
```
$ coq_makefile -f _CoqProject -o Makefile
```## Pair Programming
We used to pair program. The schedule was posted as meetups events on [meetup.com](https://www.meetup.com/London-TyDD/)