<?xml version="1.0" encoding="UTF-8"?>
<records>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>0</startPage>
    <endPage>0</endPage>
    <doi>10.4230/LIPIcs.ITP.2019</doi>
    <documentType>article</documentType>
    <title language="eng">LIPIcs, Volume 141, ITP'19, Complete Volume</title>
    <authors>
      <author>
        <name>Harrison, John</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>O'Leary, John</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Tolmach, Andrew</name>
        <affiliationId>3</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Amazon AWS, Portland, OR, USA</affiliationName>
      <affiliationName affiliationId="2">Intel Corporation</affiliationName>
      <affiliationName affiliationId="3">Portland State University, Portland, OR, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">LIPIcs, Volume 141, ITP'19, Complete Volume</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019/LIPIcs.ITP.2019.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Theory of computation, Logic</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>0:i</startPage>
    <endPage>0:xiv</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.0</doi>
    <documentType>article</documentType>
    <title language="eng">Front Matter, Table of Contents, Preface, Conference Organization</title>
    <authors>
      <author>
        <name>Harrison, John</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>O'Leary, John</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Tolmach, Andrew</name>
        <affiliationId>3</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Amazon AWS, Portland, OR, USA</affiliationName>
      <affiliationName affiliationId="2">Intel Corporation</affiliationName>
      <affiliationName affiliationId="3">Portland State University, Portland, OR, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">Front Matter, Table of Contents, Preface, Conference Organization</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.0/LIPIcs.ITP.2019.0.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Front Matter</keyword>
      <keyword>Table of Contents</keyword>
      <keyword>Preface</keyword>
      <keyword>Conference Organization</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>1:1</startPage>
    <endPage>1:1</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.1</doi>
    <documentType>article</documentType>
    <title language="eng">A Million Lines of Proof About a Moving Target (Invited Talk)</title>
    <authors>
      <author>
        <name>Andronick, June</name>
        <affiliationId>1</affiliationId>
        <affiliationId>2</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">CSIRO's Data61, Sydney, Australia</affiliationName>
      <affiliationName affiliationId="2">UNSW, Sydney, Australia</affiliationName>
    </affiliationsList>
    <abstract language="eng">In the last ten years, we have been porting, maintaining, and evolving the world’s largest proof base, the formal proof in Isabelle/HOL of the seL4 microkernel. But actually, there is no such thing as "the seL4 proof"; there are a number of proofs (functional correctness, binary translation validation, integrity and confidentiality proofs, etc) about a number of instances of seL4 (depending on the hardware platform it runs on, the features it includes, the extensions it supports). We will give an overview of the current state of these proofs, and, importantly, the challenges we face in keeping to maintain, evolve and extend them, and the processes we have put in place to manage their dependence on the evolving implementation.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.1/LIPIcs.ITP.2019.1.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Proof maintentance</keyword>
      <keyword>proof evolution</keyword>
      <keyword>seL4</keyword>
      <keyword>Isabelle/HOL</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>2:1</startPage>
    <endPage>2:1</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.2</doi>
    <documentType>article</documentType>
    <title language="eng">What Makes a Mathematician Tick? (Invited Talk)</title>
    <authors>
      <author>
        <name>Buzzard, Kevin</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Imperial College, London, U.K.</affiliationName>
    </affiliationsList>
    <abstract language="eng">Formalised mathematics has a serious image problem in mathematics departments. Mathematicians working in "mainstream" areas such as modern algebra, analysis, geometry etc have absolutely no desire to work formally, it slows them down and they cannot see the point. The mathematical community has its own methods for deciding whether a proof (in pdf format) is correct or not; these methods rely on the views of a cabal of experts - our high priests. Our proof of the odd order theorem is "John Thompson got a Fields Medal for the work". This proof is of a rather different nature to the formalised proof of Gonthier et al. Our methods are arcane and mysterious; there is also ample evidence that they are, in general, extremely accurate when it comes to the important stuff.&#13;
I will talk about my attempts, as a "mainstream mathematician", to introduce formalised mathematics to my community.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.2/LIPIcs.ITP.2019.2.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Formalization of mathematics</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>3:1</startPage>
    <endPage>3:1</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.3</doi>
    <documentType>article</documentType>
    <title language="eng">An Increasing Need for Formality (Invited Talk)</title>
    <authors>
      <author>
        <name>Dixon, Martin</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Intel Corp., Hillsboro, Oregon, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">The talk will touch on a number of practical opportunities for formal modeling and methods that Intel sees in HW security research including: instruction sets; the proliferation of programmable agents within SoC’s; and negative space testing.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.3/LIPIcs.ITP.2019.3.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Hardware security</keyword>
      <keyword>formal modeling</keyword>
      <keyword>instruction sets</keyword>
      <keyword>SoC’s</keyword>
      <keyword>negative space testing</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>4:1</startPage>
    <endPage>4:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.4</doi>
    <documentType>article</documentType>
    <title language="eng">A Verified Compositional Algorithm for AI Planning</title>
    <authors>
      <author>
        <name>Abdulaziz, Mohammad</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-8244-518X</orcid_id>
      </author>
      <author>
        <name>Gretton, Charles</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-9803-0168</orcid_id>
      </author>
      <author>
        <name>Norrish, Michael</name>
        <affiliationId>3</affiliationId>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-1163-8467</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Technical University of Munich, Germany</affiliationName>
      <affiliationName affiliationId="2">Australian National University, Canberra, Australia</affiliationName>
      <affiliationName affiliationId="3">Data61, CSIRO, Canberra, Australia</affiliationName>
    </affiliationsList>
    <abstract language="eng">We report on our HOL4 verification of an AI planning algorithm. The algorithm is compositional in the following sense: a planning problem is divided into multiple smaller abstractions, then each of the abstractions is solved, and finally the abstractions' solutions are composed into a solution for the given problem. Formalising the algorithm, which was already quite well understood, revealed nuances in its operation which could lead to computing buggy plans. The formalisation also revealed that the algorithm can be presented more generally, and can be applied to systems with infinite states and actions, instead of only finite ones.&#13;
