diff --git a/docs/research/epistemic-awareness/eaw-5-odoo-ogit-law-and-learning-reality-check.md b/docs/research/epistemic-awareness/eaw-5-odoo-ogit-law-and-learning-reality-check.md new file mode 100644 index 000000000..147c573b5 --- /dev/null +++ b/docs/research/epistemic-awareness/eaw-5-odoo-ogit-law-and-learning-reality-check.md @@ -0,0 +1,58 @@ +# EAW-5 — Source-harvested Odoo / OGIT / legal-rule convergence and optional learning + +**2026-10-27. Docs-only staged plan, NOT IMPLEMENTED, NOT HARVESTED HERE, NOT A REAL-WORLD LAW OR TAX VERDICT.** Independent main-based stage; upstream research scratchpad [#1820](https://github.com/AdaWorldAPI/lance-graph/pull/1820), presence [#1821](https://github.com/AdaWorldAPI/lance-graph/pull/1821), CausalEdge64 [#1822](https://github.com/AdaWorldAPI/lance-graph/pull/1822), TERNLOG Sudoku [#1823](https://github.com/AdaWorldAPI/lance-graph/pull/1823), Thought-Git [#1824](https://github.com/AdaWorldAPI/lance-graph/pull/1824). These are *conceptual* dependencies, not stacked commit bases. + +## Why this stage is separate + +Mechanism probes on synthetic masks can prove identity preservation and Boolean parity; they cannot establish source semantics for Odoo accounting, SAP, legal rules, double-entry posting, or causal discovery. For those, source-specific order, effective dates, jurisdiction, tax base/rates, rounding, permissions, source object identity, incompleteness and transactional effects matter. + +The operator's target: +1. Multiple distinct dimensionally mapped business methods/rules may land on the same admitted algebra/polyfill. +2. Several valid source rules may converge on ONE qualified semantic determination. Taxable-item applicability and rate subrules are possible Odoo harvest targets; never assume the composition is Boolean OR, unordered SUM or last-wins. +3. One determination may fan out via typed routing to TWO DISTINCT ledger destinations, **not simply to debit and credit fields on one journal line**. +4. Presence / established source absence / undiscovered or incomplete status must remain distinct through DT64 source-bound, versioned replay. +5. Truth, epistemic certification, activation and permission are distinct. CausalEdge64 is a declared evidence-reading overlay of the source relationship address, not a new legal rule that can promote itself. +6. 'Es kommt darauf an' has a constructive meaning: a **conditionally scoped counterfactual candidate** under explicitly qualified changing guard/source facts, not a guessed universal rule. Thought-Git T0+≤63 alternatives keep worlds separate. +7. A conceptual 64^n higher-order game matrix is a block/coordination mental model, not a mandate to allocate 64^n dense tensor cells or to run 64^n scenarios. DR64³, DT64 and existing Quack/RelAlg/Datafrog/egglog and native ndarray are independent owners. + +## What the merged source data actually shows + +[odoo-rs #44](https://github.com/AdaWorldAPI/odoo-rs/pull/44) MERGED test-only: slice 1 ON 194, provisional WHEN 5, DO 219, 628 registrations; 8 cooccupied cells all ON=unattested. The common cube stores every MethodId in a BTreeSet but dispatches via Boolean OR of provisional guard atoms; no real K3 conjunctive WHEN or source priority, recipe ref, routing destination and physical snapshot is established. [odoo-rs #45](https://github.com/AdaWorldAPI/odoo-rs/pull/45) MERGED: 4 hypothetical unknown guards, 16 worlds, test-local NARS equal weights and sibling landing through general `next_version`; candidate synthesis or empirical confidence NOT established. + +The harvested [slice_2.spo.ndjson](https://github.com/AdaWorldAPI/odoo-rs/blob/main/data/slice_2.spo.ndjson) includes four `emitted_by` mappings for `account_move_line.balance`: `_compute_balance`, `_inverse_amount_currency`, `_inverse_credit`, `_inverse_debit`. `_compute_debit_credit` emits both `debit` and `credit`; inverse methods read `account_move.is_storno`. These facts demonstrate a useful multi-emitter/multi-output source family, NOT yet four simultaneously contributing methods, a declared K3 guard, an admitted balance law, a tax rate, or **dual ledger routing**. Pin the exact upstream Odoo `account_move_line.py` source, applicable version and owner before claiming behavioral parity; the repo-local source does not cover that entire method family. + +[OGAR #363](https://github.com/AdaWorldAPI/OGAR/pull/363) MERGED lab: OgitTables reader 939 types, 518 verbs, 2,756 allowed edges, 4,861 chainable verb pairs by RelAlg composition vs independent enumeration. Its reader rejects **102 files** and leaves **508 references unresolved**: these are UNKNOWN coverage, never negative edges. `consistsOf` and `isPartOf` are not declared inverse relations across full coverage; do not infer an inverse from names. + +## Suggested source-harvest ladder, each separately authorized + +**H1 — accounting source witness (Odoo):** pin exact upstream Odoo version/commit and module plus source environment, field/method signatures and decorator/inverse triggers; record typed ON and WHEN AST, source object/revision, declared dependencies and phase. The small `balance/debit/credit/is_storno` family can falsify improper multi-emitter dedup, but may not prove lawful many-to-one concurrent convergence. + +**H2 — genuine tax convergence:** harvest version- and jurisdiction-scoped invoice line, tax base, rate-selection, included/excluded price, currency, rounding, tax-on-tax, accounting-date examples with independent Odoo outputs. Must distinguish *taxability*, *tax base*, *effective rate* and *posted amount*; a common Boolean outcome may conceal a diverging amount. + +**H3 — typed ledger routing:** find a source-owned example of a single determination legitimately routed to two independently identified accounting ledgers/books; pin real destination IDs, authorization and transaction/period semantics. Independent oracle checks both destinations and no fabricated routing; debit/credit is not adequate stand-in. + +**H4 — OGIT property/relationship corpus:** narrow to accepted and rejected OGIT files, independently read raw corpus for true coverage, then compare per-verb RelAlg composition with typed source identity and validity. Refuse nondeclared inverse/negative claims. Plan explicit source-derived `isPartOf` reachability and versioned codebook change. + +**H5 — legal ontology/administrative rule analogue:** research source-pinned versions of LegalRuleML, LKIF, ODRL and Akoma Ntoso as potential cold DTO vocabularies (verify actual suitability before using), then select a small real public-law example with effective date, jurisdiction, derogations, exceptions and authority. The 'es kommt darauf an' hypothesis changes one admitted fact while preserving legal precedence and effect prohibitions; no legal advice or autonomous verdict. + +**H6 — higher-order counterfactual induction:** reuse CFA-3 ARM-discovery (associations and ablations as probes), existing RelAlg/Datafrog and cold egglog/DialEgg for suggested reductions; the optional CFA-4 NSL/ONNX or NNUE-style ranker selects the next bounded probe, **never** supplies proof, executable authority, priority, access or a new physical tensor runtime. D-NAM/EXO-152 owns numerical method semantic parity, D-DRMC/EXO-127 owns mathematical law admission. + +## Pre-registered falsifiers (NONE RUN) + +| ID | Grounded negative control | Exact expected outcome | +|---|---|---| +| E5-1 | Compute and inverse `balance` emitters treated as four simultaneously applicable methods | Independent Odoo source phases disprove or certify actual coexistence; no unjustified convergence claim. | +| E5-2 | Two rules produce same taxability Boolean but different source-correct tax base/rounding | Full amounts and protected intermediates differ; cannot collapse based on final bit. | +| E5-3 | `debit/credit` mislabeled as dual-ledger fanout | Reject ledger conclusion until two actual typed destination IDs are sourced. | +| E5-4 | Missing inverse decorator or `is_storno` dependency treated as TRUE guard | Stay UNKNOWN until true WHEN AST/source obligation pinned. | +| E5-5 | 102 OGIT rejected files and 508 unresolved refs treated as evidence of absence | Coverage remains UNKNOWN, not negative. | +| E5-6 | Two different source versions use same local ordinal, recipe or palette index | No equality without DT64 global/local witness, source ACL/schema/codebook/snapshot. | +| E5-7 | Apparent legal rule defeated by effective date, exception, jurisdiction or source authority | Conditional outcome/refusal; no generic OR/SUM or effect execution. | +| E5-8 | Ranker observes coincident sibling outcomes and grants `Causes` or commits a new inferred relation | Explicit promotion refusal; keep candidate and independent evidence roots. | +| E5-9 | Another source owner has already mapped the algebraic method recipe | Reuse existing polyfill identity and separately mapped guards; no second interpreter. | + +## Owner / board coordination and exit + +[EAW-0 #1820](https://github.com/AdaWorldAPI/lance-graph/pull/1820) is the preservation scratchpad. [#1814–#1819](https://github.com/AdaWorldAPI/lance-graph/pull/1819) own CFA logical incidence and the physical ON×DO candidate; they are NOT merged, and #1818 is still stacked on optional #1817. Canonical [D-DT64-Q0](https://github.com/AdaWorldAPI/lance-graph/blob/main/.claude/plans/d-dt64-q0-borrowed-quack-binding-seam-v1.md) and [EXO-46](https://linear.app/exo-red/issue/EXO-46) source/focus, [EXO-109](https://linear.app/exo-red/issue/EXO-109) oracle independence, [EXO-133](https://linear.app/exo-red/issue/EXO-133) real-labelled evidence, [EXO-135](https://linear.app/exo-red/issue/EXO-135) evidence-to-law refusal, [EXO-140](https://linear.app/exo-red/issue/EXO-140) ADMISSION B, [EXO-146](https://linear.app/exo-red/issue/EXO-146) CE64 alias migration, [EXO-148](https://linear.app/exo-red/issue/EXO-148) durability, [EXO-152](https://linear.app/exo-red/issue/EXO-152) native numerical method semantics, [EXO-73](https://linear.app/exo-red/issue/EXO-73) lawful recursion, and [EXO-50](https://linear.app/exo-red/issue/EXO-50/agent-message-bus-gpt-xgrok-ccsession-id) append-only coordination remain independent gates. + +**Only then decide** whether a source-attested conditional inference is an admissible learned improvement, with explicit D-DRMC and source authority; no stage authorizes source writes or law interpretation. Operator-rejected #1812 is an epistemic failure quarantined from sources, oracles and design harvest.