<!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>The Yoneda Reduction of Polymorphic Types</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paolo Pistone</string-name>
          <email>paolo.pistone2@unibo.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Luca Tranchini</string-name>
          <email>luca.tranchini@gmail.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DISI, Universita` di Bologna</institution>
          ,
          <addr-line>Mura Anteo Zamboni,7, I-40126, Bologna</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Wilhelm-Schickard-Institut, Universit ̈at Tu ̈bingen</institution>
          ,
          <addr-line>Sand 13, D-72076, Tu ̈bingen</addr-line>
        </aff>
      </contrib-group>
      <fpage>92</fpage>
      <lpage>97</lpage>
      <abstract>
        <p>We explore a family of type isomorphisms in System F whose validity corresponds, semantically, to some form of the Yoneda isomorphism from category theory. These isomorphisms hold under theories of equivalence stronger than βη-equivalence, like those induced by parametricity and dinaturality. We show that the Yoneda type isomorphisms yield a rewriting over types, that we call Yoneda reduction, which can be used to eliminate quantifiers from a polymorphic type, replacing them with a combination of monomorphic type constructors. We establish some sufficient conditions under which quantifiers can be fully eliminated from a polymorphic type, and we show some application of these conditions to count the inhabitants of a type and to compute program equivalence in some fragments of System F.</p>
      </abstract>
      <kwd-group>
        <kwd>Type isomorphism</kwd>
        <kwd>Yoneda Lemma</kwd>
        <kwd>Propositional quantification</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The study of type isomorphisms is a fundamental one both in the theory of
programming languages and in logic, through the well-known proofs-as-programs
correspondence: type isomorphisms supply programmers with transformations
allowing them to obtain simpler and more optimized code, and offer new insights
to understand and refine the syntax of type- and proof-systems.
‹ This extended abstract is an excerpt from the long version of a paper which the
authors have recently published in the proceedings of CSL 21 [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. The long version of
the paper (available at https://arxiv.org/abs/1907.03481) contains more detailed
proofs and some additional results compared to [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
‹‹ We thank the anonymous reviewers for interesting insights, and in particular for
pointing us to a similarity between the type isomorphisms studied in this paper
and a result known as Ackermann’s Lemma in the field of second-order quantifier
elimination (see [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], section 6).
      </p>
      <p>Copyright © 2021 for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).</p>
      <p>Roughly speaking, two types A, B are isomorphic when one can transform
any call by a program to an object of type A into a call to an object of type
B, without altering the behavior of the program. Thus, type isomorphisms are
tightly related to theories of program equivalence, which describe what counts as
the observable behavior of a program, so that programs with the same behavior
can be considered equivalent.</p>
      <p>
        The connection between type isomorphisms and program equivalence is of
special importance for polymorphic type systems like System F (hereafter Λ2).
In fact, while standard βη-equivalence for Λ2 and the related isomorphisms are
well-understood [
        <xref ref-type="bibr" rid="ref7 ref8">7,8</xref>
        ], stronger notions of equivalence (as those based on
parametricity or free theorems [
        <xref ref-type="bibr" rid="ref1 ref16 ref29">29,16,1</xref>
        ]) are often more useful in practice but are
generally intractable or difficult to compute, and little is known about the type
isomorphisms holding under such theories.
      </p>
      <p>
        A cornerstone result of category theory, the Yoneda lemma, is sometimes
invoked [
        <xref ref-type="bibr" rid="ref13 ref14 ref27 ref3 ref5">3,13,5,27,14</xref>
        ] to justify some type isomorphisms in Λ2 like e.g.
@X.pA ñ Xq ñ pB ñ Xq ” B ñ A @X.pX ñ Aq ñ pX ñ Bq ” A ñ B
(‹)
which do not hold under βη-equivalence, but only under stronger equivalences.
Such isomorphisms are usually justified by reference to the interpretation of
polymorphic programs as (di)natural transformations [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], a well-known
semantics of Λ2 related to both parametricity [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] and free-theorems [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], and yielding
a not yet well-understood equational theory over the programs of Λ2 [
        <xref ref-type="bibr" rid="ref12 ref17 ref20">12,17,20</xref>
        ],
that we call here the ε-theory. Other isomorphisms, like those in Fig. 1, can be
justified in a similar way as soon as the language of Λ2 is enriched with other
type constructors like 1, 0, `, ˆ, ñ and least /greatest fixpoints μX.A, νX.A.
      </p>
      <p>
        All such type isomorphisms have the effect of eliminating a quantifier,
