用约翰·梅杰的等式重写

2023-12-29

约翰·梅杰的等式带有以下重写引理:

Check JMeq_ind_r.
(*
JMeq_ind_r
     : forall (A : Type) (x : A) (P : A -> Prop),
       P x -> forall y : A, JMeq y x -> P y
*)

很容易将其概括为:

Lemma JMeq_ind2_r
     : forall (A:Type)(x:A)(P:forall C,C->Prop),
       P A x -> forall (B:Type)(y:B), @JMeq B y A x -> P B y.
Proof.
intros.
destruct H0.
assumption.
Qed.

不过我需要一些不同的东西:

Lemma JMeq_ind3_r
     : forall (A:Type)(x:A*A) (P:forall C,C*C->Prop),
       P A x -> forall (B:Type)(y:B*B), @JMeq (B*B) y (A*A) x -> P B y.
Proof.
intros.
Fail destruct H0.
Abort.

Is JMeq_ind3_r可证明吗?

If not:

  • 将其视为公理是否安全?
  • 它可以简化为更简单且安全的公理吗?

这无法证明。JMeq本质上是捆绑在一起的两个相等证明,一个用于类型,一个用于值。在这种情况下,我们从假设中得到A * A = B * B。由此看来,并不能证明A = B,所以我们不能转换P A x into P B y.

If A * A = B * B暗示A = B,这意味着pair类型构造函数是单射的。一般而言,类型构造函数单射性(即对于所有类型)与经典逻辑和单价性不一致。对于某些类型构造函数,单射性是可证明的,但对于对而言则不然。

将其视为公理是否安全?

如果您使用经典逻辑或单价性,那么事实并非如此。否则,可能是这样,但我会尝试重新表述问题,以便类型构造函数单射性不会出现。

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

用约翰·梅杰的等式重写 的相关文章

  • 依赖类型的 ghc-7.6 类实例

    异构列表是 ghc 7 6 的新依赖类型工具给出的示例之一 data HList gt where HNil HList HCons a gt HList t gt HList a t 示例列表 li 编译良好 li HCons Int H
  • Ltac:通过回溯重复策略 n 次

    假设我有一个像这样的策略 取自 HaysTac 它搜索一个参数来专门化一个特定的假设 Ltac find specialize in H multimatch goal with v gt specialize H v end 然而 我想写
  • F# 类型提供程序相关的嵌套类型

    我正在尝试构建一个嵌套的 TypeProviderProvidedProperty根据父级的类型值生成 我想要的结果如下 r bin Debug library dll open Library TypeProviders type sdm
  • 推断类型相等的 if 和 else 的约束

    我正在尝试填补以下代码片段中的漏洞 import Data Proxy import GHC TypeLits import Data Type Equality import Data Type Bool import Unsafe Co
  • 如何有效地查找 Coq 中定义标识符的位置?

    在大多数 IDE 或文本编辑器中 您可以右键单击某个术语 它会将您带到定义该术语的文件 CoqIDE好像没有这个 所以我一直在做coqdoc myfile v html 然后转到生成的 HTML 文档 但该文件中唯一可点击的术语是针对 Co
  • 如何阅读 Coq 对 proj1_sig 的定义?

    In Coq sig定义为 Inductive sig A Type P A gt Prop Type exist forall x A P x gt sig P 我读为 sig P 是一种类型 其中 P 是一个接受 A 并返回 Prop
  • 如何解释agda中的REL

    我试图理解 Agda 标准库的某些部分 但我似乎无法弄清楚REL FWIW 这是定义REL Binary relations Heterogeneous binary relations REL a b Set a Set b Level
  • F# 中的命令式多态性

    OCaml 的 Hindley Milner 类型系统不允许命令式多态性 类似于 System F 除非通过最近对记录类型的扩展 这同样适用于 F 然而 有时需要将用命令式多态性 例如 Coq 编写的程序翻译成此类语言 Coq 的 OCam
  • 嵌套两次的 sizeof 可以成为依赖表达式吗?

    我注意到 gcc 5 0 拒绝以下代码 而 clang 3 6 接受它 template
  • 由 Scala 宏生成时,依赖类型似乎“不起作用”

    为这个挥手的标题道歉 我不完全确定如何简洁地表达这个问题 因为我以前从未遇到过这样的事情 背景资料 我有以下特征 其中类型U是为了举行无形可扩展记录 https github com milessabin shapeless wiki Fe
  • `Set` 类型的具体示例是什么?`Set` 的含义是什么?

    我一直试图理解什么Set除了在 Adam Chlipala 的书中遇到它之后SO中的这个精彩讨论 https stackoverflow com questions 39601502 what exactly is a set in coq
  • 在 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
  • Prop 和 Type 的不同归纳原理

    我注意到 Coq 综合了关于 Prop 和 Type 等式的不同归纳原理 有人对此有解释吗 平等定义为 Inductive eq A Type x A A gt Prop eq refl x x 与之相关的归纳原理有以下类型 eq ind
  • 如何在构造微积分中提取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 中的特定值?

    我正在尝试实现一个函数 该函数可以简单地计算包中某些 nat 的出现次数 只是列表的同义词 这就是我想做的 但它不起作用 Require Import Coq Lists List Import ListNotations Definiti
  • 如何构建具有依赖类型长度的列表?

    将我的脚趾浸入依赖类型的水域中 我对规范的 具有静态类型长度的列表 示例进行了破解 LANGUAGE DataKinds GADTs KindSignatures a kind declaration data Nat Z S Nat da
  • 如何处理 Coq 中 Program Fixpoint 生成的非常大的项?

    我试图在 Coq 中定义并证明正确的函数 该函数可以有效地比较两个排序列表 由于它并不总是在结构较小的项上递归 第一个或第二个列表较小 Fixpoint不会接受它 所以我尝试使用Program Fixpoint反而 当尝试使用策略证明函数的
  • 在依赖类型的函数式编程语言中,扁平化列表是否更容易?

    在 haskell 中寻找一个可以展平任意深度嵌套列表的函数时 即应用的函数concat递归并在最后一次迭代时停止 使用非嵌套列表 我注意到这需要有一个更灵活的类型系统 因为随着列表深度的变化 输入类型也会变化 确实 有几个 stackov
  • 教 coq 检查终止

    Coq 与许多其他参数不同 它接受一个可选的显式参数 该参数可用于指示定点定义的递减结构 根据 Gallina 规范 1 3 4 Fixpoint ident params struct ident0 type0 term0 定义语法 但从
  • 在 coq 中证明定理时如何处理“false = true”命题

    我是 coq 的新手 试图证明这个定理 Inductive expression Type Var n nat Theorem variable equality forall x nat forall n nat equals x n t