Our formalisation extends an earlier model for slightly simpler transition systems, and demonstrates another step towards formal treatments of more and more of the algorithms and reasoning used in AI planning, as well as model checking.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.4/LIPIcs.ITP.2019.4.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>AI Planning</keyword>
      <keyword>Compositional Algorithms</keyword>
      <keyword>Algorithm Verification</keyword>
      <keyword>Transition Systems</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>5:1</startPage>
    <endPage>5:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.5</doi>
    <documentType>article</documentType>
    <title language="eng">Proving Tree Algorithms for Succinct Data Structures</title>
    <authors>
      <author>
        <name>Affeldt, Reynald</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-2327-953X</orcid_id>
      </author>
      <author>
        <name>Garrigue, Jacques</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-8056-5519</orcid_id>
      </author>
      <author>
        <name>Qi, Xuanrui</name>
        <affiliationId>3</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-2032-1552</orcid_id>
      </author>
      <author>
        <name>Tanaka, Kazunari</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-8460-7763</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">National Institute of Advanced Industrial Science and Technology, Tsukuba, Japan</affiliationName>
      <affiliationName affiliationId="2">Graduate School of Mathematics, Nagoya University, Japan</affiliationName>
      <affiliationName affiliationId="3">Department of Computer Science, Tufts University, Medford, MA, United States</affiliationName>
    </affiliationsList>
    <abstract language="eng">Succinct data structures give space-efficient representations of large amounts of data without sacrificing performance. They rely on cleverly designed data representations and algorithms. We present here the formalization in Coq/SSReflect of two different tree-based succinct representations and their accompanying algorithms. One is the Level-Order Unary Degree Sequence, which encodes the structure of a tree in breadth-first order as a sequence of bits, where access operations can be defined in terms of Rank and Select, which work in constant time for static bit sequences. The other represents dynamic bit sequences as binary balanced trees, where Rank and Select present a low logarithmic overhead compared to their static versions, and with efficient insertion and deletion. The two can be stacked to provide a dynamic representation of dictionaries for instance. While both representations are well-known, we believe this to be their first formalization and a needed step towards provably-safe implementations of big data.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.5/LIPIcs.ITP.2019.5.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Coq</keyword>
      <keyword>small-scale reflection</keyword>
      <keyword>succinct data structures</keyword>
      <keyword>LOUDS</keyword>
      <keyword>bit vectors</keyword>
      <keyword>self balancing trees</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>6:1</startPage>
    <endPage>6:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.6</doi>
    <documentType>article</documentType>
    <title language="eng">Data Types as Quotients of Polynomial Functors</title>
    <authors>
      <author>
        <name>Avigad, Jeremy</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-1275-315X</orcid_id>
      </author>
      <author>
        <name>Carneiro, Mario</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-0470-5249</orcid_id>
      </author>
      <author>
        <name>Hudon, Simon</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Department of Philosophy, Carnegie Mellon University, Pittsburgh, PA, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">A broad class of data types, including arbitrary nestings of inductive types, coinductive types, and quotients, can be represented as quotients of polynomial functors. This provides perspicuous ways of constructing them and reasoning about them in an interactive theorem prover.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.6/LIPIcs.ITP.2019.6.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>data types</keyword>
      <keyword>polynomial functors</keyword>
      <keyword>inductive types</keyword>
      <keyword>coinductive types</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>7:1</startPage>
    <endPage>7:20</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.7</doi>
    <documentType>article</documentType>
    <title language="eng">Primitive Floats in Coq</title>
    <authors>
      <author>
        <name>Bertholon, Guillaume</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-7000-382X</orcid_id>
      </author>
      <author>
        <name>Martin-Dorel, Érik</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-9716-9491</orcid_id>
      </author>
      <author>
        <name>Roux, Pierre</name>
        <affiliationId>3</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-2910-4738</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">École Normale Supérieure, Paris, France</affiliationName>
      <affiliationName affiliationId="2">Lab. IRIT, University of Toulouse, CNRS, France</affiliationName>
      <affiliationName affiliationId="3">ONERA, Toulouse, France</affiliationName>
    </affiliationsList>
    <abstract language="eng">Some mathematical proofs involve intensive computations, for instance: the four-color theorem, Hales' theorem on sphere packing (formerly known as the Kepler conjecture) or interval arithmetic. For numerical computations, floating-point arithmetic enjoys widespread usage thanks to its efficiency, despite the introduction of rounding errors.&#13;
