You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CONTRADICTION is quadratic on a shared subject, so subject is forced 1:1 with the assertion id #40
Reported by a peer session, confirmed by reading engine.validate_contradictions and by
counting this repo's own model.
validate_contradictions groups current assertions by subject and flags every
pair whose claims differ and whose selectors overlap. With no when selectors, selectors_overlap is true, so five assertions on one subject produce C(5,2) = 10
errors and integrity goes INVALID.
The check cannot distinguish different aspects of one subject from incompatible claims
about one proposition. "the gate refuses an unmapped file" and "the gate reports what it
excluded" are both about the gate and are not in conflict.
Confirmation that this repo has been quietly avoiding it rather than solving it: examples/traceos-itself has 13 assertions and 13 distinct subjects. The check has
never fired here. subject currently carries no information the id does not — which is
the peer's point, arrived at from the other direction.
Not obvious what the right answer is, and the invariant budget applies: do not mint a
new field to make the error go away. Candidates, none chosen:
a contradiction requires the claims to be about the same proposition, which nothing
in the model currently expresses;
report it as a warning about an under-specified subject rather than an error about a
contradiction — one finding per subject, not one per pair;
accept that subject is a grouping key only, and delete the check.
What must not happen is a check that is dead in every model where the author was careful
and quadratic in every model where they were not.
Fixed in #53. 10 errors and INVALID became 1 warning and VALID on the reported case. CONTRADICTION now fires only when the latest observations disagree — one supported, one refuted — which is the part that is mechanically decidable; wording differences on one subject are SUBJECT_NOT_DISCRIMINATING, one finding per subject rather than one per pair. The count of pairs was never information, only arithmetic.
Activity
junixlabs commentedon Sep 11, 2026
Fixed in #53. 10 errors and INVALID became 1 warning and VALID on the reported case.
CONTRADICTIONnow fires only when the latest observations disagree — one supported, one refuted — which is the part that is mechanically decidable; wording differences on one subject areSUBJECT_NOT_DISCRIMINATING, one finding per subject rather than one per pair. The count of pairs was never information, only arithmetic.