想象一栋摩天大楼的施工现场。施工队(AI 模型)交来一摞图纸和施工日志(数学证明),声称“楼可以安全封顶”。但业主不能只看结论就收楼,于是请来一位铁面无私的结构验收员(形式化验证器):他手捧国家建筑规范(逻辑系统),逐条核对每道工序——钢筋间距是否合规、承重墙是否按图施工、每一处焊接是否有据可依。任何一条违规,验收单上就盖红章,整栋楼直接打回。 这个“先验后收”的思想,正是本文的主角——形式化验证(Formal Proof)。在 AI 数学能力评测中,我们让模型解题并写出完整证明,再用机器验证器逐条检查推理链条。与传统人工改卷不同,验证器不靠“感觉”打分,而是严格依据预先定义好的公理与推理规则,判定每一步是否合法。它的价值远不止于“对与错”:当证明被拒绝时,验证器能精确指出哪一步违规,从而暴露模型能力的具体短板。本文将从验证框架、逻辑规则、搜索空间、评估指标到落地实践,为你完整拆解这套技术方案。

岗位关联

掌握形式化验证评测技术,你就拥有了一把“机器裁判”的钥匙——能够为 AI 的数学推理能力给出可复现、可诊断的权威测评结果,这是模型评估与 AI 安全领域的核心硬技能。

目录
  1. 可视化演示
  2. 评测框架概述
  3. 逻辑系统规则
  4. 证明验证核心
  5. 搜索空间管理
  6. 评估指标体系
  7. 实践应用挑战
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示多头自注意力中不同注意力头的权重分布,观察Token间关联强度与信息聚合模式。

本节配有交互动效(进入视口后自动加载,约 3KB)。

局部注意力头 注意力集中在相邻Token,形成对角线分布模式 每个Token主要关注自身及近邻,适合捕获局部依赖关系 Attn(Q,K) = softmax(QKᵀ/√d)

评测框架概述

建筑工地迎来了新施工队——一个名叫“大模型”的 AI 施工队,它自称能把数学证明图纸一天画完。但图纸画得快不等于图纸能过审。真正的关键在于:有没有一位铁面无私的工程验收员,能对照国家建筑规范,逐条确认承重墙算得对、钢筋排得合理。在 AI 数学能力评测里,这位验收员就是形式化验证器。

传统上,AI 数学评测大多让模型直接输出答案,再与人工标准答案比对。但对证明类题目,只比对答案无法判断“推理过程是否成立”——模型可能蒙对结论,中间却胡编乱造。形式化验证的思路是:把题目转写成机器可读的逻辑命题,把模型给出的证明也转写成结构化步骤,然后交给验证程序逐条检查。

一套形式化评测框架通常包含三部分:一是形式化题目库,把自然语言数学命题编码成逻辑系统内的定理声明;二是模型作答环节,LLM 在形式化环境中生成证明步骤;三是验证器核验环节,逐步骤应用推理规则判定合法性,最终返回接受或拒绝。这套设计的关键价值在于:过程可追踪、结论可复现、错误可定位。评测的核心目标,就是通过“机器验收”给模型的数学推理能力一个客观可信的结论。

换句话说,形式化评测把“施工队说楼能盖好”变成了“验收员亲眼看着每一根钢筋都按规范绑好”。有了这位机器验收员,AI 数学能力评测才从印象分变成了硬指标。

PassRate=NvalidNtotal×100%\displaystyle \text{PassRate} = \frac{N_{\text{valid}}}{N_{\text{total}}} \times 100\%
通过率 = 被验证器判定合法的证明数 ÷ 模型生成的全部证明数。这是形式化评测最基础的总体正确性指标。
  1. 有效证明数N_valid 表示通过验证器核验的证明数量,相当于施工队交付的被验收合格的工程数。
    NvalidN_{\text{valid}}
  2. 证明总数N_total 表示模型生成的全部证明总数,相当于施工队递交的所有工程申报单。
    NtotalN_{\text{total}}
  3. 百分比换算两者相除再乘以 100%,得到一个直观的百分制得分,用于后续跨模型对比。
    NvalidNtotal×100%\frac{N_{\text{valid}}}{N_{\text{total}}} \times 100\%

