<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Synthesizing Invariants via Iterative Learning of Decision Trees</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Pranav Garg</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Neider</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>P. Madhusudan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dan Roth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Illinois at Urbana-Champaign</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <volume>8559</volume>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Automatically synthesizing inductive invariants (i.e., statements about the
configurations of a program that remain true during its execution) lies at the heart
of automated program verification. Once an inductive invariant is found or given
by the user, the problem of checking whether the program satisfies a specification
can be reduced to logical validity of so-called verification conditions, which is
increasingly tractable with the advances in automated logic solvers.</p>
      <p>In recent years, the black-box or learning approach to finding invariants has
gained popularity. In this data-driven approach, the synthesizer of invariants is
split into two components. One component is a teacher, which is essentially a
program verifier that can verify the program using a conjectured invariant; in case
that the conjecture is inadequate to verify the program against the specification,
the teacher can return a counterexample (i.e., a concrete program configuration)
as a witness to why this is the case. The other component is a learner, which
learns a candidate invariant from counterexamples returned by the teacher. Both
components are run in alternation until the learner proposes an invariant that is
adequate to verify the program.</p>
      <p>One of the biggest advantages of the black-box learning paradigm is the
possible usage of machine learning techniques to synthesize invariants. The
learner, being completely agnostic to the program (its programming language,
semantics, etc.), can be seen as a machine learning algorithm that learns a
Boolean classifier of program configurations. However, Garg et al. [2] argue that
learning from positively or negatively classified program configurations alone
does not form a robust paradigm for learning invariants. Instead, the authors
propose to allow the teacher to return implications x ⇒ y, where both x and y
are program configurations, with the constraint that the learner must propose
a classifier such that if x is classified as true, so is y (intuitively, implications
capture the semantics of a program). The resulting learning setting is called ICE
learning (short for implication-counterexamples) and entails that the learner now
additionally needs to handle implications.</p>
      <p>The goal of our paper [1] is to adapt Quinlan’s decision tree learning algorithms
to the ICE learning model in order to synthesize invariants. Our key contributions
are: (i) a generic top-down decision tree learning algorithm that learns from
training data with implications; (ii) several novel “information gain” measures
that are used to determine the best attribute to split on the current collection
of examples and implications; (iii) a convergence mechanism that guarantees
learning an invariant if one exists; and (iv) an extensive experimental evaluation.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>