随机推荐

  • iOS 应用程序启动时间测量

    如何计算从用户按下主屏幕上的启动按钮到应用程序处于活动状态 例如 直到第一个视图控制器的 viewDidAppear 方法 所需的时间 Id 不需要以编程方式实现 但必须可靠 类似地 在 Android 中 logcat 可以用于此效果 Y
  • 在 JSF 中分配“值表达式”代替“方法表达式”

    在我的复合组件中 我迭代了list
  • 在导航栏中按下后退按钮时会发生什么

    我想知道按下导航栏上的后退按钮时调用的函数是什么 我想在按下按钮时添加一些功能 谁知道呢 提前致谢 您想要的功能位于UINavigationBarDelegate协议 实施 navigationBar shouldPopItem 方法并将你
  • 为什么“htons”和“ntohs”同时存在?

    我不知道为什么htons and ntohs两者都存在于标准库中 他们做的事情完全相同 除非我不知何故感到困惑 同样适用于htonl and ntohl 它们制作自记录代码 告诉读者数据是按主机顺序还是网络顺序
  • 将 C# 中的结构序列化为 C++,反之亦然

    有没有一种简单的方法可以序列化 C 结构 然后从 C 反序列化它 我知道我们可以将 csharp 结构序列化为 xml 数据 但我必须在 c 中实现 xml 反序列化器 C 中哪种序列化器最容易从 C 反序列化 我希望两个应用程序 一个 C
  • 使用哪些 NuGet 源进行恢复?

    我正在做一个简单的dotnet restore在我的Mac上 我正在使用 目前 最新的dotnet CLI 版本 2 2 https dotnet microsoft com download 由于您的项目文件夹中可以同时拥有 NuGet
  • Caddy - 如何仅为一个域禁用 https

    我有一个 Caddy v2 的配置文件 如下所示 sentry mydomain ru reverse proxy sentry 9000 tasks mydomain ru reverse proxy taiga proxy 80 ain
  • 网格数据结构

    通常 可扩展 网格表示为列表列表 行列表 每行都有单元格列表 这些列表是某种链接列表 在此数据结构中操作 删除 插入 行既简单又便宜 只需重新链接以前的节点即可 但是当涉及到列时 例如删除列 它会变成一个非常长的操作 我需要 循环 要删除索
  • array+=value 在 ksh 中不起作用?

    我在某处读到 ksh 的数组支持 附加新元素 但我尝试了它 但它不起作用 ksh arr a b c d ksh arr e ksh echo arr ae b c d ksh 为什么arr 0 变成ae 要将一个元素添加到数组中 应该如下
  • 如何在不阻塞的情况下确定 goroutine 是否已完成?

    到目前为止我见过的所有例子都涉及阻塞以获得结果 通过 lt chan操作员 我当前的方法涉及传递指向结构的指针 type goresult struct result resultType finished bool goroutine 在
  • 在后台选项卡上运行画布

    我最近创建了一个 HTML5 画布动画 也使用Processing js 问题是 当我将浏览器切换到不同的选项卡时 动画停止播放 当用户位于与包含动画的选项卡不同的选项卡时 如何允许动画继续播放 例子 http jsfiddle net E
  • ConstraintLayout 隐藏 TextView 的最后一行 app:layout_constrainedHeight="true"

    我注意到奇怪的行为ConstraintLayout 版本 1 1 3 隐藏最后一行TextView每当我尝试使用高度时wrap content财产和layout constrainedHeight被设定为true With layout c
  • Panda时间序列重采样+线性调整值

    使用 python 和 pandas 如何将时间序列重新采样为 5 分钟间隔 偏移量 整个小时的零分钟 同时线性调整值 因此 我想改变这一点 value 00 01 2 00 05 10 00 11 22 00 14 28 进入这个 val
  • 使用 Java 8 日期时间 API 时如何将 AM/PM 符号更改为我自己的字母表

    我们有一个应用程序 我们接受客户的日期时间格式 我们最近开始迁移到 Java 8 新的日期时间 API 因为它们是线程安全的 看下面的代码 您可以看到在准备格式化程序之前 我们将 A 和 P 设置为 AM 和 PM 字符串 我们从客户那里获
  • 想要在嵌入标准 C# 应用程序的 WebBrowser 控件中启用 BHO

    我有一个标准的 winforms C 应用程序 其中拖有一个网页浏览器控件 我们还有一个 C BHO 当它在 IE7 或 IE8 中运行时 我们通常通过 COM 与之交互 我没有看到任何方法告诉 web 浏览器控件加载 BHO BHO 不显
  • 如何禁用解析作为 url 参数/从 url 传递的登录参数

    应用程序记录所有请求urls 这意味着 不要使用 url 参数进行身份验证 因为这会导致日志充满对的情况 login abc password 123 为此我配置了spring security从中读取参数request body 这是通过
  • Google Picker - 将文件 ID 返回到我的 Google 脚本

    我有一个相当基本的电子表格 它使用一些 Google 脚本来完成各种任务 我试图为最终用户清理界面 并决定实施 Google Picker 最初 用户必须手动将 CSV 导入到电子表格中 这里的新目标是通过 Google Picker 选择
  • TensorFlow:tf.summary.text 和换行符

    如何使用 tf summary text 发出包含换行符的文本 我尝试过更换 n with br 但我无法让输出显示正确的换行符 如果没有正确的换行符 则很难读取 yaml 输出 如下所示 张量板text使用 Markdown 格式 尽管它
  • 如何使用spring data jpa连接从多个实体返回对象?

    我有三个实体 EntityA EntityB 和 EntityC 我需要使用 spring data jpa 从这些实体中将连接查询的值获取到对象列表中 查询是 select x id x formNo x name z testScore
  • 用约翰·梅杰的等式重写

    约翰 梅杰的等式带有以下重写引理 Check JMeq ind r JMeq ind r forall A Type x A P A gt Prop P x gt forall y A JMeq y x gt P y 很容易将其概括为 Le