The paper is available, as are the slides with movies given at ICLP 2012.


Arithmetic circuits arise in the context of weighted logic programming languages, such as Datalog with aggregation, or Dyna. A weighted logic program defines a generalized arithmetic circuit—the weighted version of a proof forest, with nodes having arbitrary rather than boolean values. In this paper, we focus on finite circuits. We present a flexible algorithm for efficiently querying node values as they change under updates to the circuit’s inputs. Unlike traditional algorithms, ours is agnostic about which nodes are tabled (materialized), and can vary smoothly between the traditional strategies of forward and backward chaining. Our algorithm is designed to admit future generalizations, including cyclic and infinite circuits and propagation of delta updates.


  author  = {Nathaniel Wesley Filardo and Jason Eisner},
  title   = {A Flexible Solver for Finite Arithmetic Circuits},
  booktitle={Technical Communications of the 28th International Conference on
            Logic Programming, ICLP 2012},
  editor  = {Agostino Dovier and V\'{\i}tor Santos Costa},
  series  = {Leibniz International Proceedings in Informatics (LIPIcs)},
  volume  = {17},
  pages   = {425--438},
  isbn    = {978-3-939897-43-9},
  year    = {2012},
  month   = {9},
  address = {Budapest}