异质平等的一致性

2024-01-03

我正在尝试使用异构相等来证明涉及此索引数据类型的语句:

data Counter : ℕ → Set where
  cut : (i j : ℕ) → Counter (suc i + j)

我能够使用以下方式编写我的证明Relation.Binary.HeterogenousEquality.≅-Reasoning,但仅通过假设以下同余性质:

Counter-cong : ∀ {n n′} {k : Counter n} {k′ : Counter n′} →
               {A : ℕ → Set} → (f : ∀{n} → Counter n → A n) →
               k ≅ k′ → f k ≅ f k′
Counter-cong f k≅k′ = {!!}

但是,我无法进行模式匹配k≅k′ being refl没有从类型检查器收到以下错误消息:

Refuse to solve heterogeneous constraint 
    k : Counter n =?= k′ : Counter n′

如果我尝试做一个案例分析k≅k′(即通过使用C-c C-c来自 Emacs 前端),以确保所有隐式参数都与其施加的约束正确匹配refl, I get

Cannot decide whether there should be a case for the constructor
refl, since the unification gets stuck on unifying the 
inferred indices 
    [{.Level.zero}, {Counter n}, k] 
with the expected indices 
    [{.Level.zero}, {Counter n′}, k′]

(如果您有兴趣,这里有一些不相关的背景:消除subst来证明平等 https://stackoverflow.com/questions/9246705)


您可以做的是额外证明两个索引相等:

Counter-cong : ∀ {n n′} {k : Counter n} {k′ : Counter n′} →
               {A : ℕ → Set} → (f : ∀{n} → Counter n → A n) →
               n ≅ n′ → k ≅ k′ → f k ≅ f k′
Counter-cong f refl refl = refl

原来的问题是知道Counter n ≅ Counter n′并不意味着n ≡ n′因为类型构造函数不被假定为单射的(有一个标志--injective-type-constructors为此,这实际上使匹配成功,但众所周知与排除的中间不一致),因此虽然它可以得出两种类型相等的结论,但它不会重写n to n′所以当它稍后检查是否时你会得到这个错误k and k′是可以统一的。

Since Counter n正好有n元素,实际上可以证明Counter是单射的,使用类似鸽巢原理的东西(也许自然数的可判定相等),所以你可以不用n ≅ n′争论,尽管那会很混乱。

编辑:AFAICT Het。平等行为仍然是一样的。

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

异质平等的一致性 的相关文章

随机推荐

  • 重新加载 JavaScript 文件而不刷新 HTML

    我有一个 HTML 它加载了几个 Javascript 文件 当我在浏览器控制台中调试 测试 Javascript 时 是否可以重新加载这些 Javascript 文件 而无需重新加载整个 HTML 页面 您可以删除然后重新添加它们 scr
  • 如何在 MS Access 的 SQL 中实现分页?

    我正在通过 ASP NET 访问 Microsoft Access 2002 数据库 MDB OdbcConnection类 尽管速度很慢 但效果很好 我的问题是关于如何在 SQL 中实现分页以查询该数据库 因为我知道我可以实现TOP子句为
  • 如何通过 Jenkins 脚本控制台设置“扫描组织触发器”?

    我需要一种通过 Jenkins 脚本控制台设置 扫描组织触发器 的方法 这很接近 但仅显示多分支或组织扫描触发器 如果它们已存在 https github com cloudbees jenkins scripts blob master
  • 在 Jetty 中从 http 重定向到 https

    我想从 http myurl 永久重定向到 https myurl 但在 Jetty 中我只找到 MovedContextHandler 用它我只能重定向上下文路径 例如从 myurl bla 到 myurl bla bla
  • 线程和执行器的正常关闭

    下面的代码试图实现这一点 该代码永远循环并检查是否有任何待处理的请求 如果有 它会创建一个新线程来处理请求并将其提交给执行器 所有线程完成后 它会休眠 60 秒 并再次检查待处理的请求 public static void main Str
  • 重写 Rust 中的总体特征实现

    对于我的游戏规则引擎 我有一个核心特征 称为Rule处理游戏回调 有两种类型Rules a BaseRule适用于游戏中的任何实体 并且CreatureRule仅适用于生物 我目前的代码结构如下 trait BaseRule
  • 具有多个倒计时器的 Recyclerview 导致闪烁

    我想显示我的每个细胞还剩下多少时间RecyclerView 为此 我为每个都使用了倒计时器 在每一行中我启动一个计数器并管理onTick 一切都按预期工作 我的每一行都有一个计时器滴答声 我的单元格也在更新 但我的单元格现在闪烁 当我滚动时
  • Python 动态装饰器 - 为什么有这么多换行?

    所以我对 Python 装饰器还是有点陌生 我以前用过它们 但我从未制作过自己的装饰器 我正在阅读本教程 http www siafoo net article 68 run time tranformations 那个特定的段落 我似乎不
  • 在 Swift 中使用块给出错误“变量在其自己的初始值内使用”

    这是我在 obj c 中的代码 block NSString requestReference self operation method url url parameters parameters headers headers succ
  • 为什么 SQLException 没有捕获 SQLiteExcpetion?

    我的一个 Android 应用程序中有一些代码可以捕获 SQLException 但我最近发现它没有捕获 SQLiteException 显然 SQLiteException 是 SQLException 的子级 那么为什么它没有被捕获呢
  • 为什么内联元素只有上边框溢出?为什么不离开边框?

    我有一个 div 容器 固定宽度和高度 其中包含一个边框为 10px 的内联元素 内联元素的上边框溢出 为什么不离开边框 下面是我的代码 container width 100px height 100px border 1px solid
  • Java 中 Math.max(a,b) 或 (a>b)?a:b 更快吗?

    Java 中哪一个更快 为什么 Math max a b a gt b a b 这是在采访中被问到的 Here http grepcode com file repository grepcode com java root jdk ope
  • RichTextBox 中的 HTML 格式

    我一直在使用从 XML 文件获取的 HTML 字符串 我正在尝试找出一种方法来在带有格式的富文本框中显示这些字符串 所以 例如 p This is a strong HTML strong string from the em XML em
  • 如何在C#中显示文件夹中所有文件的统计信息[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 输出必须是这样的 文件位于 C Windows 文件总数 49 所有文件的总大小 7121424 字节 最大文件 explorer exe
  • 未提供所需的模拟级别,或者提供的模拟级别无效

    我在 WCF 服务和模拟方面遇到了一些问题 我将其提炼为下面的一个简单方法 WCF 服务当前在 exe 中自行托管 异常消息是 未提供所需的模拟级别 或者提供的模拟级别无效 检查何时抛出错误 身份模拟级别设置为委派 如我的客户端上指定的那样
  • Python“sys.getsizeof”在从列表/字典中删除项目后报告相同的大小?

    我注意到 当使用 sys getsizeof 检查列表和字典的大小时 会发生一些有趣的事情 i have a 1 2 3 4 5 大小为 56 字节 空列表的大小为 36 所以这是有道理的 因为 20 5 4 但是 在我删除列表中的所有项目
  • 如何在NestedScrollView中实现ConstraintLayout

    ConstraintLayout is behaving inconsistently if a TextView has very fewer texts than other TextView wrapped in horizontal
  • 用于 Java 开发的最佳 Eclipse 版本 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 用于 Java 开发的 Eclipse 有许多版本 我正在尝试 MyEclipse 其开箱即用的体验给我留下了深刻的印象 在我适应它之前 我想知
  • 处理 ASP.NET Core 3.1 中未处理的异常

    在 ASP NET Core 3 1 中添加了一项功能 可以将未处理的异常传递到 ILogger 的实例 如下所示 登录 NET Core 和 ASP NET Core https learn microsoft com en us asp
  • 异质平等的一致性

    我正在尝试使用异构相等来证明涉及此索引数据类型的语句 data Counter Set where cut i j Counter suc i j 我能够使用以下方式编写我的证明Relation Binary HeterogenousEqu