From 9515d428026a1e599587acc2d5c8fbf42838b605 Mon Sep 17 00:00:00 2001 From: Joshua Moerman Date: Fri, 11 Jan 2019 15:43:03 +0100 Subject: [PATCH] Wijzigingen tav de reviews van onze fossacs inzending --- biblio.bib | 11 +++++++++++ content.tex | 4 +++- content/separated-nominal-automata.tex | 27 +++++++++++++++----------- environment.tex | 4 ++++ 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/biblio.bib b/biblio.bib index dfd6520..a8c2780 100644 --- a/biblio.bib +++ b/biblio.bib @@ -2077,6 +2077,17 @@ bibsource = {dblp computer science bibliography, https://dblp.org} } +@phdthesis{Schoepp06, + author = {Ulrich Sch{\"{o}}pp}, + title = {Names and binding in type theory}, + school = {University of Edinburgh, {UK}}, + year = {2006}, + url = {http://hdl.handle.net/1842/1203}, + timestamp = {Mon, 05 Sep 2016 19:00:20 +0200}, + biburl = {https://dblp.org/rec/bib/phd/ethos/Schopp06}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} + @inproceedings{SchutsHV16, author = {Mathijs Schuts and Jozef Hooman and diff --git a/content.tex b/content.tex index bc7cd8b..2b0eb93 100644 --- a/content.tex +++ b/content.tex @@ -10,11 +10,13 @@ \midaligned{\framed[width=12cm,align=center,offset=2cm,frame=off]{Nominal Techniques and Black Box Testing for Automata Learning}} \switchtobodyfont[12pt] \midaligned{Joshua Moerman} +\midaligned{Radboud University} +\midaligned{Nijmegen, the Netherlands} \midaligned{11 January 2019} \stop \page[yes] -\setupwhitespace[none] +\setupwhitespace[small] \completecontent %\completelistoffigures %\completelistoftables diff --git a/content/separated-nominal-automata.tex b/content/separated-nominal-automata.tex index b1275d7..c381c5f 100644 --- a/content/separated-nominal-automata.tex +++ b/content/separated-nominal-automata.tex @@ -70,14 +70,14 @@ However, moving from register automata to nominal automata can lead to an expone \footnote{Here \quote{number of states} refers to the number of orbits in the state space.} As a motivating example, we consider a language modelling an $n$-bounded FIFO queue. -The input alphabet is given by $\Sigma = \{ \Put(a) \mid a \in \atoms \} \cup \{ \Pop \}$, and the output alphabet by $O = \atoms \cup \{ \Null \}$. -The language $L_n \colon \Sigma^* \to O$ maps a sequence of queue operations to the resulting top element when starting from the empty queue, or to $\Null$ if this is undefined. +The input alphabet is given by $\Sigma = \{ \Put(a) \mid a \in \atoms \} \cup \{ \Pop \}$, and the output alphabet by $O = \atoms \cup \{ \perp \}$ (here $\perp$ is a \emph{null} value). +The language $L_n \colon \Sigma^* \to O$ maps a sequence of queue operations to the resulting top element when starting from the empty queue, or to $\perp$ if this is undefined. The language $L_n$ can be recognised by a nominal automaton, but this requires an exponential number of states in $n$, as the automaton distinguishes internally between all possible equalities among elements in the queue. Based on the observation that $L_n$ is a nominal renaming set, we can come up with a \emph{linear} automata-theoretic representation. To this end, we define the new notion of \emph{separated nominal automaton}, where the transition function is only defined for pairs of states and letters with a disjoint support (\in{Section}[sec:automata]). Using the aforementioned categorical framework, we find that such separated automata recognise languages which are nominal renaming sets. -Separated nominal automata can be much smaller than classical nominal automata recognising the same language. +Although separated nominal automata are not as expressive as classical nominal automata, they can be much smaller. In particular, in the FIFO example, the reachable part of the separated automaton obtained from the original nominal automaton has $n+1$ states, thus dramatically reducing the number of states. We expect that such a reduction is useful in many applications, such as automata learning (\in{Chapter}[chap:learning-nominal-automata]). @@ -230,11 +230,11 @@ An important example is the set $\atoms^{(\ast)}$ of separated words over the at \stopexample The separated product gives rise to another symmetric closed monoidal structure on $\permnom$, with $1$ as unit, and the exponential object given by \emph{magic wand} $X \wandto Y$. -An explicit characterisation of $X \wandto Y$ is not needed in the remainder of this chapter, but for a complete presentation we briefly recall the description from \citet[Clouston13] (see also the book of \citenp[Pitts13]). +An explicit characterisation of $X \wandto Y$ is not needed in the remainder of this chapter, but for a complete presentation we briefly recall the description from \citet[Schoepp06] (see also the book of \citenp[Pitts13] and the paper of \citenp[Clouston13]). First, define a $\perm$-action on the set of partial functions $f \colon X \rightharpoonup Y$ by $(g \cdot f)(x) = g \cdot f(g^{-1} \cdot x)$ if $f(g^{-1} \cdot x)$ is defined. Now, such a partial function $f \colon X \rightharpoonup Y$ is called \emph{separating} if $f$ is finitely supported, $f(x)$ is defined iff $f \separated x$, and $\supp(f) = \bigcup_{x \in \dom(f)} \supp(f(x)) \setminus \supp(x)$. Finally, $X \wandto Y = \{f \colon X \rightharpoonup Y \mid f \text{ is separating}\}$. -See \citet[Clouston13] for a proof and explanation. +We refer to the thesis of \citet[Schoepp06] (Section 3.3.1) for a proof and explanation. \startremark[reference=rem:atom-abstr] The special case $\atoms \wandto Y$ coincides with $[\atoms]Y$, the set of \emph{name abstractions} \citep[Pitts13]. @@ -629,6 +629,12 @@ These automata represent nominal languages which are $\sb$-equivariant, essentia Our main result is that, if a \quote{classical} nominal automaton (over $\perm$) represents a language $L$ which is $\sb$-equivariant, then $L$ can also be represented by a separated nominal automaton. The latter can be exponentially smaller (in number of orbits) than the original automaton, as we show in a concrete example. +\startremark +We will work with a general output set $O$ instead of just acceptance. +The reason for this is that $\sb$-equivariant functions $L \colon \atoms \to 2$ are not very interesting: they are defined purely by the length of the input. +By using more general output $O$, we may still capture interesting behaviour, e.g., the automaton in \in{Example}[ex:fifo]. +\stopremark + \startdefinition[reference=def:nominal-aut] Let $\Sigma, O$ be $\perm$-sets, called input/output alphabet respectively. \startitemize @@ -664,12 +670,12 @@ We model a bounded FIFO queue of size $n$ as a nominal Moore automaton, explicit The input alphabet $\Sigma$ and output alphabet $O$ are as follows: \startformula \Sigma = \{ \Put(a) \mid a \in \atoms \} \cup \{ \Pop \}, - \qquad O = \atoms \cup \{ \Null \}. + \qquad O = \atoms \cup \{ \perp \}. \stopformula The input alphabet encodes two actions: putting a new value on the queue and popping a value. -The output is either a value (the front of the queue) or $\Null$ if the queue is empty. +The output is either a value (the front of the queue) or $\perp$ if the queue is empty. A queue of size $n$ is modelled by the automaton $(Q, \delta, o, q_0)$ defined as follows. \startformula Q = \atoms^{\leq n} \cup \{ \perp \}, @@ -677,7 +683,7 @@ Q = \atoms^{\leq n} \cup \{ \perp \}, \qquad o(a_1 \ldots a_k) = \startmathcases \NC a_1 \NC if $k \geq 1$ \NR - \NC \Null \NC otherwise \NR + \NC \perp \NC otherwise \NR \stopmathcases \stopformula \startformula @@ -697,7 +703,7 @@ Q = \atoms^{\leq n} \cup \{ \perp \}, \delta(\bot, x) = \bot \stopformula The automaton is depicted in \in{Figure}[fig:fifo] for the case $n = 3$. -The language accepted by this automaton assigns to a word $w$ the first element of the queue after executing the instructions in $w$ from left to right, and $\Null$ if the input is ill-behaved, i.e., $\Pop$ is applied to an empty queue or $\Put(a)$ to a full queue. +The language accepted by this automaton assigns to a word $w$ the first element of the queue after executing the instructions in $w$ from left to right, and $\perp$ if the input is ill-behaved, i.e., $\Pop$ is applied to an empty queue or $\Put(a)$ to a full queue. \startplacefigure [title={The FIFO automaton from \in{Example}[ex:fifo] with $n = 3$. @@ -727,7 +733,6 @@ The language accepted by this automaton assigns to a word $w$ the first element \stopplacefigure \stopexample - \startdefinition[reference=def:sep-aut] Let $\Sigma, O$ be $\perm$-sets. A \emph{separated language} is an equivariant map of the form $\Sigma^{(*)} \to O$. @@ -844,7 +849,7 @@ The converse inclusion of the above proposition does certainly not hold, as show Let $\mathcal{A}$ be the automaton modelling a bounded FIFO queue (for some $n$), from \in{Example}[ex:fifo]. The $\perm$-nominal language $L$ accepted by $\mathcal{A}$ is $\sb$-equivariant: it is closed under application of arbitrary substitutions. -The separated automaton $\mathcal{A}_*$ is given simply be restricting the transition function to $Q \sepprod \Sigma$, i.e., a $\Put(a)$-transition from a state $w \in Q$ exists only if $a$ does not occur in $w$. +The separated automaton $\mathcal{A}_*$ is given simply by restricting the transition function to $Q \sepprod \Sigma$, i.e., a $\Put(a)$-transition from a state $w \in Q$ exists only if $a$ does not occur in $w$. The separated language $S$ accepted by this new automaton is the restriction of the nominal language of $\mathcal{A}$ to separated words. By \in{Theorem}[thm:separated-sb-lang], we have $L = U(\overline{S})$. Hence, the separated automaton $\mathcal{A}_*$ represents $L$, essentially by closing the associated separated language $S$ under all substitutions. diff --git a/environment.tex b/environment.tex index b81b85e..eb262c7 100644 --- a/environment.tex +++ b/environment.tex @@ -56,6 +56,10 @@ This chapter is based on the following publication: \define\referencesifcomponent{\doifnotmode{everything}{\startsubject[title={References}]\switchtobodyfont[9pt]\placelistofpublications\stopsubject}} +\doifnotmode{everything} +{\setupheadertexts[{\sc {\getmarking[chapter]}}][\pagenumber][\pagenumber][{\sc Chapter {\getmarking[chapternumber]}}]} + + \usemodule[algorithmic] \setupalgorithmic[align=middle,numbercolor=darkgray] % center line numbers \setupalgorithmic[before={\startframedtext[width=0.85\textwidth,offset=none,frame=off]},after={\stopframedtext}] % To enable linenumbers in a float