replacing it with a combination of monomorphic type constructors, and can be used to
test if a polymorphic type has a finite number of inhabitants (as illustrated in
Fig. 2) or, as suggested in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], to devise decidable tests for program equivalence.
      </p>
      <p>In this paper we develop a formal study of the elimination of quantifiers from
polymorphic types using a class of type isomorphisms, that we will call Yoneda
type isomorphisms, which generalize the examples above. Then, we explore the
application of such type isomorphisms to establish properties of program
equivalence for polymorphic programs.
2</p>
      <p>A Type-Rewriting Theory of Polymorphic Types
In the first part of the paper we investigate the type-rewriting arising from
Yoneda type isomorphisms and its connection with proof-theoretic techniques
to count type inhabitants.
2.1</p>
      <p>Counting type inhabitants with type isomorphisms.</p>
      <p>Examples like the one in Fig. 2 suggest that, while arising from a categorical
reading of polymorphic programs, Yoneda Type Isomorphisms have a proof-theoretic</p>
      <p>
        @X.X ñ X ñ A ” ArX ÞÑ 1 ` 1s
@X.pA ñ Xq ñ pB ñ Xq ñ C ” CrX ÞÑ μX.A ` Bs
@X.pX ñ Aq ñ pX ñ Bq ñ D ” DrX ÞÑ νX.A ˆ Bs
(˚)
(˚˚)
(˚ ˚ ˚)
flavor. To demonstrate this, we show that the use of such isomorphisms to count
type inhabitants can be compared with some well-known proof-theoretic
sufficient conditions for a simple type A to have a unique or finitely many inhabitants
[
        <xref ref-type="bibr" rid="ref2 ref6">2,6</xref>
        ], namely the balancedness, negatively-non duplicated and positively-non
duplicated conditions. We show that whenever an inhabited simple type A satisfies
any of the first two conditions (resp. a special case of the third), then its
universal closure @X1 . . . @Xn.A can be converted to 1 by applying Yoneda type
isomorphisms and usual βη-isomorphisms, and when A satisfies a special case
of the third, then it can be converted to 1 ` ¨ ¨ ¨ ` 1. Furthermore, we suggest
that the appearance of the fixpoints in isomorphisms like p˚˚q can be related
to a well-known approach to counting type inhabitants by solving systems of
polynomial fixpoint equations [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
2.2
      </p>
      <p>
        Eliminating Quantifiers with Yoneda Reduction
We then turn to investigate in a more systematic way the quantifier-eliminating
rewriting over types arising from the left-to-right orientation of Yoneda type
isomorphisms. A major obstacle here is that the rewriting must take into account
possible applications of βη-isomorphisms, whose axiomatization is well-known to
be challenging in presence of the constructors `, 0 [
        <xref ref-type="bibr" rid="ref10 ref15">10,15</xref>
        ] (not to say of μ, ν). For
this reason we introduce a family of rewrite rules, that we call Yoneda reduction,
defined not directly over types but over a class of finite trees which represent the
types of Λ2 (but crucially not those made with 0, `, . . . ) up to βη-isomorphism.
      </p>
      <p>Using this rewriting we establish some sufficient conditions for eliminating
quantifiers, based on elementary graph-theoretic properties of such trees, which
in turn provide some new sufficient conditions for the finiteness of type
inhabitants of polymorphic types. First, we prove quantifier-elimination for the types
satisfying a certain coherence condition which can be seen as an instance of the
2-SAT problem. We then introduce a more refined condition by associating each
polymorphic type A with a value κpAq P t0, 1, 8u, that we call the characteristic
of A, so that whenever κpAq ‰ 8, A rewrites into a monomorphic type, and
when furthermore κpAq “ 0, A converges to a finite type. In the last case our
method provides an effective way to count the inhabitants of A.</p>
      <p>The computation of κpAq is somehow reminiscent of linear logic proof-nets,
