<?xml version="1.0" encoding="UTF-8"?>

<modsCollection xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.loc.gov/mods/v3" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-3.xsd">
<mods version="3.3">

<genre>conference paper</genre>

<titleInfo><title>Synthesizing multiple boolean functions using interpolation on a single proof</title></titleInfo>


<note type="publicationStatus">published</note>


<note type="qualityControlled">yes</note>

<name type="personal">
  <namePart type="given">Georg</namePart>
  <namePart type="family">Hofferek</namePart>
  <role><roleTerm type="text">author</roleTerm> </role></name>
<name type="personal">
  <namePart type="given">Ashutosh</namePart>
  <namePart type="family">Gupta</namePart>
  <role><roleTerm type="text">author</roleTerm> </role><identifier type="local">335E5684-F248-11E8-B48F-1D18A9856A87</identifier></name>
<name type="personal">
  <namePart type="given">Bettina</namePart>
  <namePart type="family">Könighofer</namePart>
  <role><roleTerm type="text">author</roleTerm> </role></name>
<name type="personal">
  <namePart type="given">Jie</namePart>
  <namePart type="family">Jiang</namePart>
  <role><roleTerm type="text">author</roleTerm> </role></name>
<name type="personal">
  <namePart type="given">Roderick</namePart>
  <namePart type="family">Bloem</namePart>
  <role><roleTerm type="text">author</roleTerm> </role></name>







<name type="corporate">
  <namePart></namePart>
  <identifier type="local">ToHe</identifier>
  <role>
    <roleTerm type="text">department</roleTerm>
  </role>
</name>



<name type="conference">
  <namePart>FMCAD: Formal Methods in Computer-Aided Design</namePart>
</name>



<name type="corporate">
  <namePart>Rigorous Systems Engineering</namePart>
  <role><roleTerm type="text">project</roleTerm></role>
</name>
<name type="corporate">
  <namePart>Quantitative Reactive Modeling</namePart>
  <role><roleTerm type="text">project</roleTerm></role>
</name>



<abstract lang="eng">It is often difficult to correctly implement a Boolean controller for a complex system, especially when concurrency is involved. Yet, it may be easy to formally specify a controller. For instance, for a pipelined processor it suffices to state that the visible behavior of the pipelined system should be identical to a non-pipelined reference system (Burch-Dill paradigm). We present a novel procedure to efficiently synthesize multiple Boolean control signals from a specification given as a quantified first-order formula (with a specific quantifier structure). Our approach uses uninterpreted functions to abstract details of the design. We construct an unsatisfiable SMT formula from the given specification. Then, from just one proof of unsatisfiability, we use a variant of Craig interpolation to compute multiple coordinated interpolants that implement the Boolean control signals. Our method avoids iterative learning and back-substitution of the control functions. We applied our approach to synthesize a controller for a simple two-stage pipelined processor, and present first experimental results.</abstract>

<originInfo><publisher>IEEE</publisher><dateIssued encoding="w3cdtf">2013</dateIssued><place><placeTerm type="text">Portland, OR, United States</placeTerm></place>
</originInfo>
<language><languageTerm authority="iso639-2b" type="code">eng</languageTerm>
</language>



<relatedItem type="host"><titleInfo><title>2013 Formal Methods in Computer-Aided Design</title></titleInfo>
  <identifier type="arXiv">1308.4767</identifier><identifier type="doi">10.1109/FMCAD.2013.6679394</identifier>
<part><extent unit="pages">77 - 84</extent>
</part>
</relatedItem>


<extension>
<bibliographicCitation>
<ama>Hofferek G, Gupta A, Könighofer B, Jiang J, Bloem R. Synthesizing multiple boolean functions using interpolation on a single proof. In: &lt;i&gt;2013 Formal Methods in Computer-Aided Design&lt;/i&gt;. IEEE; 2013:77-84. doi:&lt;a href=&quot;https://doi.org/10.1109/FMCAD.2013.6679394&quot;&gt;10.1109/FMCAD.2013.6679394&lt;/a&gt;</ama>
<short>G. Hofferek, A. Gupta, B. Könighofer, J. Jiang, R. Bloem, in:, 2013 Formal Methods in Computer-Aided Design, IEEE, 2013, pp. 77–84.</short>
<ieee>G. Hofferek, A. Gupta, B. Könighofer, J. Jiang, and R. Bloem, “Synthesizing multiple boolean functions using interpolation on a single proof,” in &lt;i&gt;2013 Formal Methods in Computer-Aided Design&lt;/i&gt;, Portland, OR, United States, 2013, pp. 77–84.</ieee>
<chicago>Hofferek, Georg, Ashutosh Gupta, Bettina Könighofer, Jie Jiang, and Roderick Bloem. “Synthesizing Multiple Boolean Functions Using Interpolation on a Single Proof.” In &lt;i&gt;2013 Formal Methods in Computer-Aided Design&lt;/i&gt;, 77–84. IEEE, 2013. &lt;a href=&quot;https://doi.org/10.1109/FMCAD.2013.6679394&quot;&gt;https://doi.org/10.1109/FMCAD.2013.6679394&lt;/a&gt;.</chicago>
<mla>Hofferek, Georg, et al. “Synthesizing Multiple Boolean Functions Using Interpolation on a Single Proof.” &lt;i&gt;2013 Formal Methods in Computer-Aided Design&lt;/i&gt;, IEEE, 2013, pp. 77–84, doi:&lt;a href=&quot;https://doi.org/10.1109/FMCAD.2013.6679394&quot;&gt;10.1109/FMCAD.2013.6679394&lt;/a&gt;.</mla>
<ista>Hofferek G, Gupta A, Könighofer B, Jiang J, Bloem R. 2013. Synthesizing multiple boolean functions using interpolation on a single proof. 2013 Formal Methods in Computer-Aided Design. FMCAD: Formal Methods in Computer-Aided Design, 77–84.</ista>
<apa>Hofferek, G., Gupta, A., Könighofer, B., Jiang, J., &amp;#38; Bloem, R. (2013). Synthesizing multiple boolean functions using interpolation on a single proof. In &lt;i&gt;2013 Formal Methods in Computer-Aided Design&lt;/i&gt; (pp. 77–84). Portland, OR, United States: IEEE. &lt;a href=&quot;https://doi.org/10.1109/FMCAD.2013.6679394&quot;&gt;https://doi.org/10.1109/FMCAD.2013.6679394&lt;/a&gt;</apa>
</bibliographicCitation>
</extension>
<recordInfo><recordIdentifier>1385</recordIdentifier><recordCreationDate encoding="w3cdtf">2018-12-11T11:51:43Z</recordCreationDate><recordChangeDate encoding="w3cdtf">2024-10-21T06:02:56Z</recordChangeDate>
</recordInfo>
</mods>
</modsCollection>
