From e01f349d681ef517e587a6a33077c35167303fc9 Mon Sep 17 00:00:00 2001 From: Xavier Urbain <xavier.urbain@univ-lyon1.fr> Date: Fri, 7 May 2021 14:38:32 +0000 Subject: [PATCH] Add README.md --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..fb830725 --- /dev/null +++ b/README.md @@ -0,0 +1,59 @@ +This repository stores the Coq code of the Pactole project, +dedicated to formal verification of mobile robotic swarm protocols. + +# Overall Structure + +- *Setting.v*: All you need to setup a working framework. A good starting point. +- *Util/*: Extension the to the Coq standard library that are not specific to Pactole +- *Core/*: The core the the Pactole framework, implementing the Look/Compute/Move cycle +- *Spaces/*: Spaces in which robots evolve +- *Observations/*: Types of robot views of the configuration +- *Models/*: Additional properties of some models +- *CasesStudies/* + - *Convergence/*: Convergence of robots in the 2D Euclidean plane + - *Gathering/*: Gathering in R or R² for various models + - *Exploration/*: Exploration of a ring with stop + + + +# Fast Compiling when developing + +During development you can benefit from coq's "vos/vok" generation to +speed up compilation. The only specificity of Pactole concerns +compilation of the files named xxx_Assumptions.v. This files print the +sets of assumptions used in the proofs of final lemmas in Case +studies. Compiling these files for vos/vok target would raise errors. +We provide adapted targets: + +## Very fast but unsafe + +make [-j] vos-nocheck + +Replaces "make vos". Prefer this when developing. + +### proofgeneral + +For easy use of this feature you can use the auto compilation feature +of proofgeneral. menu: + +menu: Coq / Auto Compilation / Compile Before Require +and then: Coq / Auto Compilation / vos compilation + +Now you can transparently script in any buffer, all needed file will +be compiled quickly. Don't forget to make a big fat "make" from time +to time. + +## slow, almost safe, very parallelisable + +make [-j] vok-nocheck + +replaces "make vok". Prefer this once a day. + +## Completely safe + +make [-j] + +This is the only way to make a really safe compilation including all +xxx_Assumption.v. You should always do this once in a while to make +sure some universe constraints aren't failing and to check if you did +not miss an remaining axiom. -- GitLab