ArticleslgStudy

science

SLD resolution

SLD resolution is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand SLD resolution rather than just read about it. In short: SLD resolution (Selective Linear Definite clause resolution) is the basic inference rule used in logic programming. It is a refinement of resolution that is both sound and refutation complete for Horn clauses.

Key takeaways

  • SLD resolution belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect SLD resolution to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of SLD resolution from memory before moving on to harder problems.

Reference excerpt

SLD resolution (Selective Linear Definite clause resolution) is the basic inference rule used in logic programming. It is a refinement of resolution that is both sound and refutation complete for Horn clauses.

The SLD inference rule Given a goal clause, represented as the negation of a problem to be solved:

¬ L 1 ∨ ⋯ ∨ ¬ L i ∨ ⋯ ∨ ¬ L n {\displaystyle \neg L_{1}\lor \cdots \lor \neg L_{i}\lor \cdots \lor \neg L_{n}}

with selected literal ¬ L i {\displaystyle \neg L_{i}} , and an input definite clause:

L ∨ ¬ K 1 ∨ ⋯ ∨ ¬ K m {\displaystyle L\lor \neg K_{1}\lor \cdots \lor \neg K_{m}}

whose positive literal (atom) L {\displaystyle L\,} unifies with the atom L i {\displaystyle L_{i}\,} of the selected literal ¬ L i {\displaystyle \neg L_{i}\,} , SLD resolution derives another goal clause, in which the selected literal is replaced by the negative literals of the input clause and the unifying substitution θ {\displaystyle \theta \,} is applied:

( ¬ L 1 ∨ ⋯ ∨ ¬ K 1 ∨ ⋯ ∨ ¬ K m ∨ ⋯ ∨ ¬ L n ) θ {\displaystyle (\neg L_{1}\lor \cdots \lor \neg K_{1}\lor \cdots \lor \neg K_{m}\ \lor \cdots \lor \neg L_{n})\theta }

In the simplest case, in propositional logic, the atoms L i {\displaystyle L_{i}\,} and L {\displaystyle L\,} are identical, and the unifying substitution θ {\displaystyle \theta \,} is vacuous. However, in the more general case, the unifying substitution is necessary to make the two literals identical.

The origin of the name "SLD" The name "SLD resolution" was given by Maarten van Emden for the unnamed inference rule introduced by Robert Kowalski. Its name is derived from SL resolution, which is both sound and refutation complete for the unrestricted clausal form of logic. "SLD" stands for "SL resolution with Definite clauses". In both, SL and SLD, "L" stands for the fact that a resolution proof can be restricted to a linear sequence of clauses:

C 1 , C 2 , ⋯ , C l {\displaystyle C_{1},C_{2},\cdots ,C_{l}}

where the "top clause" C 1 {\displaystyle C_{1}\,} is an input clause, and every other clause C i + 1 {\displaystyle C_{i+1}\,} is a resolvent one of whose parents is the previous clause C i {\displaystyle C_{i}\,} . The proof is a refutation if the last clause C l {\displaystyle C_{l}\,} is the empty clause. In SLD, all of the clauses in the sequence are goal clauses, and the other parent is an input clause. In SL resolution, the other parent is either an input clause or an ancestor clause earlier in the sequence. In both SL and SLD, "S" stands for the fact that the only literal resolved upon in any clause C i {\displaystyle C_{i}\,} is one that is uniquely selected by a selection rule or selection function. In SL resolution, the selected literal is restricted to one which has been most recently introduced into the clause. In the simplest case, such a last-in-first-out selection function can be specified by the order in which literals are written, as in Prolog. However, the selection function in SLD resolution is more general than in SL resolution and in Prolog. There is no restriction on the literal that can be selected.

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with SLD resolution

Start with the simplest possible case. Write down what SLD resolution claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to SLD resolution before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about SLD resolution ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of SLD resolution

In research
SLD resolution appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses SLD resolution in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
SLD resolution is common in secondary-school and first-year university syllabi. It links to neighbouring topics Logic programming, Rules of inference, so understanding it makes those chapters shorter.
In everyday life
Look for SLD resolution outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study SLD resolution in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what SLD resolution means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain SLD resolution out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is SLD resolution in simple terms?

SLD resolution (Selective Linear Definite clause resolution) is the basic inference rule used in logic programming. It is a refinement of resolution that is both sound and refutation complete for Horn clauses.

Why does SLD resolution matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study SLD resolution?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on SLD resolution.

Tags

  • Logic programming
  • Rules of inference

Keep exploring