<?xml version="1.0" encoding="utf-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hal="http://hal.archives-ouvertes.fr/" xmlns:gml="http://www.opengis.net/gml/3.3/" xmlns:gmlce="http://www.opengis.net/gml/3.3/ce" version="1.1" xsi:schemaLocation="http://www.tei-c.org/ns/1.0 http://api.archives-ouvertes.fr/documents/aofr-sword.xsd">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>HAL TEI export of hal-01092008</title>
      </titleStmt>
      <publicationStmt>
        <distributor>CCSD</distributor>
        <availability status="restricted">
          <licence target="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 - Universal</licence>
        </availability>
        <date when="2026-05-20T03:22:58+02:00"/>
      </publicationStmt>
      <sourceDesc>
        <p part="N">HAL API Platform</p>
      </sourceDesc>
    </fileDesc>
  </teiHeader>
  <text>
    <body>
      <listBibl>
        <biblFull>
          <titleStmt>
            <title xml:lang="en">Asynchronous Editing for Coq</title>
            <author role="aut">
              <persName>
                <forename type="first">Carst</forename>
                <surname>Tankink</surname>
              </persName>
              <idno type="halauthorid">874913-0</idno>
              <affiliation ref="#struct-211984"/>
            </author>
            <editor role="depositor">
              <persName>
                <forename>Carst</forename>
                <surname>Tankink</surname>
              </persName>
              <email type="md5">c3c0f482e6f7590a9dc7dd7fb6b7be3c</email>
              <email type="domain">inria.fr</email>
            </editor>
          </titleStmt>
          <editionStmt>
            <edition n="v1" type="current">
              <date type="whenSubmitted">2014-12-08 10:32:10</date>
              <date type="whenModified">2025-02-26 15:22:03</date>
              <date type="whenReleased">2014-12-09 14:34:13</date>
              <date type="whenProduced">2014-07-18</date>
              <date type="whenEndEmbargoed">2014-12-08</date>
              <ref type="file" target="https://inria.hal.science/hal-01092008v1/document">
                <date notBefore="2014-12-08"/>
              </ref>
              <ref type="file" subtype="author" n="1" target="https://inria.hal.science/hal-01092008v1/file/coq-workshop-2014.pdf" id="file-1092008-1172208">
                <date notBefore="2014-12-08"/>
              </ref>
            </edition>
            <respStmt>
              <resp>contributor</resp>
              <name key="304430">
                <persName>
                  <forename>Carst</forename>
                  <surname>Tankink</surname>
                </persName>
                <email type="md5">c3c0f482e6f7590a9dc7dd7fb6b7be3c</email>
                <email type="domain">inria.fr</email>
              </name>
            </respStmt>
          </editionStmt>
          <publicationStmt>
            <distributor>CCSD</distributor>
            <idno type="halId">hal-01092008</idno>
            <idno type="halUri">https://inria.hal.science/hal-01092008</idno>
            <idno type="halBibtex">tankink:hal-01092008</idno>
            <idno type="halRefHtml">&lt;i&gt;The Coq Workshop 2014&lt;/i&gt;, Jul 2014, Vienna, Austria</idno>
            <idno type="halRef">The Coq Workshop 2014, Jul 2014, Vienna, Austria</idno>
            <availability status="restricted">
              <licence target="https://about.hal.science/hal-authorisation-v1/">HAL Authorization<ref corresp="#file-1092008-1172208"/></licence>
            </availability>
          </publicationStmt>
          <seriesStmt>
            <idno type="stamp" n="INRIA">INRIA - Institut National de Recherche en Informatique et en Automatique</idno>
            <idno type="stamp" n="INRIA-SACLAY" corresp="INRIA">INRIA Saclay - Ile de France</idno>
            <idno type="stamp" n="INRIA_TEST">INRIA - Institut National de Recherche en Informatique et en Automatique</idno>
            <idno type="stamp" n="TESTALAIN1">TESTALAIN1</idno>
            <idno type="stamp" n="INRIA2">INRIA 2</idno>
          </seriesStmt>
          <notesStmt>
            <note type="audience" n="2">International</note>
            <note type="invited" n="0">No</note>
            <note type="popular" n="0">No</note>
            <note type="peer" n="1">Yes</note>
            <note type="proceedings" n="1">Yes</note>
          </notesStmt>
          <sourceDesc>
            <biblStruct>
              <analytic>
                <title xml:lang="en">Asynchronous Editing for Coq</title>
                <author role="aut">
                  <persName>
                    <forename type="first">Carst</forename>
                    <surname>Tankink</surname>
                  </persName>
                  <idno type="halauthorid">874913-0</idno>
                  <affiliation ref="#struct-211984"/>
                </author>
              </analytic>
              <monogr>
                <meeting>
                  <title>The Coq Workshop 2014</title>
                  <date type="start">2014-07-18</date>
                  <settlement>Vienna</settlement>
                  <country key="AT">Austria</country>
                </meeting>
                <imprint>
                  <date type="datePub">2014-12-08</date>
                </imprint>
              </monogr>
            </biblStruct>
          </sourceDesc>
          <profileDesc>
            <langUsage>
              <language ident="en">English</language>
            </langUsage>
            <textClass>
              <classCode scheme="halDomain" n="info.info-hc">Computer Science [cs]/Human-Computer Interaction [cs.HC]</classCode>
              <classCode scheme="halDomain" n="info.info-fl">Computer Science [cs]/Formal Languages and Automata Theory [cs.FL]</classCode>
              <classCode scheme="halTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halOldTypology" n="COMM">Conference papers</classCode>
              <classCode scheme="halTreeTypology" n="COMM">Conference papers</classCode>
            </textClass>
            <abstract xml:lang="en">
              <p>In this talk, I will demonstrate the integration of the jEdit editor with Coq, developed as part of the Paral-ITP project. jEdit is an editor with very little off-the-shelf functionality, designed to be extended by language-specific plugins. These plugins receive user changes asynchronously, and use these changes to produce feedback. Because the computation model is asynchronous, there is no way for the user to instruct where and when the proof assistant computes on the proof script, as in Proof General and CoqIDE. Instead, the proof assistant plugin is always active in the background, and automatically reacts to changes in the script, reporting states, errors and markup information. The main intent of the talk is to demonstrate the tool, and discuss the differences between asynchronous and synchronous interaction, as well as the future directions of the middleware used by jEdit to communicate with the prover. There are two main benefits to interacting asynchronously with Coq. The first is more freedom for the author in editing the proof, the second is that it allows the proof assistant to schedule the processing of a proof more sophisti-catedly. Interaction benefits The main benefit in interaction is that, in jEdit, the author can edit a proof script at any place, adding lemmas and modifying proofs, without advancing the computation of the prover. In fact, errors that the author introduces in a script do not always influence the state of future proofs, and the author is free to move between to proves to get the statement of a lemma just right before finishing a proof. Sophistication of Computation Scheduling In the ProofGeneral model, the proof structure is revealed to the proof assistant step by step, and the user always wants feedback for the last line executed. In an asynchronous model, the entire proof script is available to the proof assistant at once, and can be used to compute the structure of the proof. This structure can then be used to schedule computations, possibly in parallel, to provide the user with feedback immediately. For example, consider a proof with two lemmas. The first takes a long time to verify, but the user wants to edit the second. In ProofGeneral, when the user focuses on the second lemma, the proof assistant would first verify the first lemma, taking a long time and only then give the control back to the user.</p>
            </abstract>
          </profileDesc>
        </biblFull>
      </listBibl>
    </body>
    <back>
      <listOrg type="structures">
        <org type="researchteam" xml:id="struct-211984" status="OLD">
          <idno type="RNSR">201221067B</idno>
          <orgName>Symbolic Special Functions : Fast and Certified</orgName>
          <orgName type="acronym">SPECFUN</orgName>
          <date type="start">2012-11-01</date>
          <date type="end">2022-03-31</date>
          <desc>
            <address>
              <addrLine>Inria, Bâtiment Alan Turing 1 rue Honoré d'Estienne d'Orves Campus de l'École Polytechnique 91120 Palaiseau</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/equipes/specfun</ref>
          </desc>
          <listRelation>
            <relation active="#struct-118511" type="direct"/>
            <relation active="#struct-300009" type="indirect"/>
          </listRelation>
        </org>
        <org type="laboratory" xml:id="struct-118511" status="VALID">
          <idno type="RNSR">200818248E</idno>
          <idno type="ROR">https://ror.org/0315e5x55</idno>
          <orgName>Centre Inria de Saclay</orgName>
          <desc>
            <address>
              <addrLine>1 rue Honoré d'Estienne d'OrvesBâtiment Alan TuringCampus de l'École Polytechnique91120 Palaiseau</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/centre/saclay</ref>
          </desc>
          <listRelation>
            <relation active="#struct-300009" type="direct"/>
          </listRelation>
        </org>
        <org type="institution" xml:id="struct-300009" status="VALID">
          <idno type="ROR">https://ror.org/02kvxyf05</idno>
          <orgName>Institut National de Recherche en Informatique et en Automatique</orgName>
          <orgName type="acronym">Inria</orgName>
          <desc>
            <address>
              <addrLine>Domaine de VoluceauRocquencourt - BP 10578153 Le Chesnay Cedex</addrLine>
              <country key="FR"/>
            </address>
            <ref type="url">http://www.inria.fr/en/</ref>
          </desc>
        </org>
      </listOrg>
    </back>
  </text>
</TEI>