目录 / 文档-技术白皮书 / 15-EFT.WP.Methods.Falsification v1.0
I. 范围与目标
- 汇总本卷实现绑定 I50-* 的原型、契约、异常与参考片段,确保在相同 EnvLock 与 anchor 下的可复现、可审计与可取证性。
- 面向实现者与审计者:所有接口严格遵循统一符号与歧义规避规则;任意分式与算子加括号;时间对齐以 ts = alpha + beta * tau_mono 为准。
II. 术语与符号
- 保持与附录A一致:H0/H1,T(x),C_alpha,alpha/beta/power,FDR/FWER/q_star,GateDecision ∈ {pass, hold, block},delta_offon,R_infer = 1 - delta_offon,epsilon_linf/epsilon_l2,budget.cpu/gpu/mem,EnvLock,anchor,hash(·),fingerprint,Graph.sig/ParamCard.sig/InferPipelineCard.sig。
- 冲突名强制:T_fil 与 T_trans 不可混用;n 与 n_eff 严格区分。
III. 原型清单与参数(I50-1 → I50-10)
- I50-1 define_hypothesis(spec:dict) -> Hypothesis
- 目的:注册可证伪的 H0/H1、效果量口径与通过门。
- 输入:spec = {H0:str, H1:str, effect_size:str, alpha:float, power_target:float, delta_equiv:float?}。
- 输出:Hypothesis = {id:str, spec:dict, created_at:ts, anchor}。
- 前置:check_dim(spec);文本规范通过。
- 后置:写入审计轨 AuditTrail,签名 hash(spec)。
- I50-2 register_assertions(spec:dict) -> AssertionSet
- 目的:登记断言与形变关系 MR_k。
- 输入:spec = {assertions:list, MR:list, oracle:str}。
- 输出:AssertionSet = {id:str, assertions:list, MR:list}。
- 前置:oracle 可解析。
- 后置:cov_spec 初始为 0。
- I50-3 generate_counterexamples(runtime:any, hypothesis:Hypothesis, ops:list, budget:dict) -> CEReport
- 目的:生成反例与失败最小证据。
- 输入:ops ⊆ {fuzz, mutation, adversarial(epsilon)},budget.* 明示。
- 输出:CEReport = {cases:list, kill_rate:float, logs:any}。
- 后置:产出 fingerprint,记录 rng.seed/rng_family。
- I50-4 metamorphic_transform(x:any, MR:dict) -> x_prime:any
- 目的:按 MR_k 生成 x_prime。
- 输入:MR = {name:str, params:dict, invariants:list}。
- 输出:x_prime 与不变量校验结果。
- 后置:失败时抛 E_ORACLE_AMBIGUOUS 或返回 invariant=false。
- I50-5 adversarial_attack(runtime:any, x:any, method:str, eps:dict) -> AttackReport
- 目的:对白盒/黑盒方法进行对抗攻击。
- 输入:method ∈ {fgsm, pgd, cw, square, gradient_attack};eps = {epsilon_linf:float?, epsilon_l2:float?, steps:int}。
- 输出:AttackReport = {x_adv:any, success:bool, eps:dict, loss_after:float}。
- 资源:受 budget.* 与 EnvLock 限制。
- I50-6 sequential_test(stream:any, rule:dict) -> {decision:str, alpha_spent:float}
- 目的:顺序/自适应检验(含 SPRT/alpha-spending)。
- 输入:rule = {type:str, alpha:float, beta:float, spending:str, bounds:dict}。
- 输出:decision ∈ {accept, reject, continue},alpha_spent。
- 前置:流式样本已映射到 tau_mono 并与 ts 对齐。
- I50-7 oracle_score(y_true:any, y_pred:any, oracle:any) -> Verdict
- 目的:统一评分与证伪判决。
- 输出:Verdict = {score:float, pass:bool, delta_claim:float}。
- 后置:记录 p_value/effect_size(如适用)。
- I50-8 compute_coverage(logs:any) -> CoverageReport
- 目的:计算 cov_case/cov_spec/kill_rate 等指标。
- 输出:CoverageReport = {cov_case:float, cov_spec:float, kill_rate:float, C_hit:int, C_total:int}。
- I50-9 gate_release(evidence:dict, policy:dict) -> GateDecision
- 目的:依据证据包与策略做上线守门。
- 输入:evidence = {metrics:dict, intervals:dict, drift:dict, risks:dict};policy = {thresholds:dict, fdr:q_star?, risk_budget:dict}。
- 输出:GateDecision ∈ {pass, hold, block},并附理由。
- 后置:写入 AuditTrail 与 DiffCard。
- I50-10 regress_guard(baseline:any, candidate:any, tests:any) -> RegressionReport
- 目的:非退化与回归防御。
- 输出:RegressionReport = {delta_baseline:float, eq_rate:float, dist:float, pass:bool}。
- 判据:pass = ( delta_baseline ≥ - tau_nonreg ) ∧ ( eq_rate ≥ tau_eq ) ∧ ( dist ≤ tau_dist )。
IV. 幂等与重放
- 在同一 anchor 与 EnvLock 下,固定 rng.seed/rng_family、版本签名 Graph.sig/ParamCard.sig/InferPipelineCard.sig,任一 I50-* 重放应满足结果等价或在容差 tau_rep 内:| metric_replay - metric_ref | ≤ tau_rep。
- 在线/离线一致性先做时基映射 ts = alpha + beta * tau_mono,再计算 delta_offon 与 R_infer = 1 - delta_offon。
- 对抗攻击与模糊策略应记录 eps/budget.* 与随机态,以支持 CEReport 的最小证据重放。
V. 异常枚举与处理
- E_ORACLE_AMBIGUOUS:评分器不唯一或断言冲突。
- E_POWER_INSUFFICIENT:power < power_target,拒绝上线或继续采样。
- E_MULTITEST_UNCONTROLLED:多重检验缺少 FDR/FWER 控制或越界。
- E_SCHEMA_MISMATCH:数据/日志模式与 Core.DataSpec 不一致。
- E_ENV_MISMATCH:EnvLock 不一致或签名不匹配。
- E_NONDETERMINISM:重放偏差超出 tau_rep。
- E_RESOURCE_EXCEEDED:超出 budget.* 或超时。
- 处理原则:就地失败、记录 AuditTrail、附 hash(payload) 与 fingerprint,必要时触发 GateDecision = hold/block。
VI. 参考片段(伪代码/状态机)
- 顺序检验 I50-6(alpha-spending 框架)
- 状态:S = {running, accept, reject}。
- 初始化:alpha_remain = alpha,beta_remain = beta。
- 循环:
- 返回 {decision:S, alpha_spent} 当 S ≠ running。
- 记录 alpha_spent += alpha_step;alpha_remain -= alpha_step。
- 计算边界 A_t/B_t(接受/拒绝),若 T_t ≥ B_t 则 S=reject;若 T_t ≤ A_t 则 S=accept;否则 S=running。
- 分配花费 alpha_step = spend(alpha_remain, t, spending)。
- 拉取样本 x_t,更新统计量 T_t。
- 守门决策 I50-9(证据聚合)
- 输入证据:coverage, performance, uncertainty, drift, risk.
- 规则:
- 汇总:若全部通过且风险可控 → pass;若存在临界项或证据不足 → hold;若违反硬门限 → block。
- 检查风险预算:risk_used ≤ risk_budget.total。
- 如存在多重显著性比较,应用 q_star 控制 FDR。
- 多指标按 policy.thresholds 判定单项通过。
- 输出附带:被触发的门限、alpha/p_value、区间与签名快照。
- 回归防御 I50-10(非退化守门)
- 计算:delta_baseline = ( score_cand - score_base );eq_rate;dist。
- 判定:
pass = ( delta_baseline ≥ - tau_nonreg ) ∧ ( eq_rate ≥ tau_eq ) ∧ ( dist ≤ tau_dist )。 - 若 pass=false,附带可复现实验切片与 rollback_trigger=true。
VII. 日志与审计轨字段
- AuditTrail 最小字段:ts,tau_mono,anchor,EnvLock,Graph.sig,ParamCard.sig,InferPipelineCard.sig,rng.seed/rng_family,inputs.sha256,outputs.sha256,policy.hash,alpha/beta/q_star,alpha_spent,GateDecision,reason,DiffCard 链接。
- CoverageReport 追加:C_hit,C_total,cov_case,cov_spec,mut_all,mut_killed,kill_rate。
- CEReport/AttackReport 追加:eps,budget.*,success,loss_after,fingerprint。
VIII. 资源与安全约束
- 任何 I50-* 执行前校验 budget.cpu/gpu/mem 与 budget.power;超限即抛 E_RESOURCE_EXCEEDED。
- 访问受控数据与模型需验证 EnvLock 与最小权限;外发只允许签名摘要 hash(·) 与指标摘要。
IX. 版本与兼容性
- 版本语义:I50-* 遵循 MAJOR.MINOR.PATCH。
- MAJOR 变更可能破坏向后兼容;
- MINOR 增加可选参数,默认不改变行为;
- PATCH 仅修复缺陷与文档。
- 弃用策略:标注 deprecated_since 与替代接口,至少保留 2 个 MINOR 周期。
X. 交叉引用与依赖
- 检验与错误控制口径:见 第7章、附录A。
- 不确定性与置信:见 第8章。
- 在线守门与回退:见 第9章。
- 合规模板与审计:见 第10章。
- 跨域一致性与回归防御:见 第11章、第13章。
XI. 实施清单(交付件)
- 接口契约与示例:I50-* API Card。
- 证据与日志:AuditTrail、CoverageReport、RegressionReport、GateLogs。
- 签名与锁:EnvLock、Graph.sig、ParamCard.sig、InferPipelineCard.sig、policy.hash。
- 变更记录:CHANGELOG 与 DiffCard。
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/