<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Flexible coinduction for in nite behaviour?</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>DIBRIS, University of Genova</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Generalized inference systems have been recently de ned to overcome the strong dichotomy between inductive and coinductive interpretations. They support a exible form of coinduction, subsuming even induction, which allows one to mediate between the two standard semantics. Recently, this framework has been successfully adopted to dene semantic judgments which uniformly model nite and in nite computations. In this communication, we survey these results and outline directions for further developments.</p>
      </abstract>
      <kwd-group>
        <kwd>inference systems in nite behaviour</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        In operational semantics, nite behaviour can be easily modelled by inductive
techniques. That is, we can de ne a judgement c ) r , meaning that the
evaluation of the con guration c terminates with nal result r , by an inductive1
inference system, either on top of a small-step relation [
        <xref ref-type="bibr" rid="ref17 ref18">17,18</xref>
        ], or directly, as in
big-step style [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>However, modelling in nite behaviour is not that easy. The simplest in nite
behaviour we may want to model is divergence itself, which can be formalized
by a judgement c ) 1. Such judgement is usually de ned at the meta-level in
small-step semantics, saying that c ) 1 holds if there is \an in nite sequence of
steps" starting from c. In big-step style the situation is worse: non-terminating
and stuck computation cannot be distinguished.</p>
      <p>
        In literature, several approaches to face this issue can be found: divergence is
modelled by a separate coinductive de nition [
        <xref ref-type="bibr" rid="ref11 ref8">8,11</xref>
        ], by interpreting coinductively
standard rules [
        <xref ref-type="bibr" rid="ref11 ref2 ref7">11,2,7</xref>
        ], by using de nitional interpreters [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] in combination with
step indexing, as in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], or with the partiality monad [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], as in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        However, modelling divergence is not enough to formally reason about
nonterminating programs, since we want in some cases richer information about their
behaviour. Hence we need more sophisticated semantics, which are even more
di cult to de ne. An example is trace semantics, where, in addition to the nal
? Special thanks go to Elena Zucca and Davide Ancona for their useful comments and
the review of this communication.
1 Valid judgements are those having a nite derivation.
result, a trace of observed events is produced. Also in this setting there is some
literature [
        <xref ref-type="bibr" rid="ref12 ref13 ref14">12,13,14</xref>
        ] where coinduction is adopted to get a correct de nition.
      </p>
      <p>
        All these approaches are not completely satisfactory because they require
ad-hoc changes to the natural de nition. A possible alternative, shown in [
        <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
        ],
is to use generalized inference systems [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which are an extension of inference
systems [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] allowing exible coinductive de nitions, thanks to a generalized
interpretation.
      </p>
      <p>In this communication we summarize the sresults obtained by this approach
and we outline possible directions for further developments. More precisely, in
Section 2 we brie y present the framework of generalized inference systems, and
in Section 3 we deal with their application to in nite behaviour.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Flexible coinduction</title>
      <p>
        In this section we brie y introduce inference systems [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], and our generalization
based on corules, which is a smooth extension of what we have proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>Assume a set U called the universe, whose elements are called judgments.
Pr
An inference system I consists of a set of (inference) rules, which are pairs ,
c
with Pr U the set of premises, c 2 U the consequence (a.k.a. conclusion).
A rule with an empty set of premises is also called an axiom. A proof tree is a
tree whose nodes are (labeled with) judgments, and there is a node c with set of</p>
      <p>Pr
children Pr only if there exists a rule .</p>
      <p>c</p>
      <p>
        We can associate with an inference system I a function FI : }(U ) ! }(U ),
monotone on the complete lattice }(U ) ordered by set inclusion. We de ne the
iinntdeurcptrievteaitniotnerpJrIeKtcaotinidonasJItKhinedgarseathteestleasxtedxpeodinptoionft FofI ,FwI,haicnhd etxhiestcotihnadnukcstivtoe
Tarski's theorem [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. An equivalent proof-theoretic characterization is based on
proof trees: JIKind is the set of judgements which are the root of a well-founded
proof tree, while JIKcoind of those which are the root of an arbitrary (well-founded
or not) proof tree.
      </p>
      <p>In some cases neither of these two approaches yields the expected semantics.
