如何在 Coq 中禁用我的自定义符号?

2024-01-08

我定义了一个符号来模拟命令式编程

Notation "a >> b" := (b a) (at level 50).

然而之后,所有函数应用表达式都表示为“>>”样式。例如,在 Coq Toplevel 的证明模式下,我可以看到

bs' : nat >> list

而实际上应该是

bs' : list nat

为什么 Coq 积极地将所有函数应用程序风格的表达式重写为我定制的“>>”表示形式?我怎样才能将一切恢复正常,我的意思是我希望看到 'a >> b' 被解释为 'b a' 并且 'list nat' 不会被表示为 'nat >> list'?

谢谢你!


默认情况下,Coq 假设如果您定义了一个表示法,您希望它能够进行漂亮的打印。如果您希望符号永远不会出现在漂亮打印中,请将其声明为“仅解析”。

Notation "a >> b" := (b a) (at level 50, only parsing).

如果你想a >> b有时要显示,您可以将其限制在一个范围内,并将一个类型与该范围关联起来;那么只有当结果类型是该类型时才会应用符号。

没有办法告诉 Coq“仅在我在源代码中使用该符号的地方使用该符号”,因为用符号编写的术语与以任何其他方式编写的术语完全相同:最初使用的符号不是该符号的一部分。学期。

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

如何在 Coq 中禁用我的自定义符号? 的相关文章

随机推荐

  • 在 HTML 中选择输入和文本输入 - 使宽度相等的最佳方法?

    我有一个像这样的简单表格 仅用于说明目的
  • 如何重构抛出异常的函数?

    假设我正在重构这样的函数 def check ox Option Int Unit ox match case None gt throw new Exception X is missing case Some x if x lt 0 g
  • 在多对多关系中使用 Doctrine QueryBuilder 进行 NOT IN 查询

    在我的 Symfony2 项目中 我有两个实体 联系人 和 设置 具有多对多关系 ORM ManyToMany targetEntity AppBundle Entity Settings cascade persist ORM JoinC
  • 使用流来解密和解压缩以限制内存使用?

    我有一个非常大的 zip 文件 2 5gb 它是加密的 我无法将整个文件解密到内存中并解压缩以进行生产 所以我尝试使用流来限制使用的内存量 我已经连接了以下内容来执行此操作 为了清楚起见 省略了错误处理和流关闭 SecretKeySpec
  • Win 2008 r2 x64 服务器是否已安装 .net 3 sp1 软件包?

    和标题一样吗 我有一个带有上述操作系统的测试服务器 我的应用程序基于 net 3 5 我确实想知道 win 2008 r2 是否附带 net 3 5 的 Service Pack 1 它是否附带 net 3 5 sp1 系列更新 因为我下载
  • 我无法在操作创建者文件中使用 useHistory 函数

    我正在使用react router dom和redux 我在调度后使用history push 但它显 示错误 我希望用户在成功身份验证后导航到 使用谷歌 export const googleLogin gt async dispatch
  • 地址上方首次使用的单元格

    我正在 Excel 中创建预算 因此我有一些类别和子类别 子类别与其各自的父类别相比有 1 个单元格 子类别当然可以有自己的子类别 在 类别树 旁边的列中 我想打印 类别路径 Let s say I have the following t
  • 如何使用node.js生成excel文件?

    您好 我正在从数组中生成 excel 文件 但我没有成功 我正在使用 node js 工作 并且使用 npm 包生成 excel 文件 但我没有在 excel 文件中获取任何数据 excel 已生成 但未在我的文件中获取任何类型的数据 所以
  • 当 RStudio 中的 ioslides 的 type=HTML 时,调整 stargarzer 表的大小

    我刚开始使用 R Markdown 在 RStudio 中创建幻灯片演示文稿 我无法在网上找到任何可以解决我的具体问题的内容 这是close https stackoverflow com questions 15385696 how to
  • v8 中 Node.js 和 chrome 之间的区别

    镀铬版本 49 0 2623 110 m 节点 v5 10 0 这是我的代码 var a 0 function this a 1 this b 2 console log a console log a console log b 铬给出
  • dplyr 和 tidyr:将长格式转换为宽格式并排列列

    我正在创建一个shiny app用户将在其中上传包含多个变量的 csv 文件 使用dplyr 我会select前四个变量 如下所示 并将它们从长格式转换 DATA df lt read table text c Customer Rate
  • 更改绘图悬停框 R 的位置

    我想更改悬停框的位置plotly条形图 我希望它在栏上方弹出 而不是在左侧或右侧弹出 这可能吗 我一直在谷歌上搜索这个并盯着 Plotly R 参考页面几个小时 但没有运气 这是一个示例 library dplyr library plot
  • 在Oracle中使用SQL从3个表中选择数据

    我希望有人可以提供帮助 我是very这一切都是新的 我被困住了 我有 3 个表 我试图从中提取数据 顾客 custid 第一个 最后一个 积分俱乐部编号 调查编号 订单日期 订单总数 员工 empid 名字 姓氏 工资 销售额 销售日期 c
  • 简单的 REST URL 方案

    在我的网络应用程序中 我有一个user模型和一个journal and post模型 每个用户可以有多个日记 每个日记可以有多个帖子 下面是以 RESTful 方式表示这一点的最佳方式吗 profiles
  • EntityFramework Core 1.1.0 缺少 Include()? [复制]

    这个问题在这里已经有答案了 我正在使用 EntityFramework Core 1 1 0 我可以查询表并加载实体 但 Microsoft 的说明表明如果我想加载关系数据 我应该使用 Include 功能 https learn micr
  • php cURL 问题

  • 避免使用“抛出”构造函数进行堆分配

    说我有课Foo它没有定义默认构造函数并且throws在非默认构造函数中 初始化该类型的新对象时 我想捕获任何异常并返回 否则继续使用该对象 我注意到初始化这个对象 如果可能的话 很困难在堆栈上或通过使用共享指针 因为我试图避免管理内存 Fa
  • NuGet如何决定是否使用本地包缓存?

    今天 我在安装软件包时遇到了 NuGet 的奇怪行为 简要描述 作为我的构建脚本的结果 有一个 NuGet 包 我不会每次都更改版本 因此每个构建都会产生MyPackage 1 0 0 nupkg 作为构建的最后一步 我将包推送到部署在本地
  • mongodb按子字段查询

    如何查询全部 module B 以下查询不起作用 db XXX find id module B 万分感谢 数据如下 id module A date ISODate 2013 03 18T07 00 00Z value count 1 0
  • 如何在 Coq 中禁用我的自定义符号?

    我定义了一个符号来模拟命令式编程 Notation a gt gt b b a at level 50 然而之后 所有函数应用表达式都表示为 gt gt 样式 例如 在 Coq Toplevel 的证明模式下 我可以看到 bs nat gt