如何查找 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 证明策略的定义或实现? 的相关文章

  • 获取一条线与地平线的角度

    我想知道如何获得线 A B 与水平轴 X 的角度 SO 中的其他问题仅在两条线之间进行此操作 我知道我总是可以绘制第二条线 A C 并计算 但我想知道是否有更快的方法 编辑 我非常确定我没有进行过早的优化 您可以使用atan为了那个原因 a
  • 如何在 C# 中将 BigInteger 转换为 pow Double?

    我尝试使用BigInteger Pow计算类似 10 12345 987654321 的方法 但此方法只接受整数作为指数 如下所示 BigInteger Pow BigInteger x int y 那么如何在上述方法中使用双数作为指数呢
  • 哪种编程语言或库可以处理无限级数?

    哪种编程语言或库能够处理无限级数 例如几何级数或调和级数 它可能必须有一些众所周知的系列的数据库 并在收敛的情况下自动给出适当的值 并且可能在发散的情况下生成异常 例如 在 Python 中 它可能如下所示 sum 0 sign 1 0 f
  • 如何使用NSDecimalNumber?

    我正在构建一个需要对金钱进行计算的应用程序 我想知道如何正确使用 NSDecimalNumber 特别是如何从整数 浮点数和双精度数初始化它 我只发现它很容易使用 decimalNumberWithString 方法 这 initWith
  • 将 (-inf...+inf) 范围内的任何值标准化为 (0...1)。是否可以?

    如果我们有具体的 max min 值范围 那么很容易将其标准化为 0 1 浮点值 但如果我们没有具体的限制呢 是否可以构建输出介于 0 和 1 之间的通用函数 在我看来 我认为这是不可能的 但我不是数学专家 我正在寻找 JavaScript
  • Java 中的数学方程如何工作?

    当我做这样的事情时 int test 5 3 4 1 2 我得到 9 我怀疑这是因为 int 向下舍入 但是 当我这样做时 float test 5 3 4 1 2 我也得到 9 但是 当我这样做时 float test1 5 float
  • “auto”如何与双条件(关闭)交互

    我注意到 那auto忽略双条件 这是一个简化的示例 Parameter A B Prop Parameter A iff B A lt gt B Theorem foo1 A gt B Proof intros H apply A iff
  • Coq:承认断言

    有没有办法在 Coq 中承认断言 假设我有一个这样的定理 Theorem test forall m n nat m n n m Proof intros n m assert H1 m m n m S n Admitted Abort 上
  • 在 Python 中使用 sec 函数的反函数

    我正在创建一个程序 用于计算从一定高度范围和设定初始速度发射射弹的最佳角度 在我需要使用的最终方程中 存在一个反 sec 函数 它导致了一些麻烦 我已经导入了数学并尝试使用 asec 无论如何 但是数学似乎无法计算反秒函数 我也明白 sec
  • Java 中的微分方程

    我正在尝试用java创建一个简单的SIR流行病模型模拟程序 基本上 SIR 由三个微分方程组定义 S t l t S t I t l t S t g t I t R t g t I t S 易感人群 I 感染人群 R 康复人群 l t c
  • 求截头棱锥体/截棱锥体横截面的边长

    如何找到横截面的边长 如图所示 下图 横截面 红色 截头锥体 截棱锥体 我知道顶部和底部的边长 以及底部的高度 截锥体和到横截面的距离 此外我还知道 顶部和底部底座平行 并且顶部和底部的中心 底部底座直接位于彼此之上 比例是线性的 因此只需
  • 为什么 Convert.ToInt32(1.0/0.00004) != (Int32)(1.0/0.00004)

    为什么这段代码http ideone com YRcICG http ideone com YRcICG void Main double a 0 00004 Int32 castToInt Int32 1 0 a Int32 conver
  • 为什么斐波那契堆被称为斐波那契堆?

    The 斐波那契堆 http en wikipedia org wiki Fibonacci heap数据结构的名称中有 斐波那契 一词 但数据结构中似乎没有任何内容使用斐波那契数 根据维基百科文章 斐波那契堆的名称来自于运行时间分析中使用
  • 为什么循环引导迭代算法的数组大小必须为 3^k+1?

    The 循环引导迭代算法 http www geeksforgeeks org an in place algorithm for string transformation 是一种通过将所有偶数项移至前面并将所有奇数项移至后面同时保留其相
  • 有没有办法根据值是大于 0.5 还是小于 0.5 来进行下限/上限?

    我正在尝试舍入我的价值观 以便如果它是0 5或更大 则变为1 否则就变成0 例如 3 7 gt 4 1 3 gt 1 2 5 gt 3 有任何想法吗 Math Round 3 7 MidpointRounding AwayFromZero
  • 计算 Adamic-Adar 的快速算法

    我正在研究图形分析 我想计算一个 N N 相似度矩阵 其中包含每两个顶点之间的 Adamic Adar 相似度 为了概述 Adamic Adar 让我从以下介绍开始 给定邻接矩阵A无向图的G CN是两个顶点的所有公共邻居的集合x y 两个顶
  • JavaScript 或 IEEE-754 中的舍入怪癖?

    我在一个单元测试中遇到了一个奇怪的问题 我在 JavaScript 中得到了意外的舍入结果 2 005 toFixed 2 produces 2 00 2 00501 toFixed 2 produces 2 01 最初我怀疑这只是 Web
  • Excel - 确定排列的奇偶性

    我正在处理一个 Excel 工作表 需要确定大小数字的垂直数组的奇偶校验N 该数组包含来自的每个数字1 to N每一次正好一次 在这种情况下 奇偶校验被定义为将加扰数组转换为从小到大排序的数组所需的交换次数 例如 数组 3 1 2 4 具有
  • 在 C 中如何安全地找到 2 个有符号整数之间的绝对差?

    绝对差是两个数字之间差的绝对值 假设我有 2int变量 x and y 我想找到绝对差异 一个简单的解决方案是 unsigned diff abs x y 然而 如果发生溢出 这些会调用未定义的行为并给出不正确的结果 例如x is INT
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅

随机推荐

  • 如何在 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