Re-record and ratify the corpus

This commit is contained in:
developtheweb 2026-07-10 00:00:10 -04:00
parent 5e020dbee1
commit 8bbb99e7aa
167 changed files with 257 additions and 139 deletions

View file

@ -19,7 +19,7 @@ where a different source is noted.
- JS interpreter: accepts (prints `dropqme` — an unknown string escape
drops the backslash silently)
- ANTLR grammar: rejects (token recognition error at: '"drop\q')
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 12 at ad01bbd
## Divergence (fuzz seed 20260709, index 49)
@ -29,7 +29,7 @@ where a different source is noted.
- JS interpreter: rejects (err_unexpected at 1:1)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 20 at ad01bbd
## Divergence (fuzz seed 20260709, index 11)
@ -39,7 +39,7 @@ where a different source is noted.
- JS interpreter: accepts (runs)
- ANTLR grammar: rejects (1:0: token recognition error at: '"a\z')
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 12 at ad01bbd
## Divergence (fuzz seed 20260709, index 86)
@ -49,7 +49,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:5)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 21 at ad01bbd
## Divergence (fuzz seed 20260709, index 247)
@ -59,7 +59,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 21 at ad01bbd
## Divergence (fuzz seed 20260709, index 119)
@ -69,7 +69,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:3)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 21 at ad01bbd
## Divergence (fuzz seed 20260709, index 9)
@ -79,7 +79,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:3)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 22 at cd59791
## Divergence (fuzz seed 20260709, index 144)
@ -89,7 +89,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:5)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 23 at ad01bbd
## Divergence (fuzz seed 20260709, index 456)
@ -99,7 +99,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:8)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 23 at ad01bbd
## Divergence (fuzz seed 20260709, index 182)
@ -109,7 +109,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:8)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 23 at ad01bbd
## Divergence (fuzz seed 20260709, index 284)
@ -119,7 +119,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:6)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 23 at ad01bbd
## Divergence (fuzz seed 20260709, index 276)
@ -129,7 +129,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 23 at ad01bbd
## Divergence (fuzz seed 20260709, index 427)
@ -139,7 +139,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 24 at ad01bbd
## Divergence (fuzz seed 20260709, index 101)
@ -149,7 +149,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 23 at ad01bbd
## Divergence (fuzz seed 20260709, index 425)
@ -159,7 +159,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 24 at ad01bbd
## Divergence (fuzz seed 20260709, index 194)
@ -169,7 +169,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 23 at ad01bbd
## Divergence (fuzz seed 20260709, index 212)
@ -179,7 +179,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 24 at ad01bbd
## Divergence (fuzz seed 20260709, index 25)
@ -189,7 +189,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 24 at ad01bbd
## Divergence (fuzz seed 20260709, index 347)
@ -199,7 +199,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:5)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 21 at ad01bbd
## Divergence (fuzz seed 20260709, index 52)
@ -209,7 +209,7 @@ where a different source is noted.
- JS interpreter: rejects (err_expect at 1:4)
- ANTLR grammar: accepts (parses)
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 26 at c447eb7
## Divergence (fuzz seed 20260709, index 76)
@ -219,7 +219,7 @@ where a different source is noted.
- JS interpreter: accepts (runs)
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 25 at ad01bbd
## Divergence (fuzz seed 20260709, index 13)
@ -229,7 +229,7 @@ where a different source is noted.
- JS interpreter: accepts (runs)
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 25 at ad01bbd
## Divergence (fuzz seed 20260709, index 29)
@ -239,4 +239,18 @@ where a different source is noted.
- JS interpreter: accepts (runs)
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
- RULING: pending (see JUDGMENT_CALLS.md)
- RESOLVED by ruling 25 at ad01bbd
## Divergence (fuzz seed 20260710, index 178 — found during Stage 3 A7)
```
({-42})
```
- JS interpreter: rejected (err_comment — the lexer committed '{-' to a
comment even without a terminator)
- ANTLR grammar: accepts (MULTILINE_COMMENT requires its '-}'; '{' lexes
as a brace, so this is a block containing -42)
- RESOLVED by grammar alignment (decision: the grammar is the syntax
truth) at f5e8407 — no ruling needed; found by the fresh fuzz seed and
fixed before commit

