@@ -269,48 +269,15 @@ Here you can see how the forest captures both the answers we have
269
269
created thus far * and* the strands that will let us try to produce
270
270
more answers later on.
271
271
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