4 papers
Finite Functional Programming
Michael Arntzenius, Max Willsey
We unify functional and logic programming by treating predicatesas functions equipped with their support: the set of inputs whose output is nonzero. Datalog, for instance, is a lan…
Fair intersection of seekable iterators
Michael Arntzenius
miniKanren's key semantic advance over Prolog is to implement a complete yet efficient search strategy, fairly interleaving execution between disjuncts. This fairness is accomplish…
Stream programs are monoid homomorphisms with state
Tyler Hou, Michael Arntzenius, Max Willsey
We define a broad class of deterministic stream functions and show they can be implemented as homomorphisms into a "state" monoid. The homomorphism laws are simpler than the condit…
Finite-Choice Logic Programming
Chris Martens, Robert J. Simmons, Michael Arntzenius
Logic programming, as exemplified by datalog, defines the meaning of a program as its unique smallest model: the deductive closure of its inference rules. However, many problems ca…