Skip to content

Commit 2bab438

Browse files
committed
another README.md pass
1 parent 4ffdff9 commit 2bab438

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

README.md

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
# mCoq
1+
# mCoq: Mutation Analysis for Coq
22

3-
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). mCoq applies a set of mutation
5+
operators to Coq definitions, with each application generating a modified
6+
version, called a mutant, of the project. If all proofs of a mutant are
7+
successfully checked, the mutant is declared live; otherwise it is declared
8+
killed. mCoq produces HTML reports pinpointing both live and killed mutants,
9+
where live mutants may indicate incomplete specifications. The
10+
[research paper][ase-paper] provides more information on the technique
11+
and optimizations that mCoq implements.
412

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.
13+
Note to ICSE-Demo reviewers: we recently cleaned up the code and improved
14+
our scripts for running the tool, so the steps shown in the paper submission
15+
may differ from the ones below. Additionally, the directory structures
16+
may differ from the ones shown in the demo video.
617

718
## Requirements
819

@@ -12,11 +23,12 @@ Note for ICSE-Demo reviewers: we recently cleaned up the code and improved our s
1223
- [Python 3](https://www.python.org)
1324
- [JDK 8](https://openjdk.java.net) (or later)
1425
- [Gradle 6](https://gradle.org/install/)
26+
- [Git](https://git-scm.com)
1527

1628
## Installation and usage
1729

1830
We strongly recommend installing the required versions of OCaml, Coq,
19-
and SerAPI via the [OPAM package manager](https://opam.ocaml.org/),
31+
and SerAPI via the [OPAM package manager](https://opam.ocaml.org),
2032
version 2.0.5 or later.
2133

2234
To set up the OPAM-based OCaml environment, use:
@@ -25,27 +37,26 @@ opam switch create 4.07.1
2537
opam switch 4.07.1
2638
eval $(opam env)
2739
```
28-
2940
Then, install Coq and SerAPI, pinning them to avoid unintended upgrades:
3041
```
3142
opam update
3243
opam pin add coq 8.10.2
3344
opam pin add coq-serapi 8.10.0+0.7.0
3445
```
35-
3646
Next, clone the mCoq repository and enter the directory:
3747
```
3848
git clone https://github.com/EngineeringSoftware/mcoq.git
3949
cd mcoq
4050
```
4151

4252
The entry point for using mCoq is the `mcoq.py` script. To see
43-
the available options, run:
53+
the available options, use:
4454
```
4555
./mcoq.py --help
4656
```
4757

48-
For example, to apply mCoq to [StructTact](https://github.com/uwplse/StructTact), revision [b95f041](https://github.com/uwplse/StructTact/commit/b95f041cb83986fb0fe1f9689d7196e2f09a4839), use:
58+
For example, to apply mCoq to [StructTact][structtact-repo]
59+
revision [b95f041][structtact-revision], use:
4960
```
5061
./mcoq.py --project StructTact --sha b95f041 \
5162
--url https://github.com/uwplse/StructTact.git \
@@ -56,3 +67,7 @@ After running this command, look for a HTML report in the `reports` directory.
5667
For large Coq projects, it is recommended to set the `--threads` option
5768
to at least the number of CPU cores in the machine, since mutation analysis
5869
may otherwise take a long time to complete.
70+
71+
[ase-paper]: https://users.ece.utexas.edu/~gligoric/papers/CelikETAL19mCoq.pdf
72+
[structtact-repo]: https://github.com/uwplse/StructTact
73+
[structtact-revision]: https://github.com/uwplse/StructTact/commit/b95f041cb83986fb0fe1f9689d7196e2f09a4839

0 commit comments

Comments
 (0)