Let us consider an example: let N1 be the set of nite and in nite lists of natural
numbers. The predicate maxElem(l; x), stating that x 2 N is the maximum of
l 2 N1, is de ned as follows:
maxElem(x; x)
maxElem(l; y)
maxElem(xl; z)
z = maxfx; yg
The inductive interpretation is not enough, because the predicate would be
unde ned for all in nite lists. Indeed, in order to compute the maximum of an in
nite list, we need to inspect all its elements, and this clearly cannot be done in a
nitely many steps. On the other hand, the coinductive interpretation does not
work as well: for the list L containing only 1s, we can derive by an in nite proof,
applying in nitely many times the second rule, the judgement maxElem(L; n)
for all n 1. That is, the coinductive interpretation is not sound, since it
allows us to derive too many judgements. Hence, we need something in the middle
between the (least) inductive interpretation and the (greatest) coinductive one.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] we have proposed a generalization of inference systems to allow more
exible interpretations; here we summarize a slight further extension based on
the notion of corules.
      </p>
      <p>De nition 1 (Inference system with corules). An inference system with
corules, or generalized inference system, is a pair hI; Icoi where I and Ico are
inference systems, whose elements are called rules and corules, respectively.</p>
      <p>Pr
Corules are written and a corule with empty premises is called coaxiom.</p>
      <p>c
Analogously to rules, the meaning of corules is to derive a consequence from the
premises. However, they can only be used in a special way, as described below.</p>
      <p>The interpretation of an inference system with corules hI; Icoi is de ned in
two steps:
1. First, we consider the inference system I [ Ico where corules can be used as
rules as well, and we take its inductive interpretation JI [ IcoKind.
2. Then, we take the coinductive interpretation of the inference system obtained
co ind.</p>
      <p>from I by keeping only rules with consequence in JI [ I K
Altogether, we get the following de nition.</p>
      <p>De nition 2 (Interpretation). Let hI; Icoi be a generalized inference system.
Then, its interpretation JI; IcoK is de ned by JI; IcoK = JIjJI[IcoKind Kcoind
where, for a subset S U , IjS denotes the inference system obtained from I by
keeping only rules with consequence in S.</p>
      <p>It can be shown that JI; IcoK is a xed point of FI , in particular the greatest
xed point below the least xed point of FI[Ico . From this fact, we also get
a generalization of the coinduction principle to our setting, called the bounded
coinduction principle, which is a proof technique to show the completeness of a
de nition.</p>
      <p>An interesting fact is that both the inductive and the coinductive
interpretations are subsumed by this generalized semantics. Indeed, if Ico = ;, we get
the former, while if Ico contains a coaxiom for each c 2 U we get the latter.</p>
      <p>In proof-theoretic terms, JI; IcoK is the set of judgments which have an
arbitrary (well-founded or not) proof tree in I, whose nodes all have a well-founded
proof tree in I [ Ico.</p>
      <p>Considering again the above example, by adding the coaxiom</p>
      <p>maxElem(xl; x)
we get the expected semantics. Intuitively, the coaxiom forces the result to belong
to the list. Then, from the standard inference system we get that maxElem(l; x)
i x is an upper bound of l, and from the coaxiom x must belong to l, hence x
must be the maximum of l.</p>
    </sec>
    <sec id="sec-3">
      <title>Operational semantics for in nite behaviour</title>
      <p>
        We started studying how corules can be used to model in nite behaviour [
        <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
        ]
by de ning some example semantics including also in nite computations and
showing how they support formal reasoning on diverging programs.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] we began from the simplest in nite behaviour, which is divergence itself,
considering two examples: -calculus and a simple imperative FJ-like language.
In both cases we de ned a big-step semantics through an inference system with
corules, where divergence is explicitly modelled by a new result, denoted by 1.
To properly capture the semantics of divergence, we have added speci c rules
for divergence propagation; for instance, for the -calculus, the following rules:
The intuition behind such rules is, that if one of the premises diverges, then
the conclusion should diverge as well. The problem now is how to interpret the
extended de nition: the inductive interpretation is not enough because there is
no way to introduce divergence2, but the coinductive interpretation allows to
derive too many judgements for non-terminating programs.
      </p>
      <p>Hence, to capture the intended semantics, we designed appropriate corules.
Intuitively, corules specify when we are allowed to use coinduction. In this case,
they shoud be applied only to derive divergence; thus we added a coaxiom with
conclusion e ) 1 for each e.</p>
      <p>Having de ned big-step semantics including divergence, we started studying
how to prove properties of non-terminating programs. The rst one we have
considered is type soundness, which can be rephrased as completeness of the
big-step semantics with respect to the type system, hence it can be proved using
a variation of the bounded coinduction principle.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] we have modeled richer forms of in nite behaviour, notably trace
semantics, which, in addition to the nal result, produces a trace of events observed
during the computation. This notion smoothly adapts to in nite behaviour, since
it is enough to consider also in nite traces.
      </p>
      <p>We have considered two example languages: a -calculus with output e ects
and an imperative FJ-like language with I/O primitives; in the former case
traces contain printed values, in the latter I/O events. As for the simpler case
of divergence, we have added rules for divergence propagation and appropriate
corules, which in this case are more complex. Consider for instance those for the
-calculus:
(co-empty)</p>
      <p>(co-out)
e ) h1; "i</p>
      <p>e ) hv ; oi
out e ) h1; o v o1i
2 There is no axiom with conclusion e ) 1 for some expression e.
where " is the empty trace, o a nite trace, o1 a possibly in nite trace, and
trace concatenation. As before, corules allow coinduction only to derive
diverging judgements. Coaxiom (co-empty) deals with diverging computations
producing a nite trace, namely, computations printing some values and then diverging
without producing any other output, as expressed by the empty trace in the
conclusion. Corule (co-out), instead, deals with computations producing an in nite
output trace: intuitively, those which evaluate in nitely many output
expressions. In such cases the in nite trace is unique, hence the corule allows any trace
in the conclusion, but it checks that the output expression is actually evaluated,
that is, its argument must converge.</p>
      <p>The above considered semantics exhibit common patterns, both for rules and
