# Power: exercise, validity, effect, immunity counterweight ## 1. What it is in one sentence `power` is a constitutive power: the holder performs an exercise, and when the validity condition (valid_when) holds a legal effect (effect) arises. The author takes it when the source grants competence: "may terminate", "appoints", "the court quashes". A power is a two-step device: the rule creates the position, and the legal effect follows only when the holder exercises it on valid grounds with no blocking immunity. ## 2. When to take it and when not to | Instead | Take when | Selection rule | |---|---|---| | `liberty` | the source gives "may" with no constitutive effect | liberty permits the action but creates nothing; power creates/terminates/changes. "May exit the contract by notice" with a termination effect — `power`; "may withdraw consent" with no effect — `liberty` | | `duty` | conduct must be required, not empowered | a duty requires behaviour of the addressee; a power awaits the holder's exercise. Do not write a duty "to exercise the power" — these are different positions | | `rule strict` with an institutional head | the effect follows automatically by fact | if termination follows by the mere fact of delay, with no party notice — an ordinary rule, not `power` (no `exercise`) | | `immunity` | protection against someone else's effect is needed | immunity is the counterweight: `protected_effect` locks the power's effect. Written as a separate norm, not as a flag on `power` | All four fields (`holder`, `exercise`, `valid_when`, `effect`) and the immunity window are mandatory; a missing one is `LDC-E1305`. ## Grammar: power (EBNF verbatim from the language grammar) The `power` form — the holder, the subject, the exercise, the validity condition, the effect, and the window (the holder and all four substantive fields are required; a missing one is `LDC-E1305`): ```ebnf power_conclusion = "power", [ identifier ], "{", { power_item }, "}" ; power_item = "holder", expression, ";" | "over", expression, ";" | "exercise", expression, ";" | "effect", legal_effect, ";" | "valid_when", formula, ";" | "window", interval_expression, ";" | source_anchor_item | metadata_item ; ``` Position statuses and lifecycle live on the [lifecycle page](/constructs/lifecycle-statuses/); windows as intervals and their computation — on the [deadline-calendar page](/constructs/deadline-calendar/); window syntax is not duplicated here. ## 3. Minimal example Package `examples/power-exercise/`: a customer may terminate a contract by notice when delivery is overdue. Full code — `examples/power-exercise/package.law`; cases and expectations — `examples/power-exercise/tests/01-effect-materialized.lawtest` (effect materialized) and `tests/02-no-effect.lawtest` (no effect). ```law rule TerminationRule strict { for s: Supplier; for c: Customer; when contract_signed(s, c); then power Terminate { holder c; over s; exercise termination_notice(c, s); valid_when (delivery_overdue(s, c)); effect create(contract_terminated(s, c)); }; } ``` The engine's actual answer (see [How the engine answers](#5-how-the-engine-answers)): - `termination_notice` + `delivery_overdue` → `contract_terminated` `TRUE_ONLY` (effect materialized); - `termination_notice` alone → `NEITHER` + issue `POWER_INVALID_EXERCISE` (exercise without `valid_when`, no effect); - `delivery_overdue` without `termination_notice` → `NEITHER` (no exercise — the power awaits the holder's act). Sensitivity check: remove `delivery_overdue` from the first scenario — the answer changes from `TRUE_ONLY` to `NEITHER`; remove `termination_notice` — the same transition. Both facts load-bearing. ## 4. Example across domains - **Law:** limiting a fundamental right only by statute — package `tr.constitution` — Constitution of Türkiye (`RestrictFundamentalRight`: holder — the legislature, effect — the legal act of limitation; `valid_when` — constitutional admissibility). - **Law:** terminating an employment contract on a failed probation — package `uz.labor_code` — Labour Code of Uzbekistan (`RastorgnutPriNeudIspytanii`). - **Law:** quashing decisions of union organs — package `su.union_treaty_1922` — 1922 Union Treaty (`CECCancelUnionCouncilDecision` and neighbours: a series of five quashing powers — a model of an organ's competence). - **Religion/custom:** immunity from termination under force majeure — `examples/power-immunity/` (`NoTerminationUnderForceMajeure`, `protected_effect contract_terminated(s, c)`; a pair with no priority gives `UNRESOLVED_NORMATIVE_CONFLICT`). Full analysis — `corpus-forms.md`. ## 5. How the engine answers Run output (verbatim): ```text check OK: docs/research/constructs/12-power/examples/power-exercise law test research.constructs.power_exercise: мир research.constructs.power_exercise ok [research.constructs.power_exercise#authored] tests/01-effect-materialized.lawtest / exercise with valid ground materializes the effect ok [research.constructs.power_exercise#authored] tests/02-no-effect.lawtest / exercise without valid ground gives NEITHER ok [research.constructs.power_exercise#authored] tests/02-no-effect.lawtest / no exercise means no effect even on valid ground итого: 3 проверено, 3 прошли, 0 не прошли, 0 не исполнены; код 0 ``` ```text check OK: docs/research/constructs/12-power/examples/power-immunity law test research.constructs.power_immunity: мир research.constructs.power_immunity ok [research.constructs.power_immunity#authored] tests/01-effect-open.lawtest / without force majeure the effect materializes ok [research.constructs.power_immunity#authored] tests/02-effect-blocked.lawtest / immunity blocks the effect under force majeure итого: 2 проверено, 2 прошли, 0 не прошли, 0 не исполнены; код 0 ``` Outcome status with a locked effect: `truth_status NEITHER`, `evaluation_status UNRESOLVED_NORMATIVE_CONFLICT`. The rule creates an `ACTIVE` position; the effect materializes only with established `exercise`, `valid_when`, window, and no applicable immunity. Exercise without `valid_when` is issue `POWER_INVALID_EXERCISE`. An undefeated power/immunity pair is conservative effect materialization: an effect without support. Distinguish the two answer statuses: `truth_status` speaks of the effect predicate (`TRUE_ONLY` vs `NEITHER`), `evaluation_status` — of the document as a whole (`COMPUTED` vs `UNRESOLVED_NORMATIVE_CONFLICT`). In the tests above the immunity package's first row gives `TRUE_ONLY` + `COMPUTED`, the second — `NEITHER` + `UNRESOLVED_NORMATIVE_CONFLICT`: the effect is not established, and the document records this with a status, not with silence. Check both statuses, not only `truth_status` (see `pitfalls.md`). The judgment channel and effect locking: | Facts | Question | Answer | Why | |---|---|---|---| | `penalty_notice` | `penalty_imposed` | `NEITHER`, `REQUIRES_JUDGMENT` | judge in `valid_when`; no `POWER_INVALID_EXERCISE` issued | | same + adjudicated `breach_material` | `penalty_imposed` | `TRUE_ONLY` | the court closed the condition | | same + `force_majeure` | `penalty_imposed` | `NEITHER`, `UNRESOLVED_NORMATIVE_CONFLICT` | power and immunity both undefeated, effect locked | | `penalty_notice` + `force_majeure` without adjudication | `penalty_imposed` | `NEITHER`, `COMPUTED` | effect already locked — the judge is not asked | Counterfactual: without the `TerminationRule` rule the same facts (`contract_signed`, `termination_notice`, `delivery_overdue`) give `NEITHER` — nothing derives the effect. ## 6. Common mistakes 1. No `exercise` in the case — no effect, and this is not a defect: the power awaits the holder's act. Check the exercise facts first. 2. `valid_when` without parentheses around a conjunction — `LDC-E0201` + `LDC-E1305`; write `valid_when (a and b);`. 3. `_` in `valid_when` — `check` stays silent, the effect never materializes (a known open gap; see `pitfalls.md`). 4. A judge in `valid_when` — `REQUIRES_JUDGMENT`, not "the power is invalid"; check `evaluation_status`. 5. Immunity "did not fire": an undefeated pair gives `UNRESOLVED_NORMATIVE_CONFLICT`, not `COMPUTED` — distinguish result statuses from `truth_status`. 6. The power's `subject` only affects the delegation subject check, not the position status. Each analysed — `pitfalls.md`. ## 7. References - The language specification defines power, immunity, conflict, defeat, the judgment channel, delegation, and positions as conclusions; this page states how to use them. - Tutorials: `/tutorials/writing-tests/` (test observations). - Details: `corpus-forms.md`, `pitfalls.md`, `boundaries.md`.