Skip to content

lawref.evaluator.evidence

Acceptance-фаза EvidencePolicy — SPEC §78.1/§78.2, DECISION-0126.

Единица решения — ОПОРА (support_edge §75), а не документ и не assertion: один документ бывает подходящей опорой одного утверждения и неподходящей — другого (§78.2.2). Фаза исполняет ОБЫЧНЫЕ строгие правила пакета §103 над ОТДЕЛЬНЫМ хранилищем фактов, видящим только типизированную проекцию сырых evidence/support/verification (§78.2.3). Общий evaluate рекурсивно не вызывается, нормативные предикаты фазе не видны — запрет структурный и проверяется компилятором (LDC-E4701).

Ни одного условия конкретной политики здесь нет: имена предметной области учебного пакета (издатель, валюта, предел суммы, право на выплату) живут его правилами. Здесь — проекция, порядок, временная арифметика профиля, форма решения и его доказательство. Отсутствие таких имён в этом файле проверяется воротами check_evidence_policy, а не договорённостью.

Attributes

NameDescription
EXECUTABLE_RELATIONSNo description.
INSTANTNo description.
PROFILESNo description.
PROFILE_0_1No description.
SLOTS_0_2No description.
SUPPORTED_SEMANTICSNo description.
TEXTNo description.

Classes

NameDescription
AcceptanceРезультат фазы: что принято, чем это доказано и что отвергнуто.
EvidencePolicyRefusalОтказ ДО вычисления: fallback-а у выбора политики нет (§78.2.8).

Functions

NameDescription
closure_hashХэш ЗАМЫКАНИЯ политики §78.2.8: сам узел, узлы её правил и узлы
report_blocked§78.2.4: утверждения защищённого предиката, не вошедшие в поддержку.
runИсполнить фазу и вернуть решения, доказательство и отчёт (§78.2).
selectРазрешить ось context.evidencePolicy в узел программы (§78.2.8).

EXECUTABLE_RELATIONSattributemodule attribute#

EXECUTABLE_RELATIONS = {'supports': 'positive', 'refutes': 'negative'}

INSTANTattributemodule attribute#

INSTANT = 'urn:law:std#Instant'

PROFILESattributemodule attribute#

PROFILES = ('law.core.evidence-policy/0.1', 'law.core.evidence-policy/0.2')

PROFILE_0_1attributemodule attribute#

PROFILE_0_1 = 'law.core.evidence-policy/0.1'

SLOTS_0_2attributemodule attribute#

SLOTS_0_2 = frozenset({'source'})

SUPPORTED_SEMANTICSattributemodule attribute#

SUPPORTED_SEMANTICS = ('0.2', '0.3')

TEXTattributemodule attribute#

TEXT = 'urn:law:std#Text'

Acceptanceclassdataclass#

class Acceptance(policy: dict, admitted: list[tuple[dict, str]] = list(), proof_nodes: list[dict] = list(), support_ids: list[str] = list(), report: dict = dict(), issues: list[dict] = list(), protected: frozenset[str] = frozenset(), fatal: list[dict] = list())

Результат фазы: что принято, чем это доказано и что отвергнуто.

admittedattributeclass attributeinstance attribute#

admitted: list[tuple[dict, str]] = field(default_factory=list)

fatalattributeclass attributeinstance attribute#

fatal: list[dict] = field(default_factory=list)

issuesattributeclass attributeinstance attribute#

issues: list[dict] = field(default_factory=list)

policyattributeinstance attribute#

policy: dict

proof_nodesattributeclass attributeinstance attribute#

proof_nodes: list[dict] = field(default_factory=list)

protectedattributeclass attributeinstance attribute#

protected: frozenset[str] = frozenset()

reportattributeclass attributeinstance attribute#

report: dict = field(default_factory=dict)

support_idsattributeclass attributeinstance attribute#

support_ids: list[str] = field(default_factory=list)

pinmethod#

def pin() -> dict

Три ключа манифеста §170 (§78.2.8).

EvidencePolicyRefusalclass#

class EvidencePolicyRefusal(code: str, message: str, related: list[str] | None = None)

Bases: Exception

Отказ ДО вычисления: fallback-а у выбора политики нет (§78.2.8).

issueattributeinstance attribute#

issue = {
  'code': code,
  'severity': 'fatal',
  'message': message,
  'relatedNodes': list(related or [])
}

closure_hashfunction#

def closure_hash(policy: dict, ir_nodes: list[dict]) -> str

Хэш ЗАМЫКАНИЯ политики §78.2.8: сам узел, узлы её правил и узлы связанных отношений. Отвечает на вопрос «что именно исполнялось» и не пересчитывается от правки несвязанной части акта — этим он отличается от theoryHash, покрывающего программу целиком.

report_blockedfunction#

def report_blocked(acceptance: Acceptance, blocked: list[dict]) -> None

§78.2.4: утверждения защищённого предиката, не вошедшие в поддержку.

runfunction#

def run(policy: dict, ir_nodes: list[dict], case: dict, effective: dict, limits: dict | None, signatures: tuple) -> Acceptance

Исполнить фазу и вернуть решения, доказательство и отчёт (§78.2).

selectfunction#

def select(ir_nodes: list[dict], effective: dict, options: dict, semantic_version: str) -> dict | None

Разрешить ось context.evidencePolicy в узел программы (§78.2.8).

Неразрешимая ссылка, неподдержанный профиль, L0/L1 и semantics 0.1 — отказ, а не молчаливое возвращение к тривиальной политике слоя.

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

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