Docs: defeater examples use the wrong head polarity and obsolete syntax #17
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Elephant's documentation teaches defeaters with the wrong head polarity, and several examples still use the rejected legacy
~>spelling. Following those examples produces an inert or oppositely-directed attacker rather than a rule that blocks the named conclusion.This caused six signed defeaters in the FLF two-agent run to be retracted and reasserted with corrected heads, unnecessarily polluting the shared audit log.
Current examples
Several documents say that this blocks
release-v230-ready:or use:
Affected locations include:
docs/dialect-spec.md("Assert a defeater")docs/spl-patterns.md("Defeater as cancellation" and combined example)docs/demo-walkthrough.mddocs/cli.md(task block)docs/identity-and-corpus.mdand the tech deck, which do not explain polarityActual engine semantics
To block positive
q, the defeater must be an applicable rule for its complement:The defeater uses
(not q)as its attacking head but does not derive(not q)as a conclusion. This is also how the engine's own regression fixtures and reasoner tests are written.For the recorded run, these were the required forms:
Expected / acceptance criteria
~>example with canonicalexcept.qso their head is(not q).qfrom+dto not provable while(not q)remains not provable.Environment
Observed with Elephant 0.1.2 during the FLF shared-theory run; current reasoner tests retain complement-head semantics.
Resolved on
mainby834d4e7. Elephant's own docs now state defeater polarity explicitly —docs/concepts/Defeasible Logic.mdhas a "Defeater polarity" section ((except d p (not q))blocks positiveq, moving it+d→-D, while a positive head is an inert-for-blocking mistake), plus an executable fixture intests/queries_cli.rs;docs/concepts/SPL.mdlinks it and both note the legacy~>spelling is rejected. No remaining~>or wrong-polarity examples in this repo. The only outstanding item is the stale examples in the linked Spindle reference doc (spindle-rust/docs/src/reference/spl.md) — a separate repository, out of scope here.