You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
mCoq is a tool for mutation analysis of verification projects that use the [Coq proof assistant](https://coq.inria.fr).
3
+
mCoq is a tool for mutation analysis of verification projects that use the
4
+
[Coq proof assistant](https://coq.inria.fr).
4
5
5
-
Note for ICSE-Demo reviewers: we recently cleaned up the code and improved our scripts for running the tool, so the steps shown in paper submission may differ from the ones below. Additionally, the directory structures may differ from the ones shown in the demo video.
6
+
mCoq applies a set of mutation operators to Coq definitions, generating
7
+
modified versions, called mutants, of the project. If all proofs of a
8
+
mutant are successfully checked, a mutant is declared live; otherwise it
9
+
is declared killed. mCoq produces HTML reports pinpointing both live and
10
+
killed mutants in the Coq code, where live mutants may indicate
11
+
incomplete specifications. The [research paper][ase-paper] provides more
12
+
information on the technique and optimizations that mCoq implements.
13
+
14
+
Note to ICSE-Demo reviewers: we recently cleaned up the code and improved
15
+
our scripts for running the tool, so the steps shown in the paper submission
16
+
may differ from the ones below. Additionally, the directory structures
17
+
may differ from the ones shown in the demo video.
6
18
7
19
## Requirements
8
20
@@ -12,11 +24,12 @@ Note for ICSE-Demo reviewers: we recently cleaned up the code and improved our s
12
24
-[Python 3](https://www.python.org)
13
25
-[JDK 8](https://openjdk.java.net) (or later)
14
26
-[Gradle 6](https://gradle.org/install/)
27
+
-[Git](https://git-scm.com)
15
28
16
29
## Installation and usage
17
30
18
31
We strongly recommend installing the required versions of OCaml, Coq,
19
-
and SerAPI via the [OPAM package manager](https://opam.ocaml.org/),
32
+
and SerAPI via the [OPAM package manager](https://opam.ocaml.org),
20
33
version 2.0.5 or later.
21
34
22
35
To set up the OPAM-based OCaml environment, use:
@@ -25,34 +38,37 @@ opam switch create 4.07.1
25
38
opam switch 4.07.1
26
39
eval $(opam env)
27
40
```
28
-
29
41
Then, install Coq and SerAPI, pinning them to avoid unintended upgrades:
30
42
```
31
43
opam update
32
44
opam pin add coq 8.10.2
33
45
opam pin add coq-serapi 8.10.0+0.7.0
34
46
```
35
-
36
47
Next, clone the mCoq repository and enter the directory:
The entry point for using mCoq is the `mcoq.py` script. To see
43
-
the available options, run:
54
+
the available options, use:
44
55
```
45
56
./mcoq.py --help
46
57
```
47
58
48
-
For example, to apply mCoq to [StructTact](https://github.com/uwplse/StructTact), revision [b95f041](https://github.com/uwplse/StructTact/commit/b95f041cb83986fb0fe1f9689d7196e2f09a4839), use:
59
+
For example, to apply mCoq to [StructTact][structtact-repo]
0 commit comments