Formal guarantees can be obtained on floating-point algorithms based on the IEEE 754 standard, which precisely specifies floating-point arithmetic and its rounding modes, and a proof assistant such as Coq, that enjoys efficient computation capabilities. Coq offers machine integers, however floating-point arithmetic still needed to be emulated using these integers.&#13;
A modified version of Coq is presented that enables using the machine floating-point operators. The main obstacles to such an implementation and its soundness are discussed. Benchmarks show potential performance gains of two orders of magnitude.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.7/LIPIcs.ITP.2019.7.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Coq formal proofs</keyword>
      <keyword>floating-point arithmetic</keyword>
      <keyword>reflexive tactics</keyword>
      <keyword>Cholesky decomposition</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>8:1</startPage>
    <endPage>8:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.8</doi>
    <documentType>article</documentType>
    <title language="eng">A Certificate-Based Approach to Formally Verified Approximations</title>
    <authors>
      <author>
        <name>Bréhard, Florent</name>
        <affiliationId>1</affiliationId>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Mahboubi, Assia</name>
        <affiliationId>3</affiliationId>
      </author>
      <author>
        <name>Pous, Damien</name>
        <affiliationId>4</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Plume and AriC teams, LIP, ENS de Lyon, Université de Lyon, Lyon, France</affiliationName>
      <affiliationName affiliationId="2">MAC team, LAAS-CNRS, Université de Toulouse, CNRS, Toulouse, France</affiliationName>
      <affiliationName affiliationId="3">Gallinette team, LS2N, INRIA, Université de Nantes, Nantes, France</affiliationName>
      <affiliationName affiliationId="4">Plume team, LIP, CNRS, ENS de Lyon, Université de Lyon, Lyon, France</affiliationName>
    </affiliationsList>
    <abstract language="eng">We present a library to verify rigorous approximations of univariate functions on real numbers, with the Coq proof assistant. Based on interval arithmetic, this library also implements a technique of validation a posteriori based on the Banach fixed-point theorem. We illustrate this technique on the case of operations of division and square root. This library features a collection of abstract structures that organise the specfication of rigorous approximations, and modularise the related proofs. Finally, we provide an implementation of verified Chebyshev approximations, and we discuss a few examples of computations.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.8/LIPIcs.ITP.2019.8.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>approximation theory</keyword>
      <keyword>Chebyshev polynomials</keyword>
      <keyword>Banach fixed-point theorem</keyword>
      <keyword>interval arithmetic</keyword>
      <keyword>Coq</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>9:1</startPage>
    <endPage>9:16</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.9</doi>
    <documentType>article</documentType>
    <title language="eng">Higher-Order Tarski Grothendieck as a Foundation for Formal Proof</title>
    <authors>
      <author>
        <name>Brown, Chad E.</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Kaliszyk, Cezary</name>
        <affiliationId>2</affiliationId>
        <affiliationId>3</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-8273-6059</orcid_id>
      </author>
      <author>
        <name>Pąk, Karol</name>
        <affiliationId>4</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-7099-1669</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Czech Technical University in Prague, Czech Republic</affiliationName>
      <affiliationName affiliationId="2">University of Innsbruck, Austria</affiliationName>
      <affiliationName affiliationId="3">University of Warsaw, Poland</affiliationName>
      <affiliationName affiliationId="4">University of Białystok, Poland</affiliationName>
    </affiliationsList>
    <abstract language="eng">We formally introduce a foundation for computer verified proofs based on higher-order Tarski-Grothendieck set theory. We show that this theory has a model if a 2-inaccessible cardinal exists. This assumption is the same as the one needed for a model of plain Tarski-Grothendieck set theory. The foundation allows the co-existence of proofs based on two major competing foundations for formal proofs: higher-order logic and TG set theory. We align two co-existing Isabelle libraries, Isabelle/HOL and Isabelle/Mizar, in a single foundation in the Isabelle logical framework. We do this by defining isomorphisms between the basic concepts, including integers, functions, lists, and algebraic structures that preserve the important operations. With this we can transfer theorems proved in higher-order logic to TG set theory and vice versa. We practically show this by formally transferring Lagrange’s four-square theorem, Fermat 3-4, and other theorems between the foundations in the Isabelle framework.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.9/LIPIcs.ITP.2019.9.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>model</keyword>
      <keyword>higher-order</keyword>
      <keyword>Tarski Grothendieck</keyword>
      <keyword>proof foundation</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>10:1</startPage>
    <endPage>10:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.10</doi>
    <documentType>article</documentType>
    <title language="eng">Generic Authenticated Data Structures, Formally</title>
    <authors>
      <author>
        <name>Brun, Matthias</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Traytel, Dmitriy</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-7982-2768</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Department of Computer Science, ETH Zürich, Switzerland</affiliationName>
      <affiliationName affiliationId="2">Institute of Information Security, Department of Computer Science, ETH Zürich, Switzerland</affiliationName>
    </affiliationsList>
    <abstract language="eng">Authenticated data structures are a technique for outsourcing data storage and maintenance to an untrusted server. The server is required to produce an efficiently checkable and cryptographically secure proof that it carried out precisely the requested computation. Recently, Miller et al. [https://doi.org/10.1145/2535838.2535851] demonstrated how to support a wide range of such data structures by integrating an authentication construct as a first class citizen in a functional programming language. In this paper, we put this work to the test of formalization in the Isabelle proof assistant. With Isabelle’s help, we uncover and repair several mistakes and modify the small-step semantics to perform call-by-value evaluation rather than requiring terms to be in administrative normal form.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.10/LIPIcs.ITP.2019.10.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Authenticated Data Structures</keyword>
      <keyword>Verifiable Computation</keyword>
      <keyword>Isabelle/HOL</keyword>
      <keyword>Nominal Isabelle</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>11:1</startPage>
    <endPage>11:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.11</doi>
    <documentType>article</documentType>
    <title language="eng">A Verified and Compositional Translation of LTL to Deterministic Rabin Automata</title>
    <authors>
      <author>
        <name>Brunner, Julian</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-8922-6097</orcid_id>
      </author>
      <author>
        <name>Seidl, Benedikt</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-9913-8709</orcid_id>
      </author>
      <author>
        <name>Sickert, Salomon</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-0280-8981</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Technische Universität München, Germany</affiliationName>
    </affiliationsList>
    <abstract language="eng">We present a formalisation of the unified translation approach from linear temporal logic (LTL) to omega-automata from [Javier Esparza et al., 2018]. This approach decomposes LTL formulas into "simple" languages and allows a clear separation of concerns: first, we formalise the purely logical result yielding this decomposition; second, we develop a generic, executable, and expressive automata library providing necessary operations on automata to re-combine the "simple" languages; third, we instantiate this generic theory to obtain a construction for deterministic Rabin automata (DRA). We extract from this particular instantiation an executable tool translating LTL to DRAs. To the best of our knowledge this is the first verified translation of LTL to DRAs that is proven to be double-exponential in the worst case which asymptotically matches the known lower bound.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.11/LIPIcs.ITP.2019.11.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Automata Theory</keyword>
      <keyword>Automata over Infinite Words</keyword>
      <keyword>Deterministic Automata</keyword>
      <keyword>Linear Temporal Logic</keyword>
      <keyword>Model Checking</keyword>
      <keyword>Verified Algorithms</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>12:1</startPage>
    <endPage>12:17</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.12</doi>
    <documentType>article</documentType>
    <title language="eng">Formalizing Computability Theory via Partial Recursive Functions</title>
    <authors>
      <author>
        <name>Carneiro, Mario</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-0470-5249</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Carnegie Mellon University, Pittsburgh, PA, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">We present an extension to the mathlib library of the Lean theorem prover formalizing the foundations of computability theory. We use primitive recursive functions and partial recursive functions as the main objects of study, and we use a constructive encoding of partial functions such that they are executable when the programs in question provably halt. Main theorems include the construction of a universal partial recursive function and a proof of the undecidability of the halting problem. Type class inference provides a transparent way to supply Gödel numberings where needed and encapsulate the encoding details.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.12/LIPIcs.ITP.2019.12.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Lean</keyword>
      <keyword>computability</keyword>
      <keyword>halting problem</keyword>
      <keyword>primitive recursion</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>13:1</startPage>
    <endPage>13:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.13</doi>
    <documentType>article</documentType>
    <title language="eng">Formal Proofs of Tarjan’s Strongly Connected Components Algorithm in Why3, Coq and Isabelle</title>
    <authors>
      <author>
        <name>Chen, Ran</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Cohen, Cyril</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Lévy, Jean-Jacques</name>
        <affiliationId>3</affiliationId>
      </author>
      <author>
        <name>Merz, Stephan</name>
        <affiliationId>4</affiliationId>
      </author>
      <author>
        <name>Théry, Laurent</name>
        <affiliationId>2</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Institute of Software of the Chinese Academy of Sciences, Beijing, China</affiliationName>
      <affiliationName affiliationId="2">Université Côte d'Azur, Inria, Sophia Antipolis, France</affiliationName>
      <affiliationName affiliationId="3">Irif &amp; Inria, Paris, France</affiliationName>
      <affiliationName affiliationId="4">Université de Lorraine, CNRS, Inria, LORIA, Nancy, France</affiliationName>
    </affiliationsList>
    <abstract language="eng">Comparing provers on a formalization of the same problem is always a valuable exercise. In this paper, we present the formal proof of correctness of a non-trivial algorithm from graph theory that was carried out in three proof assistants: Why3, Coq, and Isabelle.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.13/LIPIcs.ITP.2019.13.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Mathematical logic</keyword>
      <keyword>Formal proof</keyword>
      <keyword>Graph algorithm</keyword>
      <keyword>Program verification</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>14:1</startPage>
    <endPage>14:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.14</doi>
    <documentType>article</documentType>
    <title language="eng">First-Order Guarded Coinduction in Coq</title>
    <authors>
      <author>
        <name>Czajka, Łukasz</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-8083-4280</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Faculty of Informatics, TU Dortmund University, Germany</affiliationName>
    </affiliationsList>
    <abstract language="eng">We introduce two coinduction principles and two proof translations which, under certain conditions, map coinductive proofs that use our principles to guarded Coq proofs. The first principle provides an "operational" description of a proof by coinduction, which is easy to reason with informally. The second principle extends the first one to allow for direct proofs by coinduction of statements with existential quantifiers and multiple coinductive predicates in the conclusion. The principles automatically enforce the correct use of the coinductive hypothesis. We implemented the principles and the proof translations in a Coq plugin.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.14/LIPIcs.ITP.2019.14.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>coinduction</keyword>
      <keyword>Coq</keyword>
      <keyword>guardedness</keyword>
      <keyword>corecursion</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>15:1</startPage>
    <endPage>15:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.15</doi>
    <documentType>article</documentType>
    <title language="eng">Formalizing the Solution to the Cap Set Problem</title>
    <authors>
      <author>
        <name>Dahmen, Sander R.</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-0014-0789</orcid_id>
      </author>
      <author>
        <name>Hölzl, Johannes</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-0869-9250</orcid_id>
      </author>
      <author>
        <name>Lewis, Robert Y.</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-5266-1121</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Department of Mathematics, Vrije Universiteit Amsterdam, The Netherlands</affiliationName>
      <affiliationName affiliationId="2">Department of Computer Science, Vrije Universiteit Amsterdam, The Netherlands</affiliationName>
    </affiliationsList>
    <abstract language="eng">In 2016, Ellenberg and Gijswijt established a new upper bound on the size of subsets of F^n_q with no three-term arithmetic progression. This problem has received much mathematical attention, particularly in the case q = 3, where it is commonly known as the cap set problem. Ellenberg and Gijswijt’s proof was published in the Annals of Mathematics and is noteworthy for its clever use of elementary methods. This paper describes a formalization of this proof in the Lean proof assistant, including both the general result in F^n_q and concrete values for the case q = 3. We faithfully follow the pen and paper argument to construct the bound. Our work shows that (some) modern mathematics is within the range of proof assistants.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.15/LIPIcs.ITP.2019.15.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>formal proof</keyword>
      <keyword>combinatorics</keyword>
      <keyword>cap set problem</keyword>
      <keyword>Lean</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>16:1</startPage>
    <endPage>16:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.16</doi>
    <documentType>article</documentType>
    <title language="eng">Nine Chapters of Analytic Number Theory in Isabelle/HOL</title>
    <authors>
      <author>
        <name>Eberl, Manuel</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-4263-6571</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Technical University of Munich, Boltzmannstraße 3, Garching bei München, Germany</affiliationName>
    </affiliationsList>
    <abstract language="eng">In this paper, I present a formalisation of a large portion of Apostol’s Introduction to Analytic Number Theory in Isabelle/HOL. Of the 14 chapters in the book, the content of 9 has been mostly formalised, while the content of 3 others was already mostly available in Isabelle before.&#13;
The most interesting results that were formalised are: &#13;
- The Riemann and Hurwitz zeta functions and the Dirichlet L functions &#13;
- Dirichlet’s theorem on primes in arithmetic progressions &#13;
- An analytic proof of the Prime Number Theorem &#13;
- The asymptotics of arithmetical functions such as the prime omega function, the divisor count sigma_0(n), and Euler’s totient function phi(n)</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.16/LIPIcs.ITP.2019.16.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Isabelle</keyword>
      <keyword>theorem proving</keyword>
      <keyword>analytic number theory</keyword>
      <keyword>number theory</keyword>
      <keyword>arithmetical function</keyword>
      <keyword>Dirichlet series</keyword>
      <keyword>prime number theorem</keyword>
      <keyword>Dirichlet’s theorem</keyword>
      <keyword>zeta function</keyword>
      <keyword>L functions</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>17:1</startPage>
    <endPage>17:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.17</doi>
    <documentType>article</documentType>
    <title language="eng">A Certifying Extraction with Time Bounds from Coq to Call-By-Value Lambda Calculus</title>
    <authors>
      <author>
        <name>Forster, Yannick</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Kunze, Fabian</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Saarland University, Saarland Informatics Campus (SIC), Saarbrücken, Germany</affiliationName>
    </affiliationsList>
    <abstract language="eng">We provide a plugin extracting Coq functions of simple polymorphic types to the (untyped) call-by-value lambda calculus L. The plugin is implemented in the MetaCoq framework and entirely written in Coq. We provide Ltac tactics to automatically verify the extracted terms w.r.t a logical relation connecting Coq functions with correct extractions and time bounds, essentially performing a certifying translation and running time validation. We provide three case studies: A universal L-term obtained as extraction from the Coq definition of a step-indexed self-interpreter for L, a many-reduction from solvability of Diophantine equations to the halting problem of L, and a polynomial-time simulation of Turing machines in L.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.17/LIPIcs.ITP.2019.17.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>call-by-value</keyword>
      <keyword>lambda calculus</keyword>
      <keyword>Coq</keyword>
      <keyword>constructive type theory</keyword>
      <keyword>extraction</keyword>
      <keyword>computability</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>18:1</startPage>
    <endPage>18:20</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.18</doi>
    <documentType>article</documentType>
    <title language="eng">Formal Proof and Analysis of an Incremental Cycle Detection Algorithm</title>
    <authors>
      <author>
        <name>Guéneau, Armaël</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Jourdan, Jacques-Henri</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Charguéraud, Arthur</name>
        <affiliationId>3</affiliationId>
      </author>
      <author>
        <name>Pottier, François</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Inria, Paris, France</affiliationName>
      <affiliationName affiliationId="2">CNRS, LRI, Univ. Paris Sud, Université Paris Saclay, France</affiliationName>
      <affiliationName affiliationId="3">Inria &amp; Université de Strasbourg, CNRS, ICube, Strasbourg, France</affiliationName>
    </affiliationsList>
    <abstract language="eng">We study a state-of-the-art incremental cycle detection algorithm due to Bender, Fineman, Gilbert, and Tarjan. We propose a simple change that allows the algorithm to be regarded as genuinely online. Then, we exploit Separation Logic with Time Credits to simultaneously verify the correctness and the worst-case amortized asymptotic complexity of the modified algorithm.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.18/LIPIcs.ITP.2019.18.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>interactive deductive program verification</keyword>
      <keyword>complexity analysis</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>19:1</startPage>
    <endPage>19:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.19</doi>
    <documentType>article</documentType>
    <title language="eng">A Formalization of Forcing and the Unprovability of the Continuum Hypothesis</title>
    <authors>
      <author>
        <name>Han, Jesse Michael</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>van Doorn, Floris</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Department of Mathematics, University of Pittsburgh, PA, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">We describe a formalization of forcing using Boolean-valued models in the Lean 3 theorem prover, including the fundamental theorem of forcing and a deep embedding of first-order logic with a Boolean-valued soundness theorem. As an application of our framework, we specialize our construction to the Boolean algebra of regular opens of the Cantor space 2^{omega_2 x omega} and formally verify the failure of the continuum hypothesis in the resulting model.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.19/LIPIcs.ITP.2019.19.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Interactive theorem proving</keyword>
      <keyword>formal verification</keyword>
      <keyword>set theory</keyword>
      <keyword>forcing</keyword>
      <keyword>independence proofs</keyword>
      <keyword>continuum hypothesis</keyword>
      <keyword>Boolean-valued models</keyword>
      <keyword>Lean</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>20:1</startPage>
    <endPage>20:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.20</doi>
    <documentType>article</documentType>
    <title language="eng">Refinement with Time - Refining the Run-Time of Algorithms in Isabelle/HOL</title>
    <authors>
      <author>
        <name>Haslbeck, Maximilian P. L.</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-4306-869X</orcid_id>
      </author>
      <author>
        <name>Lammich, Peter</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-3576-0504</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Technische Universität München, Germany</affiliationName>
      <affiliationName affiliationId="2">The University of Manchester, England</affiliationName>
    </affiliationsList>
    <abstract language="eng">Separation Logic with Time Credits is a well established method to formally verify the correctness and run-time of algorithms, which has been applied to various medium-sized use-cases. Refinement is a technique in program verification that makes software projects of larger scale manageable.&#13;
Combining these two techniques for the first time, we present a methodology for verifying the functional correctness and the run-time analysis of algorithms in a modular way. We use it to verify Kruskal’s minimum spanning tree algorithm and the Edmonds - Karp algorithm for network flow. &#13;
An adaptation of the Isabelle Refinement Framework [Lammich and Tuerk, 2012] enables us to specify the functional result and the run-time behaviour of abstract algorithms which can be refined to more concrete algorithms. From these, executable imperative code can be synthesized by an extension of the Sepref tool [Lammich, 2015], preserving correctness and the run-time bounds of the abstract algorithm.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.20/LIPIcs.ITP.2019.20.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Isabelle</keyword>
      <keyword>Time Complexity Analysis</keyword>
      <keyword>Separation Logic</keyword>
      <keyword>Program Verification</keyword>
      <keyword>Refinement</keyword>
      <keyword>Run Time</keyword>
      <keyword>Algorithms</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>21:1</startPage>
    <endPage>21:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.21</doi>
    <documentType>article</documentType>
    <title language="eng">Virtualization of HOL4 in Isabelle</title>
    <authors>
      <author>
        <name>Immler, Fabian</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-5468-1513</orcid_id>
      </author>
      <author>
        <name>Rädle, Jonas</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-7714-0218</orcid_id>
      </author>
      <author>
        <name>Wenzel, Makarius</name>
        <affiliationId>3</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">School of Computer Science, Carnegie Mellon University, USA</affiliationName>
      <affiliationName affiliationId="2">Fakultät für Informatik, Technische Universität München, Germany</affiliationName>
      <affiliationName affiliationId="3">Augsburg, Germany</affiliationName>
    </affiliationsList>
    <abstract language="eng">We present a novel approach to combine the HOL4 and Isabelle theorem provers: both are implemented in SML and based on distinctive variants of HOL. The design of HOL4 allows to replace its inference kernel modules, and the system infrastructure of Isabelle allows to embed other applications of SML. That is the starting point to provide a virtual instance of HOL4 in the same run-time environment as Isabelle. Moreover, with an implementation of a virtual HOL4 kernel that operates on Isabelle/HOL terms and theorems, we can load substantial HOL4 libraries to make them Isabelle theories, but still disconnected from existing Isabelle content. Finally, we introduce a methodology based on the transfer package of Isabelle to connect the imported HOL4 material to that of Isabelle/HOL.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.21/LIPIcs.ITP.2019.21.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Virtualization</keyword>
      <keyword>HOL4</keyword>
      <keyword>Isabelle</keyword>
      <keyword>Isabelle/HOL</keyword>
      <keyword>Isabelle/ML</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>22:1</startPage>
    <endPage>22:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.22</doi>
    <documentType>article</documentType>
    <title language="eng">Generating Verified LLVM from Isabelle/HOL</title>
    <authors>
      <author>
        <name>Lammich, Peter</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">The University of Manchester, UK</affiliationName>
    </affiliationsList>
    <abstract language="eng">We present a framework to generate verified LLVM programs from Isabelle/HOL. It is based on a code generator that generates LLVM text from a simplified fragment of LLVM, shallowly embedded into Isabelle/HOL. On top, we have developed a separation logic, a verification condition generator, and an LLVM backend to the Isabelle Refinement Framework.&#13;
As case studies, we have produced verified LLVM implementations of binary search and the Knuth-Morris-Pratt string search algorithm. These are one order of magnitude faster than the Standard-ML implementations produced with the original Refinement Framework, and on par with unverified C implementations. Adoption of the original correctness proofs to the new LLVM backend was straightforward.&#13;
The trusted code base of our approach is the shallow embedding of the LLVM fragment and the code generator, which is a pretty printer combined with some straightforward compilation steps.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.22/LIPIcs.ITP.2019.22.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Isabelle/HOL</keyword>
      <keyword>LLVM</keyword>
      <keyword>Separation Logic</keyword>
      <keyword>Verification Condition Generator</keyword>
      <keyword>Code Generation</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>23:1</startPage>
    <endPage>23:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.23</doi>
    <documentType>article</documentType>
    <title language="eng">Proof Pearl: Purely Functional, Simple and Efficient Priority Search Trees and Applications to Prim and Dijkstra</title>
    <authors>
      <author>
        <name>Lammich, Peter</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-3576-0504</orcid_id>
      </author>
      <author>
        <name>Nipkow, Tobias</name>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-0730-515X</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">The University of Manchester, UK</affiliationName>
      <affiliationName affiliationId="2">Technical University Munich, Germany</affiliationName>
    </affiliationsList>
    <abstract language="eng">The starting point of this paper is a new, purely functional, simple and efficient data structure combining a search tree and a priority queue, which we call a priority search tree. The salient feature of priority search trees is that they offer a decrease-key operation, something that is missing from other simple, purely functional priority queue implementations. As two applications of this data structure we verify purely functional, simple and efficient implementations of Prim’s and Dijkstra’s algorithms. This constitutes the first verification of an executable and even efficient version of Prim’s algorithm.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.23/LIPIcs.ITP.2019.23.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Priority queue</keyword>
      <keyword>Dijkstra’s algorithm</keyword>
      <keyword>Prim’s algorithm</keyword>
      <keyword>verification</keyword>
      <keyword>Isabelle</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>24:1</startPage>
    <endPage>24:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.24</doi>
    <documentType>article</documentType>
    <title language="eng">A Verified LL(1) Parser Generator</title>
    <authors>
      <author>
        <name>Lasser, Sam</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Casinghino, Chris</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Fisher, Kathleen</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Roux, Cody</name>
        <affiliationId>2</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Tufts University, Medford, MA, USA</affiliationName>
      <affiliationName affiliationId="2">Draper, Cambridge, MA, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">An LL(1) parser is a recursive descent algorithm that uses a single token of lookahead to build a grammatical derivation for an input sequence. We present an LL(1) parser generator that, when applied to grammar G, produces an LL(1) parser for G if such a parser exists. We use the Coq Proof Assistant to verify that the generator and the parsers that it produces are sound and complete, and that they terminate on all inputs without using fuel parameters. As a case study, we extract the tool’s source code and use it to generate a JSON parser. The generated parser runs in linear time; it is two to four times slower than an unverified parser for the same grammar.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.24/LIPIcs.ITP.2019.24.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>interactive theorem proving</keyword>
      <keyword>top-down parsing</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>25:1</startPage>
    <endPage>25:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.25</doi>
    <documentType>article</documentType>
    <title language="eng">Binary-Compatible Verification of Filesystems with ACL2</title>
    <authors>
      <author>
        <name>Mehta, Mihir Parang</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Cook, William R.</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">University of Texas at Austin, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">Filesystems are an essential component of most computer systems. Work on the verification of filesystem functionality has been focused on constructing new filesystems in a manner which simplifies the process of verifying them against specifications. This leaves open the question of whether filesystems already in use are correct at the binary level.&#13;
This paper introduces LoFAT, a model of the FAT32 filesystem which efficiently implements a subset of the POSIX filesystem operations, and HiFAT, a more abstract model of FAT32 which is simpler to reason about. LoFAT is proved to be correct in terms of refinement of HiFAT, and made executable by enabling the state of the model to be written to and read from FAT32 disk images. EqFAT, an equivalence relation for disk images, considers whether two disk images contain the same directory tree modulo reordering of files and implementation-level details regarding cluster allocation. A suite of co-simulation tests uses EqFAT to compare the operation of existing FAT32 implementations to LoFAT and check the correctness of existing implementations of FAT32 such as the mtools suite of programs and the Linux FAT32 implementation. All models and proofs are formalized and mechanically verified in ACL2.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.25/LIPIcs.ITP.2019.25.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>interactive theorem proving</keyword>
      <keyword>filesystems</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>26:1</startPage>
    <endPage>26:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.26</doi>
    <documentType>article</documentType>
    <title language="eng">Ornaments for Proof Reuse in Coq</title>
    <authors>
      <author>
        <name>Ringer, Talia</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Yazdani, Nathaniel</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Leo, John</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Grossman, Dan</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">University of Washington, USA</affiliationName>
      <affiliationName affiliationId="2">Halfaya Research, USA</affiliationName>
    </affiliationsList>
    <abstract language="eng">Ornaments express relations between inductive types with the same inductive structure. We implement fully automatic proof reuse for a particular class of ornaments in a Coq plugin, and show how such a tool can give programmers the rewards of using indexed inductive types while automating away many of the costs. The plugin works directly on Coq code; it is the first ornamentation tool for a non-embedded dependently typed language. It is also the first tool to automatically identify ornaments: To lift a function or proof, the user must provide only the source type, the destination type, and the source function or proof. In taking advantage of the mathematical properties of ornaments, our approach produces faster functions and smaller terms than a more general approach to proof reuse in Coq.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.26/LIPIcs.ITP.2019.26.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>ornaments</keyword>
      <keyword>proof reuse</keyword>
      <keyword>proof automation</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>27:1</startPage>
    <endPage>27:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.27</doi>
    <documentType>article</documentType>
    <title language="eng">Verifying That a Compiler Preserves Concurrent Value-Dependent Information-Flow Security</title>
    <authors>
      <author>
        <name>Sison, Robert</name>
        <affiliationId>1</affiliationId>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-0313-9764</orcid_id>
      </author>
      <author>
        <name>Murray, Toby</name>
        <affiliationId>3</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Data61, CSIRO, Australia</affiliationName>
      <affiliationName affiliationId="2">UNSW Sydney, Australia</affiliationName>
      <affiliationName affiliationId="3">University of Melbourne, Australia</affiliationName>
    </affiliationsList>
    <abstract language="eng">It is common to prove by reasoning over source code that programs do not leak sensitive data. But doing so leaves a gap between reasoning and reality that can only be filled by accounting for the behaviour of the compiler. This task is complicated when programs enforce value-dependent information-flow security properties (in which classification of locations can vary depending on values in other locations) and complicated further when programs exploit shared-variable concurrency.&#13;
Prior work has formally defined a notion of concurrency-aware refinement for preserving value-dependent security properties. However, that notion is considerably more complex than standard refinement definitions typically applied in the verification of semantics preservation by compilers. To date it remains unclear whether it can be applied to a realistic compiler, because there exist no general decomposition principles for separating it into smaller, more familiar, proof obligations.&#13;
In this work, we provide such a decomposition principle, which we show can almost halve the complexity of proving secure refinement. Further, we demonstrate its applicability to secure compilation, by proving in Isabelle/HOL the preservation of value-dependent security by a proof-of-concept compiler from an imperative While language to a generic RISC-style assembly language, for programs with shared-memory concurrency mediated by locking primitives. Finally, we execute our compiler in Isabelle on a While language model of the Cross Domain Desktop Compositor, demonstrating to our knowledge the first use of a compiler verification result to carry an information-flow security property down to the assembly-level model of a non-trivial concurrent program.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.27/LIPIcs.ITP.2019.27.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Secure compilation</keyword>
      <keyword>Information flow security</keyword>
      <keyword>Concurrency</keyword>
      <keyword>Verification</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>28:1</startPage>
    <endPage>28:21</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.28</doi>
    <documentType>article</documentType>
    <title language="eng">Quantitative Continuity and Computable Analysis in Coq</title>
    <authors>
      <author>
        <name>Steinberg, Florian</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Théry, Laurent</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Thies, Holger</name>
        <affiliationId>3</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">INRIA Saclay, France</affiliationName>
      <affiliationName affiliationId="2">INRIA Sophia-Antipolis, France</affiliationName>
      <affiliationName affiliationId="3">Kyushu University, Japan</affiliationName>
    </affiliationsList>
    <abstract language="eng">We give a number of formal proofs of theorems from the field of computable analysis. Many of our results specify executable algorithms that work on infinite inputs by means of operating on finite approximations and are proven correct in the sense of computable analysis. The development is done in the proof assistant Coq and heavily relies on the Incone library for information theoretic continuity. This library is developed by one of the authors and the results of this paper extend the library. While full executability in a formal development of mathematical statements about real numbers and the like is not a feature that is unique to the Incone library, its original contribution is to adhere to the conventions of computable analysis to provide a general purpose interface for algorithmic reasoning on continuous structures. The paper includes a brief description of the most important concepts of Incone and its sub libraries mf and Metric.&#13;
The results that provide complete computational content include that the algebraic operations and the efficient limit operator on the reals are computable, that the countably infinite product of a space with itself is isomorphic to a space of functions, compatibility of the enumeration representation of subsets of natural numbers with the abstract definition of the space of open subsets of the natural numbers, and that continuous realizability implies sequential continuity. We also describe many non-computational results that support the correctness of definitions from the library. These include that the information theoretic notion of continuity used in the library is equivalent to the metric notion of continuity on Baire space, a complete comparison of the different concepts of continuity that arise from metric and represented space structures and the discontinuity of the unrestricted limit operator on the real numbers and the task of selecting an element of a closed subset of the natural numbers.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.28/LIPIcs.ITP.2019.28.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>computable analysis</keyword>
      <keyword>Coq</keyword>
      <keyword>contionuous functionals</keyword>
      <keyword>discontinuity</keyword>
      <keyword>closed choice on the naturals</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>29:1</startPage>
    <endPage>29:18</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.29</doi>
    <documentType>article</documentType>
    <title language="eng">Deriving Proved Equality Tests in Coq-Elpi: Stronger Induction Principles for Containers in Coq</title>
    <authors>
      <author>
        <name>Tassi, Enrico</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Université côte d'Azur - Inria, France</affiliationName>
    </affiliationsList>
    <abstract language="eng">We describe a procedure to derive equality tests and their correctness proofs from inductive type declarations in Coq. Programs and proofs are derived compositionally, reusing code and proofs derived previously. &#13;
The key steps are two. First, we design appropriate induction principles for data types defined using parametric containers. Second, we develop a technique to work around the modularity limitations imposed by the purely syntactic termination check Coq performs on recursive proofs. The unary parametricity translation of inductive data types turns out to be the key to both steps.&#13;
Last but not least, we provide an implementation of the procedure for the Coq proof assistant based on the Elpi [Dunchev et al., 2015] extension language.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.29/LIPIcs.ITP.2019.29.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Coq</keyword>
      <keyword>Containers</keyword>
      <keyword>Induction</keyword>
      <keyword>Equality test</keyword>
      <keyword>Parametricity translation</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>30:1</startPage>
    <endPage>30:16</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.30</doi>
    <documentType>article</documentType>
    <title language="eng">Complete Non-Orders and Fixed Points</title>
    <authors>
      <author>
        <name>Yamada, Akihisa</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-8872-2240</orcid_id>
      </author>
      <author>
        <name>Dubut, Jérémy</name>
        <affiliationId>1</affiliationId>
        <affiliationId>2</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">National Institute of Informatics, Tokyo, Japan</affiliationName>
      <affiliationName affiliationId="2">Japanese-French Laboratory for Informatics, Tokyo, Japan</affiliationName>
    </affiliationsList>
    <abstract language="eng">In this paper, we develop an Isabelle/HOL library of order-theoretic concepts, such as various completeness conditions and fixed-point theorems. We keep our formalization as general as possible: we reprove several well-known results about complete orders, often without any property of ordering, thus complete non-orders. In particular, we generalize the Knaster - Tarski theorem so that we ensure the existence of a quasi-fixed point of monotone maps over complete non-orders, and show that the set of quasi-fixed points is complete under a mild condition - attractivity - which is implied by either antisymmetry or transitivity. This result generalizes and strengthens a result by Stauti and Maaden. Finally, we recover Kleene’s fixed-point theorem for omega-complete non-orders, again using attractivity to prove that Kleene’s fixed points are least quasi-fixed points.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.30/LIPIcs.ITP.2019.30.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Order Theory</keyword>
      <keyword>Lattice Theory</keyword>
      <keyword>Fixed-Points</keyword>
      <keyword>Isabelle/HOL</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>31:1</startPage>
    <endPage>31:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.31</doi>
    <documentType>article</documentType>
    <title language="eng">Verified Decision Procedures for Modal Logics</title>
    <authors>
      <author>
        <name>Wu, Minchao</name>
        <affiliationId>1</affiliationId>
        <orcid_id>https://orcid.org/0000-0001-7651-7944</orcid_id>
      </author>
      <author>
        <name>Goré, Rajeev</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Research School of Computer Science, Australian National University, Australia</affiliationName>
    </affiliationsList>
    <abstract language="eng">We describe a formalization of modal tableaux with histories for the modal logics K, KT and S4 in Lean. We describe how we formalized the static and transitional rules, the non-trivial termination and the correctness of loop-checks. The formalized tableaux are essentially executable decision procedures with soundness and completeness proved. Termination is also proved in order to define them as functions in Lean. All of these decision procedures return a concrete Kripke model in cases where the input set of formulas is satisfiable, and a proof constructed via the tableau rules witnessing unsatisfiability otherwise. We also describe an extensible formalization of backjumping and its verified implementation for the modal logic K. As far as we know, these are the first verified decision procedures for these modal logics.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.31/LIPIcs.ITP.2019.31.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Formal Methods</keyword>
      <keyword>Interactive Theorem Proving</keyword>
      <keyword>Modal Logic</keyword>
      <keyword>Lean</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>32:1</startPage>
    <endPage>32:19</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.32</doi>
    <documentType>article</documentType>
    <title language="eng">Characteristic Formulae for Liveness Properties of Non-Terminating CakeML Programs</title>
    <authors>
      <author>
        <name>Åman Pohjola, Johannes</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Rostedt, Henrik</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Myreen, Magnus O.</name>
        <affiliationId>2</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Data61/CSIRO, Sydney, Australia, University of New South Wales, Sydney, Australia</affiliationName>
      <affiliationName affiliationId="2">Chalmers University of Technology, Gothenburg, Sweden</affiliationName>
    </affiliationsList>
    <abstract language="eng">There are useful programs that do not terminate, and yet standard Hoare logics are not able to prove liveness properties about non-terminating programs. This paper shows how a Hoare-like programming logic framework (characteristic formulae) can be extended to enable reasoning about the I/O behaviour of programs that do not terminate. The approach is inspired by transfinite induction rather than coinduction, and does not require non-terminating loops to be productive. This work has been developed in the HOL4 theorem prover and has been integrated into the ecosystem of proof tools surrounding the CakeML programming language.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.32/LIPIcs.ITP.2019.32.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Program verification</keyword>
      <keyword>non-termination</keyword>
      <keyword>liveness</keyword>
      <keyword>Hoare logic</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>33:1</startPage>
    <endPage>33:7</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.33</doi>
    <documentType>article</documentType>
    <title language="eng">The DPRM Theorem in Isabelle (Short Paper)</title>
    <authors>
      <author>
        <name>Bayer, Jonas</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>David, Marco</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Pal, Abhik</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Stock, Benedikt</name>
        <affiliationId>2</affiliationId>
      </author>
      <author>
        <name>Schleicher, Dierk</name>
        <affiliationId>3</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Freie Universität Berlin, Arnimallee 2, 14195 Berlin, Germany</affiliationName>
      <affiliationName affiliationId="2">Jacobs University Bremen, Campus Ring 1, 28759 Bremen, Germany</affiliationName>
      <affiliationName affiliationId="3">Technische Universität Berlin, Germany</affiliationName>
    </affiliationsList>
    <abstract language="eng">Hilbert’s 10th problem asks for an algorithm to tell whether or not a given diophantine equation has a solution over the integers. The non-existence of such an algorithm was shown in 1970 by Yuri Matiyasevich. The key step is known as the DPRM theorem: every recursively enumerable set of natural numbers is Diophantine. We present the formalization of Matiyasevich’s proof of the DPRM theorem in Isabelle. To represent recursively enumerable sets in equations, we implement and arithmetize register machines. Using several number-theoretic lemmas, we prove that exponentiation has a diophantine representation. Further, we contribute a small library of number-theoretic implementations of binary digit-wise relations. Finally, we discuss and contribute an is_diophantine predicate. We expect the complete formalization of the DPRM theorem in the near future; at present it is complete except for a minor gap in the arithmetization proofs of register machines and extending the is_diophantine predicate by two binary digit-wise relations.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.33/LIPIcs.ITP.2019.33.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>DPRM theorem</keyword>
      <keyword>Hilbert’s tenth problem</keyword>
      <keyword>Diophantine predicates</keyword>
      <keyword>Register machines</keyword>
      <keyword>Recursively enumerable sets</keyword>
      <keyword>Isabelle</keyword>
      <keyword>Formal verification</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>34:1</startPage>
    <endPage>34:8</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.34</doi>
    <documentType>article</documentType>
    <title language="eng">Hammering Mizar by Learning Clause Guidance (Short Paper)</title>
    <authors>
      <author>
        <name>Jakubův, Jan</name>
        <affiliationId>1</affiliationId>
      </author>
      <author>
        <name>Urban, Josef</name>
        <affiliationId>1</affiliationId>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Czech Technical University in Prague, Czech Republic</affiliationName>
    </affiliationsList>
    <abstract language="eng">We describe a very large improvement of existing hammer-style proof automation over large ITP libraries by combining learning and theorem proving. In particular, we have integrated state-of-the-art machine learners into the E automated theorem prover, and developed methods that allow learning and efficient internal guidance of E over the whole Mizar library. The resulting trained system improves the real-time performance of E on the Mizar library by 70% in a single-strategy setting.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.34/LIPIcs.ITP.2019.34.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Proof automation</keyword>
      <keyword>ITP hammers</keyword>
      <keyword>Automated theorem proving</keyword>
      <keyword>Machine learning</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>35:1</startPage>
    <endPage>35:7</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.35</doi>
    <documentType>article</documentType>
    <title language="eng">Declarative Proof Translation (Short Paper)</title>
    <authors>
      <author>
        <name>Kaliszyk, Cezary</name>
        <affiliationId>1</affiliationId>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-8273-6059</orcid_id>
      </author>
      <author>
        <name>Pąk, Karol</name>
        <affiliationId>3</affiliationId>
        <orcid_id>https://orcid.org/0000-0002-7099-1669</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">University of Innsbruck, Austria</affiliationName>
      <affiliationName affiliationId="2">University of Warsaw, Poland</affiliationName>
      <affiliationName affiliationId="3">University of Białystok, Poland</affiliationName>
    </affiliationsList>
    <abstract language="eng">Declarative proof styles of different proof assistants include a number of incompatible features. In this paper we discuss and classify the differences between them and propose efficient algorithms for declarative proof outline translation. We demonstrate the practicality of our algorithms by automatically translating the proof outlines in 200 articles from the Mizar Mathematical Library to the Isabelle/Isar proof style. This generates the corresponding theories with 15301 proof outlines accepted by the Isabelle proof checker. The goal of our translation is to produce a declarative proof in the target system that is both accepted and short and therefore readable. For this three kinds of adaptations are required. First, the proof structure often needs to be rebuilt to capture the extensions of the natural deduction rules supported by the systems. Second, the references to previous items and their labels need to be matched and aligned. Finally, adaptations in the annotations of individual proof step may be necessary.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.35/LIPIcs.ITP.2019.35.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Declarative Proof</keyword>
      <keyword>Translation</keyword>
      <keyword>Isabelle/Isar</keyword>
      <keyword>Mizar</keyword>
    </keywords>
  </record>
  <record>
    <language>eng</language>
    <publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</publisher>
    <journalTitle>Leibniz International Proceedings in Informatics</journalTitle>
    <eissn>1868-8969</eissn>
    <publicationDate>2019-09-05</publicationDate>
    <volume>141</volume>
    <startPage>36:1</startPage>
    <endPage>36:7</endPage>
    <doi>10.4230/LIPIcs.ITP.2019.36</doi>
    <documentType>article</documentType>
    <title language="eng">Formalization of the Domination Chain with Weighted Parameters (Short Paper)</title>
    <authors>
      <author>
        <name>Severín, Daniel E.</name>
        <affiliationId>1</affiliationId>
        <affiliationId>2</affiliationId>
        <orcid_id>https://orcid.org/0000-0003-2391-3489</orcid_id>
      </author>
    </authors>
    <affiliationsList>
      <affiliationName affiliationId="1">Depto. de Matemática, Universidad Nacional de Rosario, Argentina</affiliationName>
      <affiliationName affiliationId="2">CONICET, Argentina</affiliationName>
    </affiliationsList>
    <abstract language="eng">The Cockayne-Hedetniemi Domination Chain is a chain of inequalities between classic parameters of graph theory: for a given graph G, ir(G) &lt;= gamma(G) &lt;= iota(G) &lt;= alpha(G) &lt;= Gamma(G) &lt;= IR(G). These parameters return the maximum/minimum cardinality of a set satisfying some property. However, they can be generalized for graphs with weighted vertices where the objective is to maximize/minimize the sum of weights of a set satisfying the same property, and the domination chain still holds for them. In this work, the definition of these parameters as well as the chain is formalized in Coq/Ssreflect.</abstract>
    <fullTextUrl format="pdf">https://drops.dagstuhl.de/storage/00lipics/lipics-vol141-itp2019/LIPIcs.ITP.2019.36/LIPIcs.ITP.2019.36.pdf</fullTextUrl>
    <keywords language="eng">
      <keyword>Domination Chain</keyword>
      <keyword>Coq</keyword>
      <keyword>Formalization of Mathematics</keyword>
    </keywords>
  </record>
</records>