as it is obtained by inspecting the existence of cyclic paths in a graph obtained
by adding some “axiom-links” to the tree-representation of A.</p>
    </sec>
    <sec id="sec-2">
      <title>Program Equivalence in System F with Finite Characteristic</title>
      <p>In the second part of the paper we direct our attention to programs rather
than types, and we exploit our results on type isomorphisms to establish some
non-trivial properties of program equivalence for polymorphic programs in some
suitable fragments of Λ2.
3.1</p>
      <p>
        Computing equivalence with type isomorphisms
Computing program equivalence under the ε-theory can be a challenging task,
as this theory involves global permutations of rules which are difficult to detect
and apply [
        <xref ref-type="bibr" rid="ref17 ref20 ref22 ref26 ref28">17,20,26,22,28</xref>
        ]. Things are even worse at the semantic level, since
computing with dinatural transformations can be rather cumbersome, due to
the well-known fact that such transformations need not compose [
        <xref ref-type="bibr" rid="ref18 ref3">3,18</xref>
        ].
      </p>
      <p>
        Nevertheless, our approach to quantifier-elimination based on the notion
of characteristic provides a way to compute program equivalence without the
appeal to ε-rules, free theorems and parametricity, since all polymorphic
programs having types of finite characteristic can be embedded inside well-known
monomorphic systems. To demonstrate this fact, we introduce two fragments
Λ2κď0 and Λ2κď1 of Λ2 in which types have a fixed finite characteristic, and we
prove that these are equivalent, under the ε-theory, respectively, to the simply
typed λ-calculus with finite products and co-products (or, equivalently, to the
free bicartesian closed category B), and to its extension with μ, ν-types (that is,
to the free cartesian closed μ-bicomplete category μB [
        <xref ref-type="bibr" rid="ref24 ref4">24,4</xref>
        ]). Using well-known
facts about B and μB [
        <xref ref-type="bibr" rid="ref19 ref25 ref4">25,4,19</xref>
        ], we finally establish that the ε-theory is decidable
in Λ2κď0 and undecidable in Λ2κď1.
3.2
      </p>
      <p>Program equivalence and predicativity