View file

@ -1,9 +1,12 @@
# SURFACE — what `js/mpl.js` actually implements
Audited from the source of `js/mpl.js` (Stage 2, C3) and pinned by the
corpus. This file describes the implemented surface — exactly, no more.
Nothing here is ratified; where behavior looks accidental it is flagged in
`conformance/JUDGMENT_CALLS.md`, but it is recorded as observed.
Audited from the source of `js/mpl.js` at Stage 2 (C3, head `ea66a2a`) and
pinned by the corpus of that stage. **Historical record**: Stage 3 ratified
the 26 judgment calls (2026-07-09) and changed the surface where rulings
overrode it — rationals, boolean conditions, binding discipline, depth
limit, composition, and parser alignment. Where this file and
`JUDGMENT_CALLS.md` disagree, the rulings govern; the ratified corpus is
the executable truth.
## Lexer

View file

@ -1 +1 @@
{"status": "unratified", "source": "example", "decision": "", "notes": "seeded from examples/01_hello_world.mpl"}
{"status": "ratified", "source": "example", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "seeded from examples/01_hello_world.mpl"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "example", "decision": "", "notes": "seeded from examples/02_factorial.mpl"}
{"status": "ratified", "source": "example", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "seeded from examples/02_factorial.mpl"}

View file

@ -1,4 +1,4 @@
-- Factorial example with proper precedence
factorial ≜ λn∈: (n≤1 ⟹ 1) | (n×factorial(n-1));
result factorial(5);
result factorial(5);
✎result;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "× ÷ bind tighter than + -; + - and × ÷ left-associative"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "× ÷ bind tighter than + -; + - and × ÷ left-associative"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unary minus, including doubled and against binary minus"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unary minus, including doubled and against binary minus"}

View file

@ -1,3 +1,3 @@
2.5
2.5
5/2
5/2
3

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "/ is an ASCII alias of ÷"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 4", "notes": "/ is an ASCII alias of ÷"}

View file

@ -1,6 +1,6 @@
42
1.5
0.5
3/2
1/2
2
7
0.5
1/2

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "integral doubles display without decimal point; literals normalize"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 4", "notes": "integral doubles display without decimal point; literals normalize"}

View file

@ -1,3 +1,3 @@
3.75
0.30000000000000004
15/4
3/10
6

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "IEEE double arithmetic, including the 0.1+0.2 representation artifact"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 4", "notes": "IEEE double arithmetic, including the 0.1+0.2 representation artifact"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "string escapes \\n \\t \\\" \\\\ (unknown escapes like \\q diverge from the grammar — see DIVERGENCES.md, not corpus-pinnable)"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 12", "notes": "string escapes \\n \\t \\\" \\\\ (unknown escapes like \\q diverge from the grammar — see DIVERGENCES.md, not corpus-pinnable)"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "+ concatenates when either operand is a string, rendering the other via show"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 5", "notes": "+ concatenates when either operand is a string, rendering the other via show"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "non-ASCII string content passes through byte-intact"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "non-ASCII string content passes through byte-intact"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "lists display with strings quoted inside; closures display as λ"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 5", "notes": "lists display with strings quoted inside; closures display as λ"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "λ definition, display, application, multiple parameters"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 5", "notes": "λ definition, display, application, multiple parameters"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "closures capture the environment, not values at definition time"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 9", "notes": "closures capture the environment, not values at definition time"}

View file

@ -1,4 +1,4 @@
x 10;
x 10;
f ≜ λy: x + y;
✎ f(1);
x ← 20;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "curried application and λ literals as call arguments"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "curried application and λ literals as call arguments"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "binary recursion through a guarded alternative"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "binary recursion through a guarded alternative"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "linear recursion 500 deep (within the host stack)"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 10", "notes": "linear recursion 500 deep (within the host stack)"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∀ with an accumulating assignment"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "∀ with an accumulating assignment"}

View file

