Skip to content

Commit 6a0db19

Browse files
committed
Merge branch 'master' of https://github.com/haslab/Electrum
2 parents f33cca7 + 99a2b8e commit 6a0db19

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

README.md

+20-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
1-
# Electrum
1+
# Electrum Analyzer
22

3-
This extension to the Alloy Analyzer by the [Institute for Systems and Computer Engineering, Technology and Science](https://www.inesctec.pt/en) and the [French Aerospace Lab](https://www.onera.fr/en) provides an analyzer for Electrum models, a temporal extension to the Alloy modeling language.
3+
This extension to the Alloy Analyzer by [INESC TEC](https://www.inesctec.pt/en) (the Institute for Systems and Computer Engineering, Technology and Science) and [ONERA](https://www.onera.fr/en) (the French aerospace research center) provides an analyzer for Electrum models, a temporal extension to the Alloy modeling language.
44

55
[Alloy](http://alloy.mit.edu/) is a simple structural modeling language based on first-order logic developed at the [Software Design Group](http://sdg.csail.mit.edu/). Its Analyzer can generate instances of invariants, simulate the execution of operations, and check user-specified properties of a model.
66

7-
Electrum is open-source and available under the [MIT license](LICENSE), as is the Alloy Analyzer. However, it utilizes several third-party packages whose code may be distributed under a different license (see the various LICENSE files in the distribution for details), including [Kodod](https://github.com/emina/kodkod)'s extension [Pardinus](https://github.com/nmacedo/Pardinus) and its underlying solvers ([SAT4J](http://www.sat4j.org), [MiniSat](http://minisat.se), [Glucose/Syrup](http://www.labri.fr/perso/lsimon/glucose/), [(P)Lingeling](http://fmv.jku.at/lingeling/), and [Yices](http://yices.csl.sri.com)), as well as [CUP](http://www2.cs.tum.edu/projects/cup/) and [JFlex](http://jflex.de/) to generate the parser. Electrum can also perform analyses on an unbounded time horizon: in this case, one needs to install the [Electrod program](https://github.com/grayswandyr/electrod/) too.
7+
Electrum is open-source and available under the [MIT license](LICENSE), as is the Alloy Analyzer. However, it utilizes several third-party packages whose code may be distributed under a different license (see the various LICENSE files in the distribution for details), including [Kodod](https://github.com/emina/kodkod)'s extension [Pardinus](https://github.com/nmacedo/Pardinus) and its underlying solvers ([SAT4J](http://www.sat4j.org), [MiniSat](http://minisat.se), [Glucose/Syrup](http://www.labri.fr/perso/lsimon/glucose/), [(P)Lingeling](http://fmv.jku.at/lingeling/), and [Yices](http://yices.csl.sri.com)), as well as [CUP](http://www2.cs.tum.edu/projects/cup/) and [JFlex](http://jflex.de/) to generate the parser.
88

9-
## Building Electrum
9+
Electrum can also perform analyses on an unbounded time horizon: in this case, one needs to install the [Electrod](https://github.com/grayswandyr/electrod/) program as well as [NuSMV](http://nusmv.fbk.eu/) or [nuXmv](https://nuxmv.fbk.eu/).
1010

11-
Electrum needs Java 8 and can be built using Maven. The script will also build Kodkod/Pardinus, which uses the [Waf](https://github.com/waf-project/waf) build
11+
## Building Electrum Analyzer
12+
13+
The Electrum Analyzer requires Java 8 and can be built using Maven. The script will also build Kodkod/Pardinus, which uses the [Waf](https://github.com/waf-project/waf) build
1214
system, which requires Python 2.5 or later, and needs a C/C++ compiler for the underlying solvers.
1315

1416
* Clone the Electrum repository, as well as Pardinus' as a submodule
@@ -20,9 +22,15 @@ system, which requires Python 2.5 or later, and needs a C/C++ compiler for the u
2022

2123
`$ mvn clean package -DskipTests`
2224

25+
## Prototype: Electrum with actions
26+
27+
An [extension of Electrum](https://github.com/haslab/Electrum/releases/tag/v1.0-actions), with actions, is currently under study.
28+
29+
If you wish to build it, repeat the steps above, just replacing `-b master` in the first line by `-b actions`.
30+
2331
## Running
2432

25-
[Download](https://github.com/nmacedo/Electrum/releases/tag/v1.0) the executable ``jar`` (or [build](#building-electrum) it) and launch it simply as
33+
[Download](https://github.com/nmacedo/Electrum/releases/tag/v1.0) the executable ``jar`` (or [build](#building-electrum-analyzer) it) and launch it simply as
2634

2735
`$ java -jar electrum-1.0.0-gui.jar`
2836

@@ -36,9 +44,14 @@ This will launch Electrum's/Alloy Analyzer's simple GUI, which is packaged with
3644
- Denis Kuperberg, TU Munich, Germany
3745
- Eduardo Pessoa, HASLab, INESC TEC & Universidade do Minho, Portugal
3846

47+
## ERTMS Case Study
48+
ERTMS models developed in response to the ABZ 2018 call for case study submissions:
49+
* Electrum [model](http://haslab.github.io/Electrum/ertms.ele) and [theme](http://haslab.github.io/Electrum/ertms.thm)
50+
* Alloy [model](http://haslab.github.io/Electrum/ertms.als) and [theme](http://haslab.github.io/Electrum/ertms_als.thm)
51+
3952
## History
4053
### Electrum [1.0.0](https://github.com/nmacedo/Electrum/releases/tag/v1.0) (January 2018)
41-
<!--- FM 18 -->
54+
<!--- FM,ABZ 18 -->
4255
- First stable public release
4356
- Common interface for temporal relational model finding problems through Pardinus
4457
- Bounded and unbounded model checking of Electrum models

0 commit comments

Comments
 (0)