Coq 中是否有一套最小完整的策略?

2023-11-25

我见过很多 Coq 策略,它们在功能上是相互重叠的。

例如,当你在假设中得到确切的结论时,你可以使用assumption, apply, exact, trivial,也许还有其他人。其他例子包括destruct and induction对于无感类型(??)。

我的问题是:

有没有minimal set of basic战术(不包括auto等)是完整的,从这个意义上说,这个集合可以用来证明任何关于自然数函数的 Coq 可证明的定理?

理想情况下,这套最小的完整策略中的策略是基本的,因此每个策略仅执行一种(或两种)功能,并且人们可以轻松理解它的作用。


Coq 中的证明只是正确类型的术语。策略通过将较小的子术语组合成更复杂的子术语来帮助您构建这些术语。因此,最基本的基本策略集只包含exact正如康斯坦丁提到的那样。

The refine策略允许你直接给出证明项,但存在会产生子目标的漏洞。基本上任何策略都只是一个例子refine tactic.

但是,如果您只想首先考虑一组最小的策略,我会考虑intro{s}, exists, reflexivity, symmetry, apply, rewrite, revert, destruct and induction. inversion可能也会很快派上用场。

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

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 的特定版本——尤其是在使用 Opam 管理 Coq 版本时?

    我目前使用的是标准方式 可能通过网站 安装的标准方式 但我想用tcoq 我相信我已经正确安装了它 因为我有一个 bin 文件 并且所有常见的 Coq 内容似乎都在那里 pinno gamepad tcoq ls bin coq tex co
  • 当 Coq 中使用自己的可判定性时,评估计算不完整

    The Eval compute命令并不总是计算为简单表达式 考虑代码 Require Import Coq Lists List Require Import Coq Arith Peano dec Import ListNotation
  • Coq 中归纳集的归纳子集

    我有一个用三个构造函数构建的归纳集 Inductive MF Set D MF cn MF gt MF gt MF dn Z gt MF gt MF 我想以某种方式定义一个新的归纳集 B 使得 B 是 MF 的子集 仅包含从 D 和 dn
  • 如何指示两种 Coq 电感类型尺寸的减小

    我正在尝试定义game组合游戏的归纳型 我想要一个比较方法来判断两个游戏是否相同lessOrEq greatOrEq lessOrConf or greatOrConf 然后我可以检查两个游戏是否相等 如果它们都是 lessOrEq and
  • Coq Proof Assistant 中依赖类型的问题

    考虑以下简单的表达语言 Inductive Exp Set EConst nat gt Exp EVar nat gt Exp EFun nat gt list Exp gt Exp 及其格式良好的谓词 Definition Env lis
  • Ltac:通过回溯重复策略 n 次

    假设我有一个像这样的策略 取自 HaysTac 它搜索一个参数来专门化一个特定的假设 Ltac find specialize in H multimatch goal with v gt specialize H v end 然而 我想写
  • Coq:将信息保存在匹配语句中

    我正在构建一个递归函数match在清单上l 在里面cons分支我需要使用以下信息l cons a l 为了证明递归函数终止 但是 当我使用match l信息丢失 我该如何使用match保留信息 这是函数 drop and drop lemm
  • Coq - 在 if ... then ... else 中使用 Prop (True | False)

    我对 Coq 有点陌生 我正在尝试实现插入排序的通用版本 我正在实现一个以比较器作为参数的模块 该 Comparator 实现了比较运算符 如 is eq is le is neq 等 在插入排序中 为了插入 我必须比较输入列表中的两个元素
  • Coq 无法在 Z 上计算有根据的函数,但它可以在 nat 上运行

    我正在 为我自己 写一篇关于如何在 Coq 中进行有根据的递归的解释 参见 Coq Art 书 第 15 2 章 首先我做了一个基于的示例函数nat效果很好 但后来我又做了一次Z 当我使用Compute来评估它 它并没有一直降低到Z价值 为
  • 用 Coq 重写假设,保留蕴涵

    我正在做 Coq 证明 我有P gt Q作为假设 并且 P gt Q gt Q gt P 作为引理 如何将假设转化为 Q gt P 当我尝试apply它 我只是产生新的子目标 这没有帮助 换句话说 我想从以下开始 P Prop Q Prop
  • Coq 中的程序定点和函数有什么区别?

    它们似乎有相似的目的 到目前为止我注意到的一个区别是Program Fixpoint将接受复合措施 例如 measure length l1 length l2 Function似乎拒绝这一点并且只会允许 measure length l1
  • 如何查找 Coq 证明策略的定义或实现?

    我正在看this https github com coq coq blob cdfe69d6da6b32338ba74c9f599c74389089c9dd theories Numbers Natural Abstract NAdd v
  • 在 Coq 中使用依赖类型(安全第 n 个函数)

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

    OCaml 的 Hindley Milner 类型系统不允许命令式多态性 类似于 System F 除非通过最近对记录类型的扩展 这同样适用于 F 然而 有时需要将用命令式多态性 例如 Coq 编写的程序翻译成此类语言 Coq 的 OCam
  • 在 Coq 中证明可逆列表是回文

    这是我对回文的归纳定义 Inductive pal X Type list X gt Prop pal0 pal pal1 forall x X pal x pal2 forall x X l list X pal l gt pal x l
  • 依赖类型的 Church 编码:从 Coq 到 Haskell

    在 Coq 中 我可以为长度为 n 的列表定义 Church 编码 Definition listn A Type nat gt Type fun m gt forall X nat gt Type X 0 gt forall m A gt
  • Coq 中的 Modus Ponens 和 Modus Tollens

    我想要针对这些简单的推理规则使用 Ltac 策略 在 Modus Ponens 中 如果我有H P gt Qand H1 P Ltac mp H H1将添加Q到上下文为H2 Q 在 Modus Tollens 中 如果我有H P gt Qa
  • 我如何编写行为类似于“破坏...作为”的策略?

    在coq中 destruct https coq inria fr distrib current refman Reference Manual010 html hevea tactic65策略有一个接受 连接析取引入模式 的变体 该模式
  • Coq:多个构造函数的单一表示法

    是否可以在 Coq 中为多个构造函数定义单一符号 如果构造函数的参数类型不同 则可以从中推断出它们 一个最小的 非 工作示例 Inductive A Set a b c C gt A d D gt A with C Set c1 c2 wi

随机推荐

  • 从 React 组件创建纯 Web 组件

    我正在尝试从 React 组件构建 Web 组件 一切工作正常 但有两个问题我正在尝试解决 有没有办法将此类 Web 组件转换为纯 Web 组件 使用 webpack transpile 或其他方式 以便 React 和其他依赖项不被捆绑
  • Python 中的“私有”(实现)类

    我正在编写一个由两部分组成的小型 Python 模块 一些定义公共接口的函数 上述函数使用的实现类 但在模块外部没有意义 起初 我决定通过在使用它的函数内部定义它来 隐藏 这个实现类 但这会妨碍可读性 并且如果多个函数重用同一个类 则无法使
  • OkHttp 方法 .toString() 和 .string() 有什么区别?

    我有一段代码 override fun onResponse call Call
  • 在android上的activity之间保持socket连接

    我正在 android 3 1 上开发一个应用程序 我有一个 Activity A 它有一个从 aSyncTask 扩展的子类 该子类创建一个套接字并连接到服务器 我所有的沟通都很好 我收到消息并向服务器发送命令 但是当我收到特定命令时 我
  • Jquery,如何知道输入何时有:无效选择器?

    我有这个代码 HTML
  • 选择 CSS 中的每第 N 个元素

    是否可以选择一组元素中的每四个元素 例如 我有 16 个 div 元素 我可以写一些类似的东西 div nth child 4 div nth child 8 div nth child 12 div nth child 16 有一个更好的
  • 将控制台输出镜像到 C++ 中的文件

    在 C 中 是否有一种智能方法可以将 stdout 的输出镜像到控制台和文件 我希望有一种方法可以做到这一点这个问题 编辑 如果能够仅使用标准库来完成此操作 即 没有提升 那就太好了 或者 只需启动您的程序 以便将其通过管道传输到tee命令
  • Hibernate 5 忽略@Table schema 参数

    在我的应用程序中有一个实体 Entity Table schema hr name personal data public class PersonalData 和 Spring 的 application properties 中定义的
  • use-sdk:minSdkVersion 16 不能小于声明的版本 19 [Flutter v2.8.1]

    我正在尝试将 firebase 添加到我的 flutter 项目中 我收到此错误 uses sdk minSdkVersion 16 cannot be smaller than version 19 declared in library
  • 在 Android 2.x 中是否有记录的方法来检查多个 SD 卡的内容?

    某些 Android 2 x 平板电脑 例如 HTC Flyer 和 Samsung Galaxy Tab 支持平板电脑内部存储和外部 SD 卡 例如在我的传单上 sdcard and sdcard2是分开的 前者代表平板电脑的 内部存储
  • 通过WebClient上传JSON

    我有一个网络应用程序 它使用 JQuery 与我的后端交互 后端成功接受JSON数据 例如 我可以成功发送以下 JSON id 1 firstName John lastName Smith 我现在有一个必须访问此后端的 Windows P
  • 将 xml 转换为 java bean

    如何将 xml 文件转换为简单的 java bean 它是一个简单的 xml 文件 没有任何 xsd 它是从 java bean 生成的 我无权访问该文件 我尝试使用 xmlbeans 首先从 xml 生成 xmd 然后从 xsd 生成类
  • 模板不存在

    我是 Django 新手 我使用 pydev eclipse 作为 IDE 首先 我创建了一个项目 然后在该项目上创建了一个欢迎应用程序 我在项目中创建了一个名为 Templates 的文件夹 并创建了一个文件 home html home
  • 在 OS X 上安装 C++ 库

    我试图理解一些基本概念 但我似乎无法弄清楚它们 我真的很困惑为 C 安装 我认为它们被称为库 意味着什么 我正在尝试安装 OpenCV 但我不知道安装它需要做什么 如何检查 或者 OpenCV 到底是什么 它是一个库 框架还是其他东西 我的
  • 在 HTML 中嵌入 vlc 播放器

    我正在尝试在网页中嵌入 vlc 播放器 最好的方法是什么 实际上我必须使用 vlc 流式传输视频文件并将其显示在网页上 以便 登录我网站的其他用户可以看到该视频 我尝试过各种片段但无法嵌入它 任何帮助将不胜感激 谢谢 HTML 方式 确保在
  • 类方法的并行执行

    我需要并行执行同一类的许多实例的方法 为此 我尝试使用Process start 和Process join 命令来自multiprocessing module 例如对于一个类 class test def init self def m
  • 为什么给定的转换运算符不调用构造函数?

    struct A struct B B A pA B operator A pA return this template
  • 在 R 中绘制决策边界

    我有一系列来自的建模类标签knn功能 我有一个包含基本数字训练数据的数据框 以及另一个用于测试数据的数据框 我将如何为返回值绘制决策边界knn功能 我必须在锁定的计算机上复制我的发现 因此如果可能 请限制第三方库的使用 我只有两个类别标签
  • 当 setMaximumSize() 和 setPreferedSize() 不起作用时,如何对 JComponent 设置硬限制?

    我正在尝试制作一个类似于 Photoshop 或 Paint Shop Pro 中的图像处理框架 但我遇到了问题 现在我有一个带有 JDesktopPane 的 JFrame 窗口 当我单击按钮时 会生成一个 JInternalFrame
  • Coq 中是否有一套最小完整的策略?

    我见过很多 Coq 策略 它们在功能上是相互重叠的 例如 当你在假设中得到确切的结论时 你可以使用assumption apply exact trivial 也许还有其他人 其他例子包括destruct and induction对于无感