Horn-ice learning for synthesizing invariants and contracts

P. Ezudheen, Daniel Neider, Deepak D'Souza, Pranav Garg, P. Madhusudan

Research output: Contribution to journalArticlepeer-review


We design learning algorithms for synthesizing invariants using Horn implication counterexamples (Horn-ICE), extending the ICE learning model. In particular, we describe a decision tree learning algorithm that learns from non-linear Horn-ICE samples, works in polynomial time, and uses statistical heuristics to learn small trees that satisfy the samples. Since most verification proofs can be modeled using non-linear Horn clauses, Horn-ICE learning is a more robust technique to learn inductive annotations that prove programs correct. Our experiments show that an implementation of our algorithm is able to learn adequate inductive invariants and contracts efficiently for a variety of sequential and concurrent programs.

Original languageEnglish (US)
Article number131
JournalProceedings of the ACM on Programming Languages
Issue numberOOPSLA
StatePublished - Nov 2018


  • Constrained Horn Clauses
  • Decision Trees
  • ICE Learning
  • Software Verification

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality


Dive into the research topics of 'Horn-ice learning for synthesizing invariants and contracts'. Together they form a unique fingerprint.

Cite this