lawref.evaluator.norms
L2: жизненный цикл норм — SPEC §134–§143 (DECISION-0003).
Norm creation §135, статусы §134–§138 как проекция support-пар condition, публикация статусов institutional literals §140 — их потребляют обычные правила следующей итерации, чем и держится цепочка §143.
Attributes
| Name | Description |
|---|---|
NORM_STD | No description. |
OCCURRENCE_REF | No description. |
Classes
| Name | Description |
|---|---|
AmbiguousAsOf | §135.1 (F10в): статус позиции меняется внутри гражданских суток даты. |
RecurrenceLimit | §238: расписание конечно, но длиннее предела maxOccurrences. |
RecurrencePolicy | §86/§84.2: календарный шаг без явной политики — MISSING_POLICY. |
RecurrenceRefusal | §124.4.1: расписание не конечно — fatal RECURRENCE_UNBOUNDED до вывода. |
Functions
| Name | Description |
|---|---|
norm_lifecycle | L2-срез (DECISION-0003): norm creation §135 и статусы §134–§138. |
NORM_STDattributemodule attribute#
NORM_STD = 'urn:law:std#'OCCURRENCE_REFattributemodule attribute#
OCCURRENCE_REF = 'urn:law:std#occurrence'AmbiguousAsOfclass#
class AmbiguousAsOf()Bases: Exception
§135.1 (F10в): статус позиции меняется внутри гражданских суток даты.
issueattributeinstance attribute#
issue = {
'code': 'AMBIGUOUS_AS_OF',
'severity': 'fatal',
'message': 'статус позиции меняется внутри гражданских суток legal_time; ответ на дату не определён — задайте legal_time мгновением (§82.1, §134, §135.1)'
}RecurrenceLimitclass#
class RecurrenceLimit(limit: int)Bases: Exception
§238: расписание конечно, но длиннее предела maxOccurrences.
issueattributeinstance attribute#
issue = {
'code': 'RESOURCE_LIMIT',
'severity': 'fatal',
'message': семантический лимит maxOccurrences = {limit} превышен; вывод остановлен без частичного результата (SPEC §238, §211),
'details': {'counter': 'maxOccurrences', 'limit': limit}
}RecurrencePolicyclass#
class RecurrencePolicy(message: str)Bases: Exception
issueattributeinstance attribute#
issue = {'code': 'MISSING_POLICY', 'severity': 'fatal', 'message': message}RecurrenceRefusalclass#
class RecurrenceRefusal()Bases: Exception
§124.4.1: расписание не конечно — fatal RECURRENCE_UNBOUNDED до вывода.
issueattributeinstance attribute#
issue = {
'code': 'RECURRENCE_UNBOUNDED',
'severity': 'fatal',
'message': 'расписание `recurring` не конечно в окне `over`; число экземпляров позиции не ограничено, вывод не выполнялся (§124.4, §124.4.1)'
}norm_lifecyclefunction#
def norm_lifecycle(store: SupportStore, nodes: list[dict], legal_time: str, registry: ProofRegistry, issues: list[dict], manifest_id: str, limits: dict | None = None, env: Any = None, world: Any = None, status_time: str | None = None) -> list[dict]L2-срез (DECISION-0003): norm creation §135 и статусы §134–§138.
Два времени, и они разные (errata E-0212). legal_time выбирает ПРАВО:
окно effective §87 правила, редакции §92, значения параметров во
времени. status_time — момент «ПО СОСТОЯНИЮ НА», на который спрашивается
лестница §134: наступил ли срок, истёк ли он, исполнено ли. До errata
оба вопроса отвечались одной осью, и «право на дату L, статус на дату
решения D» было невыразимо. None означает «тот же момент» — так зовут
этот срез хосты, не различающие два времени, и путь байтово прежний.
Правило с head norm_template_ref порождает PositionInstance на каждое ground-приложение (proof-узел norm_creation). Статусы — проекция §134:
- ДО открытия окна §135 п. 3: обязанность и запрет — PENDING, полномочие,
иммунитет и свобода — CREATED (у них своя таблица kinds в §134, без
pending). Позиция при этом СОЗДАЁТСЯ: норма, вступающая в силу позже, обязана быть видна и адресуема, а не исчезать из ответа; - achievement §136: satisfied при TRUE_ONLY condition; после window — violated ТОЛЬКО при explicit non-performance (FALSE_ONLY condition — explicit negative/closure §70), иначе UNDETERMINED; до due — ACTIVE §138;
- maintenance §137: counterexample (FALSE_ONLY) — VIOLATED; satisfied после window лишь при closure-политике §70 на предикат условия; иначе UNDETERMINED; в window — ACTIVE;
- condition BOTH — CONFLICTED (§134) с обеими опорами в supports.
Вне среза (§123/§135.2/§139): allocation/discharge/violation policies, activation events, waiver/suspension/termination, deontic-конфликты §105.1 (defeat норм — с priorities вехой L2+).
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.