Abduction: the scratch-context lifecycle, the gate on what may be assumed, and the
mint/re-prove loop over the dead ends res/prove reports. See docs/abduction.md.
Everything this namespace needs from vaelii.core arrives in one ops map —
{:rules-fn (fn [kb goal context]) :assert f :edit f} — and nothing here names
vaelii.core. Handing them down works because vaelii.core is the sole caller of
the entry points that write; a NAT mint, reached from inside the chaining fixpoint,
goes through vaelii.impl.wiring instead.
Abduction: the scratch-context lifecycle, the gate on what may be assumed, and the
mint/re-prove loop over the dead ends `res/prove` reports. See docs/abduction.md.
Everything this namespace needs from `vaelii.core` arrives in one `ops` map —
`{:rules-fn (fn [kb goal context]) :assert f :edit f}` — and nothing here names
`vaelii.core`. Handing them down works because `vaelii.core` is the sole caller of
the entry points that write; a NAT mint, reached from inside the chaining fixpoint,
goes through `vaelii.impl.wiring` instead.The token the abduction context is named by, or nil for a fresh one. vaelii.core
binds it to the token an operation-log frame records for an abduce call
(vaelii.impl.oplog), so the recorded call names the context the call named.
The token the abduction context is named by, or nil for a fresh one. `vaelii.core` binds it to the token an operation-log frame records for an `abduce` call (`vaelii.impl.oplog`), so the recorded call names the context the call named.
(abducible? kb sentence context)May sentence be hypothesized in context? True when it is a ground literal whose
predicate abducible_predicate grants (read scoped from context), that assert
would admit (special/inadmissible), and whose negation is not visible and believed
from context. Cheapest test first; the reasons are docs/abduction.md, "The gate".
May `sentence` be hypothesized in `context`? True when it is a ground literal whose predicate `abducible_predicate` grants (read scoped from `context`), that `assert` would admit (`special/inadmissible`), and whose negation is not visible and believed from `context`. Cheapest test first; the reasons are docs/abduction.md, "The gate".
(context-for token)The abduction context named by token: CxAbduction<token>, an ordinary context.
The abduction context named by `token`: `CxAbduction<token>`, an ordinary context.
The caps: :max-hypotheses bounds how much one call may assume, :max-depth the rule
expansions past which a dead end is left alone.
The caps: `:max-hypotheses` bounds how much one call may assume, `:max-depth` the rule expansions past which a dead end is left alone.
(discard! kb actx ops)Discard the abduction context whole: every sentex in it, then the edges that made it a
context. Answers {:removed-sentexes n :removed-justifications n}; idempotent.
The extent goes in one edit, so one settle and its sweep take the derived content
with the hypotheses. The edges are removed separately because they are not in the
extent: genlCx is forced-decontextualized, so it is stored in CxUniverse.
Discard the abduction context whole: every sentex in it, then the edges that made it a
context. Answers `{:removed-sentexes n :removed-justifications n}`; idempotent.
The extent goes in one `edit`, so one settle and its sweep take the derived content
with the hypotheses. The edges are removed separately because they are not in the
extent: `genlCx` is forced-decontextualized, so it is stored in CxUniverse.(new-token)A fresh context token. Random rather than content-keyed: two abductions of one goal in one process must not share a scratch context, and the caller reads the context out of the result rather than predicting it.
A fresh context token. Random rather than content-keyed: two abductions of one goal in one process must not share a scratch context, and the caller reads the context out of the result rather than predicting it.
(run kb goals context opts ops)The body of vaelii.core/abduce, which states the result. goals is the vector the
DFS takes, opts default-opts' caps plus :keep?, ops the map the ns docstring
names.
The body of `vaelii.core/abduce`, which states the result. `goals` is the vector the DFS takes, `opts` `default-opts`' caps plus `:keep?`, `ops` the map the ns docstring names.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |