当前位置: 首页 > news >正文

Formality:比较点的验证状态和整体验证状态

相关阅读

Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm=1001.2014.3001.5482


比较点的验证状态

在使用verify命令进行验证后,参考设计和实现设计所有匹配的比较点(如果使用特定选项,也可以验证任意两个比较点)会各自进行验证,每对比较点的结果如下所示。

状态描述
Passing表示一对比较点通过了验证,即意味着Formality确定这两个比较点所属的逻辑锥是功能等价的。
Failing表示一对比较点验证失败,即意味着Formality认为这两个比较点所属的逻辑锥是不功能等价的。
Aborted表示Formality未能将比较点判定为通过或不通过,原因可能是存在Formality无法自动打破的组合循环,或者比较点难以验证。
Unverified表示未验证的比较点,未验证的比较点发生在验证过程时当达到失败点个数限制(由变量verification_failing_point_limit控制,默认为20个)、超出时间限制(由变量verification_timeout_limit控制,默认为36小时)或用户主动Ctrl+C时停止验证。
Not Compared由于常量触发器、用户设置或不可读等原因,Formality不对这些比较点进行验证。


Passing

使用report_passing_points命令或者如图1所示在Debug窗口点击Passing Points即可查看所有通过验证的比较点。

图1 查看通过的比较点

Failing

使用report_failing_points命令或者如图2所示在Debug窗口点击Failing Points即可查看所有验证失败的比较点。

图2 查看不通过的比较点

Aborted

使用report_aborted_points命令或者如图3所示在Debug窗口点击Failing Points即可查看所有中止的比较点。

图3 查看中止的比较点

Unverified

使用report_unverified_points命令或者如图4所示在Debug窗口点击Unverified Points即可查看所有未验证的比较点。

图4 查看未验证的比较点

Not Compared

如果使用set_dont_verify命令设置一对比较点不验证,则Formality不对这些比较点进行验证,使用report_dont_verify_points命令进行报告。

如果一对比较点的值为相同的常量,则Formality不对这些比较点进行验证。

如果一对比较点中存在至少一个不可读的比较点,则Formality默认不对这些比较点进行验证(可通过verification_verify_unread_compare_points变量改变)。

使用report_not_compared_points命令可以报告上面三种不验证的情况。

整体验证状态

Succeeded

所有的比较点都通过了验证,实现设计被确定为在功能上等价于参考设计。

Failed

Formality找到了至少一对失败的比较点,实现设计被确定为在功能上不等价于参考设计。如果验证被中断,例如因为失败点限制、超出时间限制或用户主动Ctrl+C停止验证,并且在中断之前至少检测到一个失败点,Formality会报告验证结果为失败。

Inconclusive

Formality无法确定参考设计和实现设计是否等价,这种情况在以下情况中可能发生:

1、所有比较点验证完成,但比较点过于复杂,无法验证,导致出现中止的比较点,并且在设计的其他部分没有发现失败点。

2、验证被中断,例如因为失败点限制、超出时间限制或用户主动Ctrl+C停止验证,并且在中断之前没有检测到失败点。

Not Run

因为一些问题或错误,Formality没有进行任何比较点的验证,一个例子是使用set_dont_verify_points命令设置所有比较点不验证后使用verify命令;还有一个例子是当设计中不存在Unverified或Aborted状态的比较点(即已全部归类为Passing、Failing或Not Compared状态)时使用verify命令,此时还会出现FM-397错误。

http://www.jsqmd.com/news/1256534/

相关文章:

  • HarmonyOS ArkTS 实战:实现一个校园表白墙与树洞应用
  • 卡方分布简介
  • 2026 武汉管道疏通口碑 TOP5 深度测评|正规疏通公司哪家好?资质_价格_上门速度全对比 - 园子一号
  • AssetRipper终极指南:轻松提取Unity游戏资源的免费开源神器
  • 界面组件DevExpress中文教程 - 如何使用UI本地化客户端工具本地化应用
  • 2026德系车灯升级服务商甄选指南:正规合规口碑机构推荐+保定本地服务适配要点+合作避坑全FAQ详解 - 保定大拇指车灯
  • 2026深圳线下非医疗心理咨询机构综合实力权威梳理避坑指南(第三方中立测评)+FAQ - 互联网科技品牌测评
  • Pid pad xng《琵琶行》全文字母标调拼音实测案例
  • C++类细节梳理之派生和继承
  • 【Prompt Engineering核心心法】:3类结构化提示模板+4维质量评分卡,立即提升输出稳定性47%
  • 两重”建设项目清单落地,嘉利恒兴升降控制台助力各类指挥调度中心升级
  • JPMorgan、摩根士丹利案例可查,美国金融求职的专业内推如何运作? - Matthewmx
  • 【Rust中级教程】2.8. API设计原则之灵活性(flexible) Pt.4:显式析构函数的问题及3种解决方案
  • 【JAVA毕设源码分享】基于springboot房屋交易系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 深度解析:开源股票智能分析系统的架构设计与实现
  • 2026.7.23:安装Windows下的mingw工具
  • 若依项目Linux生产环境治理:文件系统权限配置实战
  • 界面控件DevExpress ASP.NET Spreadsheet组件 - 轻松集成电子表格功能!(一)
  • 2026 宁波专业家电维修商家推荐 |卓越家电安装维修:安装、维修、回收、出租一站式靠谱服务商 - 星际AI
  • 从日销5万到50万:我们用4类AI工具+2个数据中枢重构运营流(附可落地的SOP模板)
  • AI初筛+全职真人外包怎么做到“零招聘即开呼“?
  • 2026 长春管道疏通口碑 TOP5 深度测评|正规疏通公司哪家好?资质_价格_上门速度全对比 - 园子一号
  • 北美留学生求职成功率差距为何如此之大?三个核心变量决定结果 - Matthewmx
  • ZenlessZoneZero-OneDragon:5分钟掌握《绝区零》全自动游戏助手
  • 什么是Hive(新手易懂版)
  • 计算机毕业设计之天津铭嘉宠物公司在线售卖系统
  • 2026 年当下,云和诚信的玻纤嵌缝带工厂找哪家,揭秘:这小工具如何拯救你的缝隙难题 - 行业推荐官【官方】
  • 《派出你的AI同事:WorkBuddy案例实战》007:多语言翻译与本地化
  • microPython搭建webServer--(一)使用microdot库实现基本页面显示
  • 【Rust中级教程】1.6. 内存 Pt.4:静态(static)内存与‘static生命周期标注