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
Copy file name to clipboardExpand all lines: README.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Follow the instructions on https://github.com/coq-community/templates to regener
12
12
13
13
14
14
15
-
In this repository you can find the formalisation of a subset of Core Erlang in Coq Proof Assistant. The main features of the formalisation include:
15
+
In this repository you can find the formalisation of a subset of Core Erlang in Rocq. The main features of the formalisation include:
16
16
- The syntax of Core Erlang
17
17
- A big-step, a functional big-step and a frame stack semantics of sequential Core Erlang
18
18
- A frame stack semantics for a subset of concurrent Core Erlang
@@ -30,7 +30,7 @@ In this repository you can find the formalisation of a subset of Core Erlang in
30
30
- Simon Thompson
31
31
- M.Sc. students from Eötvös Loránd University
32
32
- License: [GNU Lesser General Public License v3 or later](LICENSE)
33
-
- Compatible Rocq/Coq versions: 8.20
33
+
- Compatible Rocq/Coq versions: 9.1
34
34
- Additional dependencies:
35
35
-[Stdpp](https://gitlab.mpi-sws.org/iris/stdpp) 1.11.0 is required
36
36
- Rocq/Coq namespace: `CoreErlang`
@@ -46,13 +46,13 @@ In this repository you can find the formalisation of a subset of Core Erlang in
46
46
47
47
## Compiling the project
48
48
49
-
Necessary requirements: Coq v8.20.0, stdpp v1.11.0 and Erlang/OTP v23.0 (not necessary for the Coq developments). The library is compilable by using `make`. In the following list, we give a brief description about the contents of the files.
49
+
Necessary requirements: Rocq v9.1.0, stdpp v1.11.0 and Erlang/OTP v23.0 (not necessary for the Rocq developments). The library is compilable by using `make`. In the following list, we give a brief description about the contents of the files.
50
50
51
51
## Structure of the formalisation
52
52
53
53
The main module `CoreErlang` includes the common features for all semantics:
54
54
55
-
-`src/Basics.v`: fundamental types, and lemmas about them and the built-in features of Coq;
55
+
-`src/Basics.v`: fundamental types, and lemmas about them and the built-in features of Rocq;
56
56
-`src/Syntax.v`: the abstract syntax of Core Erlang;
57
57
-`src/Induction.v`: induction principles for the syntax;
58
58
-`src/Equalities.v`: decidable and boolean equalities and comparison based on the abstract syntax;
@@ -123,15 +123,15 @@ Concurrent semantics based on the sequential semantics of `FrameStack` is define
123
123
124
124
## Formally based interpreter for Core Erlang
125
125
126
-
The interpreter based on the formal semantics is implemented in `src/Interpreter`, which features function-based variants for the frame stack semantics defined in `src/FrameStack` and `src/Concurrent`. The interpreter is based on Coq's extraction mechanism.
126
+
The interpreter based on the formal semantics is implemented in `src/Interpreter`, which features function-based variants for the frame stack semantics defined in `src/FrameStack` and `src/Concurrent`. The interpreter is based on Rocq's extraction mechanism.
127
127
128
128
-`src/Interpreter/Equivalences.v`: proves the equivalence of the frame stack semantics and its function-based variants (implemented in `StepFunctions.v`) for both the sequential and concurrent sublanguages.
129
-
-`src/Interpreter/ExampleProgExtraction.v`: includes a Coq script to extract the (parsed Erlang) programs defined in `src/interpreter/ExampleASTs/coqAST`.
130
-
-`src/Interpreter/HaskellExtraction.v`: includes a Coq script to extract the (functional) semantics to Haskell. This script also optimises the semantics in several aspects with extraction commands.
131
-
-`src/Interpreter/HaskellExtractionQuickCheck.v`: includes a Coq script to extract the (functional) semantics to Haskell without optimisations.
129
+
-`src/Interpreter/ExampleProgExtraction.v`: includes a Rocq script to extract the (parsed Erlang) programs defined in `src/interpreter/ExampleASTs/rocqAST`.
130
+
-`src/Interpreter/HaskellExtraction.v`: includes a Rocq script to extract the (functional) semantics to Haskell. This script also optimises the semantics in several aspects with extraction commands.
131
+
-`src/Interpreter/HaskellExtractionQuickCheck.v`: includes a Rocq script to extract the (functional) semantics to Haskell without optimisations.
132
132
-`src/Interpreter/InterpreterAux.v`: defines a number of helper functions for the function-based semantics.
133
133
-`src/Interpreter/InterpreterAuxLemmas.v`: proves a number of properties of the helper functions mentioned above.
134
-
-`src/Interpreter/OCamlExtraction.v`: includes a Coq script to extract the (functional) semantics to OCaml without optimisations.
134
+
-`src/Interpreter/OCamlExtraction.v`: includes a Rocq script to extract the (functional) semantics to OCaml without optimisations.
135
135
-`src/Interpreter/Scheduler.v`: defines a number of helper functions used by the scheduler implemented in Haskell.
136
136
-`src/Interpreter/StepFunctions.v`: defines the function-based variants of the frame stack semantics.
137
137
-`src/Interpreter/Tests.v`: includes a number of unit tests for the function-based semantics.
[Stdpp](https://gitlab.mpi-sws.org/iris/stdpp) 1.11.0 is required
74
75
@@ -89,14 +90,14 @@ keywords:
89
90
build: |-
90
91
## Compiling the project
91
92
92
-
Necessary requirements: Coq v8.20.0, stdpp v1.11.0 and Erlang/OTP v23.0 (not necessary for the Coq developments). The library is compilable by using `make`. In the following list, we give a brief description about the contents of the files.
93
+
Necessary requirements: Rocq v9.1.0, stdpp v1.11.0 and Erlang/OTP v23.0 (not necessary for the Rocq developments). The library is compilable by using `make`. In the following list, we give a brief description about the contents of the files.
93
94
94
95
documentation: |-
95
96
## Structure of the formalisation
96
97
97
98
The main module `CoreErlang` includes the common features for all semantics:
98
99
99
-
- `src/Basics.v`: fundamental types, and lemmas about them and the built-in features of Coq;
100
+
- `src/Basics.v`: fundamental types, and lemmas about them and the built-in features of Rocq;
100
101
- `src/Syntax.v`: the abstract syntax of Core Erlang;
101
102
- `src/Induction.v`: induction principles for the syntax;
102
103
- `src/Equalities.v`: decidable and boolean equalities and comparison based on the abstract syntax;
@@ -167,15 +168,15 @@ documentation: |-
167
168
168
169
## Formally based interpreter for Core Erlang
169
170
170
-
The interpreter based on the formal semantics is implemented in `src/Interpreter`, which features function-based variants for the frame stack semantics defined in `src/FrameStack` and `src/Concurrent`. The interpreter is based on Coq's extraction mechanism.
171
+
The interpreter based on the formal semantics is implemented in `src/Interpreter`, which features function-based variants for the frame stack semantics defined in `src/FrameStack` and `src/Concurrent`. The interpreter is based on Rocq's extraction mechanism.
171
172
172
173
- `src/Interpreter/Equivalences.v`: proves the equivalence of the frame stack semantics and its function-based variants (implemented in `StepFunctions.v`) for both the sequential and concurrent sublanguages.
173
-
- `src/Interpreter/ExampleProgExtraction.v`: includes a Coq script to extract the (parsed Erlang) programs defined in `src/interpreter/ExampleASTs/coqAST`.
174
-
- `src/Interpreter/HaskellExtraction.v`: includes a Coq script to extract the (functional) semantics to Haskell. This script also optimises the semantics in several aspects with extraction commands.
175
-
- `src/Interpreter/HaskellExtractionQuickCheck.v`: includes a Coq script to extract the (functional) semantics to Haskell without optimisations.
174
+
- `src/Interpreter/ExampleProgExtraction.v`: includes a Rocq script to extract the (parsed Erlang) programs defined in `src/interpreter/ExampleASTs/rocqAST`.
175
+
- `src/Interpreter/HaskellExtraction.v`: includes a Rocq script to extract the (functional) semantics to Haskell. This script also optimises the semantics in several aspects with extraction commands.
176
+
- `src/Interpreter/HaskellExtractionQuickCheck.v`: includes a Rocq script to extract the (functional) semantics to Haskell without optimisations.
176
177
- `src/Interpreter/InterpreterAux.v`: defines a number of helper functions for the function-based semantics.
177
178
- `src/Interpreter/InterpreterAuxLemmas.v`: proves a number of properties of the helper functions mentioned above.
178
-
- `src/Interpreter/OCamlExtraction.v`: includes a Coq script to extract the (functional) semantics to OCaml without optimisations.
179
+
- `src/Interpreter/OCamlExtraction.v`: includes a Rocq script to extract the (functional) semantics to OCaml without optimisations.
179
180
- `src/Interpreter/Scheduler.v`: defines a number of helper functions used by the scheduler implemented in Haskell.
180
181
- `src/Interpreter/StepFunctions.v`: defines the function-based variants of the frame stack semantics.
181
182
- `src/Interpreter/Tests.v`: includes a number of unit tests for the function-based semantics.
0 commit comments