Skip to content

JLimperg/SessionTypes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Equivalences on Session Types

This repository contains a proof that two formulations of equivalence for session types coincide: One direct coinductive variant (Equiv.v) and one based on bisimilarity of trace languages (TL.v) or extensional equality of the trace language sets (TLSets.v). The main result is in TraceBisimEquiv.v. Additionally, a proof that direct equivalence is, in fact, an equivalence can be found in EquivFacts.v

We make use of two custom axioms in the definition of trace languages to get around Coq's productivity checker. They appear in TL.v, where you may also find a justification of their use. Otherwise, we only use well-known classical axioms (and only in the parts of the codebase concerned with classical sets, i.e. TLSets.v).

Building

Building requires that coqc version 8.5 is on the path. (Unfortunately, this development does not compile with version 8.6 or higher yet because we are blocked on the TLC library.)

git submodule init
git submodule update

cd lib/tlc/
env SERIOUS=1 make -j5   # for vo output; 5 is the number of concurrent jobs
# make -j5               # for vio output

cd ../..
./configure
make -j5                 # for vo output
# make -j5 quick         # for vio output
# make J=5 vio2vo        # for turning vio output into vo output

(Sorry that this is not more automated, but I can't for the life of mine figure out the incantation that makes coq_makefile behave sensibly.)

Development

If you use CoqIDE or Proof General, make sure they honor the settings from _CoqProject (generated by ./configure).

License

Your use of this software is governed by the MIT license, a copy of which may be found in the LICENSE file.

This repository also contains a modified copy of Arthur Charguéraud's TLC library, licensed under the CeCILL-B license.

About

Some mechanised proofs about session types

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages