Generated 2026-04-13 00:48:05 UTC | Back to ladder index | Back to docs
Status: passed
Validation: 6/6 passed
Parser failures: 0 | Apply failures: 0
Artifacts: raw run json | rendered run transcript
| # | Expected Route | Utterance |
|---|---|---|
| 1 | assert_fact | Rhea is Pax's parent. |
| 2 | assert_fact | Uma has Pax as a parent, noisy but true. |
| 3 | assert_fact | Sia is parented by Uma. |
| 4 | assert_rule | If X is a parent of Y then X is an ancestor of Y. |
| 5 | assert_rule | And if X is an ancestor of Y and Y is an ancestor of Z then X is an ancestor of Z. |
| 6 | assert_fact | quick check: is rhea ancestor of sia |
| 7 | assert_fact | nah swap middle: drop pax->uma only, not the rhea branch |
| 8 | assert_fact | Pax is Toma's parent. |
| 9 | assert_fact | Sia is parented by Toma. |
| 10 | assert_fact | final check rhea ancestor of sia right |
| ID | Query | Expect | Min Rows | Max Rows |
|---|---|---|---|---|
| rhea_pax_parent_kept | parent(rhea, pax). | success | 1 | |
| pax_uma_removed | parent(pax, uma). | no_results | 0 | |
| pax_toma_parent | parent(pax, toma). | success | 1 | |
| toma_sia_parent | parent(toma, sia). | success | 1 | |
| rhea_sia_ancestor | ancestor(rhea, sia). | success | 1 | |
| rhea_uma_no_longer_ancestor | ancestor(rhea, uma). | no_results | 0 |