wecom
qy
简介
优势
关键技术
实施流程
案例
了解更多
联系我们

什么是形式化验证?

形式化方法是基于严格数学基础,对计算机软硬件进行形式规约、开发和验证的技术体系。其核心在于通过严密的数学模型刻画系统需求规格,实现数据与行为的精确建模,通过定理证明或模型检查等技术对规约与实现进行分析验证,确保系统行为的正确性与一致性。其原理与过程围绕 “非形式化模型→形式化模型→分析证明→结论输出” 的路径展开。

传统系统测试 VS 形式化验证

传统开发依赖测试用例和人工评审,难以覆盖所有运行状态和边界条件,容易遗漏隐蔽缺陷。

传统验证过程通常在开发后期进行,问题发现滞后,修复需重新设计、编码并测试,导致大量返工,周期长。

传统测试难以穷尽所有复杂场景,尤其是极端、小概率或高风险工况,导致测试覆盖不足。

形式化验证通过将系统行为抽象为数学模型,能够在设计阶段对功能、时序和安全属性进行全状态空间验证。

形式化验证能够在开发早期发现和修复深层缺陷,避免问题传递至后期,大幅减少返工次数,有效缩短整体开发周期。

形式化验证能够突破传统测试的局限,通过数学方法自动遍历所有可能的状态,实现验证的全覆盖。

vs

应用形式化验证的好处

形式化方法通过“精准规约 - 早期验证 - 自动转换”的技术路径,从需求到开发全流程创造价值,重塑高安全系统开发模式。

icon
大幅提升需求质量

形式化需求用数学语言消除歧义,提升完整性。如航空航天飞控系统中,可修正约35%的需求歧义,覆盖全流程,提升需求质量。
icon
显著减少缺陷引入

贯穿“需求-设计-代码”,避免偏差和编码错误。某汽车电子项目中,从模型自动生成C代码,缺陷率下降约40%,提升开发质量。
icon
全层级验证

支持从需求到代码的全层级验证,超越传统测试局限。引入模型检查后,死锁及边界缺陷提前发现率可超60%,显著提升系统可靠性。
icon
整体降低开发成本

通过早期发现和修复缺陷降低成本。某核电控制系统软件项目中,早期验证将后期修复成本降低至约1/10,整体开发周期缩短约15%-20%。

形式化验证的关键技术路线

丰蕾科技构建覆盖模型检查、定理证明、符号执行等方法的形式化验证技术体系,可根据系统特征与验证目标选择适配路线;其中模型检查通过自动化工具对系统的状态空间进行全面探索和验证,帮助发现潜在设计缺陷并提供反例定位问题,定理证明与符号执行等方法则支撑关键性质证明、程序路径分析和更高可信度的验证闭环。

routes-header

丰蕾科技构建覆盖模型检查、定理证明、符号执行等方法的形式化验证技术体系,可根据系统特征与验证目标选择适配路线;其中模型检查通过自动化工具对系统的状态空间进行全面探索和验证,帮助发现潜在设计缺陷并提供反例定位问题,定理证明与符号执行等方法则支撑关键性质证明、程序路径分析和更高可信度的验证闭环。

01 基于定理证明的形式化验证

通过将系统的设计和行为转化为逻辑公式,并使用定理证明工具进行推理和证明,确保系统在所有可能的输入和执行路径中都能符合预定规范。

icon

适用产品

  • 高安全性系统
  • 嵌入式控制系统
  • 自动化控制系统
icon

用户群体

  • 高安全性系统开发公司

  • 需要精确证明系统性质的工程团队

  • 对自动定理证明有需求的高端应用领域开发商

icon

主要用途

  • 验证程序的安全性与正确性
  • 确认设计满足其规约
  • 系统级定理证明
icon

技术不足

存在状态空间爆炸问题,可能导致计算资源需求高,难以应对极大规模系统的验证。

02 基于模型检查的形式化验证

通过将系统建模为状态机或自动机,对系统的状态空间进行全面搜索,检查所有可能的行为路径是否满足安全性、活性等属性,利用反例生成帮助分析设计缺陷。