We provide an example of how the correspondence between polymorphic types
of finite characteristic and μ, ν-types can be used to prove non-trivial properties
of program equivalence. A main source of difficulty with Λ2 is that polymorphic
programs are impredicative, that is, a program of universal type @X.A can be
instantiated at any type B, yielding a program of type ArB{Xs. It is thus useful
to be able to predict when a complex type instantiation can be replaced by a
one of smaller complexity, without altering the program behavior.</p>
      <p>Using the fact that a universal type @X.A of finite characteristic in which A
is of the form A1 ñ . . . ñ An ñ X is isomorphic to the initial algebra μX.T
of some appropriate functor T , we establish a sufficient condition under which
a program containing an instantiation of @X.A as ArB{Xs can be transformed
into one with instantiations of types strictly less complex than B.</p>
      <p>
        We finally use this condition to provide a simpler proof of a result from [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ],
showing that all programs in a certain fragment of Λ2κď0 (the fragment freely
generated by the embedding of finite sums and products) can be transformed
into predicative programs only containing atomic type instantiations, a result
related to some recent investigations on atomic polymorphism [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Ahmed</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jamner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Siek</surname>
            ,
            <given-names>J.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wadler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Theorems for free for free: parametricity, with and without types</article-title>
          .
          <source>In: Proceedings of the ACM on Programming Languages. ICFP</source>
          , vol.
          <volume>1</volume>
          , p.
          <source>Article No. 39</source>
          . New York (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Aoto</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Uniqueness of normal proofs in implicational intuitionistic logic</article-title>
          .
          <source>Journal of Logic, Language and Information</source>
          <volume>8</volume>
          ,
          <fpage>217</fpage>
          -
          <lpage>242</lpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bainbridge</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freyd</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scedrov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scott</surname>
          </string-name>
          , P.J.:
          <article-title>Functorial polymorphism</article-title>
          .
          <source>Theoretical Computer Science</source>
          <volume>70</volume>
          ,
          <fpage>35</fpage>
          -
          <lpage>64</lpage>
          (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Basold</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hansen</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          :
          <article-title>Well-definedness and observational equivalence for inductive-coinductive programs</article-title>
          .
          <source>Journal of Logic and Computation exw091</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bernardy</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jansson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Claessen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Testing Polymorphic Properties</article-title>
          .
          <source>In: ESOP 2010: Programming Languages and Systems. Lecture Notes in Computer Science</source>
          , vol.
          <volume>6012</volume>
          , pp.
          <fpage>125</fpage>
          -
          <lpage>144</lpage>
          . Springer Berlin Heidelberg (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Broda</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Damas</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>On long normal inhabitants of a type</article-title>
          .
          <source>Journal of Logic and Computation</source>
          <volume>15</volume>
          ,
          <fpage>353</fpage>
          -
          <lpage>390</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bruce</surname>
            ,
            <given-names>K.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di</surname>
            <given-names>Cosmo</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Longo</surname>
          </string-name>
          , G.:
          <article-title>Provable isomorphisms of types</article-title>
          .
          <source>Mathematical Structures in Computer Science</source>
          <volume>1</volume>
          ,
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Di</surname>
            <given-names>Cosmo</given-names>
          </string-name>
          ,
          <string-name>
            <surname>R.:</surname>
          </string-name>
          <article-title>A short survey of isomorphisms of types</article-title>
          .
          <source>Mathematical Structures in Computer Science</source>
          <volume>15</volume>
          ,
          <fpage>825</fpage>
          -
          <lpage>838</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Ferreira</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferreira</surname>
          </string-name>
          , G.:
          <article-title>Atomic polymorphism</article-title>
          .
          <source>Journal of Symbolic Logic</source>
          <volume>78</volume>
          (
          <issue>1</issue>
          ),
          <fpage>260</fpage>
          -
          <lpage>274</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Fiore</surname>
            , Di Cosmo,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balat</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Remarks on isomorphisms in typed lambda calculi with empty and sum types</article-title>
          .
          <source>Annals of Pure and Applied Logic</source>
          <volume>141</volume>
          (
          <issue>1-2</issue>
          ),
          <fpage>35</fpage>
          -
          <lpage>50</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gabbay</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szalas</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Second-order Quantifier Elimination. College publications (</article-title>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Girard</surname>
            ,
            <given-names>J.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scedrov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scott</surname>
          </string-name>
          , P.J.:
          <article-title>Normal forms and cut-free proofs as natural transformations</article-title>
          . In: Moschovakis,
          <string-name>
            <surname>Y</surname>
          </string-name>
          . (ed.)
          <source>Logic from Computer Science</source>
          , vol.
          <volume>21</volume>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>241</lpage>
          . Springer-Verlag (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Hasegawa</surname>
          </string-name>
          , R.:
          <article-title>Categorical data types in parametric polymorphism</article-title>
          .
          <source>Mathematical Structures in Computer Science</source>
          <volume>4</volume>
          (
          <issue>1</issue>
          ),
          <fpage>71</fpage>
          -
          <lpage>109</lpage>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Hinze</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>James</surname>
            ,
            <given-names>D.W.</given-names>
          </string-name>
          : Reason isomorphically! In:
          <string-name>
            <surname>WGP</surname>
          </string-name>
          <year>2010</year>
          . pp.
          <fpage>85</fpage>
          -
          <lpage>96</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ilik</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Axioms and decidability for type isomorphism in the presence of sums</article-title>
          .
          <source>In: Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Johann</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>On proving the correctness of program transformation based on free theorems for higher-order polymorphic calculi</article-title>
          .
          <source>Mathematical Structures in Computer Science</source>
          <volume>15</volume>
          ,
          <fpage>201</fpage>
          -
          <lpage>229</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. de Lataillade, J.:
          <article-title>Dinatural terms in System F</article-title>
          .
          <source>In: Proceedings of the TwentyFourth Annual IEEE Symposium on Logic in Computer Science (LICS</source>
          <year>2009</year>
          ). pp.
          <fpage>267</fpage>
          -
          <lpage>276</lpage>
          . IEEE Computer Society Press, Los Angeles, California, USA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>McCuscker</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santamaria</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>On compositionality of dinatural transformations</article-title>
          .
          <source>In: CSL 2018. LIPIcs</source>
          , vol.
          <volume>119</volume>
          , pp.
          <volume>33</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>33</lpage>
          :
          <fpage>22</fpage>
          .
          <string-name>
            <surname>Schloss</surname>
          </string-name>
          Daghstuhl-Leibinz-Zentrum fuer Informatik, Dagstuhl, Germany (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Okada</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scott</surname>
          </string-name>
          , P.:
          <article-title>A note on rewriting theory for uniqueness of iteration</article-title>
          .
          <source>Theory and Applications of Categories</source>
          <volume>6</volume>
          ,
          <fpage>47</fpage>
          -
          <lpage>64</lpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Pistone</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>On dinaturality, typability and βη-stable models</article-title>
          . In: fuer Informatik, S.D.L.Z. (ed.)
          <source>2nd International Conference on Formal Structures for Computation and Deduction (FSCD</source>
          <year>2017</year>
          ).
          <source>Leibniz International Proceedings in Informatics (LIPIcs)</source>
          , vol.
          <volume>84</volume>
          , pp.
          <volume>29</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>29</lpage>
          :
          <fpage>17</fpage>
          . Dagstuhl,
          <string-name>
            <surname>Germany</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Pistone</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tranchini</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>The Yoneda Reduction of Polymorphic Types</article-title>
          .
          <source>In: Computer Science Logic</source>
          <year>2021</year>
          (
          <article-title>CSL 2021)</article-title>
          . LIPIcs-Leibniz
          <source>International Proceedings in Informatics</source>
          , vol.
          <volume>183</volume>
          , pp.
          <volume>35</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>35</lpage>
          :
          <fpage>22</fpage>
          (
          <year>2021</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Pistone</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tranchini</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petrolo</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The naturality of natural deduction (II)</article-title>
          .
          <article-title>On atomic polymorphism and generalized propositional connectives</article-title>
          .
          <source>Studia Logica</source>
          (
          <year>2021</year>
          ). https://doi.org/10.1007/s11225-021-09964-z
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Plotkin</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abadi</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A logic for parametric polymorphism</article-title>
          .
          <source>In: TLCA '93, International Conference on Typed Lambda Calculi and Applications. Lecture Notes in Computer Science</source>
          , vol.
          <volume>664</volume>
          , pp.
          <fpage>361</fpage>
          -
          <lpage>375</lpage>
          . Springer Berlin Heidelberg (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Santocanale</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Free μ-lattices</article-title>
          .
          <source>Journal of Pure and Applied Algebra</source>
          <volume>9</volume>
          ,
          <fpage>166</fpage>
          -
          <lpage>197</lpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Scherer</surname>
          </string-name>
          , G.:
          <article-title>Deciding equivalence with sums and the empty type</article-title>
          .
          <source>In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages</source>
          . pp.
          <fpage>374</fpage>
          -
          <lpage>386</lpage>
          .
          <source>POPL</source>
          <year>2017</year>
          , ACM, New York, NY, USA (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Tranchini</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pistone</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petrolo</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The naturality of natural deduction</article-title>
          .
          <source>Studia Logica</source>
          <volume>107</volume>
          (
          <issue>1</issue>
          ),
          <fpage>195</fpage>
          -
          <lpage>231</lpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Uustalu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vene</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>The Recursion Scheme from the Cofree Recursive Comonad</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>229</volume>
          (
          <issue>5</issue>
          ),
          <fpage>135</fpage>
          -
          <lpage>157</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28. Voigtla¨nder, J.:
          <article-title>Free theorems simply, via dinaturality</article-title>
          .
          <source>In: Declarative Programming and Knowledge Management</source>
          . pp.
          <fpage>247</fpage>
          -
          <lpage>267</lpage>
          . Springer International Publishing,
          <string-name>
            <surname>Cham</surname>
          </string-name>
          (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Wadler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Theorems for free! In: Proceedings of the fourth international conference on functional programming languages and computer architecture -</article-title>
          <source>FPCA '89</source>
          (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Zaoinc</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Fixpoint technique for counting terms in typed lambda-calculus</article-title>
          .
          <source>Tech. rep.</source>
          , State University of New York (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>