https://github.com/charlesaverill/pi_calculus
A formalization of the Polyadic Pi Calculus in the Coq Interactive Theorem Prover
https://github.com/charlesaverill/pi_calculus
Last synced: about 1 month ago
JSON representation
A formalization of the Polyadic Pi Calculus in the Coq Interactive Theorem Prover
- Host: GitHub
- URL: https://github.com/charlesaverill/pi_calculus
- Owner: CharlesAverill
- Created: 2024-11-26T22:21:59.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-12-02T02:03:39.000Z (5 months ago)
- Last Synced: 2025-01-31T13:34:35.146Z (3 months ago)
- Language: Makefile
- Size: 26.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Pi Calculus in Coq
A formalization of the Polyadic Pi Calculus in the Coq Interactive Theorem Prover.
I pull from a number of sources (none are amazing on their own for my purposes):
- https://inria.hal.science/inria-00072970/document
- https://link.springer.com/chapter/10.1007/3-540-44929-9_30
- https://hal-lara.archives-ouvertes.fr/hal-02101985/file/RR2003-13.pdf
- https://en.wikipedia.org/wiki/%CE%A0-calculus
- https://www.sciencedirect.com/science/article/pii/0890540192900084## Progress
I have an operational semantics defined that allows me to show the evolution of simple processes as presented in [Milner's "The Polyadic pi-Calculus: A Tutorial"](http://www.lfcs.inf.ed.ac.uk/reports/91/ECS-LFCS-91-180/).
I have written some automation tactics to alleviate some of the complexities with writing these transition proofs manually.[See examples here](./Examples.v)
## Structure
Build with `make`
- [`Processes.v`](./Processes.v) - Definitions and notations for pi calculus ASTs and substitution
- [`Congruence.v`](./Congruence.v) - Definitions, lemmas, and `Equivalence` instances for structural congruence of pi calculus ASTs
- [`Step.v`](./Step.v) - Definitions, lemmas, and `Equivalence` instances for both `step` and `multistep` relations over pi calculus ASTs
- [`Tactics.v`](./Tactics.v) - Tactic definitions for manipulating and solving congruence, step, and multistep goals
- [`Interface.v`](./Interface.v) - `Import` site for dependent projects