如何查找 Coq 证明策略的定义或实现?

2024-01-14

我正在看this https://github.com/coq/coq/blob/cdfe69d6da6b32338ba74c9f599c74389089c9dd/theories/Numbers/Natural/Abstract/NAdd.v#L49-L57:

Theorem eq_add_1 : forall n m,
  n + m == 1 -> n == 1 /\ m == 0 \/ n == 0 /\ m == 1.
Proof.
intros n m. rewrite one_succ. intro H.
assert (H1 : exists p, n + m == S p) by now exists 0.
apply eq_add_succ in H1. destruct H1 as [[n' H1] | [m' H1]].
left. rewrite H1 in H; rewrite add_succ_l in H; apply succ_inj in H.
apply eq_add_0 in H. destruct H as [H2 H3]; rewrite H2 in H1; now split.
right. rewrite H1 in H; rewrite add_succ_r in H; apply succ_inj in H.
apply eq_add_0 in H. destruct H as [H2 H3]; rewrite H3 in H1; now split.
Qed.

我如何找到类似的东西intros or destruct mean exactly,比如查找实现(或者如果不可能,则查找定义)?有什么方法可以有效地做到这一点?


对于原始策略和用户定义的策略,答案是不同的。但是,您显示的证明脚本几乎没有使用用户定义的策略,除了now,这是一个符号easy tactic.

如果您不确定某种策略是否原始,请同时尝试两种策略;检查手册可能是最简单的第一步。

用于用户定义的策略。

对于定义为的策略Ltac foo args := body.您可以使用Print Ltac foo (e.g. Print Ltac easy.)。 AFAIK,这不适用于由Tactic Notation.在这两种情况下,我更喜欢查看来源(我通过grep).

