Generated 2026-04-13 00:48:06 UTC | Back to ladder index | Back to docs
Status: passed
Validation: 5/5 passed
Parser failures: 0 | Apply failures: 0
Artifacts: raw run json | rendered run transcript
| # | Expected Route | Utterance |
|---|---|---|
| 1 | assert_fact | Ava is a parent of Ben. |
| 2 | assert_fact | Ben is a parent of Cora. |
| 3 | assert_fact | Cora is a parent of Dax. |
| 4 | assert_fact | Dax is a parent of Emma. |
| 5 | assert_rule | If X is a parent of Y then X is an ancestor of Y. |
| 6 | assert_rule | If X is an ancestor of Y and Y is an ancestor of Z then X is an ancestor of Z. |
| 7 | other | Translate this to French: the build passed. |
| 8 | other | Summarize this in one sentence: lineage reasoning remains deterministic. |
| 9 | other | Explain in plain words why this might drift over time. |
| 10 | other | Format this as bullet points: parser, validator, runtime. |
| 11 | retract | Actually, retract that: parent(cora, dax). |
| 12 | assert_fact | Cora is a parent of Dean. |
| 13 | assert_fact | Dean is a parent of Emma. |
| 14 | other | Rewrite this text with fewer words: we should validate everything. |
| 15 | other | Translate this to Spanish: confidence stays low for ambiguity. |
| 16 | query | Who is Ava's ancestor? |
| 17 | query | Who is Dean's parent? |
| 18 | retract | Actually, retract that: parent(dax, emma). |
| 19 | assert_rule | If X is a parent of Y then X is related_to Y. |
| 20 | assert_rule | If X is related_to Y and Y is related_to Z then X is related_to Z. |
| ID | Query | Expect | Min Rows | Max Rows |
|---|---|---|---|---|
| ava_to_emma_survives_correction | ancestor(ava, emma). | success | 1 | |
| ava_to_dean_exists | ancestor(ava, dean). | success | 1 | |
| cora_dax_removed | parent(cora, dax). | no_results | 0 | |
| dax_emma_removed | parent(dax, emma). | no_results | 0 | |
| ava_to_dax_gone_after_retract | ancestor(ava, dax). | no_results | 0 |