corules. An interesting and promising direction for further work is to abstract
these patterns to a more general setting, to study general properties of semantics
de ned by inference systems with corules.</p>
      <p>This common structure can be summarized as follows: all semantics with
corules contain standard rules for converging computations, rules for divergence
propagation and corules to allow coinduction only to derive divergence.
Furthermore, the de nition of semantics including divergence seems to be driven by the
standard semantics for converging computations.</p>
      <p>Following these remarks, what we plan to do is to de ne a canonical
construction that, starting from a standard big-step semantics for nite computations,
produces an extended semantics including diverging computations as well. We
would like such general framework to subsume trace semantics and, more
generally, other kinds of semantics describing the observable behaviour of programs.</p>
      <p>To this end, we need to identify a general algebraic structure for observations,
and to de ne a general notion of semantics with observations, that is, a semantics
which, in addition to the nal result, produces also an observation, describing
the observable behaviour of the program.</p>
      <p>Then, the canonical extension will require to introduce a new result for
divergence, extend observations (and their structure) to include in nite ones and
to de ne appropriate divergence propagation rules and corules.</p>
      <p>To guarantee the correctness of the proposed construction, we plan to
compare the resulting semantics with more standard techniques, such as labelled
transition systems. This comparison could be a parametric proof of equivalence,
which, starting from suitable hypothesis on the semantics for nite
computations, proves the equivalence of the entire semantics.</p>
      <p>
        Other possible, more long-term, directions for further developments are a