对于原始战术

  • 有 Coq 参考手册(https://coq.inria.fr/distrib/current/refman/coq-tacindex.html https://coq.inria.fr/distrib/current/refman/coq-tacindex.html),它没有完整的规范,但通常是最接近的近似值。它不是很容易理解,因此您应该首先参考众多 Coq 教程或介绍之一,例如 Software Foundations。

  • 有实际的 Coq 实现,但除非您是 Coq 实现者,否则这不是很有帮助。

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

如何查找 Coq 证明策略的定义或实现? 的相关文章

  • 没有可判定的相等性或排除中间值的鸽巢证明

    在软件基础中IndProp v https softwarefoundations cis upenn edu lf current IndProp html lab244一个人被要求证明鸽巢原理 并且可以使用排除中间 但有人提到这并不是绝
  • 两个平面之间的交线

    如何找到两个平面之间的交线 我知道数学思想 并且我做了平面法向量之间的叉积 但如何以编程方式从结果向量中获取行 平面的方程为ax by cz d 0 其中 a b c 是平面的法线 d 是到原点的距离 这意味着满足该方程的每个点 x y z
  • sin 和 cos 很慢,有其他选择吗?

    我的游戏需要移动一定的角度 为此 我通过 sin 和 cos 获得角度向量 不幸的是 正弦和余弦是我的瓶颈 我确信我不需要这么精确 是否有替代 C sin cos 和查找表的方法 既相当精确 又非常快 我发现了这个 float Skelet
  • 如何用凸形状形成凹形状?

    我试图绕过只能在 SFML C 库中形成凸形状的规则 为此 我计划测试给定的顶点 如果是凹的 将顶点分成组 测试每个组的凹性 并重复直到得到看起来像的全套凹形形状 就像组合在一起时的原始形状一样 我想知道的是 测试形状凹度的方程式是什么 它
  • 使用 ThreeJS 获取球体纹理上的点击位置

    目前 我有一个带有纹理的球体 它绕 y 轴旋转 我还有在 3D 空间中单击的位置 以及球体上的旋转位置 我认为 目标 获取纹理上的位置 例如 我想获取我点击的图像的哪个方块 参见示例球体和下图 在实践中 我不会使用此图像 但我觉得这将是一个
  • 检查一个数字是否可以表示为两个立方之和的高效程序

    我正在尝试编写一个程序来检查数字 N 是否可以表示为两个立方之和 即 N a 3 b 3 这是我的代码 复杂度为 O n include
  • 如何将一个数表示为4个素数之和?

    这是问题所在 四个素数的和 http acm uva es p v101 10168 html 指出 输入的每一行包含一个整数 N N 输入示例 24 36 46 示例输出 3 11 3 73 7 13 1311 11 17 7 我第一眼就
  • 查找椭圆或贝塞尔曲线上的等距点

    目前我正在编写 JavaScript 代码 将对象放置在屏幕上的椭圆上 我试图找到能够解决这个问题之一的算法 椭圆将是完美的 但如果它太昂贵 贝塞尔曲线也可以 抱歉 但不幸的是我的数学不允许我使用我找到的答案 https mathoverf
  • 根据索引查找金字塔的行?

    给定一个像这样的金字塔 0 1 2 3 4 5 6 7 8 9 并给出金字塔的索引i where i代表i金字塔的第一个数字 有没有办法找到金字塔的行的索引i第一个元素属于 例如 如果i 6 7 8 9 它位于第 3 行 从第 0 行开始
  • 证明:为什么 java.lang.String.hashCode() 的实现与其文档相符?

    JDK 文档为java lang String hashCode http java sun com javase 6 docs api java lang String html hashCode famously https stack
  • python sympy计算余弦函数积分时出错

    因此 我直接尝试从 sympy 文档中获取示例 但出现了一个奇怪的错误 我正在使用 python 3 2 和 sympy 0 7 3 我一直在 ipython 笔记本上工作 尽管我认为这不会有什么不同 错误是 每当我创建 x 符号并尝试集成
  • 有效地将相似的数字分组在一起[重复]

    这个问题在这里已经有答案了 可能的重复 一维数数组聚类 https stackoverflow com questions 11513484 1d number array clustering 我有一个数字数组 例如 1 20 300 4
  • CSS Hex 到速记十六进制转换

    将十六进制转换为速记十六进制的正确算法是什么 例如 996633很容易被转换为 963 但如果是这样怎么办 F362C3 我的第一个猜测是我只取每种颜色的第一个值并使用它 所以 F362C3变成 F6C 但我不知道如何从数学上证明这种方法的
  • 找到两个移动物体的更好交点

    我想极大地优化我的算法之一 我将尽力以最好的方式解释它 主题 我们当时处于二维欧几里德系统中t 0 在这个系统中有两个对象 O1 and O2 O1 and O2分别位于点PA and PC O1移动于常数和已知点方向的速度PB 当物体到达
  • 在 Coq 模块系统中导入 与包含

    确切的语义是什么Include M1在另一个模块中 比如 M 这与做有什么不同Import M1在模块 M 内 更准确地说 以下命令的语义是什么 Module Type M M1 lt M2 lt M3 总结这两个白话命令的语义 命令Inc
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • 四舍五入到 25、50、75、100

    我不是一个数学爱好者 所以我很难想出一个将小数四舍五入到 25 50 75 和 100 的计算方法 这不会是典型的四舍五入 因为小数不会减少但只增加了 Example 如果 11 12 则舍入为 11 25 如果为 11 34 则舍入为 1
  • C# 中四舍五入到偶数

    我没有看到 Math Round 的预期结果 return Math Round 99 96535789 2 MidpointRounding ToEven returning 99 97 据我了解 MidpointRounding ToE
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • 具有非常大的数字的除法

    我只是想知道在处理大数字时有哪些不同的除法策略 我所说的大数字是指 50 位数字 例如 9237639100273856744937827364095876289200667937278 82637448262718273966299344

随机推荐

  • 如何在 Numba 中使用指针包装 CFFI 函数

    这应该是一项简单的任务 但我找不到如何将标量值的指针传递给 Numba 函数内的 CFFI 函数的方法 使用以下命令将指针传递给数组可以毫无问题ffi from buffer 示例函数 import cffi ffi cffi FFI de
  • 将两个字节读入一个整数?

    我有一个byte 我已经从文件中读取了 并且我想要得到一个int从其中的两个字节 这是一个例子 byte bytes new byte byte 0x00 byte 0x2F byte 0x01 byte 0x10 byte 0x6F in
  • 正在使用的 Azure 应用服务部署文件

    在我的项目中 我们使用 Azure App Service Deploy 任务来部署我们的 webdeploy 包 我注意到有时在部署时会出现文件使用错误 即使已设置 使应用程序离线 选项也是如此 解决这个问题的最佳方法是什么 这是错误 2
  • 为什么硬件加速在我的视图上不起作用?

    我在用着Facebook 的 Rebound 库 http facebook github io rebound 复制聊天头实现中看到的弹性动画 问题是 大多数时候动画都会断断续续 几张图片会更好地解释这一点 这是黄油般流畅的聊天头动画 这
  • 为 AWS Device Farm 构建 XCTest UI 测试

    我正在尝试设置我们的 iOS XCUITests 以在 AWS Device Farm 上运行 但似乎无论我如何构建和上传它们 测试都不会运行 它们在 XCode 本地运行时执行并通过 但不在 AWS Device Farm 上运行 我已经
  • 配置 Quartz.Net 使用 NLog 写入单独的文件

    这是我的 nlog 配置 我想要实现的是将 Quartz 日志放在单独的文件中 但检查日志文件夹我只发现调度程序日志文件
  • 如何强制对 xml 文件进行配置转换?

    我刚刚安装了配置转换 https marketplace visualstudio com items itemName GolanAvraham ConfigurationTransform对于VS2017 希望能转换一些XML文件 不幸
  • 在 XCode 4.2 空应用程序模板中使用 Interface Builder 将 tabbarcontroller 添加到 AppDelegate 的步骤

    当我被困住的时候在这个问题上 https stackoverflow com questions 8200059 tab bar is shifted down outside the borders of the simulator我找不
  • Python:将 1,000,000 个整数写入文件

    使用 Python 将 1 000 000 个整数 0 1 2 写入文件而无需压缩等的最紧凑方法是什么 我的答案是 使用 struct 模块 1 000 000 3 字节 但面试官似乎期望另一个答案 编辑 从 1 到 1 000 000 的
  • 带变换的 R lm() 公式的格式

    我不太清楚如何在一行中执行以下操作 data attenu x temp attenu accel 1 4 y temp log attenu dist best line lm y temp x temp 由于上述工作有效 我认为我可以执
  • 将 Arduino RGB LED 从一种颜色渐变为另一种颜色?

    目前 我已成功让 LED 灯循环显示我选择的八种颜色 一切都工作正常 除了我想要一种更自然的感觉 并且想要从一种颜色褪色 过渡到下一种颜色 而不是让它们互相替换 到目前为止 这是我的代码 int redPin 11 int greenPin
  • 子元素自动宽度(大于父元素)

    我有一个ul等距导航菜单inline block每个元素都有一个子菜单 问题是我无法让子菜单的宽度适应子元素的长度 它继承了父级的宽度 我可以设置固定宽度 但由于每个子菜单都有不同长度的不同链接 因此我理想地希望每个子菜单都具有自动宽度并与
  • Liquibase 不会使用 MySQL 回滚失败的变更集

    我使用 Liquibase 3 4 1 和 MySQL56 并通过 Spring Boot 运行 Liquibase 我有一个变更集 其中包括向现有表添加一列 新的column has valueComputed属性与一个简单的选择 当我在
  • 请求 EMV 卡的 GPO 命令时出现解析器错误

    我在使用 VISA 卡的 GET PROCESSING OPTIONS GPO 命令时遇到一些问题 以下是我对 VISA 应用程序的 SELECT 命令的响应 6F408407A0000000031010A535500A5649534120
  • ngrx/store 不显示表单的更新值

    我需要通过表单输入 2 个输入值 以兆字节为单位显示存储空间的使用情况 已使用空间和剩余空间 并显示来自 ngrx Store 的输入值 每次提交表单时 都会显示新值并更新旧值 问题是 UI 始终显示 used space 和剩余空间 的默
  • 带引导程序的滑出面板

    我使用 twitter bootstrap 并尝试做类似的事情here http codepen io Tyriar pen nJGfj 滑出面板 我见过nav collapse效果非常相似 只是它从上方下降并且仅出现在特定屏幕尺寸下方 希
  • React Native - 如何仅输入数字键盘(不带标点符号)

    有没有一种方法可以在没有标点符号的情况下键入数字键盘
  • 如何在 Svelte 中使用 Web 组件?

    我想使用一些网络组件https github com microsoft vscode webview ui toolkit https github com microsoft vscode webview ui toolkit 但我不知
  • jquery代理传递参数

    绑定事件处理程序时如何通过代理传递字符串 我想将附加到目标处理程序的数据属性传递给对象的方法 这可能吗 function ReservationSchedulePicker reservationType Reservation Type
  • 如何查找 Coq 证明策略的定义或实现?

    我正在看this https github com coq coq blob cdfe69d6da6b32338ba74c9f599c74389089c9dd theories Numbers Natural Abstract NAdd v