moontxnwitness

    Offline transactional history analysis with independently verifiable dependency-cycle witnesses

    transactions
    serializability
    witness
    consistency
    offline
    Download zip
    Author
    Version
    0.4.0
    License
    Apache-2.0
    Last updated
    4 days ago
    Downloads
    261

    No dependencies

    #MoonTxnWitness

    MoonBit 通用事务异常分析基础库。以 Elle 的异常与模型定义为对照,提供可嵌入的分析、解释、缩减和证据回放。当前覆盖与待补能力见Elle 对齐表,后续按开发顺序推进;定位不表示已完整兼容 Elle。

    当前源码与历史运行归档已分离;原始材料通过提交/标签恢复,规则和精简计数见仓库布局。

    自动诊断采集:使用 instrument_engine/局部 psycopg 工厂 在业务启动时接入,保留实际执行和结果;通用入口输出执行诊断;配置化 base-user 来源采集 可将受支持的按 ID 增删改查送入核心分析、缩减与重放。

    把事务读写日志变成可解释、可缩减、可回放的反例。 MoonBit 实现离线分析核心,提供 Mooncakes 库、JavaScript SDK、命令行和可选 PostgreSQL 采集器。

    English: A MoonBit transaction anomaly analysis library with explainable witnesses, bounded model analysis, counterexample reduction and evidence replay. See the explicit Elle alignment and coverage matrix.

    #v0.4.0:可嵌入的事务异常分析基础库

    提供 MoonBit 结构化核心、JavaScript SDK 与命令行,将事务观察转换为异常见证、逐模型结果、可缩减反例和可验证的复现包。核心支持唯一版本寄存器、追加列表与关系行集合;业务侧可使用启动插桩或配置化适配器提供原始观察。

    • **关系分析:**行版本来源、提交/回滚与内部一致性检查;关系谓词入口独立搜索 G0、G1c、G2-item、G2、G-single-item、G-single 和 G-nonadjacent,保留项目/谓词依赖及完整查询证据。
    • **模型规则:**独立命名空间组合 14 个固定 Elle 模型定义,逐项呈现必要检查与见证;支持寄存器、列表和显式原子主键行配置。运行 node examples/models-v4-roundtrip.mjs。
    • **配置化接入:**同一 PostgreSQL 结构解析器接受表、列、主键和类型配置,配合指定 engine 或 psycopg 工厂保留实际 SQL、参数、fetch、异常及事务生命周期。可选 SQLGlot 仅用于适配,核心另行核验输入;来源安装与会话诊断分别核验;当前配置化会话保持 sourceFactsProduced=false、isolationAnalysisReady=false,现有受支持 profile 的分析入口独立保留。
    • **完整报告性能:**集成候选 v0.3.8 的同作业配对实测中,两个 SDK 分析入口在五个目标场景的几何均值提速 2.3742 倍,峰值 RSS 下降 19.60%,三个控制场景通过,完整保留 49,770 条依赖边。此为指定分析入口的实测结果,详细绑定见性能记录。
    • **兼容与交付:**旧公开胶囊使用按摘要固定的原运行时回放;历史源码使用 Git 标签保存,源码树通过摘要缓存取得测试材料,便携包包含离线兼容组件。

    运行 node examples/relation-predicate-categories.mjs、node examples/relation-category-reduction.mjs,或直接调用 MoonBit 库。目标、安装、接口、示例与技术证据见基础库说明。支持矩阵区分已完成检查、反证与覆盖缺口;预算耗尽及来源不足会明确返回无法判定。

    #v0.3.3

    新增有完整来源引用的 G-single 检查、寄存器丢失更新和读取来源诊断;列表图可显式选择 effective-v1,处理同一事务同键的多次追加与保存点撤销。报告、验证器、复现包及命令行共用明确的算法和预算。

    运行新例子:node examples/v4-anomalies-roundtrip.mjs。详细边界见 v4 API;后续关系分类、更多模型与配置化采集按支持矩阵推进。

    #v0.3.2

    新增三模型结构化 v4 接口:MoonBit 的 HistoryV4、analyze_v4、classify_v4、reduce_v4、verify_v4,以及对应 SDK 和命令行入口。缩减显式指定保留的模型反证,验证使用调用者自己的预算;旧入口保持。

    源码包移出历史运行时和大语料,通过按摘要校验的输入缓存恢复。直接运行 MoonBit 核心无需下载这些材料;完整 SDK 构建与测试首次需要联网,之后可离线复用缓存。旧公开 v0.3.1 证据使用原运行时回放。

    #v0.3.1

    需要 MoonBit moonc ≥0.10.16。当前构建与 CI 固定使用 0.10.16+b1a0e846e。JSON 转换已迁移至新标准库接口,并在构建前检查编译器版本。

    直接运行 MoonBit 核心库示例,无需 Node.js 或 Python:

    moon run --target wasm-gc src/demo

    示例分析两事务写偏斜、核对环证据并验证缩减结果。JavaScript SDK 和 CLI 保留原入口;公开 v0.3.0 的原运行时通过固定下载摘要校验后用于旧证据回放。首次源码构建需要联网取得该兼容组件,已准备的缓存可离线复用,源码树不保存其副本。

    #v0.3.0

    本版收敛自动采集、三种数据模型、逐类别诊断和证据重放,新增原生 MLflow HTTP 排障案例。真实 log-batch 路由的修复前后各运行 30 个固定种子;原生死锁通过 SQLSTATE 40P01 确认。案例由 1000 个键缩减至 623 个,同一最终请求在修复前连续三次复现、修复后连续三次成功,保留 oneMinimal=false。

    无需数据库即可查看两份真实采集的差异并重放证据:

    node examples/mlflow-http-roundtrip.mjs

    来源日志缓冲可显式配置,关闭时仍同步尾部并核验封存。正式 A/B/C 采集实验的目标尚未达到,完整结果与失败单元继续保留;不将局部优化或诊断回放耗时写成业务吞吐收益。六模型、关系精确分析和自动 SQL 映射的范围继续见支持矩阵。

    公开 v0.2.8 的原始报告与胶囊保留三个实际构建上下文,共 156 份原始案例;校验使用完整原运行时,不改证据、预算及历史预期。v0.3.0 的最终测试、独立验收与公开安装记录存于 verification/releases/0.3.0/,以相应收据为准。

    #v0.2.8 支持范围

    新增统一诊断入口:diagnoseV3 与 diagnose-v3 同时保留串行分析、模型检查和证据缺口;verifyDiagnosisV3 可重新核对完整报告。事务读错自身写入会明确显示 INT,不会误标成 G2 或改写尚无法判定的其它模型。

    关系反例缩减复用已解析的候选结构,并保留完整语义重验、来源、预算和旧接口。寄存器与列表入口继续采用原实现。公开 v0.2.7 证据通过固定旧运行时重放;构建时从实际工具链保留完整许可证与 NOTICE。固定关系候选负载测得 1.124× 提速,完整范围见性能记录。

    配置化列表与关系来源采集可从实际 SQL、原始返回、fetch 交付和事务结果自动投射模型事实,无需手写历史。SDK 与命令行提供分析、报告验证和完整原始来源包重放;10 个真实 PostgreSQL 场景覆盖 7 个受支持路径和 3 个明确无法判定的边界。配置化模型来源缩减留待后续版本。

    已有独立六模型检查入口:对唯一版本点寄存器和声明的单追加列表范围,逐项检查异常与适用条件,输出反证、已完成检查及覆盖缺口。它补充 G1a、G1b、内部一致性、非相邻反依赖和有明确来源的实时关系。模型名称使用固定定义标识,不将结果直接等同于数据库产品的隔离级别。

    已有 G0、G1c、G2-item 分类搜索及固定类别缩减继续保留。配置化 base-user 采集可将受支持的按 ID 增删改查送入分析、缩减和重放;通用启动插桩保留实际 SQL、结果和执行诊断。完整范围见支持矩阵。

    可靠反证在其它检查预算耗尽时仍成立;缺少来源、完整读取、内部有效性或实时证据时,相关检查保持无法判定。关系六模型分类、模型保持缩减、任意 SQL 和完整认证系统接入仍未支持。重放成功说明证据可复现,不表示采集内容得到数据库真实性认证。

    本版的实际构建、回归和公开交付以 verification/releases/0.2.8/ 收据及发行记录为准。默认分析实现继续保留已验证的算法;新增检查的成本与旧版完整分析分别报告。此前未通过性能控制的优化候选及完整采集成本差距继续公开保留,Unicode 流式 JSON 预检查的固定工作负载成对实验保留全部原始样本;该实验不等于所有当前版本调用的统一提速或内存下降。

    #运行演示

    从源码克隆时,Windows 请启用 Git 长路径支持:git -c core.longpaths=true clone --depth 1 https://github.com/HhWw96/moontxnwitness.git。

    下载并解压 portable ZIP,需要 Node.js ≥20:

    node dist/moontxnwitness.mjs --version node dist/demo.mjs

    Windows 可双击 run-demo.cmd。演示使用合成案例,在新目录生成中文报告、7→2 事务缩减和可回放证据,先打开 report.md。

    #检查、缩减与回放

    node dist/moontxnwitness.mjs check examples/write-skew.json --profile balanced node dist/moontxnwitness.mjs shrink examples/noisy-write-skew.json --profile balanced --history mini.json node dist/moontxnwitness.mjs check mini.json --profile balanced --format markdown --output report.md --capsule case.json node dist/moontxnwitness.mjs replay case.json node dist/moontxnwitness.mjs compare-models examples/strict-realtime.json

    导出拒绝覆盖已有文件。check 支持 text/json/markdown/dot。

    状态退出码含义
    consistent0在提供的模型、观察及约束内有可行串行执行
    violation1发现直接异常、依赖环或完整搜索无解
    invalid2输入或约束不合法
    inconclusive3观察不足或预算耗尽

    complete 不认证采集者或数据库全局完整性。oneMinimal 表示当前规则与预算下不能再单独删除任一剩余事务,不保证全局最小。配置化 ORM 缩减只针对“来源闭合且有确定异常”的候选;来源闭合但预算未判定的候选会阻止这一声明。

    #库与 SDK

    moon add HhWw96/moontxnwitness@0.4.0

    import {analyzeWithOptions, shrinkWithOptions, replayReport} from './dist/sdk.mjs'; const report = analyzeWithOptions(history); const reduced = shrinkWithOptions(history, {maxChecks: 256}); console.log(report.status, reduced.oneMinimal); console.log(replayReport(reduced.reducedHistory, reduced.report));

    MoonBit 对应 analyze_with_options、reduce_with_options 等;旧入口和默认预算保持。每次同键写入必须使用唯一版本,业务值相同也不能复用版本。搜索补全单独标记,不变成已观察到的版本顺序。

    范围默认入口balanced 入口
    图分析512 事务 / 10,000 操作 / 50,000 依赖相同
    精确串行补全8 个提交事务12 个提交事务
    补全操作 / 初始键512 / 128相同
    搜索前缀 / 操作检查100,000 / 1,000,000相同,可调低
    缩减64 事务 / 2,048 操作 / 128 次检查512 事务 / 10,000 操作 / 256 次检查

    高级缓存最多 50,000 项,满后停止插入。核心历史 JSON 限 1,048,576 UTF-16 单元,CLI 历史限 2 MiB UTF-8、深度 64。见输入格式和高级分析。

    #PostgreSQL 接入

    按自动采集说明配置版本列与点查询映射,通过连接入口包装应用连接,保存采集文档后运行:

    node dist/moontxnwitness.mjs ingest capture-trace.json --history history.json node dist/moontxnwitness.mjs check history.json --profile balanced --capsule case.json node dist/postgres-demo.mjs

    ready 表示可导出历史;inconclusive 或 invalid 保持 history:null。采集器保留文档所述驱动结果与异常,不添加业务重试。需要受控写者、一致初始快照和受支持 SQL。

    真实演示需要 PostgreSQL 18 和可选 Python 驱动,保存实际结果、提交/回滚、40001 重试及复现包;缺少数据库时明确未执行。见数据库流程和SQLite 案例。

    #有界追加列表

    列表 SDK提供 normalizeListCaptureV3、analyzeListV3、reduceListV3、verifyListV3、makeListCapsuleV3、replayListCapsuleV3。入口要求显式 traceSchema:3、dataModel:"append-list-v1",保留调用者原始 JSON 字符串;不能混入其他数据模型。

    node examples/list-roundtrip.mjs

    演示使用合成历史,将三个事务缩为两个事务的追加环反例,并保存分析、缩减、复现包及逐文件摘要。每个元素需要唯一身份,值为字符串且允许重复。精确分析最多六个已提交事务、128 个 append/read,默认最多 100,000 个状态和 1,000,000 次语义检查;缩减最多 256 次候选检查。来源不足、未知提交和计算未完成保持无法判定,oneMinimal 只表示同一规则下的事务单删最小。

    胶囊 valid:true 表示报告可重算,仍须读取 status 与覆盖标记;它也可能重放如实记录的 invalid 或 inconclusive 诊断。该精确入口与配置化 SQL 来源入口分别使用;列表逐模型分类仍有声明的图适用范围,语义与额度见模型说明及支持矩阵。

    #有界关系集合

    关系 SDK提供规范化、分析、缩减、验证和复现包重放六个入口,要求显式 dataModel:"relation-set-v1"。支持完整结果集合与空结果、字段等值/区间 AND 谓词,以及插入、更新、删除和保存点;实际写影响与完整查询分别记录。

    node examples/relation-roundtrip.mjs

    合成示例将四个事务缩为三个,保留被异常事务读取的生产者。删除该生产者会丢失来源,不能为了得到更小反例而忽略。类型、完整性与精确搜索额度见关系模型;任意 SQL 自动映射、混合模型和完整隔离分类仍不支持。

    #ORM 模板与来源诊断

    Python 模板入口提供固定 FastAPI Users SQLAlchemy v7.0.0 base-user 的按 ID 查询、创建、修改及删除 SQL。普通导入无需可选依赖,编译时使用 SQLAlchemy 2.0.55。缓存只保存不可变计划,默认最多 128 项、1 MiB 计费条目字节;参数、结果与事务状态不进入缓存。该入口本身不执行 SQL。

    MoonBit 来源诊断核验原始 SQL、同语句来源、回滚与效果账本的对应关系。局部证明成功仍保留 analysisCoverageAccepted:false,不能据此推断完整事务历史。ProvenanceObserver、安装迁移及完整 ORM 采集仍为实验能力。

    #证据解读与执行诊断

    node examples/register-cycle-roundtrip.mjs 解读已有且完整验证的点寄存器环,保存原模型包和独立派生解释;它不搜索全部类别或接受隔离模型。node examples/execution-roundtrip.mjs 离线比较两份旧 MLflow 组件观察,分别重放模型和执行诊断;40P01、未知结果及原 capture.py 来源缺口保留。用法见环解读和执行诊断包。

    已声明输入的 v3 寄存器、列表与关系工作流使用 check-v3、reduce-v3、verify-v3、replay-v3;旧 v1/v2 默认规则保持。显式引擎兼容名单与预算见支持矩阵,兼容不改写业务版本。

    #实验与后续

    分段日志与来源窗口按各自契约使用;更广普通表/ORM 路径、dislock 完整生命周期、关系六模型、模型保持缩减及 MLflow 原服务 HTTP 故障闭环继续开发。受控组件案例不是生产采用证明,不把这些工作作为已经交付的完整应用集成。未支持 SQL 和缺失来源始终可见。

    #开发与验证

    需要 MoonBit、Node.js 和 Python,无需 npm install:

    npm run build npm test npm run package

    测试覆盖跨目标核心、独立串行重放、环证据、解析差分、缩减、CLI 及各 SDK;数量与执行目标取当前版本真实收据,发行包另在全新目录构建和运行。见开发说明。

    性能优化保持完整报告、依赖来源及预算语义。测量和环境见性能报告,进一步提速与扩容按后续路线推进。

    Apache-2.0。依赖和参考来源见 THIRD_PARTY.md;逐版测试与下载记录在 verification/releases/,详细证据见开发记录。

    #配置化 SQL 与实际结果诊断

    v0.3.7 增加统一的配置化采集会话:按表名、主键、列和类型配置 PostgreSQL 单表 SELECT/INSERT/UPDATE/DELETE,由可选 SQLGlot 30.26.0 识别结构,MoonBit 独立重算语法、参数、原生结果字节、实际 fetch 交付和来源安装记录。同步与异步 psycopg 包装、局部连接工厂及 SQLAlchemy engine 使用同一配置入口。

    参见 启动示例 和 统一会话接口。默认只采集诊断,不执行 DDL。来源安装需要显式启用;独立校验报告不会把局部结果或安装成功升级为完整写者窗口、来源认证或隔离模型结论。诊断命令、调用者预算核验和自包含证据重放均在 SDK 与 CLI 中提供。现有事务历史与模型接口保持原语义。

    AnalysisOptions

    pub(all) struct AnalysisOptions {
    max_attempts : Int
    max_operation_checks : Int
    max_cached_states : Int
    } derive(Eq)

    AnalysisOptions::equal

    AnalysisOptions::not_equal

    fn AnalysisOptions::not_equal(x : AnalysisOptions, y : AnalysisOptions) -> Bool

    AnalysisOptionsV4

    pub(all) struct AnalysisOptionsV4 {
    max_attempts : Int
    max_states : Int
    max_operation_checks : Int
    max_cached_states : Int
    } derive(Eq)

    Register defaults are the existing balanced profile; list/relation budgets retain the original bounded interpreter limits. Unused fields grant no work. Register analysis uses the balanced 12-transaction entry point; the legacy analyze entry point and its budgets remain unchanged.

    AnalysisOptionsV4::equal

    AnalysisOptionsV4::not_equal

    fn AnalysisOptionsV4::not_equal(x : AnalysisOptionsV4, y : AnalysisOptionsV4) -> Bool

    AnalysisResult

    pub(all) struct AnalysisResult {
    report : Report
    options : AnalysisOptions
    cache_hits : Int
    cached_states : Int
    } derive(Eq)

    AnalysisResult::equal

    AnalysisResult::not_equal

    fn AnalysisResult::not_equal(x : AnalysisResult, y : AnalysisResult) -> Bool

    AnalysisV4

    pub struct AnalysisV4 {
    // private fields
    }

    An analysis artifact is private so exported JSON cannot modify its history.

    AnalysisV4::data_model

    fn AnalysisV4::data_model(self : AnalysisV4) -> DataModelV4

    AnalysisV4::outcome

    fn AnalysisV4::outcome(self : AnalysisV4) -> Outcome

    CaptureAnomaliesV4

    pub struct CaptureAnomaliesV4 {
    // private fields
    }

    Source-only capture diagnostics. The private record is detached by its getter.

    ClassificationV4

    pub struct ClassificationV4 {
    // private fields
    }

    Category checks are distinct from full isolation-model classification.

    ClassificationV4::status

    fn ClassificationV4::status(self : ClassificationV4) -> String

    ConfiguredFetchCheckV1

    pub struct ConfiguredFetchCheckV1 {
    // private fields
    }

    ConfiguredSessionDiagnosticV4

    pub struct ConfiguredSessionDiagnosticV4 {
    // private fields
    }

    ConfiguredSessionOptionsV4

    pub struct ConfiguredSessionOptionsV4 {
    // private fields
    }

    DataModelV4

    pub(all) enum DataModelV4 {
    RegisterV4
    AppendListV4
    RelationSetV4
    } derive(Eq)

    The three non-mixed input models understood by the structured analysis API.

    DataModelV4::equal

    fn DataModelV4::equal(DataModelV4, DataModelV4) -> Bool

    DataModelV4::not_equal

    fn DataModelV4::not_equal(x : DataModelV4, y : DataModelV4) -> Bool

    Dependency

    pub(all) enum Dependency {
    WR
    WW
    RW
    RT
    } derive(Eq, Hash)

    Dependency::equal

    fn Dependency::equal(Dependency, Dependency) -> Bool

    Dependency::hash

    fn Dependency::hash(self : Dependency) -> Int

    Dependency::hash_combine

    fn Dependency::hash_combine(Dependency, Hasher) -> Unit

    Dependency::not_equal

    fn Dependency::not_equal(x : Dependency, y : Dependency) -> Bool

    Edge

    pub(all) struct Edge {
    from : String
    to : String
    kind : Dependency
    key : String?
    from_op : Int?
    to_op : Int?
    from_version : String?
    to_version : String?
    reason : String
    } derive(Eq, Hash)

    Operation indexes are zero-based. Initial versions have no transaction.

    Edge::equal

    fn Edge::equal(Edge, Edge) -> Bool

    Edge::hash

    fn Edge::hash(self : Edge) -> Int

    Edge::hash_combine

    fn Edge::hash_combine(Edge, Hasher) -> Unit

    Edge::not_equal

    fn Edge::not_equal(x : Edge, y : Edge) -> Bool

    EffectiveListGraphV4

    pub struct EffectiveListGraphV4 {
    // private fields
    }

    ElleModelV4

    pub(all) enum ElleModelV4 {
    ElleReadUncommitted
    ElleReadCommitted
    ElleRepeatableRead
    ElleSerializable
    ElleStrictSerializable
    ElleSnapshotIsolation
    ElleConsistentView
    ElleSessionReadUncommitted
    ElleStrongReadUncommitted
    ElleSessionReadCommitted
    ElleStrongReadCommitted
    ElleSessionSerializable
    ElleSessionSnapshotIsolation
    ElleStrongSnapshotIsolation
    } derive(Eq)

    ElleModelV4::equal

    fn ElleModelV4::equal(ElleModelV4, ElleModelV4) -> Bool

    ElleModelV4::not_equal

    fn ElleModelV4::not_equal(x : ElleModelV4, y : ElleModelV4) -> Bool

    Finding

    pub(all) struct Finding {
    code : String
    severity : String
    message : String
    transactions : Array[String]
    key : String?
    ops : Array[Int]
    } derive(Eq)

    Finding::equal

    fn Finding::equal(Finding, Finding) -> Bool

    Finding::not_equal

    fn Finding::not_equal(x : Finding, y : Finding) -> Bool

    GraphInfo

    pub(all) struct GraphInfo {
    analyzed : Bool
    components : Int
    cyclic_components : Int
    cyclic_transactions : Int
    bfs_roots : Int
    edge_budget_exceeded : Bool
    } derive(Eq)

    GraphInfo::equal

    fn GraphInfo::equal(GraphInfo, GraphInfo) -> Bool

    GraphInfo::not_equal

    fn GraphInfo::not_equal(x : GraphInfo, y : GraphInfo) -> Bool

    History

    pub(all) struct History {
    model : Model
    initial : Map[String, String]
    version_orders : Map[String, Array[String]]
    transactions : Array[Transaction]
    } derive(Eq)

    Version orders contain the initial version followed by all committed final writes.

    History::equal

    fn History::equal(History, History) -> Bool

    History::not_equal

    fn History::not_equal(x : History, y : History) -> Bool

    HistoryV4

    pub struct HistoryV4 {
    // private fields
    }

    A validated, private snapshot. Constructors detach caller-owned collections.

    HistoryV4::data_model

    fn HistoryV4::data_model(self : HistoryV4) -> DataModelV4

    HistoryV4::source_text

    fn HistoryV4::source_text(self : HistoryV4) -> String

    Original bytes remain observations, never a completed or inferred history.

    InternalConsistencyV4

    pub struct InternalConsistencyV4 {
    // private fields
    }

    A formal INT check over supplied capture facts; no database product label.

    KeyCoverage

    pub(all) struct KeyCoverage {
    key : String
    committed_reads : Int
    committed_final_writes : Int
    unresolved_reads : Int
    } derive(Eq)

    KeyCoverage::equal

    fn KeyCoverage::equal(KeyCoverage, KeyCoverage) -> Bool

    KeyCoverage::not_equal

    fn KeyCoverage::not_equal(x : KeyCoverage, y : KeyCoverage) -> Bool

    ListPrefixProjectionV4

    pub struct ListPrefixProjectionV4 {
    // private fields
    }

    ListPrefixProjectionV4::dependency_edge_count

    fn ListPrefixProjectionV4::dependency_edge_count(self : ListPrefixProjectionV4) -> Int

    ListPrefixProjectionV4::is_projected

    fn ListPrefixProjectionV4::is_projected(self : ListPrefixProjectionV4) -> Bool

    Model

    pub(all) enum Model {
    Serializable
    StrictSerializable
    } derive(Eq)

    Model::equal

    fn Model::equal(Model, Model) -> Bool

    Model::not_equal

    fn Model::not_equal(x : Model, y : Model) -> Bool

    ModelClassificationV4

    pub struct ModelClassificationV4 {
    // private fields
    }

    ModelClientV4

    pub(all) struct ModelClientV4 {
    id : String
    transactions : Array[String]
    }

    A declaration of logical client membership; it is not a pooled connection.

    ModelCompletionPolicyV4

    pub(all) enum ModelCompletionPolicyV4 {
    ModelObservationOnlyCompletion
    ModelGivenSnapshotsUnsupported
    } derive(Eq)

    ModelCompletionPolicyV4::equal

    ModelCompletionPolicyV4::not_equal

    ModelFactsV4

    pub struct ModelFactsV4 {
    // private fields
    }

    ModelListProfileV4

    pub(all) enum ModelListProfileV4 {
    ModelListNative
    ModelListPrefixStates
    ModelListOriginalSerial
    } derive(Eq)

    ModelListProfileV4::equal

    ModelListProfileV4::not_equal

    ModelOptionsV4

    pub struct ModelOptionsV4 {
    // private fields
    }

    ModelRelationProfileV4

    pub(all) enum ModelRelationProfileV4 {
    ModelRelationPoint
    ModelRelationPredicateKeySlots
    ModelRelationAtomicRows
    } derive(Eq)

    ModelRelationProfileV4::equal

    ModelRelationProfileV4::not_equal

    OpKind

    pub(all) enum OpKind {
    Read
    Write
    } derive(Eq)

    The supported workload is a versioned, point-read register workload.

    OpKind::equal

    fn OpKind::equal(OpKind, OpKind) -> Bool

    OpKind::not_equal

    fn OpKind::not_equal(x : OpKind, y : OpKind) -> Bool

    Operation

    pub(all) struct Operation {
    kind : OpKind
    key : String
    version : String
    } derive(Eq)

    Operation::equal

    fn Operation::equal(Operation, Operation) -> Bool

    Operation::not_equal

    fn Operation::not_equal(x : Operation, y : Operation) -> Bool

    Outcome

    pub(all) enum Outcome {
    Consistent
    Violation
    Inconclusive
    Invalid
    } derive(Eq)

    Outcome::equal

    fn Outcome::equal(Outcome, Outcome) -> Bool

    Outcome::not_equal

    fn Outcome::not_equal(x : Outcome, y : Outcome) -> Bool

    Reduction

    pub(all) struct Reduction {
    history : History
    report : Report
    status : String
    removed : Array[String]
    checks : Int
    one_minimal : Bool
    reason : String
    } derive(Eq)

    Reduction::equal

    fn Reduction::equal(Reduction, Reduction) -> Bool

    Reduction::not_equal

    fn Reduction::not_equal(x : Reduction, y : Reduction) -> Bool

    ReductionOptions

    pub(all) struct ReductionOptions {
    max_checks : Int
    analysis : AnalysisOptions
    } derive(Eq)

    ReductionOptions::equal

    ReductionOptions::not_equal

    fn ReductionOptions::not_equal(x : ReductionOptions, y : ReductionOptions) -> Bool

    ReductionResult

    pub(all) struct ReductionResult {
    reduction : Reduction
    analysis : AnalysisResult
    cached_checks : Int
    max_checks : Int
    } derive(Eq)

    ReductionResult::equal

    ReductionResult::not_equal

    fn ReductionResult::not_equal(x : ReductionResult, y : ReductionResult) -> Bool

    ReductionV4

    pub struct ReductionV4 {
    // private fields
    }

    A source-preserving reduction under the fixed model-refutation predicate.

    ReductionV4::analysis

    fn ReductionV4::analysis(self : ReductionV4) -> AnalysisV4

    ReductionV4::checks

    fn ReductionV4::checks(self : ReductionV4) -> Int

    ReductionV4::history

    fn ReductionV4::history(self : ReductionV4) -> HistoryV4

    ReductionV4::one_minimal

    fn ReductionV4::one_minimal(self : ReductionV4) -> Bool

    ReductionV4::status

    fn ReductionV4::status(self : ReductionV4) -> String

    RelationCategoryReductionV4

    pub struct RelationCategoryReductionV4 {
    // private fields
    }

    Transaction deletion with a fixed, independently selected relation category.

    RelationCategoryReductionV4::history

    RelationClassificationV4

    pub struct RelationClassificationV4 {
    // private fields
    }

    RelationClassificationV4::status

    RelationPointGraphV4

    pub struct RelationPointGraphV4 {
    // private fields
    }

    A point-row adapter. Node containers have no synthetic register operations.

    RelationPredicateClassificationV4

    pub struct RelationPredicateClassificationV4 {
    // private fields
    }

    A bounded graph-category result, separate from an isolation-model judgment.

    RelationPredicateClassificationV4::status

    RelationPredicateGraphV4

    pub struct RelationPredicateGraphV4 {
    // private fields
    }

    Persistent primary-key slots are the objects of this explicit adapter. Original tuple incarnations are retained; their physical equivalence is not claimed.

    RelationPredicateGraphV4::edges

    RelationProgramReplayModeV4

    pub(all) enum RelationProgramReplayModeV4 {
    RelationSnapshotPrefixes
    RelationSerialOrder
    } derive(Eq)

    RelationProgramReplayModeV4::not_equal

    RelationProgramReplayV4

    pub struct RelationProgramReplayV4 {
    // private fields
    }

    RelationProgramReplayV4::status

    RelationRowProjectionV4

    pub struct RelationRowProjectionV4 {
    // private fields
    }

    A derived atomic-key-slot program, never a synthetic register HistoryV4.

    RelationRowProjectionV4::is_projected

    fn RelationRowProjectionV4::is_projected(self : RelationRowProjectionV4) -> Bool

    RelationScopedEdgeV4

    pub struct RelationScopedEdgeV4 {
    // private fields
    } derive(Eq, Hash)

    Scope is part of identity even if item and predicate edges share endpoints.

    RelationScopedEdgeV4::dependency

    RelationScopedEdgeV4::equal

    RelationScopedEdgeV4::hash

    RelationScopedEdgeV4::hash_combine

    RelationScopedEdgeV4::not_equal

    RelationScopedEdgeV4::scope

    fn RelationScopedEdgeV4::scope(self : RelationScopedEdgeV4) -> String

    Report

    pub(all) struct Report {
    outcome : Outcome
    model : Model
    findings : Array[Finding]
    edges : Array[Edge]
    witness : Array[Edge]
    serial_order : Array[String]
    transaction_count : Int
    committed_count : Int
    operation_count : Int
    inferred_orders : Map[String, Array[String]]
    order_sources : Map[String, String]
    search : SearchInfo
    graph : GraphInfo
    coverage : Array[KeyCoverage]
    } derive(Eq)

    Consistent is a claim about the supplied complete history and asserted version orders.

    Report::equal

    fn Report::equal(Report, Report) -> Bool

    Report::not_equal

    fn Report::not_equal(x : Report, y : Report) -> Bool

    SQLCandidateCheckV1

    pub struct SQLCandidateCheckV1 {
    // private fields
    }

    SQLConfigV1

    pub struct SQLConfigV1 {
    // private fields
    }

    SQLVerificationOptionsV1

    pub struct SQLVerificationOptionsV1 {
    // private fields
    }

    ScopedCategoryV4

    pub(all) enum ScopedCategoryV4 {
    ScopedG0
    ScopedG1c
    ScopedG2Item
    ScopedG2
    ScopedGSingleItem
    ScopedGSingle
    ScopedGNonadjacent
    } derive(Eq)

    ScopedCategoryV4::equal

    ScopedCategoryV4::not_equal

    fn ScopedCategoryV4::not_equal(x : ScopedCategoryV4, y : ScopedCategoryV4) -> Bool

    ScopedDataEdgeInputV4

    pub(all) struct ScopedDataEdgeInputV4 {
    id : String
    from : String
    to : String
    kind : ScopedDataKindV4
    sources : Array[Json]
    }

    ScopedDataKindV4

    pub(all) enum ScopedDataKindV4 {
    ScopedWWItem
    ScopedWWPredicate
    ScopedWRItem
    ScopedWRPredicate
    ScopedRWItem
    ScopedRWPredicate
    } derive(Eq)

    ScopedDataKindV4::equal

    ScopedDataKindV4::not_equal

    fn ScopedDataKindV4::not_equal(x : ScopedDataKindV4, y : ScopedDataKindV4) -> Bool

    ScopedDependencyGraphV4

    pub struct ScopedDependencyGraphV4 {
    // private fields
    }

    ScopedDependencyGraphV4::input_sha256

    fn ScopedDependencyGraphV4::input_sha256(self : ScopedDependencyGraphV4) -> String

    ScopedOrderContextV4

    pub(all) enum ScopedOrderContextV4 {
    ScopedDataOnly
    ScopedWithProcess
    ScopedWithRealtime
    } derive(Eq)

    ScopedOrderContextV4::equal

    ScopedOrderContextV4::not_equal

    ScopedOrderEdgeInputV4

    pub(all) struct ScopedOrderEdgeInputV4 {
    id : String
    from : String
    to : String
    kind : ScopedOrderKindV4
    context_id : String
    from_source : ScopedOriginalRefV4
    to_source : ScopedOriginalRefV4
    }

    Order is supplied explicitly. A physical pooled connection is not a process.

    ScopedOrderKindV4

    pub(all) enum ScopedOrderKindV4 {
    ScopedProcess
    ScopedRealtime
    } derive(Eq)

    ScopedOrderKindV4::equal

    ScopedOrderKindV4::not_equal

    fn ScopedOrderKindV4::not_equal(x : ScopedOrderKindV4, y : ScopedOrderKindV4) -> Bool

    ScopedOriginalRefV4

    pub(all) struct ScopedOriginalRefV4 {
    transaction : String
    observation : Json
    }

    ScopedRuleSetV4

    pub(all) enum ScopedRuleSetV4 {
    Adya2000Mixed
    ElleFixed4e359e5
    } derive(Eq)

    ScopedRuleSetV4::equal

    ScopedRuleSetV4::not_equal

    fn ScopedRuleSetV4::not_equal(x : ScopedRuleSetV4, y : ScopedRuleSetV4) -> Bool

    ScopedSearchResultV4

    pub struct ScopedSearchResultV4 {
    // private fields
    }

    ScopedSearchResultV4::status

    fn ScopedSearchResultV4::status(self : ScopedSearchResultV4) -> String

    SearchInfo

    pub(all) struct SearchInfo {
    status : String
    attempts : Int
    operation_checks : Int
    reason : String
    blockers : Array[Finding]
    } derive(Eq)

    SearchInfo::equal

    fn SearchInfo::equal(SearchInfo, SearchInfo) -> Bool

    SearchInfo::not_equal

    fn SearchInfo::not_equal(x : SearchInfo, y : SearchInfo) -> Bool

    SourceFetchMappingV4

    pub struct SourceFetchMappingV4 {
    // private fields
    }

    SourceInstallationCheckV4

    pub struct SourceInstallationCheckV4 {
    // private fields
    }

    Transaction

    pub(all) struct Transaction {
    id : String
    status : TxStatus
    ops : Array[Operation]
    start : Int64?
    end : Int64?
    } derive(Eq)

    Transaction::equal

    fn Transaction::equal(Transaction, Transaction) -> Bool

    Transaction::not_equal

    fn Transaction::not_equal(x : Transaction, y : Transaction) -> Bool

    TxStatus

    pub(all) enum TxStatus {
    Committed
    Aborted
    Unknown
    } derive(Eq)

    TxStatus::equal

    fn TxStatus::equal(TxStatus, TxStatus) -> Bool

    TxStatus::not_equal

    fn TxStatus::not_equal(x : TxStatus, y : TxStatus) -> Bool

    analysis_options

    fn analysis_options(max_attempts? : Int, max_operation_checks? : Int, max_cached_states? : Int) -> AnalysisOptions

    analysis_options_v4

    fn analysis_options_v4(max_attempts? : Int, max_states? : Int, max_operation_checks? : Int, max_cached_states? : Int) -> AnalysisOptionsV4

    analysis_result_json

    fn analysis_result_json(result : AnalysisResult) -> Json

    analysis_v4_json

    fn analysis_v4_json(analysis : AnalysisV4) -> Json

    Returns a detached structured view, without parsing or encoding it again.

    analyze

    fn analyze(h : History) -> Report

    Analyze point reads and unique versioned writes. No arrival/commit order is invented.

    analyze_json

    fn analyze_json(text : String) -> String

    Main portable host entry. Syntax/schema errors have the same report envelope.

    analyze_options_json

    fn analyze_options_json(text : String, options_text : String) -> String

    analyze_v3_json

    fn analyze_v3_json(text : String, options_text : String) -> String

    analyze_v4

    fn analyze_v4(history : HistoryV4, options? : AnalysisOptionsV4) -> AnalysisV4

    Reuses retained parsed programs and creates fresh reversible search state.

    analyze_v4_json

    fn analyze_v4_json(text : String, options_text : String) -> String

    analyze_with_options

    fn analyze_with_options(h : History, options? : AnalysisOptions) -> AnalysisResult

    benchmark_cycle

    fn benchmark_cycle(h : History, r : Report) -> Int

    benchmark_infer

    fn benchmark_infer(h : History) -> Report

    Development-only phase hooks. Timers live in the host, not the analyzer.

    benchmark_parser_agreement

    fn benchmark_parser_agreement(text : String) -> String

    benchmark_reduce_balanced

    fn benchmark_reduce_balanced(h : History) -> ReductionResult

    benchmark_render

    fn benchmark_render(r : Report) -> String

    fn benchmark_search(h : History, r : Report) -> Int

    benchmark_search_balanced

    fn benchmark_search_balanced(h : History, r : Report) -> Int

    build_list_graph_effective_v4

    fn build_list_graph_effective_v4(history : HistoryV4, max_checks? : Int) -> Result[EffectiveListGraphV4, String]

    Explicit low-level opt-in builder; classification defaults stay unchanged.

    build_relation_point_graph_v4

    fn build_relation_point_graph_v4(history : HistoryV4, max_checks? : Int) -> Result[RelationPointGraphV4, String]

    build_relation_predicate_graph_v4

    fn build_relation_predicate_graph_v4(history : HistoryV4, max_graph_checks? : Int, max_predicate_checks? : Int, max_candidate_visits? : Int) -> Result[RelationPredicateGraphV4, String]

    capsule_content_json

    fn capsule_content_json(text : String) -> String

    Parse a capsule with duplicate-key/depth limits. Cryptographic hashes belong to the host.

    capsule_v3_content_json

    fn capsule_v3_content_json(text : String) -> String

    Host transports bytes and SHA-256; bounded duplicate-key parsing stays in MoonBit.

    capsule_v4_content_json

    fn capsule_v4_content_json(text : String) -> String

    Duplicate-key guarding also applies to the untrusted outer capsule envelope.

    capture_anomalies_v4_json

    fn capture_anomalies_v4_json(result : CaptureAnomaliesV4) -> Json

    Return a detached record; a completed diagnostic never accepts a full model.

    classification_v4_json

    fn classification_v4_json(result : ClassificationV4) -> Json

    classify_models_v4

    fn classify_models_v4(facts : ModelFactsV4, options : ModelOptionsV4) -> ModelClassificationV4

    The model composition always starts from HistoryV4, never trusted proof JSON.

    classify_models_v4_json

    fn classify_models_v4_json(text : String, options_text : String) -> String

    Model obligations are independent of existing graph-category APIs.

    classify_relation_point_v4

    fn classify_relation_point_v4(history : HistoryV4, categories? : Array[String], max_states? : Int, max_edge_checks? : Int, max_graph_checks? : Int) -> RelationClassificationV4

    Independent relation category entry. It does not change classify_v4 defaults.

    classify_relation_predicate_v4

    fn classify_relation_predicate_v4(history : HistoryV4, category : ScopedCategoryV4, rule_set~ : ScopedRuleSetV4, max_graph_checks? : Int, max_predicate_checks? : Int, max_candidate_visits? : Int, max_states? : Int, max_edge_checks? : Int) -> Result[RelationPredicateClassificationV4, String]

    Rules are required: Adya mixed-item/predicate and fixed Elle scopes differ. Process and real-time edges are never inferred from physical connections.

    classify_relation_predicate_v4_json

    fn classify_relation_predicate_v4_json(text : String, options_text : String) -> String

    classify_relation_v4_json

    fn classify_relation_v4_json(text : String, options_text : String) -> String

    classify_v3_json

    fn classify_v3_json(text : String, options_text : String) -> String

    classify_v4

    fn classify_v4(history : HistoryV4, categories? : Array[String], max_states? : Int, max_edge_checks? : Int, list_graph? : String, max_list_graph_checks? : Int) -> ClassificationV4

    Each requested category has its own search and budget over one shared graph.

    classify_v4_json

    fn classify_v4_json(text : String, options_text : String) -> String

    compare_configured_c_text_v1

    fn compare_configured_c_text_v1(a : String, b : String) -> Int

    Comparison helper only. PostgreSQL encoding/collation/catalog proof is external.

    compare_models

    fn compare_models(h : History) -> Json

    compare_models_json

    fn compare_models_json(text : String) -> String

    configured_fetch_check_v1_json

    fn configured_fetch_check_v1_json(result : ConfiguredFetchCheckV1) -> Json

    configured_session_bundle_v4_json

    fn configured_session_bundle_v4_json(text : String) -> String

    configured_session_diagnostic_v4_json

    fn configured_session_diagnostic_v4_json(value : ConfiguredSessionDiagnosticV4) -> Json

    configured_session_options_v4

    fn configured_session_options_v4(max_journal_checks? : Int, max_results? : Int, max_installation_checks? : Int, max_fetch_checks? : Int, max_result_checks? : Int, max_source_checks? : Int) -> Result[ConfiguredSessionOptionsV4, String]

    configured_session_options_v4_json

    fn configured_session_options_v4_json(text : String) -> String

    diagnose_configured_session_v4

    fn diagnose_configured_session_v4(config : SQLConfigV1, lifecycle_text : String, diagnostic_trace_text : String, source_input : Json, options? : ConfiguredSessionOptionsV4) -> ConfiguredSessionDiagnosticV4

    diagnose_configured_session_v4_json

    fn diagnose_configured_session_v4_json(config_text : String, lifecycle_text : String, diagnostic_trace_text : String, source_inputs_text : String, options_text : String) -> String

    dislock_sql_v3_proof_json

    fn dislock_sql_v3_proof_json(text : String) -> String

    Independent semantic diagnostic; successful matching does not authenticate that the input came from a database. It grants no normalization exemptions.

    elle_core_models_v4

    fn elle_core_models_v4() -> Array[ElleModelV4]

    history_json

    fn history_json(h : History) -> Json

    Explicit history export is useful to library consumers and retains all recorded operations.

    history_v4_json

    fn history_v4_json(history : HistoryV4) -> Json

    A detached JSON view; mutating it cannot change future analysis or replay.

    inspect_anomalies_v4

    fn inspect_anomalies_v4(history : HistoryV4, max_checks? : Int) -> Json

    Inspect validated register/list observations without changing analysis semantics.

    inspect_anomalies_v4_json

    fn inspect_anomalies_v4_json(text : String, options_text : String) -> String

    inspect_capture_anomalies_v4

    fn inspect_capture_anomalies_v4(history : HistoryV4, max_checks? : Int) -> CaptureAnomaliesV4

    Inspect raw register/list source effects; no schema1 version-order inference.

    inspect_capture_anomalies_v4_json

    fn inspect_capture_anomalies_v4_json(text : String, options_text : String) -> String

    inspect_execution_failures_v3_json

    fn inspect_execution_failures_v3_json(text : String) -> String

    Describe recorded driver failures independently of the isolation judgment. A SQLSTATE is an observation supplied by the caller, not database attestation.

    inspect_internal_consistency_v4

    fn inspect_internal_consistency_v4(history : HistoryV4, max_checks? : Int) -> InternalConsistencyV4

    Fixed formal INT with an explicit effective-write extension for savepoints.

    inspect_internal_consistency_v4_json

    fn inspect_internal_consistency_v4_json(text : String, options_text : String) -> String

    inspect_lost_updates_v4

    fn inspect_lost_updates_v4(history : HistoryV4, max_checks? : Int) -> Json

    Explicit profile: source inspection plus proven register lost-update pairs.

    inspect_lost_updates_v4_json

    fn inspect_lost_updates_v4_json(text : String, options_text : String) -> String

    internal_consistency_v4_json

    fn internal_consistency_v4_json(result : InternalConsistencyV4) -> Json

    list_graph_effective_v4_json

    fn list_graph_effective_v4_json(result : EffectiveListGraphV4) -> Json

    list_prefix_projection_v4_json

    fn list_prefix_projection_v4_json(result : ListPrefixProjectionV4) -> Json

    model_capsule_v4_content_json

    fn model_capsule_v4_content_json(text : String) -> String

    Version is descriptive metadata; it cannot select a verifier or grant budget.

    model_classification_v4_json

    fn model_classification_v4_json(result : ModelClassificationV4) -> Json

    model_facts_v4

    fn model_facts_v4(history : HistoryV4, clients? : Array[ModelClientV4], clients_complete? : Bool) -> Result[ModelFactsV4, String]

    model_options_v4

    fn model_options_v4(models? : Array[ElleModelV4], max_source_checks? : Int, max_states? : Int, max_edge_checks? : Int, relation_profile? : ModelRelationProfileV4, list_profile? : ModelListProfileV4, completion_policy? : ModelCompletionPolicyV4) -> Result[ModelOptionsV4, String]

    model_options_v4_content_json

    fn model_options_v4_content_json(text : String) -> String

    model_profile_source_v3_json

    fn model_profile_source_v3_json(text : String, options_text : String) -> String

    The model source package contains original observations, never an accepted Python history. Projection is accepted only after independent SQL, source, actual delivery, transaction, lifecycle and committed-effect checks.

    model_report_v4_content_json

    fn model_report_v4_content_json(text : String) -> String

    normalize_capture_json

    fn normalize_capture_json(text : String) -> String

    Validate a complete capture envelope before exposing an ordinary history. Declared capture scope is an assumption, not authenticated source evidence.

    normalize_capture_v3_json

    fn normalize_capture_v3_json(text : String) -> String

    normalize_capture_v3_options_json

    fn normalize_capture_v3_options_json(text : String, options_text : String) -> String

    normalize_configured_sql_v1_json

    fn normalize_configured_sql_v1_json(config_text : String, source : String, parameters_text : String, options_text : String) -> String

    normalize_list_capture_v3_json

    fn normalize_list_capture_v3_json(text : String) -> String

    normalize_presence_capture_json

    fn normalize_presence_capture_json(text : String) -> String

    Experimental presence facts are internally checked observations, not database authentication. Predecessors constrain factual version order and never create a read operation. The old trace-1 lifecycle validator remains the authority for event sequence, transaction outcomes, clocks and coverage.

    normalize_relation_capture_v3_json

    fn normalize_relation_capture_v3_json(text : String) -> String

    normalize_sql_candidate_v1

    fn normalize_sql_candidate_v1(config : SQLConfigV1, source : String, parameters : Json, options? : SQLVerificationOptionsV1) -> SQLCandidateCheckV1

    normalize_sql_config_v1_json

    fn normalize_sql_config_v1_json(text : String) -> String

    options_v4_content_json

    fn options_v4_content_json(text : String) -> String

    CLI options retain duplicate-key rejection before becoming host objects.

    orm_profile_source_v3_json

    fn orm_profile_source_v3_json(text : String, options_text : String) -> String

    Analyze only the configured, independently source-proven fixed base-user CRUD window. Raw diagnostic gaps and the old sourceSchema2 proof remain unchanged.

    orm_sql_source2_v3_proof_json

    fn orm_sql_source2_v3_proof_json(text : String) -> String

    orm_sql_v3_proof_json

    fn orm_sql_v3_proof_json(text : String) -> String

    parse_history

    fn parse_history(text : String) -> Result[History, String]

    Parse the versioned-register input schema. Unknown fields are rejected.

    parse_history_optimized

    fn parse_history_optimized(text : String) -> Result[History, String]

    Valid-input fast path; legacy decoding retains exact errors and uncommon cases.

    parse_history_v4

    fn parse_history_v4(text : String) -> Result[HistoryV4, String]

    Parse once at the boundary, then retain model-specific validated structures. Capture syntax is the existing v3 wire contract; v4 is a separate report API.

    parse_sql_config_v1

    fn parse_sql_config_v1(text : String) -> Result[SQLConfigV1, String]

    project_list_prefix_v4

    fn project_list_prefix_v4(history : HistoryV4, max_checks? : Int) -> Result[ListPrefixProjectionV4, String]

    project_relation_rows_v4

    fn project_relation_rows_v4(history : HistoryV4, max_checks? : Int) -> Result[RelationRowProjectionV4, String]

    reduce_classification_v3_json

    fn reduce_classification_v3_json(text : String, options_text : String) -> String

    Reduction preserves the requested category, not just an arbitrary serial violation. Every deletion re-normalizes source facts and reruns that search.

    reduce_history

    fn reduce_history(h : History, max_checks? : Int) -> Reduction

    Delta debugging followed by a complete singleton pass proves one-minimality. The predicate is a definite Violation from this analyzer, not absence of a serial replay with unknown sources.

    reduce_relation_category_v4

    fn reduce_relation_category_v4(history : HistoryV4, category~ : String, max_checks? : Int, max_states? : Int, max_edge_checks? : Int, max_graph_checks? : Int) -> RelationCategoryReductionV4

    Missing sources and unfinished checks prevent a single-minimality claim. Final evidence is recomputed even after the candidate budget is exhausted.

    reduce_relation_category_v4_json

    fn reduce_relation_category_v4_json(text : String, options : String) -> String

    reduce_v3_json

    fn reduce_v3_json(text : String, options_text : String) -> String

    Every candidate is source-validated again. No searched orders become capture facts.

    reduce_v4

    fn reduce_v4(history : HistoryV4, preserve~ : Model, max_checks? : Int, options? : AnalysisOptionsV4) -> ReductionV4

    Deletes transactions while preserving raw capture facts and source closure. The predicate is a refutation of the original model, not a selected anomaly.

    reduce_v4_json

    fn reduce_v4_json(text : String, options_text : String) -> String

    reduce_with_options

    fn reduce_with_options(h : History, options? : ReductionOptions) -> ReductionResult

    reduction_json

    fn reduction_json(r : Reduction) -> Json

    reduction_options

    fn reduction_options(max_checks? : Int, analysis? : AnalysisOptions) -> ReductionOptions

    reduction_result_json

    fn reduction_result_json(result : ReductionResult) -> Json

    reduction_v4_json

    fn reduction_v4_json(result : ReductionV4) -> Json

    register_history_v4

    fn register_history_v4(history : History) -> Result[HistoryV4, String]

    The constructor accepts a caller-declared history, not authenticated capture.

    relation_category_reduction_v4_json

    fn relation_category_reduction_v4_json(result : RelationCategoryReductionV4) -> Json

    relation_classification_v4_json

    fn relation_classification_v4_json(result : RelationClassificationV4) -> Json

    relation_point_graph_v4_json

    fn relation_point_graph_v4_json(result : RelationPointGraphV4) -> Json

    relation_predicate_classification_v4_json

    fn relation_predicate_classification_v4_json(result : RelationPredicateClassificationV4) -> Json

    relation_predicate_graph_v4_json

    fn relation_predicate_graph_v4_json(result : RelationPredicateGraphV4) -> Json

    relation_program_replay_v4_json

    fn relation_program_replay_v4_json(value : RelationProgramReplayV4) -> Json

    relation_reduction_capsule_v4_content_json

    fn relation_reduction_capsule_v4_content_json(text : String) -> String

    relation_reduction_report_v4_content_json

    fn relation_reduction_report_v4_content_json(text : String) -> String

    relation_row_projection_v4_json

    fn relation_row_projection_v4_json(value : RelationRowProjectionV4) -> Json

    render_analysis_v4

    fn render_analysis_v4(analysis : AnalysisV4) -> String

    The transport boundary performs its only report serialization here.

    render_classification_v4

    fn render_classification_v4(result : ClassificationV4) -> String

    render_reduction_v4

    fn render_reduction_v4(result : ReductionV4) -> String

    render_relation_classification_v4

    fn render_relation_classification_v4(result : RelationClassificationV4) -> String

    render_report

    fn render_report(r : Report, format : String) -> String

    Render local text, Markdown, JSON or Graphviz DOT. No external renderer is required.

    replay_relation_program_v4

    fn replay_relation_program_v4(history : HistoryV4, certificate : Json, mode~ : RelationProgramReplayModeV4, max_checks? : Int) -> Result[RelationProgramReplayV4, String]

    replay_report_json

    fn replay_report_json(history_text : String, report_text : String) -> String

    Recompute semantic fields. Supplemental presentation/coverage fields are not authenticated.

    report_json

    fn report_json(r : Report) -> Json

    run_json

    fn run_json(text : String, format : String) -> String

    Host transport combines a structured result and its MoonBit-rendered presentation.

    run_options_json

    fn run_options_json(text : String, format : String) -> String

    scoped_dependency_graph_v4

    fn scoped_dependency_graph_v4(nodes : Array[String], data_edges : Array[ScopedDataEdgeInputV4], order_edges? : Array[ScopedOrderEdgeInputV4], data_complete? : Bool, process_complete? : Bool, realtime_complete? : Bool, gaps? : Array[Json]) -> Result[ScopedDependencyGraphV4, String]

    The snapshot binds caller-declared graph facts. It does not authenticate a DB. Missing edge provenance is excluded and makes only its required context unknown.

    scoped_dependency_graph_v4_json

    fn scoped_dependency_graph_v4_json(graph : ScopedDependencyGraphV4) -> Json

    scoped_search_v4_json

    fn scoped_search_v4_json(result : ScopedSearchResultV4) -> Json

    search_scoped_category_v4

    fn search_scoped_category_v4(graph : ScopedDependencyGraphV4, category : ScopedCategoryV4, rule_set~ : ScopedRuleSetV4, order_context? : ScopedOrderContextV4, max_states? : Int, max_edge_checks? : Int) -> ScopedSearchResultV4

    Rules are mandatory caller input. Missing-source edges never become witnesses.

    search_si_extension_v4

    fn search_si_extension_v4(graph : ScopedDependencyGraphV4, rule_set~ : ScopedRuleSetV4, order_context? : ScopedOrderContextV4, max_states? : Int, max_edge_checks? : Int) -> ScopedSearchResultV4

    Fixed Elle sequential-extension is one I step, optionally one A step, not I union A and not a transitive closure. Derived self-loops are retained.

    shrink_json

    fn shrink_json(text : String) -> String

    shrink_options_json

    fn shrink_options_json(text : String, options_text : String) -> String

    source_fetch_mapping_v4_json

    fn source_fetch_mapping_v4_json(result : SourceFetchMappingV4) -> Json

    source_installation_check_v4_json

    fn source_installation_check_v4_json(result : SourceInstallationCheckV4) -> Json

    source_rules_capsule_v4_content_json

    fn source_rules_capsule_v4_content_json(text : String) -> String

    Independent envelope. Producer version is metadata, never a replay selector.

    source_rules_report_v4_content_json

    fn source_rules_report_v4_content_json(text : String) -> String

    Keep duplicate-key and depth validation before host JSON inspection.

    sql_candidate_check_v1_json

    fn sql_candidate_check_v1_json(result : SQLCandidateCheckV1) -> Json

    sql_config_v1_json

    fn sql_config_v1_json(config : SQLConfigV1) -> Json

    sql_verification_options_v1

    fn sql_verification_options_v1(max_checks? : Int, max_tokens? : Int, max_sql_bytes? : Int) -> SQLVerificationOptionsV1

    verify_anomalies_v4

    fn verify_anomalies_v4(history : HistoryV4, supplied : Json, max_checks? : Int) -> Bool

    Expected work budget comes from the caller, not from the supplied artifact.

    verify_anomalies_v4_json

    fn verify_anomalies_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_capture_anomalies_v4_json

    fn verify_capture_anomalies_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_certificate_json

    fn verify_certificate_json(history_text : String, certificate_text : String) -> String

    verify_classification_v3_json

    fn verify_classification_v3_json(text : String, report_text : String) -> String

    verify_classification_v4

    fn verify_classification_v4(history : HistoryV4, supplied : Json, categories? : Array[String], max_states? : Int, max_edge_checks? : Int, list_graph? : String, max_list_graph_checks? : Int) -> Bool

    verify_classification_v4_json

    fn verify_classification_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_configured_fetch_v1

    fn verify_configured_fetch_v1(config : SQLConfigV1, execution : Json, native : Json, deliveries : Json, max_checks? : Int, grammar_options? : SQLVerificationOptionsV1) -> ConfiguredFetchCheckV1

    verify_configured_fetch_v1_json

    fn verify_configured_fetch_v1_json(config_text : String, execution_text : String, native_text : String, deliveries_text : String, options_text : String) -> String

    verify_configured_session_diagnostic_v4

    fn verify_configured_session_diagnostic_v4(config : SQLConfigV1, lifecycle_text : String, diagnostic_trace_text : String, source_input : Json, report : Json, expected_options? : ConfiguredSessionOptionsV4) -> Bool

    verify_configured_session_diagnostic_v4_json

    fn verify_configured_session_diagnostic_v4_json(config_text : String, lifecycle_text : String, diagnostic_trace_text : String, source_inputs_text : String, report_text : String, expected_options_text : String) -> Bool

    verify_configured_sql_v1_json

    fn verify_configured_sql_v1_json(config_text : String, source : String, parameters_text : String, candidate_text : String, options_text : String) -> String

    verify_cycle

    fn verify_cycle(h : History, witness : Array[Edge]) -> Bool

    Verify edge provenance and cycle closure without running cycle search again.

    verify_internal_consistency_v4

    fn verify_internal_consistency_v4(history : HistoryV4, supplied : Json, max_checks? : Int) -> Bool

    Verification uses the caller's independent budget, never a report's budget.

    verify_internal_consistency_v4_json

    fn verify_internal_consistency_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_list_prefix_projection_v4

    fn verify_list_prefix_projection_v4(history : HistoryV4, supplied : Json, max_checks? : Int) -> Bool

    verify_lost_updates_v4

    fn verify_lost_updates_v4(history : HistoryV4, supplied : Json, max_checks? : Int) -> Bool

    verify_lost_updates_v4_json

    fn verify_lost_updates_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_model_classification_v4_json

    fn verify_model_classification_v4_json(text : String, report_text : String, expected_options_text : String) -> String

    Recompute from original source and independently supplied policy and limits.

    verify_models_v4

    fn verify_models_v4(facts : ModelFactsV4, supplied : Json, options : ModelOptionsV4) -> Bool

    verify_reduction_v4

    fn verify_reduction_v4(history : HistoryV4, supplied : Json, preserve~ : Model, max_checks? : Int, options? : AnalysisOptionsV4) -> Bool

    verify_reduction_v4_json

    fn verify_reduction_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_relation_category_reduction_v4

    fn verify_relation_category_reduction_v4(history : HistoryV4, supplied : Json, category~ : String, max_checks? : Int, max_states? : Int, max_edge_checks? : Int, max_graph_checks? : Int) -> Bool

    verify_relation_category_reduction_v4_json

    fn verify_relation_category_reduction_v4_json(text : String, report : String, options : String) -> String

    verify_relation_classification_v4

    fn verify_relation_classification_v4(history : HistoryV4, supplied : Json, categories? : Array[String], max_states? : Int, max_edge_checks? : Int, max_graph_checks? : Int) -> Bool

    verify_relation_classification_v4_json

    fn verify_relation_classification_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_relation_predicate_classification_v4

    fn verify_relation_predicate_classification_v4(history : HistoryV4, supplied : Json, category : ScopedCategoryV4, rule_set~ : ScopedRuleSetV4, max_graph_checks? : Int, max_predicate_checks? : Int, max_candidate_visits? : Int, max_states? : Int, max_edge_checks? : Int) -> Bool

    The caller independently supplies every category/ruleset/budget selector.

    verify_relation_predicate_classification_v4_json

    fn verify_relation_predicate_classification_v4_json(text : String, report_text : String, options_text : String) -> String

    verify_relation_predicate_graph_v4

    fn verify_relation_predicate_graph_v4(history : HistoryV4, supplied : Json, max_graph_checks? : Int, max_predicate_checks? : Int, max_candidate_visits? : Int) -> Bool

    verify_relation_program_replay_v4

    fn verify_relation_program_replay_v4(history : HistoryV4, report : Json, certificate : Json, mode~ : RelationProgramReplayModeV4, max_checks? : Int) -> Bool

    verify_relation_row_projection_v4

    fn verify_relation_row_projection_v4(history : HistoryV4, report : Json, max_checks? : Int) -> Bool

    verify_scoped_category_v4

    fn verify_scoped_category_v4(graph : ScopedDependencyGraphV4, supplied : Json, category : ScopedCategoryV4, rule_set~ : ScopedRuleSetV4, order_context? : ScopedOrderContextV4, max_states? : Int, max_edge_checks? : Int) -> Bool

    verify_si_extension_v4

    fn verify_si_extension_v4(graph : ScopedDependencyGraphV4, supplied : Json, rule_set~ : ScopedRuleSetV4, order_context? : ScopedOrderContextV4, max_states? : Int, max_edge_checks? : Int) -> Bool

    verify_source_fetch_mapping_report_v4_json

    fn verify_source_fetch_mapping_report_v4_json(config_text : String, policy_text : String, log_text : String, receipt_text : String, execution_text : String, native_text : String, deliveries_text : String, context_text : String, report_text : String, expected_options_text : String) -> Bool

    verify_source_fetch_mapping_v4

    fn verify_source_fetch_mapping_v4(installation : SourceInstallationCheckV4, execution : Json, native : Json, deliveries : Json, source_context : Json, max_checks? : Int, max_fetch_checks? : Int, grammar_options? : SQLVerificationOptionsV1) -> SourceFetchMappingV4

    verify_source_fetch_mapping_v4_json

    fn verify_source_fetch_mapping_v4_json(config_text : String, policy_text : String, log_text : String, receipt_text : String, execution_text : String, native_text : String, deliveries_text : String, context_text : String, options_text : String) -> String

    verify_source_installation_report_v4_json

    fn verify_source_installation_report_v4_json(config_text : String, policy_text : String, log_text : String, receipt_text : String, report_text : String, expected_options_text : String) -> Bool

    verify_source_installation_v4

    fn verify_source_installation_v4(config : SQLConfigV1, policy_value : Json, original_log : String, receipt : Json, max_checks? : Int) -> SourceInstallationCheckV4

    verify_source_installation_v4_json

    fn verify_source_installation_v4_json(config_text : String, policy_text : String, log_text : String, receipt_text : String, options_text : String) -> String

    verify_sql_candidate_v1

    fn verify_sql_candidate_v1(config : SQLConfigV1, source : String, parameters : Json, candidate : Json, options? : SQLVerificationOptionsV1) -> SQLCandidateCheckV1

    verify_v3_json

    fn verify_v3_json(text : String, report_text : String) -> String

    verify_v4

    fn verify_v4(history : HistoryV4, supplied : Json, options? : AnalysisOptionsV4) -> Bool

    Caller-supplied budgets are trusted context, not authority taken from a report.

    verify_v4_json

    fn verify_v4_json(text : String, report_text : String, options_text : String) -> String

    version

    fn version() -> String

    Source Files