验证 FRAMA-C 中的矩阵转置函数

2024-03-30

我有一个简单的矩阵转置函数,我想用后置条件来验证它

matrix_transpose(matrix_transpose(original_matrix)==original_matrix

其语法是什么?我试过了

ensures \result(\result)==a;

其中 a 是原始矩阵,但这似乎不起作用。

编辑:这是我的代码

    void transpose_matrix(int[][10],int,int);
int main()
{       
        int r=3;
        int c=3;
        int a[10][10]={
                {1,1,1},
                {2,2,2},
                {3,3,3}
               };

        transpose_matrix(a,r,c);


    return 0;
}
/*@
ensures \result(\result)==a;
*/

void transpose_matrix(int a[][10], int r, int c){
        int  trans[10][10],i,j;
        for(i=0; i<r; ++i)
                for(j=0; j<c; ++j)
                {       
                        trans[j][i]=a[i][j];
                }

}

也许我没有以正确的方式思考这个问题。


您想要证明的属性实际上无法用 ACSL 提供的简单函数合约来表达。即函数契约指定在单个函数调用期间应该发生什么。你所追求的问题two相关函数调用。

Frama-C 有一个外部(且非常实验性)插件,可让您编写此类属性:RPP(关系属性证明器),可在https://github.com/lyonel2017/Frama-C-RPP https://github.com/lyonel2017/Frama-C-RPP,一些文章描述了该技术(称为自作曲),它是基于https://hal-cea.archives-ouvertes.fr/cea-01808885 https://hal-cea.archives-ouvertes.fr/cea-01808885 and https://hal-cea.archives-ouvertes.fr/cea-01835470 https://hal-cea.archives-ouvertes.fr/cea-01835470

请注意,在当前状态下,RPP 有许多限制,特别是在处理指针方面,这可能会成为矩阵的问题。不过,也可以手动进行自组合,然后照常使用 WP。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证 FRAMA-C 中的矩阵转置函数 的相关文章

  • 我可以使用 Jython 运行 numpy 和 pandas

    我们有一些 Java 代码想要与计划用 Python 编写的新代码一起使用 因此我们对使用 Jython 感兴趣 然而 我们还想使用 numpy 和 pandas 库在此 Python 代码中进行复杂的统计分析 是否可以从 Jython 调
  • 提高 Android 位图上 getpixel() 和 setpixel() 的速度

    All 当我注意到有多慢之后getPixel and setPixel是 不确定是哪一个 猜想两者都不是涡轮增压的 我快速编码了一个容器Bitmap使用int 数组来处理位图操作 已经 它明显更快 但这还不够 请问您能建议如何进一步加快速度
  • 使用 Scala 中的可变参数

    我正在抓狂地试图弄清楚如何执行以下操作 def foo msf String o Any os Any println String format msf o List os 我必须用一个来声明该方法是有原因的o and an os Seq
  • 如何在 RXJS 中启动和停止可观察的间隔?

    我有一个非常简单的 timeInterval 可观察对象 我想在不断开订阅者连接的情况下启动 停止传输 无论可观察状态如何 都应该坐下来等待 有可能吗 如果可以的话怎么办 var source Rx Observable interval
  • 在 MS-Access 中插入带有日期时间的 SQL 命令

    我正在 MS Access 2007 中尝试以下查询 但在时间字段上失败 INSERT INTO LOG EMPLOYEECODE STATUSID LOCATIONID TIME DURATION SHIFTID LATECOMING E
  • 创建索引需要很长时间

    我在 MongoDB 中创建了一个集合 其中包含11446615文件 每个文档具有以下形式 id ObjectId 4e03dec7c3c365f574820835 httpReferer http www somewebsite pl a
  • wamp 本地主机上的 Amazon S3 SSL 错误

    我尝试在本地主机上使用 PHP Amazon S3 进行测试 但不断收到相同的错误 致命错误 未捕获异常 cURL Exception 消息为 cURL 资源 资源 ID 69 cURL 错误 SSL 证书问题 请验证 CA 证书没问题 详
  • java 的 System.getProperty("user.dir") 在 .NET 中的等价物是什么?

    我试图获取单元测试中文件的完整路径 该文件位于项目的文件夹中 我尝试使用 Directory GetCurrentDirectory 但这会返回我的测试正在运行的目录 我想要项目 或解决方案 的目录 而不必在其中进行硬编码 然后我可以附加文
  • angular2:如何将对象复制到另一个对象中

    请帮助我使用 Angular 2 将对象复制到另一个对象中 在 Angular 中 我使用 angular copy 将对象复制到旧对象的松散引用 但是 当我在 Angular 2 中使用相同的方法时 出现以下错误 错误 角度未定义 Sol
  • React Router v4 - 如何防止重定向循环?

    我想要实现的目标是拥有我的App如果状态的 uid 为 null 则组件重定向到 login 路由 重定向工作正常 如果 uid 为空 它将始终将您重定向到 login 但问题是一旦您进入 login 路线 它就不会停止重定向 抛出的错误是
  • 我应该使用什么标准来评估 Perl“应用程序服务器”(mod_perl 替代品)?

    简洁版本 我应该使用什么标准来评估 Perl 应用程序服务器 mod perl 替代品 的可能候选者 我们正在寻找某种框架 它允许重复执行各种 Perl 程序 作为服务 而不会产生以下成本 每次执行时重新启动 perl 解释器一次 每次执行
  • 如何在python 3中按本地语言对拉丁语进行排序?

    在很多情况下 用户的语言不是 latin 脚本 示例包括 希腊语 俄语 中文 在大多数情况下 排序是通过 首先对特殊字符和数字进行排序 虽然是当地语言的数字 其次是当地语言文字中的单词 最后是一般 utf 排序规则中的任何非本地字符 例如法
  • 如何在 python-igraph 中种子图生成器?

    有没有什么方法可以为使用 python igraph 生成的以下 Watts Strogatz 图提供种子 以便每次运行脚本时我都能得到相同的 SW 图实现 import igraph graph igraph Graph Watts St
  • 学习 VHDL 的最佳方法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 从列表中选择随机单词?

    我无法从另一个文件的列表中随机选择单词 事实上我什至无法让它选择任何单词 我不确定如何连接这两个文件 希望有人能帮忙 我是初学者 所以请尽可能简单地解释一下 我有 2 个文件 一个名为 program cs 另一个名为 WordList c
  • 在版本 4 中将节点动态添加到 D3 Force Layout

    我正在尝试实现一个简单的力布局 其中可以动态添加和删除节点 没有链接 我成功地在 D3 版本 3 中实现了这个概念 但我无法将其转换为版本 4 添加和更新节点后 模拟冻结 传入的圆圈绘制在 svg 的左上角 有人知道为什么会这样吗 谢谢你的
  • 使用预处理器在 C 中进行模板化

    我想知道为什么我从来没有见过下面的方式来实现模板 之前在C中 我的想法是让预处理器进行模板工作 容器 h ifndef TEMPLATE TYPE error missing decalaration TEMPLATE TYPE endif
  • R 中心调色板为 0

    我想创建一个以 0 为中心的色带 以下代码 library raster librayr RColorBrewer xmin 124 413 xmax 66 883 ymin 25 9425 ymax 48 9885 nrows 215 n
  • 未捕获的语法错误:实时但不在本地服务器上出现意外的令牌 B

    所以我正在制作一些ajax帖子 它似乎在本地主机上工作正常 但是当我将其发布到亚马逊上的ec2服务器时 我得到 Uncaught SyntaxError Unexpected token B 这似乎表明 JSON 解析失败 完全相同的数据库
  • 使用 Samsung Galaxy Tab 附加组件将如何影响/限制我的 Android Market 部署?

    我已经针对上述附加组件提供的新构建目标运行了我的 Android 应用程序here http innovator samsungmobile com galaxyTab do 这似乎在模拟器中正常工作 但现在我非常不确定在向市场交付应用程序
  • Math.sqrt Java 的时间复杂度

    Java 中 math sqrt 实现的时间复杂度是多少 Java 以某种技术实现了时间复杂度 我正在尝试确定该技术的时间复杂度 在大多数情况下 Java 尝试使用 智能功率 算法 这会导致时间复杂度为 O log n 智能用电算法 htt
  • vhdl代码(for循环)

    描述 我想编写 vhdl 代码来查找数组 A 中的最大整数 该数组是一个由 20 个整数组成的数组 问题 我的算法应该是什么样子 以输入顺序语句的位置 我的VHDL代码 highnum for i in 0 to 19 loop i 0 i
  • Objective-C:标量属性默认为原子?

    一位朋友告诉我 标量属性 BOOL NSInteger 等 的 property 默认值是非原子的 IE property BOOL followVenmo 默认为 property nonatomic BOOL followVenmo 但
  • 使用反射调用方法

    是否可以通过类的反射来调用方法 class MyObject some methods public void fce call another method of this object via reflection 谢谢 绝对地 imp
  • 播放 2.3.8 sbt 不包括 logback

    我很难排除logback从我的play 2 3 8测试运行来看 我尝试了很多排除规则 但似乎没有任何效果 我在我的依赖树中也找不到它 我的 sbt 文件中的片段 resolvers Seq Typesafe repository snaps
  • CMake 构建工具链中“strip”命令的 Android NDK 路径变量

    我正在尝试添加一个去除调试符号我的 Android 库的步骤 其中包括不同 ABI 的本机共享库 例如x86 native lib so x86 64 native lib so arm64 v8a native lib so etc 我明
  • 如何阅读 PostgreSQL 命令的文档语法?

    我想从数据库 B 中的多个表在数据库 A 中创建一个表 我查阅了 PostgreSQL 的文档here http www postgresql org docs 9 1 static sql createtable html弄清楚命令的用法
  • 如何从 int 转换为 hex

    我想在 Golang 中将 int 转换为 hex 在strconv中 有一个将字符串转换为十六进制的方法 是否有类似的方法从 int 获取十六进制字符串 由于十六进制是整数文字 https golang org ref spec Inte
  • 我可以更改 POST 值而不重新 POST 吗?

    这是在 IIS 6 世界中使用 ASP NET 2 0 我有一个用户提交一个表单 通过 POST 发送数据 接收数据的页面会进行一些简单的验证 如果验证通过 则运行黑盒代码例程 该例程基本上使用 Request Form NameHere
  • 在R中删除国家地图边界之外的数据

    我知道这很简单 但无法让它发挥作用 我想删除下面地图上多余的数据点 我该怎么做 下面的代码给了我结果 ggplot geom polygon data rwa2 aes x long y lat group group colour bla
  • Travis-CI“Android 28 许可证尚未被接受”

    我正在尝试使用 Travis 构建 android 项目android 28 and build tools 28 0 0但无论我做什么我都会得到 gt Failed to install the following Android SDK
  • Excel VBA SQL - 多个数据源

    我有一个相当简单的问题 我找不到答案 我有以下 SQL Select a from filea where a in select b from fileb 我正在尝试使用 VBA 在 Excel 中运行它 我遇到的问题是 filea 是
  • WordPress 导航栏中的自定义短代码

    我只想在我的 WordPress 主题菜单栏中添加一个短代码按钮来处理bootstrap modal view功能 我试过 Shortcodes in Menus 插件 但它不起作用 我在菜单中找不到短代码的替代插件 所以我安装了 Boot
  • 验证 FRAMA-C 中的矩阵转置函数

    我有一个简单的矩阵转置函数 我想用后置条件来验证它 matrix transpose matrix transpose original matrix original matrix 其语法是什么 我试过了 ensures result r