LDC-E1308 — Noncanonical defeater spelling
What it means
Section titled “What it means”This warning family has two cases: a defeat clause with a strength other
than defeater (the strength is corrected), and defeater with a then
head (the head attacks the written polarity). The message distinguishes
them. default is not a supported rule strength and is refused with E0201;
it is not a third interpretation of this warning.
A defeater attacks an inference; it does not derive one. Its head
names the attacked conclusion, and the canonical spelling is the
defeat clause — a then part on a defeater reads “derive” while
executing “block”, with polarity taken literally. The compiler keeps
the node but warns at the strength, so the author can move the head
into the canonical shape.
The repair is to spell the attack: replace the then part with
defeat over the attacked atom. Note the polarity trap the message
names — then not X attacks candidates for not X, not for X.
Example
Section titled “Example”language "law.core" version "0.2";package demo.diagnostics version "0.1.0";namespace "urn:law:demo:diagnostics";
relation p(x: Text) kind institutional;relation q(x: Text) kind institutional;rule X1 defeater { for v0: Text; when p(v0); then q(v0);}language "law.core" version "0.2";package demo.diagnostics version "0.1.0";namespace "urn:law:demo:diagnostics";
relation p(x: Text) kind institutional;relation q(x: Text) kind institutional;rule Base defeasible { for v0: Text; when p(v0); then q(v0);}rule X1 defeater { for v0: Text; when p(v0); defeat q(v0);}Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.