@ -1,3 +1,3 @@
t 0;
t 0;
∀ n ∈ [1, 2, 3, 4, 5]: t ← t + n × n;
✎ t;

View file

@ -1,2 +1,2 @@
6

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a ∀ expression yields the last body value; empty collection yields ⊥"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 2", "notes": "a ∀ expression yields the last body value; empty collection yields ⊥"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "the ∀ variable shadows per iteration and the outer binding survives"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 15", "notes": "the ∀ variable shadows per iteration and the outer binding survives"}

View file

@ -1,3 +1,3 @@
n 100;
n 100;
∀ n ∈ [1, 2]: ✎ n;
✎ n;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "the canonical conditional: guarded alternatives with fallback"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 3", "notes": "the canonical conditional: guarded alternatives with fallback"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a guard that never fires, with no | fallback, surfaces as ⊥"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 3", "notes": "a guard that never fires, with no | fallback, surfaces as ⊥"}

View file

@ -1,3 +1,3 @@
✎((false ⟹ 1));
x (false ⟹ 1);
x (false ⟹ 1);
✎ x;

View file

@ -0,0 +1 @@
err_bool

View file

@ -1,5 +0,0 @@
one
no
num
no
no

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "guard conditions: true or non-zero number fire; strings/lists never do"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 13", "notes": "guard conditions: true or non-zero number fire; strings/lists never do"}

View file

@ -1,5 +1 @@
✎((1 ⟹ "one") | "no");
✎((0 ⟹ "zero") | "no");
✎((2.5 ⟹ "num") | "no");
✎(("s" ⟹ "str") | "no");
✎(([1] ⟹ "list") | "no");

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "fall-through chains take the first firing arm"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 3", "notes": "fall-through chains take the first firing arm"}

View file

@ -1,4 +1,2 @@
1
2
3
5

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "≜ and ← both rebind freely; ← works without a prior ≜"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 16", "notes": "≜ and ← both rebind freely; ← works without a prior ≜"}

View file

@ -2,7 +2,3 @@ x ≜ 1;
✎ x;
x ← 2;
✎ x;
x ≜ 3;
✎ x;
y ← 5;
✎ y;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "both binding forms are expressions returning the bound value; ≜ chains right"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 16", "notes": "both binding forms are expressions returning the bound value; ≜ chains right"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "inside a λ, ← mutates the captured outer binding; ≜ creates a local one"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 9 and 16", "notes": "inside a λ, ← mutates the captured outer binding; ≜ creates a local one"}

View file

@ -1,4 +1,4 @@
x 1;
x 1;
f ≜ λy: {x ← 99; x};
f(0);
✎ x;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a block yields its last expression; {} yields ⊥; trailing ; permitted"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 15", "notes": "a block yields its last expression; {} yields ⊥; trailing ; permitted"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "braces do NOT create a scope: bindings made inside leak out"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 15", "notes": "braces do NOT create a scope: bindings made inside leak out"}

View file

@ -1,2 +1,2 @@
{y 9; 0};
{y 9; 0};
✎ y;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "line comments and nested block comments"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "line comments and nested block comments"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "⊥ displays as ⊥ and concatenates/nests as a value"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 6", "notes": "⊥ displays as ⊥ and concatenates/nests as a value"}

View file

@ -1,5 +1,5 @@
42
1.5
3/2
s
true
false

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "one ✎ per value type"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "one ✎ per value type"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "all six comparison operators on numbers"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 8", "notes": "all six comparison operators on numbers"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "lexicographic order and structural equality on strings"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 7 and 8", "notes": "lexicographic order and structural equality on strings"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "equality is structural per type and false across types; ⊥ equals ⊥"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 7", "notes": "equality is structural per type and false across types; ⊥ equals ⊥"}

View file

@ -0,0 +1 @@
err_compare

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "ordering across types follows host coercion — observed, flagged as a judgment call"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 8", "notes": "ordering across types follows host coercion — observed, flagged as a judgment call"}

View file

@ -1,3 +1 @@
✎(1 < "2");
✎("10" < 9);
✎(true < 2);

View file

