Initial commit.
This commit is contained in:
parent
bc6cffa54d
commit
2863b3552a
|
@ -0,0 +1,10 @@
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
stages {
|
||||||
|
stage('Build') {
|
||||||
|
steps {
|
||||||
|
sh 'docker run -v $PWD/Core_DOM:/Core_DOM logicalhacking:isabelle2020 isabelle build -D /Extended_Finite_State_Machine_Inference'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,78 @@
|
||||||
|
To cite the use of this formal theory, please use
|
||||||
|
|
||||||
|
Michael Foster, Achim D. Brucker, Ramsay G. Taylor, and John Derrick. Inference of Extended
|
||||||
|
Finite State Machines. In Archive of Formal Proofs, 2020.
|
||||||
|
http://www.isa-afp.org/entries/Extended_Finite_State_Machine_Inference.html,
|
||||||
|
Formal proof development
|
||||||
|
|
||||||
|
A BibTeX entry for LaTeX users is
|
||||||
|
|
||||||
|
@Article{ foster.ea:efsm-inference:2020,
|
||||||
|
abstract = {In this AFP entry, we provide a formal implementation of a state-merging technique
|
||||||
|
to infer extended finite state machines (EFSMs), complete with output and update
|
||||||
|
functions, from black-box traces. In particular, we define the subsumption in
|
||||||
|
context relation as a means of determining whether one transition is able to account
|
||||||
|
for the behaviour of another. Building on this, we define the direct subsumption relation,
|
||||||
|
which lifts the subsumption in context relation to EFSM level such that we can use it
|
||||||
|
to determine whether it is safe to merge a given pair of transitions. Key proofs include
|
||||||
|
the conditions necessary for subsumption to occur and that subsumption and direct subsumption
|
||||||
|
are preorder relations. We also provide a number of different heuristics which can be used
|
||||||
|
to abstract away concrete values into registers so that more states and transitions can be
|
||||||
|
merged and provide proofs of the various conditions which must hold for these abstractions
|
||||||
|
to subsume their ungeneralised counterparts. A Code Generator setup to create executable
|
||||||
|
Scala code is also defined.},
|
||||||
|
author = {Michael Foster and Achim D. Brucker and Ramsay G. Taylor and John Derrick},
|
||||||
|
date = {2020-09-07},
|
||||||
|
file = {https://www.brucker.ch/bibliography/download/2020/foster.ea-efsm-inference-outline-2020.pdf},
|
||||||
|
filelabel = {Outline},
|
||||||
|
issn = {2150-914x},
|
||||||
|
journal = {Archive of Formal Proofs},
|
||||||
|
month = {sep},
|
||||||
|
note = {\url{http://www.isa-afp.org/entries/Extended_Finite_State_Machine_Inference.html}, Formal proof development},
|
||||||
|
pdf = {https://www.brucker.ch/bibliography/download/2020/foster.ea-efsm-inference-2020.pdf},
|
||||||
|
title = {Inference of Extended Finite State Machines},
|
||||||
|
url = {https://www.brucker.ch/bibliography/abstract/foster.ea-efsm-inference-2020},
|
||||||
|
year = {2020},
|
||||||
|
}
|
||||||
|
|
||||||
|
An overview of the formalization is given in:
|
||||||
|
|
||||||
|
Michael Foster, Achim D. Brucker, Ramsay G. Taylor, Siobhán North, and John Derrick. Incorporating Data into
|
||||||
|
EFSM Inference. In Software Engineering and Formal Methods (SEFM). Lecture Notes in Computer Science (11724),
|
||||||
|
pages 257-272, Springer-Verlag, 2019, doi:10.1007/978-3-030-30446-1_14.
|
||||||
|
https://www.brucker.ch/bibliography/abstract/foster.ea-incorporating-2019
|
||||||
|
|
||||||
|
A BibTeX entry for LaTeX users is
|
||||||
|
|
||||||
|
@InCollection{ foster.ea:incorporating:2019,
|
||||||
|
abstract = {Models are an important way of understanding software systems. If they do
|
||||||
|
not already exist, then we need to infer them from system behaviour. Most current
|
||||||
|
approaches infer classical FSM models that do not consider data, thus limiting
|
||||||
|
applicability. EFSMs provide a way to concisely model systems with an internal
|
||||||
|
state but existing inference techniques either do not infer models which allow
|
||||||
|
outputs to be computed from inputs, or rely heavily on comprehensive white-box
|
||||||
|
traces that reveal the internal program state, which are often unavailable.
|
||||||
|
|
||||||
|
In this paper, we present an approach for inferring EFSM models, including functions
|
||||||
|
that modify the internal state. Our technique uses black-box traces which only
|
||||||
|
contain information visible to an external observer of the system. We implemented
|
||||||
|
our approach as a prototype.},
|
||||||
|
address = {Heidelberg},
|
||||||
|
author = {Michael Foster and Achim D. Brucker and Ramsay G. Taylor and Siobh{\'a}n North and John Derrick},
|
||||||
|
booktitle = {Software Engineering and Formal Methods (SEFM)},
|
||||||
|
doi = {10.1007/978-3-030-30446-1_14},
|
||||||
|
editor = {Peter C. {\"O}lveczky and Gwen Sala{\"u}n},
|
||||||
|
isbn = {3-540-25109-X},
|
||||||
|
keywords = {EFSM Inference, Model Inference, Reverse Engineering},
|
||||||
|
language = {USenglish},
|
||||||
|
location = {Oslo},
|
||||||
|
number = {11724},
|
||||||
|
pages = {257--272},
|
||||||
|
pdf = {https://www.brucker.ch/bibliography/download/2019/foster.ea-incorporating-2019.pdf},
|
||||||
|
publisher = {Springer-Verlag},
|
||||||
|
series = {Lecture Notes in Computer Science},
|
||||||
|
title = {Incorporating Data into EFSM Inference},
|
||||||
|
url = {https://www.brucker.ch/bibliography/abstract/foster.ea-incorporating-2019},
|
||||||
|
year = {2019},
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
chapter AFP
|
chapter AFP
|
||||||
|
|
||||||
session Extended_Finite_State_Machine_Inference (AFP) = Extended_Finite_State_Machines +
|
session "Extended_Finite_State_Machine_Inference-devel" (AFP) = Extended_Finite_State_Machines +
|
||||||
options [timeout = 600]
|
options [timeout = 600]
|
||||||
directories
|
directories
|
||||||
"heuristics"
|
"heuristics"
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
Copyright (c) 2016-2020 The University of Sheffield, UK
|
||||||
|
2019-2020 University of Exeter, UK
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following
|
||||||
|
disclaimer in the documentation and/or other materials provided
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the copyright holders nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived
|
||||||
|
from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,43 @@
|
||||||
|
# Inference of Extended Finite State Machines (Extended_Finite_State_Machine_Inference)
|
||||||
|
|
||||||
|
This git repository contains a local mirror of the
|
||||||
|
[Archive of Formal Proofs (AFP)](https://www.isa-afp.org) entry
|
||||||
|
[*Inference of Extended Finite State Machines*](https://www.isa-afp.org/entries/Extended_Finite_State_Machine_Inference.html).
|
||||||
|
|
||||||
|
The official AFP releases are tagged. Additionally, this repository
|
||||||
|
may contain extensions (i.e., a development version) that may be
|
||||||
|
submitted, as an update to the existing entry, at a later point in time.
|
||||||
|
|
||||||
|
## How to build
|
||||||
|
|
||||||
|
```console
|
||||||
|
achim@logicalhacking:~$ isabelle build -D Extended_Finite_State_Machine_Inference-devel
|
||||||
|
```
|
||||||
|
|
||||||
|
## Authors
|
||||||
|
|
||||||
|
* Michael Foster
|
||||||
|
* [Achim D. Brucker](http://www.brucker.ch/)
|
||||||
|
* Ramsay G. Taylor
|
||||||
|
* John Derrick
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under a 3-clause BSD-style license.
|
||||||
|
|
||||||
|
SPDX-License-Identifier: BSD-3-Clause
|
||||||
|
|
||||||
|
## Master Repository
|
||||||
|
|
||||||
|
The master git repository for this project is hosted by the [Software
|
||||||
|
Assurance & Security Research Team](https://logicalhacking.com) at
|
||||||
|
<https://git.logicalhacking.com/afp-mirror/Extended_Finite_State_Machine_Inference>.
|
||||||
|
|
||||||
|
## Publications
|
||||||
|
|
||||||
|
* Michael Foster, Achim D. Brucker, Ramsay G. Taylor, Siobhán North, and John Derrick. Incorporating
|
||||||
|
Data into EFSM Inference. In Software Engineering and Formal Methods (SEFM). Lecture Notes in
|
||||||
|
Computer Science (11724), pages 257-272, Springer-Verlag, 2019,
|
||||||
|
doi:[10.1007/978-3-030-30446-1_14](https://doi.org/10.1007/978-3-030-30446-1_14).
|
||||||
|
<https://www.brucker.ch/bibliography/abstract/foster.ea-incorporating-2019>
|
||||||
|
|
Loading…
Reference in New Issue