Skip to content

Commit 62c8d04

Browse files
committed
SLG: Replace heritage section with links to it elsewhere
Maybe we want to include this in the bibliography or something, though.
1 parent 69d42aa commit 62c8d04

File tree

1 file changed

+12
-45
lines changed

1 file changed

+12
-45
lines changed

src/traits/slg.md

Lines changed: 12 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -269,48 +269,15 @@ Here you can see how the forest captures both the answers we have
269269
created thus far *and* the strands that will let us try to produce
270270
more answers later on.
271271

272-
## Heritage and acroynms
273-
274-
This solver implements the SLG solving technique, though extended to
275-
accommodate hereditary harrop (HH) predicates, as well as the needs of
276-
lazy normalization.
277-
278-
Its design is kind of a fusion of [MiniKanren] and the following
279-
papers, which I will refer to as EWFS and NTFD respectively:
280-
281-
> Efficient Top-Down Computation of Queries Under the Well-formed Semantics
282-
> (Chen, Swift, and Warren; Journal of Logic Programming '95)
283-
284-
> A New Formulation of Tabled resolution With Delay
285-
> (Swift; EPIA '99)
286-
287-
[MiniKanren]: http://minikanren.org/
288-
289-
In addition, I incorporated extensions from the following papers,
290-
which I will refer to as SA and RR respectively, that describes how to
291-
do introduce approximation when processing subgoals and so forth:
292-
293-
> Terminating Evaluation of Logic Programs with Finite Three-Valued Models
294-
> Riguzzi and Swift; ACM Transactions on Computational Logic 2013
295-
> (Introduces "subgoal abstraction", hence the name SA)
296-
>
297-
> Radial Restraint
298-
> Grosof and Swift; 2013
299-
300-
Another useful paper that gives a kind of high-level overview of
301-
concepts at play is the following:
302-
303-
> XSB: Extending Prolog with Tabled Logic Programming
304-
> (Swift and Warren; Theory and Practice of Logic Programming '10)
305-
306-
There are a places where I intentionally diverged from the semantics
307-
as described in the papers -- e.g. by more aggressively approximating
308-
-- which I marked them with a comment DIVERGENCE. Those places may
309-
want to be evaluated in the future.
310-
311-
A few other acronyms that I use:
312-
313-
- WAM: Warren abstract machine, an efficient way to evaluate Prolog programs.
314-
See <http://wambook.sourceforge.net/>.
315-
- HH: Hereditary harrop predicates. What Chalk deals in.
316-
Popularized by Lambda Prolog.
272+
## See also
273+
274+
- [chalk_solve README][readme], which contains links to papers used and
275+
acronyms referenced in the code
276+
- This section is a lightly adapted version of the blog post [An on-demand
277+
SLG solver for chalk][slg-blog]
278+
- [Negative Reasoning in Chalk][negative-reasoning-blog] explains the need
279+
for negative reasoning, but not how the SLG solver does it
280+
281+
[readme]: https://github.com/rust-lang-nursery/chalk/blob/239e4ae4e69b2785b5f99e0f2b41fc16b0b4e65e/chalk-engine/src/README.md
282+
[slg-blog]: http://smallcultfollowing.com/babysteps/blog/2018/01/31/an-on-demand-slg-solver-for-chalk/
283+
[negative-reasoning-blog]: http://aturon.github.io/blog/2017/04/24/negative-chalk/

0 commit comments

Comments
 (0)