Skip to content

lawref.evaluator.norms

L2: жизненный цикл норм — SPEC §134–§143 (DECISION-0003).

Norm creation §135, статусы §134–§138 как проекция support-пар condition, публикация статусов institutional literals §140 — их потребляют обычные правила следующей итерации, чем и держится цепочка §143.

Attributes

NameDescription
NORM_STDNo description.
OCCURRENCE_REFNo description.

Classes

NameDescription
AmbiguousAsOf§135.1 (F10в): статус позиции меняется внутри гражданских суток даты.
RecurrenceLimit§238: расписание конечно, но длиннее предела maxOccurrences.
RecurrencePolicy§86/§84.2: календарный шаг без явной политики — MISSING_POLICY.
RecurrenceRefusal§124.4.1: расписание не конечно — fatal RECURRENCE_UNBOUNDED до вывода.

Functions

NameDescription
norm_lifecycleL2-срез (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

§86/§84.2: календарный шаг без явной политики — MISSING_POLICY.

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.