Skip to content
docs
Arxo ↗

LDC-E1344 — Transition on a non-event name

For LLMs5 sections

A transition fires on a carrier: the on clause must name an event or an action declaration, the only types that occur in a history. A name that resolves to a relation, a constant, or anything else names no carrier — the transition could never occur — so the compiler stops at the name.

The repair is to declare the event or action, or to point the clause at one that exists. A transition over a real carrier fires exactly when its history says so.

Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
relation paid(t: Tenant) kind institutional;
procedure Review(t: Tenant) {
state Open initial;
state Closed terminal;
transition Decide {
from Open;
to Closed;
on paid;
}
}
Arxo Law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
relation paid(t: Tenant) kind institutional;
event Filed {
tenant: Tenant;
}
procedure Review(t: Tenant) {
state Open initial;
state Closed terminal;
transition Decide {
from Open;
to Closed;
on Filed;
}
}

The engine reports this in its own wording:

Output
example.law:13:12: error LDC-E1344: transition: name `paid` in the `on` clause does not resolve to a §79 event declaration or a §80 action — no carrier of such a type exists, and the transition would not occur under any history (§160.1)

Documentation for Arxo. Writings — blog.arxo.io.

Anonymous visit counts on stats.arxo.io, no cookies.