@ -2,6 +2,3 @@ true
false
true
false
false
true
false

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∧ test operands with strict boolean truth — numbers are not truthy here"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 14", "notes": "∧ test operands with strict boolean truth — numbers are not truthy here"}

View file

@ -2,6 +2,3 @@
✎(true ∧ false);
✎(false true);
✎(false false);
✎(1 ∧ true);
✎(0 true);
✎(true ∧ 1);

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∧ skips its right side on false; skips it on true (observable via side effect)"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 14", "notes": "∧ skips its right side on false; skips it on true (observable via side effect)"}

View file

@ -1,4 +1,4 @@
x 0;
x 0;
f ≜ λv: {x ← x + 1; v};
false ∧ f(true);
✎ x;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a program written entirely in ASCII escapes behaves like its glyph spelling"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "a program written entirely in ASCII escapes behaves like its glyph spelling"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∈-constraints parse (incl. supplementary-plane 𝔹) and are discarded unevaluated"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 17", "notes": "∈-constraints parse (incl. supplementary-plane 𝔹) and are discarded unevaluated"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "✎ is an expression: prints and returns its operand"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "✎ is an expression: prints and returns its operand"}

View file

@ -1,3 +1,3 @@
✎(✎ 5);
v ✎ "side";
v ✎ "side";
✎ v;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": " (U+2217) is multiplication, same as ×"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 19", "notes": " (U+2217) is multiplication, same as ×"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "calls inside list literals; λ argument"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "calls inside list literals; λ argument"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "division by zero"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 1", "notes": "division by zero"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unbound identifier"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unbound identifier"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "calling a non-closure"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "calling a non-closure"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "nullary call syntax parses; arity is checked at runtime"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 18", "notes": "nullary call syntax parses; arity is checked at runtime"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "too many arguments"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "too many arguments"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∀ over a non-list"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "∀ over a non-list"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "numeric + with a non-number, non-string operand"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "numeric + with a non-number, non-string operand"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "- is numeric only, no string analog"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "- is numeric only, no string analog"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unary minus is numeric only"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unary minus is numeric only"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "arithmetic on ⊥"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 6", "notes": "arithmetic on ⊥"}

View file

@ -1 +0,0 @@
err_steps

View file

@ -1 +0,0 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "the 500000-step evaluation budget"}

View file

@ -1,2 +0,0 @@
l ← [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
∀ a ∈ l: ∀ b ∈ l: ∀ c ∈ l: ∀ d ∈ l: ∀ e ∈ l: ∀ f ∈ l: 0;

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "identifiers may not start with _"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "identifiers may not start with _"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "juxtaposition call f x is not a call syntax"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "juxtaposition call f x is not a call syntax"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "no ternary; conditionals are guarded alternatives"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "no ternary; conditionals are guarded alternatives"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "output is ✎ only"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "output is ✎ only"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unterminated string literal"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unterminated string literal"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unknown ASCII escape word"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unknown ASCII escape word"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unclosed brace"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unclosed brace"}

View file

@ -1 +1 @@
err_comment
err_expect

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unterminated block comment"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unterminated block comment: '{-' without a matching '-}' is not a comment token, so the brace lexes bare and the program fails to parse (matches the grammar's MULTILINE_COMMENT)"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∑ is M1, not a token"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "∑ is M1, not a token"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "√ is M1, not a token"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "√ is M1, not a token"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "% is M1, not a token"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "% is M1, not a token"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "range syntax [a..b] is M1"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "range syntax [a..b] is M1"}

View file

@ -1 +1 @@
{"status": "unratified", "source": "coverage", "decision": "", "notes": "¬ is M1, not a token"}
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "¬ is M1, not a token"}

View file

@ -0,0 +1 @@
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 20", "notes": "ruling 20: the empty program is valid and silent"}

View file

@ -0,0 +1,2 @@
2
6

View file

@ -0,0 +1 @@
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 21", "notes": "ruling 21: parentheses contain one seqExpr"}

View file

@ -0,0 +1,2 @@
✎((1; 2));
✎((x ≜ 5; x + 1));

Some files were not shown because too many files have changed in this diff Show more