逻辑系统规则

验收员手里那本规范手册,在形式化世界里叫做逻辑系统。手册里有两类内容:一类是天经地义、无需论证的公理,比如建筑规范规定“承重墙厚度不得小于 24 厘米”;另一类是推理规则——允许你从已知事实推出新事实的操作步骤,如同规定“绑完钢筋必须检查间距才能进入下一道工序”。

最基础也最常用的逻辑系统是命题逻辑。它把数学命题拆成一枚枚逻辑积木,并用与(∧)、或(∨)、蕴含(→)、非(¬)把积木拼起来。命题逻辑里最著名的推理规则是假言推理:知道“如果下雨则地面湿”且“下雨了”,就能推出“地面湿”。一阶逻辑则在积木上加了两个更强力的工具——全称量词∀(对所有)与存在量词∃(存在某个),让系统能表达“所有偶数都能写成 2k”这类真正的数学命题。

验证器内置了一个规则引擎,收录了这些合法推理模式。当模型声称“第 3 步从 P 推出 Q”时,验证器会先看这一步是否匹配规则库中的某个模式,再看前提是否真的成立。任一步不匹配,整个证明作废。这就是形式化二字的含义:误差零容忍,规则说了算。

施工队每一步操作都要对照规范手册,模型生成的每一步推理也要有据可依。你可以宣称“这里用了承重墙加固工艺”,但验收员只认手册里有没有这条工艺及适用范围。规则之外,不叫创新,叫违规。

P→QPQ(modus ponens)\displaystyle \frac{P \to Q \quad P}{Q} \quad (\text{modus ponens})
假言推理(Modus Ponens)是逻辑系统中最基本的推理规则:只要 P 成立,且 P 蕴含 Q 成立,那么 Q 必然成立。
  1. 前提一P→Q 是一条蕴含命题,读作“如果 P,那么 Q”,相当于规范手册中的一条施工条件条款。
    P→QP \to Q
  2. 前提二P 是当前已确认成立的事实,相当于验收现场已经核实过的施工现状。
    PP
  3. 推导横线横线表示“从上方可以推出下方”,是推理规则的固定格式——上方是条件,下方是结论。
    \frac{\quad}{\quad}
  4. 结论Q 是由两个前提必然推出的新事实,就像核对完混凝土强度报告后,同意进入下一道工序。
    QQ

证明验证核心

验收员怎么检查一个焊点?先看施工记录上这个焊点的位置和用途,再核对焊条型号,最后对照工艺标准。形式化验证器的工作方式与此神似:它把证明看作一棵证明树,每次只检查一个节点,但这个节点自带完整的“档案”。

档案中有一个关键对象叫证明项 t,它完整记录了你声称做的那次推导——用哪条规则、依赖哪些前提;还有一个对象叫上下文 Γ,记录着当前所有可用的事实与假设。验证器要回答的只有一个问题:在 Γ 之下,t 是否真的合法证明了目标命题 A?这个判断在类型论中被写作 Γ ⊢ t : A。

验证采用步进式:验证器把整棵证明树递归展开,逐个检查子证明,子证明全部合法,父节点才能通过。一旦某个节点不匹配,验证器立即返回“第几层、哪一步、缺什么”的精确反馈。这也是形式化验证相比人工批改的巨大优势——它能告诉你模型具体错在哪一步,而不是简单给个零分。

像监理在工地发现焊点不合格会当场标红并要求返工,验证器把错误精确地点出来,模型就能针对这一步修正。这种即查即报的反馈回路,正是形式化评测能指导模型改进的根本原因。

Γ⊢t:A\displaystyle \Gamma \vdash t : A
这个表达式是验证器的核心判断:在上下文 Γ 中,证明项 t 合法地证明了命题 A。Γ 是前提环境,t 是提交的证明,A 是目标命题。
  1. 上下文Γ(读作 Gamma)表示证明进行到当前步骤时可用的全部前提、假设与已证事实,相当于施工现场已确认的全部验收记录。
    Γ\Gamma
  2. 证明项t 是模型提交的证明对象,承载每一步推导的规则与引用关系,相当于一份完整的施工日志。
    tt
  3. 目标命题A 是待证明的数学命题,相当于图纸上声明的工程目标。
    AA
  4. 完整判断Γ ⊢ t : A 连起来读作“在 Γ 下 t 证明 A”,这是验证器每次只做的一件事——像验收员每检查一道工序只问一句“这步合规吗”。
    Γ⊢t:A\Gamma \vdash t : A

搜索空间管理

施工队拿到图纸后,开始琢磨工序:先浇地基还是先立框架?用哪种模板?每一步都有多种选择,所有选择组合起来,形成一棵枝繁叶茂的施工方案树。AI 模型做证明同样如此——它不是在凭空变出结论,而是在一棵庞大的证明搜索树里探险。

这棵搜索树的规模相当惊人。每走一步,模型可以从 b 种推理规则里挑一种,证明深度为 D 时,树梢节点就有 b 的 D 次方个,整棵树的总节点数是一个等比级数。实际的定理证明中 b 动辄几十、D 动辄上百,状态空间比宇宙原子数还大,这就是著名的状态空间爆炸。

为了控制爆炸,工程上有三件法宝。第一是引理库:把加法交换律、三角不等式这类常用结论提前证明并入库,后续当跳板复用,避免重复搜索;第二是启发式剪枝:用评估函数给每个候选分支打分,只保留最有希望的少数分支,砍掉明显走不通的死路;第三是策略引导搜索:训练一个策略模型,预测每个位置最可能成功的规则,像老工程师凭经验直觉下判断。

没有这些寻路技巧,模型的证明搜索就像无头苍蝇在工地乱转,预算耗尽也只能空手而归。有了引理库和剪枝策略,搜索才能聚焦到有希望的通路上——这正是模型能否证明出难题的分水岭。

∣S∣=bD+1−1b−1\displaystyle |\mathcal{S}| = \frac{b^{D+1}-1}{b-1}
状态空间大小公式:从深度 0 到深度 D,每一层的候选节点数 b 的 d 次方求和。b 是分支因子,D 是搜索深度。
  1. 分支因子b 表示每一步可选的推理规则数量,每多一条候选规则,搜索树就多分一根枝杈。
    bb
  2. 搜索深度D 表示证明的最大步数上限,深度越大,路径越长,累积的分支越多。
    DD
  3. 单层节点数b 的 d 次方是第 d 层候选节点的数量,其中 d 从 0 到 D 逐层递增,对应方案树的每一圈年轮。
    bdb^d
  4. 等比求和从第 0 层到第 D 层的节点数相加,得到整个状态空间的总规模,这就是指数爆炸的数学来源。
    bD+1−1b−1\frac{b^{D+1}-1}{b-1}

评估指标体系

验收结束后,业主还想要一份施工队的能力评估报告:整体合格率多高?该完工的工程完工了几成?每类工序的返工率如何?形式化评测同样需要一套多维指标,否则“通过率 80%”这种单值数字说明不了太多。

为了客观评价 AI 模型,核心指标有三个维度:正确性——生成的证明里通过验证的比例,衡量模型给出合法证明的可靠性;完备性——题目库里目标命题被成功证明的比例,衡量模型解决数学问题的覆盖能力;效率——平均搜索步数、耗时、token 消耗,反映证明路径的简洁程度。这些指标分别从不同角度刻画模型能力,共同构成评测结论的基础。

将正确性视为 Precision、完备性视为 Recall,计算 F1 指标可以综合两者,避免单一指标虚高。更进一步的诊断性报告,则按题型、难度、所用规则类型交叉列出通过率矩阵,并统计错误模式——是搜索超时?规则误用?还是前提理解错误?这样的报告能精确定位模型在哪个能力维度存在短板。

就像监理报告不只是合格不合格一句话,而会列出“砌体工程合格率 95%、防水工程合格率 70%”——形式化评测的指标体系让模型能力画像变得清晰可见,改进方向随之明确。

F1=2×Precision×RecallPrecision+Recall\displaystyle F_1 = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}
F1 分数是正确率与完备率的调和平均,兼顾“给出的证明是否合法”与“目标命题是否被证出”,防止模型偏科。
  1. 正确率维度Precision 表示生成的证明中通过验证的比例,相当于施工队交付工程中的一次验收合格率。
    Precision\text{Precision}
  2. 完备率维度Recall 表示题目库中目标命题被成功证明出来的比例,相当于该完工的工程里实际交付的比例。
    Recall\text{Recall}
  3. 调和平均将两者放入分子分母组合中,得到一个平衡指标——只有当正确率和完备率都高时,F1 才会高。
    F1=2×Precision×RecallPrecision+RecallF_1 = \frac{2 \times \text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}

实践应用挑战

把一整套验收体系真正搬进工地,还需要解决现实问题:规范库还不够全、验收人手跟不上、施工队学会钻规则空子。形式化评测落地同样有一长串挑战清单。

首先是基准数据集构建。把 IMO 真题、竞赛题改写为 Lean、Coq 等证明助手可读的形式化命题,是一项高成本人工活。MiniF2F、ProofNet 等数据集正是这个方向的早期尝试,提供了形式化题目库的雏形。其次是评测流程设计:要固定验证器版本与逻辑库版本,给定统一搜索预算,并多次采样取通过率,才能保证结果可复现、可比较。

实际运行中常见四类失败模式:搜索超时——在巨大空间里没找到合法路径;规则误用——模型引用了不匹配的推理规则;前提理解错误——把题目的隐藏条件弄错或遗漏;引理选择不当——绕远路导致预算耗尽。针对这些模式,评估者可以不断迭代基准库与评测策略,甚至让验证器反馈驱动模型在线修正,形成“生成-验证-修正”循环。未来,随着形式化数学库日益庞大、搜索策略越发智能,形式化验证评测将从“能不能证”走向“证得多快、多稳、多漂亮”。

工地验收标准本身也要随施工工艺进步而升级。随着形式化数学库日益庞大、搜索策略越发智能,形式化验证评测将成为衡量 AI 数学能力越来越硬的一把尺。

Score=0.6 V+0.25 E+0.15 G\displaystyle \text{Score} = 0.6\,V + 0.25\,E + 0.15\,G
综合能力得分 = 0.6 × 正确性 + 0.25 × 效率 + 0.15 × 泛化。权重系数体现了“正确性是底线、效率是加分、泛化是展望”的评测优先级。
  1. 正确性得分V 是正确性维度得分,权重最高,因为推理不合法,再快也没意义。
    VV
  2. 效率得分E 是搜索效率得分,衡量证明路径的简洁程度,相当于施工队的工时消耗。
    EE
  3. 泛化得分G 是泛化维度得分,衡量模型面对新题型、新领域时的表现。
    GG
  4. 加权求和三者按 0.6、0.25、0.15 加权合并,得到一个能反映综合能力的最终分数。
    0.6 V+0.25 E+0.15 G0.6\,V + 0.25\,E + 0.15\,G

AI 应用场景

自动数学竞赛评卷系统

阶段:模型能力评估与在线评测

解决的问题:传统数学竞赛评卷靠人工判读,对创新型解法可能存在误判,而且无法覆盖 AI 答题系统产生的海量过程性证明。形式化验证让“评卷”变成逐条机器核验,只要答案的每一推理步骤都有规则依据,系统就能给出公正判断。

具体案例:某在线数学教育平台引入形式化验证器来评估 LLM 的几何解题过程。学生(或 AI 助手)提交证明步骤后,系统即时反馈“第 5 步隐含假设未声明”或“第 3 步应用的定理不匹配”,帮助学生精确定位推理漏洞,也让平台获得可复现的 AI 数学能力榜单。

数学定理库的 AI 辅助构建

阶段:AI 辅助科研与形式化数学库建设

解决的问题:数学家手工将经典定理形式化到 Lean 等系统中极其耗时,而直接让 LLM 生成证明又无法保证可靠性。形式化验证器作为“守门员”,让 AI 生成的证明草稿必须先通过机器验收,才能合入定理库。

具体案例:某数学研究机构使用 LLM 生成著名数论定理的证明骨架,再由 Lean 验证器逐段核验。验证器发现一处“用错引理版本”的错误后,系统自动从引理库检索替代方案并重新验证,最终将一条此前未形式化的经典定理成功入库。

关键决策链路的逻辑安全审计

阶段:后训练质量保障与 AI 安全审计