deeper comparison with de nitional interpreters, notably those based on the
partiality monad [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and the study of other examples with di erent notions of
in nite behaviour. The former could provide interesting hints for implementation
in proof assistants, for instance Agda [
        <xref ref-type="bibr" rid="ref15 ref21">15,21</xref>
        ], since de nitional interpreters are
naturally supported by such tools; the latter could higlight the capabilities of
corules to support formal reasoning on in nite computations.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aczel</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>An introduction to inductive de nitions</article-title>
          . In: Barwise,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (ed.)
          <source>Handbook of Mathematical Logic, Studies in Logic and the Foundations of Mathematics</source>
          , vol.
          <volume>90</volume>
          , pp.
          <volume>739</volume>
          {
          <fpage>782</fpage>
          .
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          (
          <year>1977</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ancona</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Soundness of object-oriented languages with coinductive big-step semantics</article-title>
          . In: Noble,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (ed.)
          <source>26th European Conference on Object-Oriented Programming, ECOOP 2012. Lecture Notes in Computer Science</source>
          , vol.
          <volume>7313</volume>
          , pp.
          <volume>459</volume>
          {
          <fpage>483</fpage>
          . Springer (
          <year>2012</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -31057-7 21
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Ancona</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dagnino</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zucca</surname>
          </string-name>
          , E.:
          <article-title>Generalizing inference systems by coaxioms</article-title>
          . In: Yang,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <source>(ed.) 26th European Symposium on Programming, ESOP 2017. Lecture Notes in Computer Science</source>
          , vol.
          <volume>10201</volume>
          , pp.
          <volume>29</volume>
          {
          <fpage>55</fpage>
          . Springer (
          <year>2017</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>662</fpage>
          -54434-1 2
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Ancona</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dagnino</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zucca</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Reasoning on divergent computations with coaxioms</article-title>
          .
          <source>Proceedings of ACM on Programming Languages 1(OOPSLA)</source>
          (
          <year>2017</year>
          ). https://doi.org/10.1145/3133905
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ancona</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dagnino</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zucca</surname>
          </string-name>
          , E.:
          <article-title>Modeling in nite behaviour by corules</article-title>
          . In: Millstein, T.D. (ed.)
          <source>32nd European Conference on Object-Oriented Programming</source>
          ,
          <string-name>
            <surname>ECOOP</surname>
          </string-name>
          <year>2018</year>
          .
          <article-title>LIPIcs</article-title>
          , vol.
          <volume>109</volume>
          , pp.
          <volume>21</volume>
          :
          <issue>1</issue>
          {
          <fpage>21</fpage>
          :
          <fpage>31</fpage>
          .
          <string-name>
            <surname>Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik</surname>
          </string-name>
          (
          <year>2018</year>
          ). https://doi.org/10.4230/LIPIcs.ECOOP.
          <year>2018</year>
          .21
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Capretta</surname>
          </string-name>
          , V.:
          <article-title>General recursion via coinductive types</article-title>
          .
          <source>Logical Methods in Computer Science</source>
          <volume>1</volume>
          (
          <issue>2</issue>
          ) (
          <year>2005</year>
          ). https://doi.org/10.2168/LMCS-1(
          <issue>2</issue>
          :1)
          <fpage>2005</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Chargueraud</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Pretty-big-step semantics</article-title>
          . In: Felleisen,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Gardner</surname>
          </string-name>
          , P. (eds.) 22nd
          <source>European Symposium on Programming, ESOP 2013. Lecture Notes in Computer Science</source>
          , vol.
          <volume>7792</volume>
          , pp.
          <volume>41</volume>
          {
          <fpage>60</fpage>
          . Springer (
          <year>2013</year>
          ). https://doi.org/10.1007/978- 3-
          <fpage>642</fpage>
          -37036-6 3
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Cousot</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cousot</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          :
          <article-title>Inductive de nitions, semantics and abstract interpretations</article-title>
          . In: Sethi,
          <string-name>
            <surname>R</surname>
          </string-name>
          . (ed.)
          <source>19th Annual ACM Symposium on Principles of Programming Languages</source>
          ,
          <string-name>
            <surname>POPL</surname>
          </string-name>
          <year>1992</year>
          . pp.
          <volume>83</volume>
          {
          <fpage>94</fpage>
          . ACM Press (
          <year>1992</year>
          ). https://doi.org/10.1145/143165.143184
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Danielsson</surname>
            ,
            <given-names>N.A.</given-names>
          </string-name>
          :
          <article-title>Operational semantics using the partiality monad</article-title>
          . In: Thiemann,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Findler</surname>
          </string-name>
          , R.B. (eds.)
          <source>17th ACM International Conference on Functional Programming</source>
          ,
          <string-name>
            <surname>ICFP</surname>
          </string-name>
          <year>2012</year>
          . pp.
          <volume>127</volume>
          {
          <fpage>138</fpage>
          . ACM Press (
          <year>2012</year>
          ). https://doi.org/10.1145/2364527.2364546
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kahn</surname>
          </string-name>
          , G.:
          <article-title>Natural semantics</article-title>
          . In: Brandenburg,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Vidal-Naquet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Wirsing</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <source>(eds.) 4th Annual Symposium on Theoretical Aspects of Computer Science, STACS 1987. Lecture Notes in Computer Science</source>
          , vol.
          <volume>247</volume>
          , pp.
          <volume>22</volume>
          {
          <fpage>39</fpage>
          . Springer (
          <year>1987</year>
          ). https://doi.org/10.1007/BFb0039592
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Leroy</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grall</surname>
          </string-name>
          , H.:
          <article-title>Coinductive big-step operational semantics</article-title>
          .
          <source>Information and Computation</source>
          <volume>207</volume>
          (
          <issue>2</issue>
          ),
          <volume>284</volume>
          {
          <fpage>304</fpage>
          (
          <year>2009</year>
          ). https://doi.org/10.1016/j.ic.
          <year>2007</year>
          .
          <volume>12</volume>
          .004
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Nakata</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Uustalu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Trace-based coinductive operational semantics for while</article-title>
          . In: Berghofer,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Nipkow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Urban</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          , Wenzel, M. (eds.) Theorem Proving in Higher Order Logics,
          <source>TPHOLs 2009. Lecture Notes in Computer Science</source>
          , vol.
          <volume>5674</volume>
          , pp.
          <volume>375</volume>
          {
          <fpage>390</fpage>
          . Springer (
          <year>2009</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -03359-9 26
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Nakata</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Uustalu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A Hoare logic for the coinductive trace-based big-step semantics of while</article-title>
          . In: Gordon, A.D. (ed.)
          <source>19th European Symposium on Programming, ESOP 2010. Lecture Notes in Computer Science</source>
          , vol.
          <volume>6012</volume>
          , pp.
          <volume>488</volume>
          {
          <fpage>506</fpage>
          . Springer (
          <year>2010</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -11957-6 26
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Nakata</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Uustalu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Resumptions, weak bisimilarity and big-step semantics for while with interactive I/O: an exercise in mixed induction-coinduction</article-title>
          . In: Aceto,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Sobocinski</surname>
          </string-name>
          , P. (eds.) Structural Operational Semantics,
          <string-name>
            <surname>SOS</surname>
          </string-name>
          <year>2010</year>
          .
          <source>Electronic Proceedings on Theoretical Computer Science</source>
          , vol.
          <volume>32</volume>
          , pp.
          <volume>57</volume>
          {
          <issue>75</issue>
          (
          <year>2010</year>
          ). https://doi.org/10.4204/EPTCS.32.5
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Norell</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Towards a practical programming language based on dependent type theory</article-title>
          .
          <source>Phd thesis</source>
          , Chalmers University of Technology and Goteborg University (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Owens</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myreen</surname>
            ,
            <given-names>M.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tan</surname>
            ,
            <given-names>Y.K.</given-names>
          </string-name>
          :
          <article-title>Functional big-step semantics</article-title>
          . In: Thiemann,
          <string-name>
            <surname>P</surname>
          </string-name>
          . (ed.)
          <source>25th European Symposium on Programming, ESOP 2016. Lecture Notes in Computer Science</source>
          , vol.
          <volume>9632</volume>
          , pp.
          <volume>589</volume>
          {
          <fpage>615</fpage>
          . Springer (
          <year>2016</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>662</fpage>
          -49498-1 23
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Plotkin</surname>
          </string-name>
          , G.D.:
          <article-title>A structural approach to operational semantics</article-title>
          .
          <source>Tech. rep.</source>
          , Aarhus University (
          <year>1981</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Plotkin</surname>
          </string-name>
          , G.D.:
          <article-title>A structural approach to operational semantics</article-title>
          .
          <source>Journal of Logic and Algebraic Programming 60-61</source>
          ,
          <issue>17</issue>
          {
          <fpage>139</fpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Reynolds</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>De nitional interpreters for higher-order programming languages</article-title>
          .
          <source>In: ACM 72, Proceedings of the ACM annual conference</source>
          . vol.
          <volume>2</volume>
          , pp.
          <volume>717</volume>
          {
          <fpage>740</fpage>
          . ACM Press (
          <year>1972</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Tarski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A lattice-theoretical xpoint theorem and its applications</article-title>
          .
          <source>Paci c Journal of Mathematics</source>
          <volume>5</volume>
          (
          <issue>2</issue>
          ),
          <volume>285</volume>
          {
          <fpage>309</fpage>
          (
          <year>1955</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <article-title>The Agda Team: The Agda Wiki (</article-title>
          <year>2018</year>
          ), http://wiki.portal.chalmers.se/agda/ pmwiki.php
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>