Downloads:
The archive also contains a README with urls to some sources. All models are complete (or input-enabled), deterministic and minimal (or reduced). The benchmarks are in .dot format, where the from-state of the first transition is always the initial state. If you find any problems, unclarities or have a different format for FSMs, don't hesitate to contact us!
Summary of the benchmarks (the ones indicated TODO are in the archive, but not yet described below):
Bank cards (or debit cards) are smart cards used for payment systems. All smart cards follow the ISO/IEC 7816 standard. Here communication is in host-client mode: the terminal sends a command to the card, and the card returns a response, after which the terminal can send another command, etc. Commands and responses are simply sequences of bytes with a fixed format and meaning. Most smart cards issued by banks or credit cards companies adhere to the EMV (Europay-MasterCard-Visa) standard. This standard is defined on top of ISO/IEC 7816.
We have learned models for several client implementations, i.e. real bank cards from different banks. Access to the smart cards was realised via a standard smart card reader. The models might be incorrect, but already showed reproducible bugs in some cases.
See BenchmarkBankcard? for more information.
Benchmark Name | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|
MAESTRO | dot-file | 14 / 10 | 6 | 84 | [ARP13] |
MAESTRO (ASN) | dot-file | 14 / 10 | 6 | 84 | [ARP13] |
MAESTRO (Rabo) | dot-file | 14 / 10 | 6 | 84 | [ARP13] |
MAESTRO (Volksbank) | dot-file | 14 / 11 | 7 | 98 | [ARP13] |
MasterCard | dot-file | 14 / 9 | 6 | 84 | [ARP13] |
MasterCard | dot-file | 15 / 9 | 5 | 75 | [ARP13] |
PIN | dot-file | 14 / 10 | 6 | 84 | [ARP13] |
SecureCode | dot-file | 14 / 9 | 4 | 56 | [ARP13] |
SecureCode (ASN) | dot-file | 14 / 9 | 4 | 56 | [ARP13] |
SecureCode (Rabo) | dot-file | 15 / 12 | 6 | 90 | [ARP13] |
VISA | dot-file | 15 / 11 | 9 | 135 | [ARP13] |
The e.dentifier2 is a hand-held smart card reader with a small display, a numeric keyboard, and OK and Cancel buttons. It is used for Internet banking in combination with a bank card and a PIN code. The e.dentifier2 appear to be based on EMV-CAP, a proprietary standard by MasterCard, which in turn is based on the EMV standard implemented in most bank cards.
Benchmark Name | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|
New (small alphabet) | dot-file | 5 / 4 | 3 | 15 | [CPPR14] |
New (random) | dot-file | 8 / 9 | 11 | 88 | [CPPR14] |
New (W-method) | dot-file | 8 / 8 | 8 | 64 | [CPPR14] |
Old (small alphabet) | dot-file | 5 / 4 | 4 | 20 | [CPPR14] |
Old (random) | dot-file | 8 / 9 | 22 | 176 | [CPPR14] |
The logic synthesis workshops (LGSynth89, LGSynth91 and LGSynth93) provide 59 behavioural models for circuit synthesis. More background information can be found on the Benchmark Archives at CBL. These models can be seen as Mealy machines, (in several ways). The models are given as kiss2 files which consist of a list of transitions. As an example we consider a transition "01-- s1 s2 0-". Here "01--" is the input bit vector, "s1", "s2" are the source, target states resp. and "0-" is the output bit vector. A dash "-" means "don't care". In this example all the bit vectors "0100", "0101", "0110" and "0111" will trigger the transition. For the output we can interpret the meaning of don't care bits in (at least) two ways:
In both cases, the models are deterministic, possibly partial Mealy machines. We consider two ways of completing the models:
In both cases we will obtain a deterministic, complete Mealy machine. We provide all 4 semantics (2*2 combinations of above). If two or more semantics give bisimilar results, we only use one of them in the benchmark suite.
These models are used as benchmarks in papers by Hierons and Turker (TODO: provide references). They choose a semantics with observable don't cares and self-loops (with a distinct null output instead of a don't care output).
TODO: create a table with the list.
The Mealy machine "ESM Controller" is based on the RRRT-model as described in the [SMVJ15] paper. It is flattened to be a Mealy machine. In addition, an equivalent model was learned. The table below also lists different runs of the learning algorithm used in [SMVJ15] and contain all the hypotheses. This gives a nice sequence of machines, growing in size (Learning runs contain in total 207 models).
Moreover, two incorrect hypotheses are provided where we attempted to learn an extended model. Due to resource constraints we were never able to learn the proper models for this extension. These benchmarks are by far the biggest (finite) Mealy machines of real-world software we currently have.
See BenchmarkESMcontroller? for more information.
Benchmark Name | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|
ESM Controller? | Model Δ | 78 / 151 | 3410 | 265980 | [SMVJ15] |
ESM Learning Run 1 | Model Δ | 78 / (145-151) | 546-3410 | 42588-265980 | [SMVJ15] |
ESM Learning Run 2 | Model Δ | 78 / (145-151) | 557-3341 | 43212-265980 | [SMVJ15] |
ESM Learning Run 3 | Model Δ | 78 / (145-151) | 576-3413 | 44694-265980 | [SMVJ15] |
ESM extended 1 (incorrect) | TODO | 96 / 150 | 8644 | 829824 | |
ESM extended 2 (incorrect) | TODO | 96 / 151 | 10010 | 960960 |
On can obtain a Mealy machine (FSM) by taking a register automata (or EFSM), by restricting the data domain to a fixed finite set.
Benchmark Name | Domain | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|---|
Biometric Passport? | 0-1 | dot-file | 10 / 2 | 4 | 40 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-2 | dot-file | 11 / 2 | 4 | 44 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-3 | dot-file | 12 / 2 | 4 | 48 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-4 | dot-file | 13 / 2 | 4 | 52 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-5 | dot-file | 14 / 2 | 4 | 56 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-6 | dot-file | 15 / 2 | 4 | 60 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-7 | dot-file | 16 / 2 | 4 | 64 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-8 | dot-file | 17 / 2 | 4 | 68 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-9 | dot-file | 18 / 2 | 4 | 72 | [AHKOV12][Aarts14][ASV10] |
Biometric Passport? | 0-10 | dot-file | 19 / 2 | 4 | 76 | [AHKOV12][Aarts14][ASV10] |
On the register automata page of this benchmark there are also mutants listed. You can find Mealy machine versions of these in the archive file containing all benchmarks at the top.
Benchmark Name | Domain | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|---|
BRP | 0-1 | dot-file | 10 / 16 | 156 | 1560 | [DKRT97][HSV93] |
BRP | 0-2 | dot-file | 29 / 22 | 418 | 12122 | [DKRT97][HSV93] |
BRP | 0-3 | dot-file | 66 / 28 | 884 | 58344 | [DKRT97][HSV93] |
BRP | 0-4 | dot-file | 127 / 34 | 1614 | 204978 | [DKRT97][HSV93] |
BRP | 0-5 | dot-file | 218 / 40 | 2668 | 581624 | [DKRT97][HSV93] |
Benchmark Name | Domain | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|---|
Login? | 0-1 | dot-file | 9 / 2 | 9 | 81 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-2 | dot-file | 19 / 2 | 19 | 361 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-3 | dot-file | 33 / 2 | 33 | 1089 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-4 | dot-file | 51 / 2 | 51 | 2601 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-5 | dot-file | 73 / 2 | 73 | 5329 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-6 | dot-file | 99 / 2 | 99 | 9801 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-7 | dot-file | 129 / 2 | 129 | 16641 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-8 | dot-file | 163 / 2 | 163 | 26569 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-9 | dot-file | 201 / 2 | 201 | 40401 | [AHKOV12][Aarts14][HSJC12] |
Login? | 0-10 | dot-file | 243 / 2 | 243 | 59049 | [AHKOV12][Aarts14][HSJC12] |
Benchmark Name | Domain | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|---|
Palindrome | 0-1 | dot-file | 52 / 2 | 1 | 52 | [AHKOV12][Aarts14] |
Palindrome | 0-2 | dot-file | 225 / 2 | 1 | 225 | [AHKOV12][Aarts14] |
Palindrome | 0-3 | dot-file | 656 / 2 | 1 | 656 | [AHKOV12][Aarts14] |
Palindrome | 0-4 | dot-file | 1525 / 2 | 1 | 1525 | [AHKOV12][Aarts14] |
Palindrome | 0-5 | dot-file | 3060 / 2 | 1 | 3060 | [AHKOV12][Aarts14] |
Benchmark Name | Domain | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|---|
River | 0-1 | dot-file | 2 / 2 | 1 | 2 | [AHKOV12][Aarts14] |
River | 0-2 | dot-file | 3 / 2 | 1 | 3 | [AHKOV12][Aarts14] |
River | 0-3 | dot-file | 4 / 3 | 5 | 20 | [AHKOV12][Aarts14] |
River | 0-4 | dot-file | 5 / 4 | 9 | 45 | [AHKOV12][Aarts14] |
River | 0-5 | dot-file | 6 / 4 | 9 | 54 | [AHKOV12][Aarts14] |
River | 0-6 | dot-file | 7 / 4 | 9 | 63 | [AHKOV12][Aarts14] |
River | 0-7 | dot-file | 8 / 4 | 9 | 72 | [AHKOV12][Aarts14] |
River | 0-8 | dot-file | 9 / 4 | 9 | 81 | [AHKOV12][Aarts14] |
River | 0-9 | dot-file | 10 / 4 | 9 | 90 | [AHKOV12][Aarts14] |
River | 0-10 | dot-file | 11 / 4 | 9 | 99 | [AHKOV12][Aarts14] |
When converting these models to Mealy machines, the result was not a completely specified machine. Self loops with a new output were added in order to complete the machine.
Benchmark Name | Domain | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|---|
SIP | 0-1 | dot-file | 7 / 14 | 18 | 126 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-2 | dot-file | 10 / 20 | 32 | 320 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-3 | dot-file | 13 / 26 | 50 | 650 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-4 | dot-file | 16 / 32 | 72 | 1152 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-5 | dot-file | 19 / 38 | 98 | 1862 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-6 | dot-file | 22 / 44 | 128 | 2816 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-7 | dot-file | 25 / 50 | 162 | 4050 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-8 | dot-file | 28 / 56 | 200 | 5600 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-9 | dot-file | 31 / 62 | 242 | 7502 | [AHKOV12][Aarts14][AJU10] |
SIP | 0-10 | dot-file | 34 / 68 | 288 | 9792 | [AHKOV12][Aarts14][AJU10] |
See BenchmarkTLS for more information.
Benchmark Name | Model | Inputs/Outputs | States | Transitions | Publications |
---|---|---|---|---|---|
GnuTLS 3.3.12 client (full) | dot-file | 12 / 7 | 9 | 108 | [RP15] |
GnuTLS 3.3.12 client (regular) | dot-file | 8 / 10 | 7 | 56 | [RP15] |
GnuTLS 3.3.12 server (full) | dot-file | 12 / 12 | 9 | 108 | [RP15] |
GnuTLS 3.3.12 server (regular) | dot-file | 8 / 10 | 7 | 56 | [RP15] |
GnuTLS 3.3.8 client (full) | dot-file | 12 / 8 | 15 | 180 | [RP15] |
GnuTLS 3.3.8 client (regular) | dot-file | 8 / 6 | 11 | 88 | [RP15] |
GnuTLS 3.3.8 server (full) | dot-file | 11 / 12 | 16 | 176 | [RP15] |
GnuTLS 3.3.8 server (regular) | dot-file | 8 / 10 | 12 | 96 | [RP15] |
miTLS 0.1.3 server (regular) | dot-file | 8 / 8 | 6 | 48 | [RP15] |
NSS 3.17.4 client (full) | dot-file | 12 / 9 | 11 | 132 | [RP15] |
NSS 3.17.4 client (regular) | dot-file | 8 / 7 | 7 | 56 | [RP15] |
NSS 3.17.4 server (regular) | dot-file | 8 / 9 | 8 | 64 | [RP15] |
OpenSSL 1.0.1g client (regular) | dot-file | 7 / 7 | 10 | 70 | [RP15] |
OpenSSL 1.0.1g server (regular) | dot-file | 7 / 11 | 16 | 112 | [RP15] |
OpenSSL 1.0.1j client (regular) | dot-file | 7 / 5 | 6 | 42 | [RP15] |
OpenSSL 1.0.1j server (regular) | dot-file | 7 / 9 | 11 | 77 | [RP15] |
OpenSSL 1.0.1l client (regular) | dot-file | 7 / 5 | 6 | 42 | [RP15] |
OpenSSL 1.0.1l server (regular) | dot-file | 7 / 8 | 10 | 70 | [RP15] |
OpenSSL 1.0.2 client (full) | dot-file | 10 / 6 | 9 | 90 | [RP15] |
OpenSSL 1.0.2 client (regular) | dot-file | 7 / 5 | 6 | 42 | [RP15] |
OpenSSL 1.0.2 server (regular) | dot-file | 7 / 7 | 7 | 49 | [RP15] |
RSA BSAFE C 4.0.4 server (regular) | dot-file | 8 / 11 | 9 | 72 | [RP15] |
RSA BSAFE Java 6.1.1 server (regular) | dot-file | 8 / 7 | 6 | 48 | [RP15] |