解决的问题:LLM 在金融、法律等领域的思维链推理存在幻觉风险,一旦逻辑断裂会造成严重后果。借用形式化验证的思路,将关键决策中的逻辑约束编码为规则,对模型输出的推理链逐条审计。

具体案例:某金融风控团队将贷款审批规则(如“收入不足且负债过高则拒绝”)编码为逻辑命题,让模型输出审批理由后,由一逻辑核查器检查每一步是否自洽、是否与规则一致。发现模型在“负债过高”与“还款能力评估”之间存在矛盾推理时,系统直接拦截并提示人工复核。

Python 演示

python77 行
"""mini_proof_checker.py - 极简形式化验证器示例""" from __future__ import annotations  def split_imp(expr: str):    """解析蕴含表达式 a->b,返回 (a, b),非蕴含返回 None"""    if "->" in expr:        left, right = expr.split("->", 1)        return left.strip(), right.strip()    return None  def apply_mp(premises: list, goal: str) -> bool:    """肯定前件规则: 由 a 与 a->b 推出 b"""    if len(premises) != 2:        return False    a, imp = premises    pair = split_imp(imp)    if pair is not None and pair[0] == a and pair[1] == goal:        return True    a2, imp2 = premises[1], premises[0]    pair2 = split_imp(imp2)    return pair2 is not None and pair2[0] == a2 and pair2[1] == goal  class ProofLine:    """验证器维护的一行已确认事实"""    def __init__(self, expr: str, rule: str, refs: list):        self.expr = expr        self.rule = rule        self.refs = refs  class ProofChecker:    """逐行核验证明的形式化验证器"""     def __init__(self, axioms: list):        self.facts = [ProofLine(a, "axiom", []) for a in axioms]     def check_and_add(self, rule: str, refs: list, goal: str) -> bool:        try:            premises = [self.facts[i].expr for i in refs]        except IndexError:            return False        if rule == "mp":            ok = apply_mp(premises, goal)        elif rule == "hyp":            ok = goal in premises        else:            ok = False        if ok:            self.facts.append(ProofLine(goal, rule, refs))        return ok  def verify_proof(axioms: list, proof_steps: list):    """验证器入口: 逐条核验证明步骤,返回 (是否通过, 出错步下标, 出错目标)"""    checker = ProofChecker(axioms)    for idx, (rule, refs, goal) in enumerate(proof_steps):        if not checker.check_and_add(rule, refs, goal):            return False, idx, goal    return True, -1, None  if __name__ == "__main__":    AXIOMS = ["x>=0", "x>=0 -> x*x>=0"]    MODEL_PROOF = [        ("hyp", [0], "x>=0"),        ("mp", [0, 1], "x*x>=0"),        ("mp", [0, 1], "x>=1")    ]    ok, idx, goal = verify_proof(AXIOMS, MODEL_PROOF)    if ok:        print("验证通过: 全部", len(MODEL_PROOF), "步推理均合法")    else:        print("验证失败: 第", idx + 1, "步目标", goal, "无法由前提推出")
目的:实现了一个微型形式化验证器,模拟 LLM 输出证明步骤后,验证器逐条核验并定位推理错误——这正是形式化评测技术方案的核心最小原型。
  1. class ProofChecker:这就是“工程验收员”本体,负责维护已验收的事实清单。
  2. self.facts = [ProofLine(a, "axiom", []) for a in axioms]公理是规范中预先批准的基础事实,验证开始时全部入档。
  3. premises = [self.facts[i].expr for i in refs]取回被引用的历史事实,相当于验收时调取之前的施工记录。
  4. ok = apply_mp(premises, goal)检查这一步的“引用 + 结论”是否符合肯定前件规则。
  5. if ok: self.facts.append(ProofLine(goal, rule, refs))通过的新事实盖章入档,后续步骤可以继续引用。
  6. ("mp", [0, 1], "x>=1")模型声称由第 0、1 行推出 x>=1,可实际推不出,验证器在此处拦截。
  7. return False, idx, goal返回具体出错位置与目标,让上层评测系统能精确诊断模型短板。

常见误区

误区我理解的评测就是出难题给 AI 做,它算出正确答案就算通过。形式化验证应该也是某种更难的题库,重点是把题出得足够难,防止模型靠记忆答题。