icon

适用产品

  • 并发系统
  • 软件、硬件系统的设计验证
  • 复杂系统、嵌入式系统等需要完整验证的产品
icon

用户群体

  • 嵌入式系统开发商

  • 并发系统设计团队

  • 对验证准确性和覆盖度要求高的公司

icon

主要用途

  • 系统功能、时序和安全属性的验证
  • 并发系统的状态空间分析
  • 确认设计满足约束条件
icon

技术不足

存在状态空间爆炸问题,可能导致计算资源需求高,难以应对极大规模系统的验证。

03 基于等价性的形式化验证

用于比较两个系统或模型在行为上的一致性,确保它们在给定条件下的行为是否等价,通常用于验证设计与实现的一致性或不同实现间的行为一致性。

icon

适用产品

  • 芯片设计
  • 集成电路设计、门级设计、版图设计等领域
  • 高度集成的硬件系统
icon

用户群体

  • 芯片设计公司

  • 集成电路设计团队

  • 对硬件设计不同阶段之间的等价性验证有需求的团队

icon

主要用途

  • 设计阶段间的错误分析
  • 确保设计的一致性
  • 比较不同描述方式的设计等价性
icon

技术不足

不能验证设计的功能正确性,无法检测不同阶段设计的共同错误。

01 基于定理证明的形式化验证

通过将系统的设计和行为转化为逻辑公式,并使用定理证明工具进行推理和证明,确保系统在所有可能的输入和执行路径中都能符合预定规范。

icon

适用产品

  • 高安全性系统
  • 嵌入式控制系统
  • 自动化控制系统
icon

用户群体

  • 高安全性系统开发公司

  • 需要精确证明系统性质的工程团队

  • 对自动定理证明有需求的高端应用领域开发商

icon

主要用途

  • 验证程序的安全性与正确性
  • 确认设计满足其规约
  • 系统级定理证明
icon

技术不足

存在状态空间爆炸问题,可能导致计算资源需求高,难以应对极大规模系统的验证。

02 基于模型检查的形式化验证

通过将系统建模为状态机或自动机,对系统的状态空间进行全面搜索,检查所有可能的行为路径是否满足安全性、活性等属性,利用反例生成帮助分析设计缺陷。

icon

适用产品

  • 并发系统
  • 软件、硬件系统的设计验证
  • 复杂系统、嵌入式系统等需要完整验证的产品
icon

用户群体

  • 嵌入式系统开发商

  • 并发系统设计团队

  • 对验证准确性和覆盖度要求高的公司

icon

主要用途

  • 系统功能、时序和安全属性的验证
  • 并发系统的状态空间分析
  • 确认设计满足约束条件
icon

技术不足

存在状态空间爆炸问题,可能导致计算资源需求高,难以应对极大规模系统的验证。

03 基于等价性的形式化验证

用于比较两个系统或模型在行为上的一致性,确保它们在给定条件下的行为是否等价,通常用于验证设计与实现的一致性或不同实现间的行为一致性。

icon

适用产品

  • 芯片设计
  • 集成电路设计、门级设计、版图设计等领域
  • 高度集成的硬件系统
icon

用户群体

  • 芯片设计公司

  • 集成电路设计团队

  • 对硬件设计不同阶段之间的等价性验证有需求的团队

icon

主要用途

  • 设计阶段间的错误分析
  • 确保设计的一致性
  • 比较不同描述方式的设计等价性
icon

技术不足

不能验证设计的功能正确性,无法检测不同阶段设计的共同错误。

具体实施流程

STEP 1

需求分析与形式化规约

arrow_down

STEP 2

形式化建模与抽象

arrow_down

STEP 3

验证目标与性质定义

arrow_down

STEP 4

自动化验证执行与反例分析

arrow_down

STEP 5

验证闭环与设计迭代

arrow_down

STEP 6

工程化集成与流程优化

arrow_down

本阶段旨在为物理系统的各个组成部分构建高保真的数学模型,以低成本、低风险的方式实现物理系统的设计优化。具体实施步骤如下:

收集并分析系统级的功能、安全及性能需求,依据行业标准(如DO-178C, IEC 61508)进行安全等级划分与关键性分析。
将自然语言描述的需求,使用形式化语言(如时序逻辑LTL/CTL、TLA+)进行精确表述。
对形式化规约进行内部一致性、完整性和可验证性检查,确保其本身逻辑严密,以此作为验证基准。
需求分析与形式化规约
1/6

本阶段旨在为待验证的系统创建一个在数学上精确且易于处理的形式化模型,通过合理的抽象来平衡模型准确性与验证可行性。具体实施步骤如下:

根据系统特性,选择合适的建模方法(如有限状态机、Petri网)对系统行为进行刻画。
采用分层与模块化策略对复杂系统进行分解,明确各模块间的交互接口与协议。
运用抽象解释等技术,不影响关键属性验证的前提下,简化模型细节,可以有效解决状态空间爆炸问题。
形式化建模与抽象
1/6

本阶段能够将系统设计目标与安全要求,并转化为可供形式化工具验证的、用逻辑公式表达的具体属性。具体实施步骤如下:

从需求规约中提炼出安全性、活性、时序性等关键验证属性。
使用时序逻辑等形式化语言将属性精确表述为形式化工具可识别的公式。
评审并确认所定义的属性集足以覆盖所有关键系统需求,确保验证目标的完备性。
验证目标与性质定义
1/6

本阶段采用模型检查、定理证明等技术自动验证系统性质,并精准定位不满足的情况。
具体实施步骤如下:

根据属性类型和系统复杂度,选用模型检查、定理证明或符号执行等自动化验证工具。
执行自动化验证,由工具遍历系统状态空间,完成属性判定,生成反例路径。
当属性不满足时,将对生成的反例路径进行自动分析,精确定位缺陷根源,提供清晰的调试依据。
自动化验证执行与反例分析
1/6

本阶段旨在将形式化验证的结果有效反馈至开发流程中,驱动设计的修复与优化,并通过迭代验证确保问题被彻底解决。具体实施步骤如下:

将验证发现的设计缺陷反馈给开发团队,指导其进行设计修改或代码修复。
根据设计变更,同步更新形式化模型与规约,并进行增量验证,确保修复有效且未引入新问题。
评估本轮验证的覆盖度与充分性,直至所有关键属性均被验证通过,形成完整的验证闭环。
验证闭环与设计迭代
1/6

本阶段旨在将形式化验证无缝集成到现有的开发与集成流水线中,使其从学术实践转变为可持续、可复用的工业化开发环节。具体实施步骤如下:

将形式化验证集成至CI/CD(持续集成/持续部署)流水线,实现自动化验证。
建立可复用的验证组件库与属性库,积累验证资产,降低新项目的验证门槛与成本。
制定形式化验证的流程与规范,确保验证活动的一致性和可持续性,为安全认证提供可审计的证据。
工程化集成与流程优化
1/6

借助形式化验证实现开发转型

航空航天领域<br/><span style="margin-top: 1px; display: inline-block;">FGS单侧模式逻辑形式化验证</span>
航空航天领域
FGS单侧模式逻辑形式化验证

本案例来源于《Formal methods case studies for DO-333》,展示了形式化方法在航空航天飞行控制软件中的应用。

汽车交通领域<br/><span style="margin-top: 1px; display: inline-block;">SUMS安全架构设计与验证研究</span>
汽车交通领域
SUMS安全架构设计与验证研究

为应对汽车系统日益增长的网络攻击威胁,研究团队以联合国法规UN R156为指导,针对软件更新管理系统(SUMS)开展安全架构设计与验证研究。

核电能源领域<br/><span style="margin-top: 1px; display: inline-block;">核电厂安全级DCS系统开发</span>
核电能源领域
核电厂安全级DCS系统开发

针对核电厂安全级DCS系统的软件开发需求,研究团队提出将形式化方法引入到仪控系统工程应用软件、代码生成器及微内核操作系统的开发过程中。

message

获取专业解决方案

联系解决方案专家,进行详细沟通