* Assume a disequality `NotEqual(x, v)` or `NotEqual(Part(x), v)` * (design §4.1; stored in the §3.2 normal form `NotEqual(subject, v)`).
(proposition: Expression)
| 212 | if (op === 'Equal') return assumeEquality(proposition); |
| 213 | if (op === 'NotEqual') return assumeNotEqual(proposition); |
| 214 | if (op === 'And') return assumeConjunction(proposition); |
| 215 | if (isInequalityOperator(op)) return assumeInequality(proposition); |
| 216 | |
| 217 | // Well-formed predicate shapes that the assumptions layer cannot |
| 218 | // represent (disjunctions, quantifiers...): return 'not-a-predicate' |
| 219 | // instead of throwing, so callers (e.g. the Fungrim loader) can probe |
| 220 | // guard dischargeability in bulk (design §4.1, §9). |
| 221 | if (UNSUPPORTED_PREDICATE_OPERATORS.has(op)) return 'not-a-predicate'; |
| 222 |
no test coverage detected