正解形式化验证不看最终答案,看的是推理过程每一步是否符合逻辑规则。就像验收员不看房子最终能不能住人,而看每道墙的承重计算是否合规。模型哪怕蒙对了最终结论,只要证明过程中有任何一步跳步或误用规则,验证器照样拒绝。这正是它和传统“答案比对”式评测的本质区别。

为何常见:日常考试通常只看结果给分,形成了“结果正确 = 能力正确”的直觉,忽略了证明题最核心的过程正确性。

误区我听说 Lean 和 Coq 能“证明”很多定理,以为它们就是超级自动证明机,把题目丢进去就能自己推出答案,所以评测时只要让验证器去解题就行。

正解验证器不是自动证明机,而是“复读机裁判”——它能逐条检查别人提交的证明是否合法,但不会自己发明证明路径。证明搜索(如何找到证明)和证明验证(如何确认证明合法)是两个截然不同的问题。现代 AI 评测中,搜索由 LLM 完成,验证器只负责把关。

为何常见:把“验证 proof checking”和“证明搜索 proof search”混为一谈,看到验证器能处理证明就误以为它能自动生成证明。

误区机器验证总该是绝对真理了吧?只要验证器盖上“通过”章,这个证明在数学上肯定无懈可击,可以放心大胆地使用。

正解形式化验证的结论依赖于底层逻辑系统的一致性。如果公理系统本身有漏洞、编码有误,或者逻辑框架选择不当,验证器仍可能放行“在系统内合法但数学上存疑”的证明。如同验收依据是规范手册——规范本身若有缺陷,验收结果也有局限。所以形式化验证保证的是“在所选公理系统内推理链完备合法”,而非脱离系统的绝对真理性。

为何常见:对“机器验证 = 绝对真理”的迷思,忽略了所有形式化系统都建立在公理假设之上。

误区给模型打分嘛,算通过率就行。正确率高就是数学能力强,正确率低就是弱,其他指标都是花架子。

正解单一正确率无法回答“模型到底弱在哪”。是搜索超时找不到路,还是规则误用,还是只会做代数题不会做几何题?完备率反映解题覆盖面,效率反映路径简洁度,诊断性报告按题型、难度、错误类型交叉分析——缺少这些维度,评测就只有排名没有洞察。

为何常见:传统考试以总分和正确率为主,缺少细粒度诊断习惯,形成了指标越少越好的错觉。

误区模型直接用中文写一大段证明过程,验证器应该像老师一样能理解吧?毕竟大模型都能理解自然语言了。

正解形式化验证要求证明严格按机器可读的逻辑语言编写(如 Lean 的代码),自然语言有歧义,验证器无法处理。LLM 输出的自然语言证明需要先被翻译成形式化证明,而这个翻译过程本身就是当前的研究难点。评测实践中,通常让模型直接生成形式化代码,或使用翻译模型进行转换。

为何常见:从“AI 能理解自然语言指令”的经验出发,错误类比到验证器也有语义理解能力,忽略了形式化系统对精确性的极致要求。

面试题

Q1. 形式化验证在数学能力评测中的核心作用是什么?

单选题 · easy

  • A.自动求解所有数学难题
  • B.逐条核验推理步骤合法性← 正确答案
  • C.替代人类出题人设计题目
  • D.加速模型训练收敛过程

答案:B。形式化验证是“裁判”而非“解题器”,它的核心是逐条核验模型证明的每一步推理是否符合逻辑规则。A 是自动证明机做的事,C 是出题环节,D 与验证无关。就像验收员不替施工队砌墙,只负责检查每道工序是否合规。

Q2. 下列哪个是逻辑系统中的基本推理规则?

单选题 · easy

  • A.贝叶斯推断方法
  • B.最大似然估计方法
  • C.假言推理基本规则← 正确答案
  • D.梯度下降优化算法

答案:C。假言推理(Modus Ponens)是从 P 和 P→Q 推出 Q 的经典逻辑推理规则,是形式化验证器的核心规则之一。A、B、D 属于概率统计与机器学习方法,不构成逻辑系统中的推理规则。

Q3. 形式化验证中的表达式"Γ ⊢ t : A"表示什么?

