Markdown for LLMs
LDC-E1345 — Parallel state with one region
The source Markdown for this article. Copy it into your assistant or download it as a text file.
# LDC-E1345 — Parallel state with one region
## What it means
A parallel state runs regions side by side, so it needs at least two:
one region is just a sequential state wearing a heavier spelling, and
the toolchain would emit a shape its own gates reject. A `parallel`
block with a single region stops the compiler at the state.
A join faces the same honesty rule from the other side: a join with no
regions joins nothing, and a quorum larger than the region count can
never be reached. Either shape stops the compiler at the join.
The repair is to give the parallel state its plural meaning — two or
more regions — or to write the sequential state plainly. Joins count
only regions that exist.
## Example
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
event Filed {
tenant: Tenant;
}
procedure Solo(t: Tenant) {
state Start initial;
state Work parallel {
region Only {
state A initial;
state B terminal;
transition Go {
from A;
to B;
on Filed;
}
}
}
state Done terminal;
transition Begin {
from Start;
to Work;
on Filed;
}
transition End {
from Work;
to Done;
on Filed;
}
}
```
## Fix
```law
language "law.core" version "0.2";
package demo.diagnostics version "0.1.0";
namespace "urn:law:demo:diagnostics";
entity Tenant;
event Filed {
tenant: Tenant;
}
procedure Solo(t: Tenant) {
state Start initial;
state Work parallel {
region Left {
state A initial;
state B terminal;
transition Go {
from A;
to B;
on Filed;
}
}
region Right {
state C initial;
state D terminal;
transition Go2 {
from C;
to D;
on Filed;
}
}
}
state Done terminal;
transition Begin {
from Start;
to Work;
on Filed;
}
transition End {
from Work;
to Done;
on Filed;
}
}
```
## Engine message
The engine reports this in its own wording:
```text
example.law:11:11: error LDC-E1345: состояние "Work": `parallel` с одной областью отвергается — составному состоянию нужно не меньше двух областей (§162.1); до выдачи IR не допускается
```
## Related
- [Procedures](/constructs/procedure/) — states, transitions, and how a procedure runs.
- [LDC-E1311](/diagnostics/LDC-E1311/) — a procedure needs exactly one initial state.