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
| Name | Description |
|---|---|
EXECUTABLE_RELATIONS | No description. |
INSTANT | No description. |
PROFILES | No description. |
PROFILE_0_1 | No description. |
SLOTS_0_2 | No description. |
SUPPORTED_SEMANTICS | No description. |
TEXT | No description. |
Classes
| Name | Description |
|---|---|
Acceptance | Результат фазы: что принято, чем это доказано и что отвергнуто. |
EvidencePolicyRefusal | Отказ ДО вычисления: fallback-а у выбора политики нет (§78.2.8). |
Functions
| Name | Description |
|---|---|
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: dictproof_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() -> dictEvidencePolicyRefusalclass#
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.