单选题 · mid

  • A.上下文 A 推导出定理 t
  • B.变量 t 归属于集合 A
  • C.公理 Γ 等价于 t 和 A
  • D.上下文 Γ 中 t 证明 A← 正确答案

答案:D。Γ 是上下文(可用前提集合),t 是证明项,A 是目标命题,整个表达式读作“在上下文 Γ 中,证明项 t 合法地证明了命题 A”。A、B、C 都颠倒了符号的角色和关系。

Q4. 证明搜索中“状态空间爆炸”指的是什么?

单选题 · mid

  • A.搜索算法发生内存溢出
  • B.验证一次检查过多步骤
  • C.逻辑系统的规则互相冲突
  • D.候选路径数随深度指数增长← 正确答案

答案:D。状态空间爆炸指候选证明路径数随搜索深度呈指数级增长(b 的 D 次方),导致穷举不可行。A 是内存层面的表现而非本质,B 是验证器行为,C 是系统设计问题,均不是状态空间爆炸的定义。

Q5. 控制证明搜索空间的有效策略包括哪些?

多选题 · mid

  • A.引理库复用常用结论← 正确答案
  • B.启发式评分剪枝弱分支← 正确答案
  • C.增加随机采样次数
  • D.策略模型引导规则选择← 正确答案

答案:ABD。引理库复用(A)把常用结论当跳板,减少重复搜索;启发式剪枝(B)砍掉低分分支;策略引导(D)用策略模型预测最优规则。C 单纯增加采样次数不控制搜索空间,反而可能加剧开销。

Q6. 评测指标中“正确率”的定义是?

单选题 · easy

  • A.通过验证证明所占比例← 正确答案
  • B.生成证明的耗时长短
  • C.与标准答案的文本相似度
  • D.验证器消耗的计算资源

答案:A。正确率 = 通过验证器核验的证明数 ÷ 模型生成的全部证明数,衡量模型给出合法证明的可靠性。B 是效率指标,C 是文本匹配思路,D 是资源消耗,均与正确率定义无关。

Q7. 关于形式化验证评测,下列说法正确的有哪些?

多选题 · hard

  • A.依赖于公理系统的一致性← 正确答案
  • B.验证器自动生成完整证明
  • C.文本证明可直接验证合法性
  • D.错误定位能诊断薄弱环节← 正确答案

答案:AD。A 正确,验证结论建立在公理系统一致的前提上;D 正确,验证器能精确指出错误步骤,帮助定位模型能力短板。B 错误,验证器不负责自动生成证明;C 错误,自然语言文本有歧义,必须先转写为形式化语言才能验证。

Q8. 完备率(Recall)在证明评测中的含义是?

单选题 · mid

  • A.生成证明中合法的步骤占比
  • B.验证器放行错误证明的比例
  • C.目标命题被成功证明的比例← 正确答案
  • D.证明所用总步数的倒数

答案:C。完备率 = 被成功证明的目标命题数 ÷ 题目库中的总命题数,衡量模型的解题覆盖面。A 是步骤粒度而非命题粒度,B 是误判率,D 是效率度量。

Q9. 关于形式化验证的可靠性边界,下列说法最准确的是?

单选题 · extreme

  • A.在所选公理系统内推理链完备合法← 正确答案
  • B.数学命题在物理意义上绝对为真
  • C.模型具备对数学概念的深层理解
  • D.整个验证过程无需人工复核步骤

答案:A。验证器保证的是在给定公理系统内每一步推理合法、证明链完备。B 夸大为绝对真理,忽略了公理本身的假设局限;C 混淆了句法验证与语义理解;D 忽略了公理编码错误等仍需人工审查的场景。

Q10. 下列属于形式化证明常见失败模式的有哪些?

多选题 · easy

  • A.搜索超时无法找到合法证明← 正确答案
  • B.推理规则误用导致验证失败← 正确答案
  • C.引理选择不当使路径发散← 正确答案
  • D.GPU 显存不足导致训练中断

答案:ABC。搜索超时、规则误用、引理选择不当都是形式化证明搜索中的典型失败模式。D 是工程环境问题,与证明本身的逻辑失败无关,属于评测基础设施层面的偶发故障。