15-317 Constructive Logic
Lecture 20: Saturation

In this lecture we take an entirely different operational semantics
for inference rules: apply them to a giving initial set of facts and
newly derived facts, until no further new facts can be derived. A
database that is closed under the inference rules in this sense is
said to be saturated. We use graph reachability, liveness analysis
of assembly code, and CYK parsing as examples of algorithms that are
elegantly expressed using saturating rules. This is often referred
to as bottom-up logic programming.