Nog meer kleine dingetjes
This commit is contained in:
parent
4a92b104bb
commit
a2022293cc
6 changed files with 76 additions and 38 deletions
32
biblio.bib
32
biblio.bib
|
@ -796,6 +796,22 @@
|
||||||
bibsource = {dblp computer science bibliography, https://dblp.org}
|
bibsource = {dblp computer science bibliography, https://dblp.org}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@article{EmersonS96,
|
||||||
|
author = {E. Allen Emerson and
|
||||||
|
A. Prasad Sistla},
|
||||||
|
title = {Symmetry and Model Checking},
|
||||||
|
journal = {Formal Methods in System Design},
|
||||||
|
volume = {9},
|
||||||
|
number = {1/2},
|
||||||
|
pages = {105--131},
|
||||||
|
year = {1996},
|
||||||
|
url = {https://doi.org/10.1007/BF00625970},
|
||||||
|
doi = {10.1007/BF00625970},
|
||||||
|
timestamp = {Sat, 27 May 2017 14:24:05 +0200},
|
||||||
|
biburl = {https://dblp.org/rec/bib/journals/fmsd/EmersonS96},
|
||||||
|
bibsource = {dblp computer science bibliography, https://dblp.org}
|
||||||
|
}
|
||||||
|
|
||||||
@article{EndoS13,
|
@article{EndoS13,
|
||||||
author = {Andr{\'{e}} Takeshi Endo and
|
author = {Andr{\'{e}} Takeshi Endo and
|
||||||
Adenilso da Silva Sim{\~{a}}o},
|
Adenilso da Silva Sim{\~{a}}o},
|
||||||
|
@ -1239,6 +1255,22 @@
|
||||||
bibsource = {dblp computer science bibliography, https://dblp.org}
|
bibsource = {dblp computer science bibliography, https://dblp.org}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@article{IpD96,
|
||||||
|
author = {C. Norris Ip and
|
||||||
|
David L. Dill},
|
||||||
|
title = {Better Verification Through Symmetry},
|
||||||
|
journal = {Formal Methods in System Design},
|
||||||
|
volume = {9},
|
||||||
|
number = {1/2},
|
||||||
|
pages = {41--75},
|
||||||
|
year = {1996},
|
||||||
|
url = {https://doi.org/10.1007/BF00625968},
|
||||||
|
doi = {10.1007/BF00625968},
|
||||||
|
timestamp = {Sat, 27 May 2017 14:24:05 +0200},
|
||||||
|
biburl = {https://dblp.org/rec/bib/journals/fmsd/IpD96},
|
||||||
|
bibsource = {dblp computer science bibliography, https://dblp.org}
|
||||||
|
}
|
||||||
|
|
||||||
@inproceedings{IsbernerHS13,
|
@inproceedings{IsbernerHS13,
|
||||||
author = {Malte Isberner and
|
author = {Malte Isberner and
|
||||||
Falk Howar and
|
Falk Howar and
|
||||||
|
|
|
@ -4,14 +4,13 @@
|
||||||
|
|
||||||
\starttext
|
\starttext
|
||||||
|
|
||||||
|
|
||||||
\startfrontmatter
|
\startfrontmatter
|
||||||
\start
|
\start
|
||||||
\switchtobodyfont[20pt]
|
\switchtobodyfont[20pt]
|
||||||
\midaligned{\framed[width=12cm,align=center,offset=2cm,frame=off]{Nominal Techniques \& Black Box Testing for Automata Learning}}
|
\midaligned{\framed[width=12cm,align=center,offset=2cm,frame=off]{Nominal Techniques and Black Box Testing for Automata Learning}}
|
||||||
\switchtobodyfont[12pt]
|
\switchtobodyfont[12pt]
|
||||||
\midaligned{Joshua Moerman}
|
\midaligned{Joshua Moerman}
|
||||||
\midaligned{8 January 2019}
|
\midaligned{11 January 2019}
|
||||||
\stop
|
\stop
|
||||||
\page[yes]
|
\page[yes]
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
reference=chap:introduction]
|
reference=chap:introduction]
|
||||||
|
|
||||||
When I was younger, I often learned how to play with new toys by messing about with them, i.e., by pressing buttons at random, observing their behaviour, pressing more buttons, and so on.
|
When I was younger, I often learned how to play with new toys by messing about with them, i.e., by pressing buttons at random, observing their behaviour, pressing more buttons, and so on.
|
||||||
Only resorting to the manual -- or asking \quotation{experts} -- to confirm my beliefs on how the toy works.
|
Only resorting to the manual -- or asking \quotation{experts} -- to confirm my beliefs on how the toys work.
|
||||||
Now that I am older, I do mostly the same with new devices, new tools, and new software.
|
Now that I am older, I do mostly the same with new devices, new tools, and new software.
|
||||||
However, now I know that this is an established computer science technique, called \emph{model learning}.
|
However, now I know that this is an established computer science technique, called \emph{model learning}.
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ For an alphabet $\Sigma$, we denote the set of words by $\Sigma^{*}$.
|
||||||
The learning problem is defined as follows.
|
The learning problem is defined as follows.
|
||||||
There is some fixed, but unknown, language $\lang \subseteq \Sigma^{*}$.
|
There is some fixed, but unknown, language $\lang \subseteq \Sigma^{*}$.
|
||||||
This language may define the behaviour of a software component, a property in model checking, a set of traces from a protocol, etc.
|
This language may define the behaviour of a software component, a property in model checking, a set of traces from a protocol, etc.
|
||||||
We wish to infer a description of $\lang$ by only having observed a small part of this language.
|
We wish to infer a description of $\lang$ after only having observed a small part of this language.
|
||||||
For example, we may have seen hundred words belonging to the language and a few which do not belong to the language.
|
For example, we may have seen hundred words belonging to the language and a few which do not belong to the language.
|
||||||
Then concluding with a good description of $\lang$ is difficult, as we are missing information about the infinitely many words we have not observed.
|
Then concluding with a good description of $\lang$ is difficult, as we are missing information about the infinitely many words we have not observed.
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ This type of query is often generalised to more general output, in these cases w
|
||||||
In some papers, such a query is then called an \emph{output query}.
|
In some papers, such a query is then called an \emph{output query}.
|
||||||
|
|
||||||
\description{Equivalence queries (EQs)}
|
\description{Equivalence queries (EQs)}
|
||||||
The learner can provide a hypothesised description of $\lang$ to the teacher.
|
The learner can provide a hypothesised description $H$ of $\lang$ to the teacher.
|
||||||
If the hypothesis is correct, the teacher replies with \kw{yes}.
|
If the hypothesis is correct, the teacher replies with \kw{yes}.
|
||||||
If, however, the hypothesis is incorrect, the teacher replies with \kw{no} together with a counterexample, i.e., a word which is in $\lang$ but not in the hypothesis or vice versa.
|
If, however, the hypothesis is incorrect, the teacher replies with \kw{no} together with a counterexample, i.e., a word which is in $\lang$ but not in the hypothesis or vice versa.
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ Yet, as applications show, this is a useful way of learning software behaviour.
|
||||||
\startsection
|
\startsection
|
||||||
[title={Applications of Model Learning}]
|
[title={Applications of Model Learning}]
|
||||||
|
|
||||||
Since this thesis only contains one real-world application on learning in \in{Chapter}[chap:applying-automata-learning], it is good to mention a few others.
|
Since this thesis only contains one real-world application of learning in \in{Chapter}[chap:applying-automata-learning], it is good to mention a few others.
|
||||||
Although we remain in the context of learning software behaviour, the applications are quite different from each other.
|
Although we remain in the context of learning software behaviour, the applications are quite different from each other.
|
||||||
This is by no means a complete list.
|
This is by no means a complete list.
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@ This is by no means a complete list.
|
||||||
A prominent example is by \citet[Fiterau-Brostean16].
|
A prominent example is by \citet[Fiterau-Brostean16].
|
||||||
They learn models of TCP implementations -- both clients and server sides.
|
They learn models of TCP implementations -- both clients and server sides.
|
||||||
Interestingly, they found bugs in the (closed source) Windows implementation.
|
Interestingly, they found bugs in the (closed source) Windows implementation.
|
||||||
Later, \citet[Fiterau-BrosteanH17] also found a bug in the sliding window of the Linux implementation.
|
Later, \citet[Fiterau-BrosteanH17] also found a bug in the sliding window of the Linux implementation of TCP.
|
||||||
Other protocols have been learned as well, such as the MQTT protocol by \citet[TapplerAB17], TLS by \citet[RuiterP15], and SSH by \citet[Fiterau-BrosteanLPRVV17].
|
Other protocols have been learned as well, such as the MQTT protocol by \citet[TapplerAB17], TLS by \citet[RuiterP15], and SSH by \citet[Fiterau-BrosteanLPRVV17].
|
||||||
Many of these applications reveal bugs by learning a model and consequently apply model checking.
|
Many of these applications reveal bugs by learning a model and consequently apply model checking.
|
||||||
The combination of learning and model checking was first described by \citet[PeledVY02].
|
The combination of learning and model checking was first described by \citet[PeledVY02].
|
||||||
|
@ -147,9 +147,9 @@ The combination of learning and model checking was first described by \citet[Pel
|
||||||
\citet[AartsRP13] learn the software on smart cards of several Dutch and German banks.
|
\citet[AartsRP13] learn the software on smart cards of several Dutch and German banks.
|
||||||
These cards use the EMV protocol, which is run on the card itself.
|
These cards use the EMV protocol, which is run on the card itself.
|
||||||
So this is an example of a real black box system, where no other monitoring is possible and no code is available.
|
So this is an example of a real black box system, where no other monitoring is possible and no code is available.
|
||||||
No vulnerabilities were found, although each card had a slightly different protocol.
|
No vulnerabilities were found, although each card had a slightly different state machine.
|
||||||
Card readers have been learned by \citet[ChaluparPPR14].
|
The e.dentifier, a card reader implementing a challenge-response protocol, has been learned by \citet[ChaluparPPR14].
|
||||||
They built a Lego machine which could automatically press buttons and the researchers found a security flaw.
|
They built a Lego machine which could automatically press buttons and the researchers found a security flaw in this card reader.
|
||||||
|
|
||||||
\description{Regression testing.}
|
\description{Regression testing.}
|
||||||
\citet[HungarNS03] describe the potential of automata learning in regression testing.
|
\citet[HungarNS03] describe the potential of automata learning in regression testing.
|
||||||
|
@ -201,7 +201,7 @@ These abstractions are automatically refined when a counterexample is presented
|
||||||
\citet[Fiterau-Brostean18] extends this approach to cope with \quotation{fresh values}, crucial for protocols such as TCP.
|
\citet[Fiterau-Brostean18] extends this approach to cope with \quotation{fresh values}, crucial for protocols such as TCP.
|
||||||
In the thesis by \citet[Cassel15], another approach is taken.
|
In the thesis by \citet[Cassel15], another approach is taken.
|
||||||
The queries are changed to tree queries.
|
The queries are changed to tree queries.
|
||||||
The approach in my thesis will be based on symmetries, which gives yet another insight into the problem of learning such automata.
|
The approach in my thesis will be based on symmetries, which gives yet another perspective into the problem of learning such automata.
|
||||||
\stopdescription
|
\stopdescription
|
||||||
|
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ The approach in my thesis will be based on symmetries, which gives yet another i
|
||||||
|
|
||||||
An important step in automata learning is equivalence checking.
|
An important step in automata learning is equivalence checking.
|
||||||
Normally, this is abstracted away and done by an oracle, but we intend to implement such an oracle ourselves for our applications.
|
Normally, this is abstracted away and done by an oracle, but we intend to implement such an oracle ourselves for our applications.
|
||||||
Concretely, the problem we need to solve is that of \emph{conformance checking}\footnote{Also known as \emph{machine verification} or \emph{fault detection}.} and this was first described by \citet[Moore56].
|
Concretely, the problem we need to solve is that of \emph{conformance checking}\footnote{Also known as \emph{machine verification} or \emph{fault detection}.} as it was first described by \citet[Moore56].
|
||||||
|
|
||||||
The problem is as follows:
|
The problem is as follows:
|
||||||
Given the description of a finite state machine and a black box system, does the system behave exactly as the description?
|
Given the description of a finite state machine and a black box system, does the system behave exactly as the description?
|
||||||
|
@ -223,7 +223,7 @@ Under these conditions, \citet[Moore56] already solved the problem.
|
||||||
Unfortunately, his experiment is exponential in size, or in his own words: \quotation{fantastically large.}
|
Unfortunately, his experiment is exponential in size, or in his own words: \quotation{fantastically large.}
|
||||||
|
|
||||||
Years later, \citet[Chow78, Vasilevskii73] independently designed efficient experiments.
|
Years later, \citet[Chow78, Vasilevskii73] independently designed efficient experiments.
|
||||||
In particular, the set of experiments is polynomial in size.
|
In particular, the set of experiments is polynomial in the number of states.
|
||||||
These techniques will be discussed in detail in \in{Chapter}[chap:test-methods].
|
These techniques will be discussed in detail in \in{Chapter}[chap:test-methods].
|
||||||
More background and other related problems, as well as their complexity results, are well exposed in a survey of \citet[LeeY94].
|
More background and other related problems, as well as their complexity results, are well exposed in a survey of \citet[LeeY94].
|
||||||
|
|
||||||
|
@ -261,13 +261,13 @@ In the first (\in{Figure}{a}[fig:faulty-record-players]), the sequence \playstop
|
||||||
However, this is not immediately observable, the turntable is in a non-spinning state as it should be.
|
However, this is not immediately observable, the turntable is in a non-spinning state as it should be.
|
||||||
The fault is only visible when we press \playstop\, once more: now the turntable is spinning fast instead of slow.
|
The fault is only visible when we press \playstop\, once more: now the turntable is spinning fast instead of slow.
|
||||||
The sequence \playstop\,\spin\,\spin\,\playstop\, is a \emph{counterexample}.
|
The sequence \playstop\,\spin\,\spin\,\playstop\, is a \emph{counterexample}.
|
||||||
In the second example (\in{Figure}{b}[fig:faulty-record-players]), the fault is again not immediately obvious: after pressing \spin\,\playstop\, we are in the wrong state as observably by pressing \playstop.
|
In the second example (\in{Figure}{b}[fig:faulty-record-players]), the fault is again not immediately obvious: after pressing \spin\,\playstop\, we are in the wrong state as observed by pressing \playstop.
|
||||||
Here, the counterexample is \spin\,\playstop\,\playstop.
|
Here, the counterexample is \spin\,\playstop\,\playstop.
|
||||||
|
|
||||||
When a model of the implementation is given, it is not hard to find counterexamples.
|
When a model of the implementation is given, it is not hard to find counterexamples.
|
||||||
However, in a black box setting we do not have such a model.
|
However, in a black box setting we do not have such a model.
|
||||||
In order test whether a black box system is equivalent to a model, we somehow need to test all possible counterexamples.
|
In order test whether a black box system is equivalent to a model, we somehow need to test all possible counterexamples.
|
||||||
In this example, a test suite should at least include the sequences \playstop\,\spin\,\spin\,\playstop\, and \spin\,\playstop\,\playstop.
|
In this example, a test suite should include sequences such as \playstop\,\spin\,\spin\,\playstop\, and \spin\,\playstop\,\playstop.
|
||||||
|
|
||||||
\startplacefigure
|
\startplacefigure
|
||||||
[title={Two faulty record players.},
|
[title={Two faulty record players.},
|
||||||
|
@ -318,7 +318,7 @@ Usually, nominal techniques are introduced in order to solve problems involving
|
||||||
However, we use them in automata theory, specifically to model \emph{register automata}.
|
However, we use them in automata theory, specifically to model \emph{register automata}.
|
||||||
These are automata which have an infinite alphabet, often thought of as input actions with \emph{data}.
|
These are automata which have an infinite alphabet, often thought of as input actions with \emph{data}.
|
||||||
The control flow of the automaton may actually depend on the data.
|
The control flow of the automaton may actually depend on the data.
|
||||||
However, the data cannot be used in an arbitrary way as this would lead to many problems, such as emptiness, being undecidable.
|
However, the data cannot be used in an arbitrary way as this would lead to many problems, such as emptiness and equivalence, being undecidable.
|
||||||
\footnote{The class of automata with arbitrary data operations is sometimes called \emph{extended finite state machines}.}
|
\footnote{The class of automata with arbitrary data operations is sometimes called \emph{extended finite state machines}.}
|
||||||
A principal concept in nominal techniques is that of \emph{symmetries}.
|
A principal concept in nominal techniques is that of \emph{symmetries}.
|
||||||
|
|
||||||
|
@ -349,7 +349,7 @@ We will only informally discuss its semantics for now.
|
||||||
(0) edge node [above, align=center] {$\kw{sign-up}(p)$ / \checkok \\ set $r := p$} (1)
|
(0) edge node [above, align=center] {$\kw{sign-up}(p)$ / \checkok \\ set $r := p$} (1)
|
||||||
(1) edge [loop below] node [below] {$\ast$ / \checknok}
|
(1) edge [loop below] node [below] {$\ast$ / \checknok}
|
||||||
(1) edge [bend left, align=center] node [above] {$\kw{login}(p)$ / \checkok \\ if $r = p$} (2)
|
(1) edge [bend left, align=center] node [above] {$\kw{login}(p)$ / \checkok \\ if $r = p$} (2)
|
||||||
(2) edge [loop below] node [right, align=left] {$\kw{view}()$ / \checkok \\ $\ast$ / \checknok}
|
(2) edge [loop below] node [right, xshift=2mm, align=left] {$\kw{view}()$ / \checkok \\ $\ast$ / \checknok}
|
||||||
(2) edge [bend left] node [below] {$\kw{logout}()$ / \checkok} (1);
|
(2) edge [bend left] node [below] {$\kw{logout}()$ / \checkok} (1);
|
||||||
\stoptikzpicture}
|
\stoptikzpicture}
|
||||||
\stopplacefigure
|
\stopplacefigure
|
||||||
|
@ -372,7 +372,9 @@ So we see that, despite the symmetry, we cannot simply identify the value \quota
|
||||||
For this reason, we keep the alphabet infinite and explicitly mention its symmetries.
|
For this reason, we keep the alphabet infinite and explicitly mention its symmetries.
|
||||||
|
|
||||||
Using symmetries in automata theory is not a new idea.
|
Using symmetries in automata theory is not a new idea.
|
||||||
One of the first to use symmetries was \citet[Sakamoto97].
|
In the context of model checking, the first to use symmetries were \citet[EmersonS96, IpD96].
|
||||||
|
But only \citet[IpD96] used it to deal with infinite data domains.
|
||||||
|
For automata learning with infinite domains, symmetries were used by \citet[Sakamoto97].
|
||||||
He devised an \LStar{} learning algorithm for register automata, much like the one presented in \in{Chapter}[chap:learning-nominal-automata].
|
He devised an \LStar{} learning algorithm for register automata, much like the one presented in \in{Chapter}[chap:learning-nominal-automata].
|
||||||
The symmetries are crucial to reduce the problem to a finite alphabet and use the regular \LStar{} algorithm.
|
The symmetries are crucial to reduce the problem to a finite alphabet and use the regular \LStar{} algorithm.
|
||||||
(\in{Chapter}[chap:learning-nominal-automata] shows how to do it with more general symmetries.)
|
(\in{Chapter}[chap:learning-nominal-automata] shows how to do it with more general symmetries.)
|
||||||
|
@ -383,7 +385,7 @@ However, nominal sets are defined in a more elementary way.
|
||||||
The nominal sets we will soon see are introduced by \citet[GabbayP02] to solve certain problems in name binding in abstract syntaxes.
|
The nominal sets we will soon see are introduced by \citet[GabbayP02] to solve certain problems in name binding in abstract syntaxes.
|
||||||
Although this is not really related to automata theory, it was picked up by \citet[BojanczykKL14],
|
Although this is not really related to automata theory, it was picked up by \citet[BojanczykKL14],
|
||||||
who provide an equivalence between register automata and nominal automata.
|
who provide an equivalence between register automata and nominal automata.
|
||||||
(This equivalence is exposed in more detail in the book of \citet[Bojanczyk18].)
|
(This equivalence is exposed in more detail in the book of \citenp[Bojanczyk18].)
|
||||||
Additionally, they generalise the work on nominal sets to other symmetries.
|
Additionally, they generalise the work on nominal sets to other symmetries.
|
||||||
|
|
||||||
The symmetries we encounter in this thesis are listed below, but other symmetries can be found in the literature.
|
The symmetries we encounter in this thesis are listed below, but other symmetries can be found in the literature.
|
||||||
|
@ -457,7 +459,7 @@ However, the chapters do get more technical and mathematical -- especially in \i
|
||||||
Detailed discussion on related work and future directions of research are presented in each chapter.
|
Detailed discussion on related work and future directions of research are presented in each chapter.
|
||||||
|
|
||||||
\startcontribution[title={Chapter \ref[default][chap:test-methods]: FSM-based test methods.}]
|
\startcontribution[title={Chapter \ref[default][chap:test-methods]: FSM-based test methods.}]
|
||||||
This chapter introduces test generation methods which can be used for learning.
|
This chapter introduces test generation methods which can be used for learning or conformance testing.
|
||||||
The methods are presented in a uniform way, which allows to give a single proof of completeness for all these methods.
|
The methods are presented in a uniform way, which allows to give a single proof of completeness for all these methods.
|
||||||
Moreover, the uniform presentation gives room to develop new test generation methods.
|
Moreover, the uniform presentation gives room to develop new test generation methods.
|
||||||
One particular contribution (besides the theoretical framework) is the new \emph{hybrid ADS} test generation method.
|
One particular contribution (besides the theoretical framework) is the new \emph{hybrid ADS} test generation method.
|
||||||
|
@ -584,7 +586,7 @@ An extended version will appear soon:
|
||||||
\stopcontribution
|
\stopcontribution
|
||||||
|
|
||||||
\startcontribution[title={Learning Product Automata.}]
|
\startcontribution[title={Learning Product Automata.}]
|
||||||
In this article we consider Moore machines with multiple outputs.
|
In this article, we consider Moore machines with multiple outputs.
|
||||||
These machines can be decomposed by projecting on each output,
|
These machines can be decomposed by projecting on each output,
|
||||||
resulting in smaller components that can be learned with fewer queries.
|
resulting in smaller components that can be learned with fewer queries.
|
||||||
We give experimental evidence that this is a useful technique which can reduce the number of queries substantially.
|
We give experimental evidence that this is a useful technique which can reduce the number of queries substantially.
|
||||||
|
@ -601,7 +603,7 @@ This work was presented at ICGI 2018:
|
||||||
|
|
||||||
With the current tools for model learning, it is possible to learn big state machines of black box systems.
|
With the current tools for model learning, it is possible to learn big state machines of black box systems.
|
||||||
It involves using the clever algorithms for learning (such as the TTT algorithm by \citenp[Isberner15]) and efficient testing methods (see \in{Chapter}[chap:test-methods]).
|
It involves using the clever algorithms for learning (such as the TTT algorithm by \citenp[Isberner15]) and efficient testing methods (see \in{Chapter}[chap:test-methods]).
|
||||||
However, as the industrial case study from \in{Chapter}[chap:applying-automata-theory] shows, the bottleneck is often in conformance testing.
|
However, as the industrial case study from \in{Chapter}[chap:applying-automata-learning] shows, the bottleneck is often in conformance testing.
|
||||||
|
|
||||||
In order to improve on this bottleneck, one possible direction is to consider \quote{grey box testing.}
|
In order to improve on this bottleneck, one possible direction is to consider \quote{grey box testing.}
|
||||||
The methods discussed in this thesis are all black box methods, this could be considered as \quote{too pessimistic.}
|
The methods discussed in this thesis are all black box methods, this could be considered as \quote{too pessimistic.}
|
||||||
|
@ -621,9 +623,10 @@ Nevertheless, we show that the nominal algorithms can be implemented and that th
|
||||||
The advantage of using the foundations of nominal sets is that the algorithms are closely related to the original \LStar{} algorithm.
|
The advantage of using the foundations of nominal sets is that the algorithms are closely related to the original \LStar{} algorithm.
|
||||||
Consequently, variations of \LStar{} can easily be implemented.
|
Consequently, variations of \LStar{} can easily be implemented.
|
||||||
For instance, we show that \NLStar{} algorithm for non-deterministic automata works in the nominal case too.
|
For instance, we show that \NLStar{} algorithm for non-deterministic automata works in the nominal case too.
|
||||||
|
(We have not attempted to implement more recent algorithms such as TTT.)
|
||||||
The nominal learning algorithms can be implemented in just a few hundreds lines of code, much less than the approach taken by, e.g., \citet[Fiterau-Brostean18].
|
The nominal learning algorithms can be implemented in just a few hundreds lines of code, much less than the approach taken by, e.g., \citet[Fiterau-Brostean18].
|
||||||
|
|
||||||
In this thesis we tackle some efficiency issues when computing with nominal sets.
|
In this thesis, we tackle some efficiency issues when computing with nominal sets.
|
||||||
In \in{Chapter}[chap:ordered-nominal-sets] we characterise orbits in order to give a efficient representation (for the total-order symmetry).
|
In \in{Chapter}[chap:ordered-nominal-sets] we characterise orbits in order to give a efficient representation (for the total-order symmetry).
|
||||||
Another result is the fact that some nominal automata can be \quote{compressed} to separated automata, which can be exponentially smaller (\in{Chapter}[chap:separated-nominal-automata]).
|
Another result is the fact that some nominal automata can be \quote{compressed} to separated automata, which can be exponentially smaller (\in{Chapter}[chap:separated-nominal-automata]).
|
||||||
However, the nominal tools still leave much to desired in terms of efficiency.
|
However, the nominal tools still leave much to desired in terms of efficiency.
|
||||||
|
|
|
@ -230,7 +230,7 @@ For instance, the set $\{aa, ac, c\}$ will separate $s_2$ from all other states.
|
||||||
[title={Sets of separating sequences}]
|
[title={Sets of separating sequences}]
|
||||||
|
|
||||||
As the example shows, we need sets of sequences and sometimes even sets of sets of sequences -- called \emph{families}.
|
As the example shows, we need sets of sequences and sometimes even sets of sets of sequences -- called \emph{families}.
|
||||||
\footnote{A family of often written as $\{X_s\}_{s \in M}$ or simply $\{X_s\}_{s}$, meaning that for each state $s \in M$ we have a set $X_s$.}
|
\footnote{A family is often written as $\{X_s\}_{s \in M}$ or simply $\{X_s\}_{s}$, meaning that for each state $s \in M$ we have a set $X_s$.}
|
||||||
|
|
||||||
\startdefinition
|
\startdefinition
|
||||||
We define the following kinds of sets of sequences.
|
We define the following kinds of sets of sequences.
|
||||||
|
@ -252,7 +252,7 @@ This extra consistency within a test suite is necessary for some test methods.
|
||||||
We return to this notion in more detail in \in{Example}[ex:uio-counterexample].
|
We return to this notion in more detail in \in{Example}[ex:uio-counterexample].
|
||||||
|
|
||||||
We may obtain a characterisation set by simply considering every pair of states and look for a difference.
|
We may obtain a characterisation set by simply considering every pair of states and look for a difference.
|
||||||
However, it turns out a harmonised set of state identifiers exists for every machine and this can be constructed very efficiently (\in{Chapter}[chap:separating-sequences]).
|
However, it turns out a harmonised set of state identifiers exists for every machine and this can be constructed very efficiently (\in{Chapter}[chap:minimal-separating-sequences]).
|
||||||
From a set of state identifiers we may obtain a characterisation set by taking the union of all those sets.
|
From a set of state identifiers we may obtain a characterisation set by taking the union of all those sets.
|
||||||
|
|
||||||
\startexample
|
\startexample
|
||||||
|
@ -356,7 +356,7 @@ Let $W$ be a set of sequences.
|
||||||
Two states $x, y$ are \emph{$W$-equivalent}, written $x \sim_W y$, if $\lambda(x, w) = \lambda(y, w)$ for all $w \in W$.
|
Two states $x, y$ are \emph{$W$-equivalent}, written $x \sim_W y$, if $\lambda(x, w) = \lambda(y, w)$ for all $w \in W$.
|
||||||
\item
|
\item
|
||||||
Let $\Fam{W}$ be a family.
|
Let $\Fam{W}$ be a family.
|
||||||
Two states $x, y$ are \emph{$\Fam{W}$-equivalent}, written $x \sim_{\Fam{W}} y$, if $\lambda(x, w) = \lambda(y, w)$ for all $w \in X_x \cap X_y$.
|
Two states $x, y$ are \emph{$\Fam{W}$-equivalent}, written $x \sim_{\Fam{W}} y$, if $\lambda(x, w) = \lambda(y, w)$ for all $w \in W_x \cap W_y$.
|
||||||
\stopitemize
|
\stopitemize
|
||||||
\stopdefinition
|
\stopdefinition
|
||||||
|
|
||||||
|
@ -823,7 +823,8 @@ We require that if a node $u$ has children $C(u)$ then
|
||||||
\item the sets of states of the children of $u$ partition $l(u)$, i.e., the set
|
\item the sets of states of the children of $u$ partition $l(u)$, i.e., the set
|
||||||
$P(u) = \{l(v) \,|\, v \in C(u)\}$ is a \emph{non-trivial} partition of $l(u)$, and
|
$P(u) = \{l(v) \,|\, v \in C(u)\}$ is a \emph{non-trivial} partition of $l(u)$, and
|
||||||
\item the sequence $\sigma(u)$ witnesses the partition $P(u)$, meaning that
|
\item the sequence $\sigma(u)$ witnesses the partition $P(u)$, meaning that
|
||||||
$\lambda(s, \sigma(u)) = \lambda(t, \sigma(u))$ iff $p = q$ for all $s \in p, t \in q$ for all $p, q \in P(u)$.
|
for all $p, q \in P(u)$ we have $p = q$ iff
|
||||||
|
$\lambda(s, \sigma(u)) = \lambda(t, \sigma(u))$ for all $s \in p, t \in q$.
|
||||||
\stopitemize
|
\stopitemize
|
||||||
A splitting tree is called \defn{complete} if all inequivalent states belong to different leaves.
|
A splitting tree is called \defn{complete} if all inequivalent states belong to different leaves.
|
||||||
\stopdefinition
|
\stopdefinition
|
||||||
|
@ -1041,7 +1042,7 @@ We classify them in two directions,
|
||||||
|
|
||||||
\starttheorem
|
\starttheorem
|
||||||
[reference=thm:completeness]
|
[reference=thm:completeness]
|
||||||
Assume $M$ to be minimal and of size $n$.
|
Assume $M$ to be minimal, reachable, and of size $n$.
|
||||||
The following test suites are all $n+k$-complete:
|
The following test suites are all $n+k$-complete:
|
||||||
|
|
||||||
\placetable[force,none]{}{
|
\placetable[force,none]{}{
|
||||||
|
@ -1113,9 +1114,10 @@ A relation $R \subseteq S \times S$ is called a \defn{bisimulation} if for every
|
||||||
|
|
||||||
\startlemma[reference=lem:bisim]
|
\startlemma[reference=lem:bisim]
|
||||||
If two states $s, t$ are related by a bisimulation, then $s \sim t$.
|
If two states $s, t$ are related by a bisimulation, then $s \sim t$.
|
||||||
|
\footnote{The converse -- which we do not need here -- also holds, as $\sim$ is a bisimulation.}
|
||||||
\stoplemma
|
\stoplemma
|
||||||
|
|
||||||
We use a slight generalisation of the bisimulation proof technique, callend \emph{bisimulation up-to}.
|
We use a slight generalisation of the bisimulation proof technique, called \emph{bisimulation up-to}.
|
||||||
This allows one to give a smaller set $R$ which extends to a bisimulation.
|
This allows one to give a smaller set $R$ which extends to a bisimulation.
|
||||||
A good introduction of these up-to techniques is given by \citet[BonchiP15] or the thesis of \citet[Rot17].
|
A good introduction of these up-to techniques is given by \citet[BonchiP15] or the thesis of \citet[Rot17].
|
||||||
In our case we use bisimulation \emph{up-to ${\sim}$-union}.
|
In our case we use bisimulation \emph{up-to ${\sim}$-union}.
|
||||||
|
@ -1155,11 +1157,13 @@ then $M$ and $M'$ are equivalent.
|
||||||
\stopproposition
|
\stopproposition
|
||||||
\startproof
|
\startproof
|
||||||
First, we prove that $P \cdot I^{\leq k}$ reaches all states in $M'$.
|
First, we prove that $P \cdot I^{\leq k}$ reaches all states in $M'$.
|
||||||
For $p, q \in P$ and $x = \delta(s_0, p), y = \delta(s_0, q)$ such that $x \not\sim_{W_x \cap W_y} y$, we also have $\delta'(m'_0, p) \not\sim_{W_x \cap W_y} \delta'(m'_0, q)$ in the implementation $M'$.
|
For $p, q \in P$ and $x = \delta(s_0, p), y = \delta(s_0, q)$ such that $x \not\sim_{W_x \cap W_y} y$, we also have $\delta'(s'_0, p) \not\sim_{W_x \cap W_y} \delta'(s'_0, q)$ in the implementation $M'$.
|
||||||
By (1) this means that there are at least $n$ different behaviours in $M'$, hence at least $n$ states.
|
By (1) this means that there are at least $n$ different behaviours in $M'$, hence at least $n$ states.
|
||||||
|
|
||||||
Now $n$ states are reached by the previous argument (using the set $P$).
|
Now $n$ states are reached by the previous argument (using the set $P$).
|
||||||
By assumption $M'$ has at most $k$ extra states and so we can reach all those extra states by using $I^{\leq k}$ after $P$.
|
By assumption $M'$ has at most $k$ extra states.
|
||||||
|
If those extra states are reachable, they are reachable from an already visited state in at most $k$ steps.
|
||||||
|
So we can reach all states of $M'$ by using $I^{\leq k}$ after $P$.
|
||||||
|
|
||||||
Second, we show that the reached states are bisimilar.
|
Second, we show that the reached states are bisimilar.
|
||||||
Define the relation $R = \{(\delta(s_0, p), \delta'(s_0', p)) \mid p \in P \cdot I^{\leq k}\}$.
|
Define the relation $R = \{(\delta(s_0, p), \delta'(s_0', p)) \mid p \in P \cdot I^{\leq k}\}$.
|
||||||
|
@ -1171,13 +1175,13 @@ For output, we note that $(s, i) \in R$ implies $\lambda(s, a) = \lambda'(i, a)$
|
||||||
since the machines agree on $P \cdot I^{\leq k+1}$.
|
since the machines agree on $P \cdot I^{\leq k+1}$.
|
||||||
For the successors, let $(s, i) \in R$ and $a \in I$ and consider the successors $s_2 = \delta(s, a)$ and $i_2 = \delta'(i, a)$.
|
For the successors, let $(s, i) \in R$ and $a \in I$ and consider the successors $s_2 = \delta(s, a)$ and $i_2 = \delta'(i, a)$.
|
||||||
We know that there is some $t \in M$ with $(t, i_2) \in R$.
|
We know that there is some $t \in M$ with $(t, i_2) \in R$.
|
||||||
We also know that we tested $i_2$ with the set $W'_t$.
|
We also know that we tested $i_2$ with the set $W_t$.
|
||||||
So we have:
|
So we have:
|
||||||
\startformula s_2 \sim_{W'_{s_2}} i_2 \sim_{W_t} t. \stopformula
|
\startformula s_2 \sim_{W'_{s_2}} i_2 \sim_{W_t} t. \stopformula
|
||||||
By the second assumption, we conclude that $s_2 \sim t$.
|
By the second assumption, we conclude that $s_2 \sim t$.
|
||||||
So $s_2 \sim t$ and $(t, i) \in R$, which means that $R$ is a bisimulation up-to ${\sim}$-union.
|
So $s_2 \sim t$ and $(t, i) \in R$, which means that $R$ is a bisimulation up-to ${\sim}$-union.
|
||||||
Moreover, $R$ contains the pair $(s_0, s'_0)$.
|
Moreover, $R$ contains the pair $(s_0, s'_0)$.
|
||||||
By using \in{Lemma}[lem:bisim-upto] and \in{Lemma}[lem:bisim], we conclude that the initial $s_0$ and $s'_0$ are equivalent.
|
By using \in{Lemmas}[lem:bisim-upto] and \in{}[lem:bisim], we conclude that the initial $s_0$ and $s'_0$ are equivalent.
|
||||||
\stopproof
|
\stopproof
|
||||||
|
|
||||||
Before we show that the conditions hold for the test methods, we reflect on the above proof first.
|
Before we show that the conditions hold for the test methods, we reflect on the above proof first.
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
\setupexternalfigures[directory={images,../images}]
|
\setupexternalfigures[directory={images,../images}]
|
||||||
|
|
||||||
\definemode[afloop][yes]
|
% \definemode[afloop][yes]
|
||||||
% \definemode[draft][yes]
|
% \definemode[draft][yes]
|
||||||
|
|
||||||
\environment bib
|
\environment bib
|
||||||
|
@ -42,10 +42,10 @@ This chapter is based on the following publication:
|
||||||
[headstyle=bold, alternative=serried, width=fit, indenting=yes, text={Step }]
|
[headstyle=bold, alternative=serried, width=fit, indenting=yes, text={Step }]
|
||||||
|
|
||||||
% The black dot is missing from Euler?
|
% The black dot is missing from Euler?
|
||||||
\setupitemize[2,joinedup,nowhite,autointro]
|
\setupitemize[each][2,joinedup,nowhite,autointro][indentnext=no]
|
||||||
% For more whitespace between items
|
% For more whitespace between items
|
||||||
\defineitemgroup[bigitemize]
|
\defineitemgroup[bigitemize]
|
||||||
\setupitemgroup[bigitemize][2,autointro,indentnext]
|
\setupitemgroup[bigitemize][each][2,autointro][indentnext=no]
|
||||||
|
|
||||||
% Standaard \colon had niet veel ruimte
|
% Standaard \colon had niet veel ruimte
|
||||||
\define\colon{{\,{:}\,\,}}
|
\define\colon{{\,{:}\,\,}}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
\setuplayout[marking=on]
|
\setuplayout[marking=on]
|
||||||
|
|
||||||
% Assymetrisch
|
% Assymetrisch
|
||||||
\setuppagenumbering[state=start, style=normal, location={header, right}, alternative=doublesided]
|
\setuppagenumbering[state=stop, style=normal, location={header, right}, alternative=doublesided]
|
||||||
|
|
||||||
\startmode[draft]
|
\startmode[draft]
|
||||||
\setuppapersize[A5klein]
|
\setuppapersize[A5klein]
|
||||||
|
|
Reference in a new issue