如何在 Coq 中自动证明实数的简单相等?

2023-12-03

我正在寻找的是auto类似的策略可以证明简单的等式,例如:

1/2 = 2/4

到目前为止,我手动尝试过的是使用ring_simplify and field_simplify来证明等式。即使这样效果也不好(Coq 8.5b3)。下面的例子有效:

Require Export Coq.Reals.RIneq.
Local Open Scope Z_scope.
Local Open Scope R_scope.

Example test2: 1 = 1 / 1.
Proof. field_simplify. field_simplify. reflexivity.
Qed. 

但有必要使用field_simplfy twice before reflexivity。首先field_simplfiy给我:

1 subgoal
______________________________________(1/1)
1 / 1 = 1 / 1 / (1 / 1)

这不受自反性的影响。

下面的例子不起作用,field_simplify似乎对目标没有做任何事情,因此,reflexivity不能使用。

Example test3: 1/2 = 2/4.
Proof. field_simplify. reflexivity. 

同样,是否有一种自动方法可以实现这一目标,例如field_auto?


我相信这个战术field就是你想要的。

Require Export Coq.Reals.RIneq.
Local Open Scope Z_scope.
Local Open Scope R_scope.


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

如何在 Coq 中自动证明实数的简单相等? 的相关文章

  • 当目标是类型时,为什么 Coq 不允许反转、析构等?

    When refine正在运行一个程序 我试图通过以下方式结束证明inversion on a False假设当目标是Type 这是我尝试做的证明的简化版本 Lemma strange1 forall T Type 0 gt 0 gt T
  • 使用由明确定义的归纳定义的递归函数进行计算

    当我使用Function在 Coq 中定义一个非结构递归函数 当要求进行特定计算时 生成的对象会表现得很奇怪 事实上 不是直接给出结果 而是Eval compute in 指令返回一个相当长 通常为 170 000 行 的表达式 Coq 似
  • Coq 中的 `destruct` 和 `case_eq` 策略有什么区别?

    我明白了destruct因为它将归纳定义分解为其构造函数 我最近看到case eq我不明白它有什么不同 1 subgoals n nat k nat m M t nat H match M find elt nat n m with Som
  • Coq 中归纳集的归纳子集

    我有一个用三个构造函数构建的归纳集 Inductive MF Set D MF cn MF gt MF gt MF dn Z gt MF gt MF 我想以某种方式定义一个新的归纳集 B 使得 B 是 MF 的子集 仅包含从 D 和 dn
  • Coq 将不存在的语句转换为 forall 语句

    我是 Coq 的新手 这是我的问题 我有一个声明说 H forall x term exists y term P x y P y x 我猜它相当于 forall x y term P x y P y x gt false 但我可以使用哪种
  • Ltac:通过回溯重复策略 n 次

    假设我有一个像这样的策略 取自 HaysTac 它搜索一个参数来专门化一个特定的假设 Ltac find specialize in H multimatch goal with v gt specialize H v end 然而 我想写
  • 对术语...进行抽象会导致术语...类型错误

    这是我想证明的 A Type i nat index f nat nat n nat ip n lt i partial index f nat option nat L partial index f index f n Some n V
  • Coq - 在 if ... then ... else 中使用 Prop (True | False)

    我对 Coq 有点陌生 我正在尝试实现插入排序的通用版本 我正在实现一个以比较器作为参数的模块 该 Comparator 实现了比较运算符 如 is eq is le is neq 等 在插入排序中 为了插入 我必须比较输入列表中的两个元素
  • 证明匹配语句

    为了解决一个练习 我有以下代表整数的定义 Inductive bin Type Zero bin Twice bin gt bin TwiceOne bin gt bin 这个想法是 Twice x is 2 x 两次一x is 2 x 1
  • 如何将假设中的具体变量更改为存在量化变量?

    假设我有一个这样的假设 FooProp a b 我想将假设改为这种形式 exists a FooProp a b 我怎样才能做到这一点 我知道我能做到assert exists a FooProp a b by eauto但我试图找到一个不
  • 在 Coq 中使用依赖类型(安全第 n 个函数)

    我正在尝试学习 Coq 但我发现很难从我读到的内容中实现飞跃软件基础 and 依赖类型的认证编程到我自己的用例 特别是 我想我应该尝试制作一个经过验证的版本nth列表上的函数 我设法写了这个 Require Import Arith Req
  • 逻辑:tr_rev_ Correct 的辅助引理

    在逻辑章节中 介绍了反向列表函数的尾递归版本 我们需要证明它可以正确工作 Fixpoint rev append X l1 l2 list X list X match l1 with gt l2 x l1 gt rev append l1
  • Coq 中的“错误:宇宙不一致”是什么意思?

    我正在努力通过软件基础 http www cis upenn edu bcpierce sf current 目前正在做教堂数字的练习 这是自然数的类型签名 Definition nat forall X Type X gt X gt X
  • 如何在构造微积分中提取Sigma的第二个元素?

    我尝试这样做 A gt B A gt gt t r gt x a gt B x gt r gt r gt t B t A x A gt y B x gt x x A gt y B x gt y 请注意 由于该函数返回的值取决于 sigma
  • 在 Coq 中,“if then else”允许非布尔第一个参数?

    我读过一些教程if a then b else c代表match a with true gt b false gt c end 然而 很奇怪的是 前者不检查类型a 而后者当然确保a是一个布尔值 例如 Coq lt Check if nil
  • 为什么coq互感类型必须具有相同的参数?

    下列的亚瑟的建议 https stackoverflow com a 17304209 403875 我改变了我的Fixpoint相互关系Inductive这种关系 建立 游戏之间的不同比较 而不是 深入研究 但现在我收到一条全新的错误消息
  • 如何处理 Coq 中 Program Fixpoint 生成的非常大的项?

    我试图在 Coq 中定义并证明正确的函数 该函数可以有效地比较两个排序列表 由于它并不总是在结构较小的项上递归 第一个或第二个列表较小 Fixpoint不会接受它 所以我尝试使用Program Fixpoint反而 当尝试使用策略证明函数的
  • 标准库证明中定义的 Z.le 是否无关紧要?

    在 Coq 标准库中 有一个枚举类型称为comparison具有三个元素Eq Lt Gt 这用于定义小于或小于或等于运算符ZArith m lt n定义为m n Lt and m lt n定义为m n lt gt Gt 根据赫德伯格定理 U
  • 证明依赖类型实例之间的相等性

    当尝试形式化对应于代数结构的类 例如所有幺半群的类 时 自然的设计是创建一个类型monoid a Type 作为对所有必需字段进行建模的产品类型 元素e a 一个操作员app a gt a gt a 证明幺半群定律得到满足等 在此过程中 我
  • 为什么 Coq 中实数公理化?

    我想知道 Coq 是否将实数定义为柯西序列或 Dedekind 切割 所以我检查了 Coq Reals Raxioms 这两个都不是 实数及其运算被公理化 如Parameters and Axioms 为什么会这样呢 此外 实数紧密依赖于子

随机推荐

  • 在泽西岛调用 SOAP

    我有一个客户的要求 希望围绕 SOAP Web 服务编写一个包装器 REST Web 服务 我对 SOAP 和 REST 都很陌生 谁能告诉我 我们是否可以在 REST Web 服务中调用 SOAP Web 服务 如果是的话 那么在 Jer
  • javascript 将数字除以小数

    我怎样才能将数字 钱 平均除以x数 该数字可以包含一位或两位小数 也可以不包含小数 such as 1000 or 100 2 or 112 34我希望能够将该数字平等地分成 x 部分 但是如果它不是奇数 则将额外的数字添加到最后一个数字
  • 在现有 SqlConnection 中打开 DbContext 连接

    我感兴趣是否打开实体框架DbContext现有 ADO NET 中的连接SqlConnection如果它们都使用相同的连接字符串 即在完全相同的数据库上操作 那么应该不鼓励吗 例如 using TransactionScope scope
  • 将 jRadioButton 添加到 jTable 中

    我正在尝试添加jRadioButton into jTable 我使用了给定的代码 private class CustomCellRenderer extends DefaultTableCellRenderer non Javadoc
  • 将 CSV 字符串与 IN 运算符一起使用时出错

    当我运行以下代码时 declare aaa nvarchar 10 set aaa 1 2 3 Select from Customer where CustomerId in convert nvarchar aaa 10 我收到此错误
  • 如何在 Django 中创建模型包

    拥有相当大的models py文件 包含多个模型 我正在尝试重构 每个文件一个模型 因此我试图创建一个models包 结构如下 app models init py app models first model py app models
  • 使用jquery取消选中复选框时隐藏文本

    默认情况下会选中复选框 如果未选中 他们应该隐藏文本 如何隐藏或显示 jquery 中的文本 html div class check p p div
  • SQLiteException 没有被捕获

    我试图捕获 android database sqlite SQLiteException 错误代码 5 数据库已锁定 异常 try db insert mytable null myvalues catch SQLiteException
  • 如何在 dplyr 中按降序排列奇数,按升序排列偶数

    我在 r 中有以下数据框 ID bay row number 1 43 11 ABC 2 43 6 DEF 3 43 13 QWE 4 43 15 XDF 5 43 4 VGH 6 43 2 TYU 7 11 11 QAS 8 11 13
  • SQL Server - 不聚合的行到列

    我的数据看起来像这样 address id 12AnyStreet 1234 12AnyStreet 1235 12AnyStreet 1236 12AnyStreet 1237 我的目标是让它看起来像这样 Address id1 id2
  • Cloud Dataflow - Dataflow 如何实现并行性?

    我的问题是 在幕后 对于逐元素 Beam DoFn ParDo 云数据流如何并行工作负载 例如 在我的 ParDO 中 我向外部服务器发送一个针对一个元素的 http 请求 我使用了 30 个工人 每个工人有 4vCPU 这是否意味着每个工
  • 如何以二维风格指定单元测试文件夹

    我有一个具有二维风格的项目 例如风味维度 设备 水果 移动香蕉 移动苹果 香蕉 stbApple 所有构建结果都很好 我只想进行单元测试stbApple当选择构建变体在 Android Studio 中 如何实现这一目标 我尝试过以下实验
  • JSR 363 的 UCUM 单位格式

    我正在使用 JSR 363 测量单位 和最新的参考实现
  • rpy2 - “R”对象没有属性“nls”

    我正在使用 rpy2 在 python 中的 r 中进行一些非线性回归 import rpy2 robjects as robjects from rpy2 robjects import DataFrame Formula from rp
  • Python - Urllib2 等待页面加载以抓取数据

    首先 我想说我不想使用 Python 2 7 10 未提供的任何库 同样的问题也发布在 Stack Overflow 上 但在 Requests 库中得到了解答 我有一个使用 urllib2 登录 Roblox com 的脚本 为了在尝试登
  • AngularJS:从模型数组中拼接模型元素时,ng-repeat 列表不会更新

    我有两个控制器 并通过 app factory 函数在它们之间共享数据 单击链接时 第一个控制器会在模型数组 pluginsDisplayed 中添加一个小部件 小部件被推送到数组中 并且此更改反映到视图中 使用 ng repeat 来显示
  • 如何找到至少2个向量中共有的元素?

    假设我有 5 个向量 a lt c 1 2 3 b lt c 2 3 4 c lt c 1 2 5 8 d lt c 2 3 4 6 e lt c 2 7 8 9 我知道我可以使用以下方法计算它们之间的交集Reduce 和 一起inters
  • C++ 失败时 istream 行为发生变化

    取自 参考参数 直到 C 11 如果提取失败 例如 如果在需要数字的地方输入了字母 则值保持不变并设置失败位 自 C 11 起 如果提取失败 则将零写入值并设置失败位 如果提取结果导致值太大或太小而无法适应值 std numeric lim
  • 使用产品风味时,每种风味中哪些文件是常见的,哪些文件是该风味特有的?

    productFlavors India USA 我们以两种产品口味为例 1 印度 2 美国 构建变体的总数将为 4 1 印度调试 2 印度发布 3 美国调试 4 美国发布 哪些文件对于所有风格都是通用的 哪些文件是特定于风格以及调试和发布
  • 如何在 Coq 中自动证明实数的简单相等?

    我正在寻找的是auto类似的策略可以证明简单的等式 例如 1 2 2 4 到目前为止 我手动尝试过的是使用ring simplify and field simplify来证明等式 即使这样效果也不好 Coq 8 5b3 下面的例子有效 R