mk: not-membero — relational "x is not in l"
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 25s

Mirrors the structure all-distincto already uses internally: walk the
list, ensure each element is not equal to x via nafc, recurse on tail.
Useful as a constraint-style filter:

  (membero x (list 1 2 3 4 5))
  (not-membero x (list 2 4))
    -> x in {1, 3, 5}

4 new tests, 382/382 cumulative.
This commit is contained in:
2026-05-08 11:36:14 +00:00
parent c2b238635f
commit 7b6cb64548
3 changed files with 42 additions and 1 deletions

View File

@@ -173,6 +173,10 @@ _(none yet)_
_Newest first._
- **2026-05-08** — **not-membero**: relational "x is not a member of l".
Uses `nafc + ==` per element (the same skeleton all-distincto uses).
Useful as a constraint-style filter: `(membero x dom) (not-membero x
excluded)`. 4 new tests, 382/382 cumulative.
- **2026-05-08** — **repeato + concato**: repeato builds a list of n copies
(Peano n); concato is fold-appendo over a list of lists. Both run forward
and backward — repeato can recover the count from a uniform list. 10 new