显示 (head .unit ) = Agda 中的 head

2023-12-28

我试图证明 Agda 中的一个简单引理,我认为这是正确的。

如果向量有两个以上元素,则取其head继采取init与取其相同head立即地。

我将其表述如下:

lem-headInit : ∀{l} (xs : Vec ℕ (suc (suc l)))
                    -> head (init xs) ≡ head xs
lem-headInit (x ∷ xs) = ?

这给了我;

.l : ℕ
x  : ℕ
xs : Vec ℕ (suc .l)
------------------------------
Goal: head (init (x ∷ xs) | (initLast (x ∷ xs) | initLast xs)) ≡ x

作为回应。

我不完全明白如何阅读(init (x ∷ xs) | (initLast (x ∷ xs) | initLast xs))成分。我想我的问题是;是否可能,如何以及该术语的含义是什么。

非常感谢。


我不完全明白如何 阅读(init (x ∷ xs) | (initLast (x ∷ xs) | initLast xs))成分。我 假设我的问题是;是吗 可能,这个术语如何以及什么意思 意思是。

这告诉你这个值init (x ∷ xs)取决于右侧所有内容的价值|。当您在 Agda 中的函数中证明某些内容时,您的证明必须具有原始定义的结构。

在这种情况下,您必须对结果进行案例分析initLast因为定义initLast在产生任何结果之前执行此操作。

init : ∀ {a n} {A : Set a} → Vec A (1 + n) → Vec A n
init xs         with initLast xs
                --  ⇧  The first thing this definition does is case on this value
init .(ys ∷ʳ y) | (ys , y , refl) = ys

这就是我们如何编写引理。

module inithead where

open import Data.Nat
open import Data.Product
open import Data.Vec
open import Relation.Binary.PropositionalEquality

lem-headInit : {A : Set} {n : ℕ} (xs : Vec A (2 + n))
             → head (init xs) ≡ head xs

lem-headInit (x ∷ xs) with initLast xs
lem-headInit (x ∷ .(ys ∷ʳ y)) | ys , y , refl = refl

我冒昧地将你的引理概括为Vec A因为引理不依赖于向量的内容。

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

显示 (head .unit ) = Agda 中的 head 的相关文章

  • Agda:用数字解析字符串

    我正在尝试用 Agda 中的自然数解析字符串 例如 结果stringListTo 1 2 3 应该Just 1 2 3 我当前的代码不太正确 或者无论如何都不太好 但它可以工作 但是它返回类型 Maybe List Maybe 问题是 功能
  • 有限的数字如何运作? (依赖类型)

    我对依赖类型语言感兴趣 有限数对我来说似乎非常有用 例如 安全地索引固定大小的数组 但这个定义对我来说并不清楚 Idris 中有限数的数据类型可以如下 Agda 中可能类似 data FiniteNum Natural gt Type wh
  • 当证明已经完成但给出“无法完善任何待定目标”错误时,为什么我不能在 Isabelle 中明确说明我的情况?

    我正在阅读具体语义的第五章 我在处理这个玩具示例证明时遇到了一些错误 lemma shows ev Suc 0 我知道这超出了需要 因为by cases 神奇地解 决了所有问题并给出了完整的证明 但我想明确说明这些情况 我试过这个 lemm
  • 是否可以使用 Agda 作为库?

    是否可以直接从 Haskell 将其用作库 而不是在文件系统 使用 EMACS 终端等 上使用 Agda 例如 UsingAgda hs import Agda Prints the type of a term on some Agda
  • 代表自由团体的好方法是什么?

    很容易表示自由岩浆 二叉叶树 自由半群 非空列表 和自由幺半群 列表 并且不难证明它们实际上就是它们所声称的那样 但自由团体似乎要棘手得多 似乎至少有两种方法可以使用通常的方法List Either a 表示 将要求编码为类型 如果您有Le
  • 在 Z3-Python 中,执行模型搜索时出现“builtin_function_or_method' object is not iterable”

    我正在探索在 Z3 Python 中执行 SAT 求解的快速方法 为此 我尝试模仿第 5 1 章的结果https theory stanford edu nikolaj programmingz3 html sec blocking eva
  • 类型参数和索引之间的区别?

    我是依赖类型的新手 对两者之间的区别感到困惑 似乎人们通常说类型是由另一种类型参数化 and 按某个值索引 但是 在依赖类型语言中 类型和术语之间不是没有区别吗 参数和指数之间的区别是根本性的吗 您能否举例说明它们在编程和定理证明中的含义差
  • 如何使用 Agda 的分隔延续实现?

    我们可以很容易地在 Agda 中实现定界延续 monad 然而 没有必要 因为 Agda 标准库 已经定界延续单子的实现 http www cse chalmers se nad listings lib 0 7 Category Mona
  • Agda 函数、类型匹配函数

    我想创建一个辅助函数 它将从索引或参数化类型中获取术语并返回该类型参数 showLen len A Set gt Vec A len gt showLen len showType len A Set gt Vec A len gt Set
  • Idris 可以推断顶级常量类型中的索引吗?

    例如 Agda 允许我这样写 open import Data Vec open import Data Nat myVec Vec myVec 0 1 2 3 and myVec将有类型Vec 4正如预期的那样 但如果我在伊德里斯尝试同样
  • 显示 (head .unit ) = Agda 中的 head

    我试图证明 Agda 中的一个简单引理 我认为这是正确的 如果向量有两个以上元素 则取其head继采取init与取其相同head立即地 我将其表述如下 lem headInit l xs Vec suc suc l gt head init
  • 异质平等的一致性

    我正在尝试使用异构相等来证明涉及此索引数据类型的语句 data Counter Set where cut i j Counter suc i j 我能够使用以下方式编写我的证明Relation Binary HeterogenousEqu
  • 如何阅读 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
  • 依赖类型:依赖对类型与不相交联合有何相似之处?

    我一直在研究依赖类型 我了解以下内容 Why 通用量化 https en wikipedia org wiki Universal quantification被表示为依赖函数类型 x A B x means 对全部x类型的A有一个类型的值
  • 在 Agda 中对 ST monad 进行建模

    最近这个所以问题 https stackoverflow com questions 33975270 can a st like monad be executed purely without the st library促使我在 Ha
  • 将排序列表与大小类型合并

    假设我们有一个排序列表的数据类型 具有与证明无关的排序见证 我们将使用 Agda 的实验性大小类型功能 这样我们就有希望在数据类型上获得一些递归函数来通过 Agda 的终止检查器 OPTIONS sized types open impor
  • 专门构造函数上的模式匹配

    这几天我一直在为一个问题绞尽脑汁 但我的 Agda 技能不是很强 我正在尝试在仅在特定索引处定义的索引数据类型上编写一个函数 这仅适用于数据构造函数的某些专门化 我不知道如何定义这样的函数 我试图将我的问题简化为一个更小的例子 该设置涉及自
  • 使用标准库对 Agda 中的对/列表进行字典顺序排序

    Agda标准库包含一些模块Relation Binary Non StrictLex 目前仅适用于Product and List 我们可以使用这些模块轻松构建一个实例 例如IsStrictTotalOrder对于自然数对 即 open i
  • AGDA 中极浅嵌入 VHDL 的指南

    对于我的编程语言项目 我正在 agda 中做一个非常浅且简单的 VHDL 数字电路嵌入 目的是写出语法 静态语义 动态语义 然后写一些证明来展示我们对材料的理解 到目前为止我已经编写了以下代码 data Ckt Set where var
  • 使用 SML 和 HOL 推理规则从第一原理证明定理

    我正在尝试证明这个定理 p q lt gt q p thm将 SML 与 HOL 推理规则结合使用 这是 SML 代码 val thm1 ASSUME p bool q bool val thm2 ASSUME p bool val thm

随机推荐

  • Android:旋转并显示文件中的图像

    我有一个非常简单的 ImageView 布局 我的应用程序打开相机 保存图像 然后在 ImageView 中显示图像BitmapFactory decodeFile 唯一的问题是它是旋转的 据我了解 a 这是由于手机的摄像头默认为横向 因此
  • wpf 中的 ItemsPanelTemplate 选择器?

    我需要根据控件上的依赖属性设置列表框的 ItemsPanelTemplate 属性 如何使用 DataTemplateSelector 来做到这一点 我有类似的东西
  • 如何将 XML Word 文档转换为 DOCX?

    我收到了一系列文件夹 其中包含大量 xml 格式的 Word 文档 它们每个都包含一些 VBA 代码 但所有代码都已经运行过 所以我不需要保留它 我需要打印每个文件夹中的所有文件 但由于网络上 XML 文件的限制 我无法简单地从 Windo
  • FIELDDATA 数据太大

    我打开 kibana 并进行搜索 然后收到分片失败的错误 我查看了 elasticsearch log 文件 看到了这个错误 org elasticsearch common breaker CircuitBreakingException
  • 使用 gnuplot 的向量场

    如何绘制矢量场 其中每个点 x y 的方向由下式给出tangent alpha f x y 据我所知 gnuplot 只能在从文件读取数据时绘制向量场 您的文件必须有 4 列 x y deltax 和 delta y 然后 gnuplot
  • Unity aab 不符合 Google Play 64 位要求

    我有一个 Unity 项目 正在从 APK 切换到 AAB 应用程序包 以前 当我将其构建为 APK 时 Google Play 控制台告诉我该 APK 兼容 64 位 现在我正在构建 aab 我收到警告 此版本不符合 Google Pla
  • 有趣的 SQL 连接日期之间的日期

    首先 感谢任何帮助我解决这个问题的人 我使用的是 SQL 2005 但如果 05 中没有可用的解决方案 可以使用 2008 我有一行数据 如下所示 select from mySPtable myPK Area RequestType St
  • 可靠地显示 matplotlib(0.99 到 1.3.1)数字而不会阻塞

    有没有办法在 Python 2 65 Matplotlib 0 99 中显示 pyplot 图 而不锁定其他所有内容 我有一个带有 Pmw GUI 的程序 在 Python 2 75 和 Matplotlib 1 3 1 上运行 在 Win
  • AppCertDlls:病毒导致 Win32 上的进程创建速度减慢

    大约两个月来 我在 Windows XP Home SP3 上遭受了严重的进程创建惩罚 这个问题在创建大量进程的任务中最为明显且烦人 例如 shell 脚本 顺便说一句 Cygwin 上的 bash 脚本 Makefile 或解压 IzPa
  • 增强导入的打字稿界面

    我正在使用一个包 ko 组件路由器 https github com Profiscience ko component router 具有以下 简明 类型定义 索引 d ts export IContext Context from co
  • Angular 2 中 JavaScript 堆内存不足

    我正在使用 Angular CLI 请检查我的 CLI 信息 angular cli 1 2 1 node 6 10 0 os win32 x64 angular animations 4 1 1 angular common 4 0 0
  • EF 7:如何加载一对多关系中的相关实体

    我有以下代码 为什么我的导航属性 课程中的要求和要求中的课程 为空 public class Course AbsEntity Key public string Title get set public string Term get s
  • 问:R 中的 KNN——奇怪的行为

    有谁知道为什么下面的 KNN R 代码对不同的种子给出不同的预测 这很奇怪 因为 Kpost library class set seed 642002713 m 20 n 1000 from 2 30 to from train matr
  • 如何使用Python在Telegram机器人中发送表情符号?

    我正在处理一个小项目 我决定添加表情符号以使视觉效果更好一点 但我无法发送它 我尝试过像 U000203C 这样的 Unicode 甚至尝试复制表情符号并粘贴它 但仍然无法做到 有什么办法可以发送表情符号吗 Unicode exchange
  • 如何打开 VS Code 并通过 CLI 将命令传递到集成终端

    我想知道如何使用code命令打开VS Code与综合终端 https code visualstudio com docs editor integrated terminal启动时运行一些我直接传递到集成终端的命令 现在我需要采取一些行动
  • boost::ref 没有发生匹配的调用错误,但 std::ref 则没有发生匹配的调用错误

    我编写了一些代码 它使用函子和ref and bind模板来自boost or std 对于 C 11 命名空间 我正在使用一个 define之间切换boost and std 命名空间 我使用的是 boost 版本 1 53 我的编译命令
  • Pyinstaller 可执行文件导入 torchvision 失败

    这是我的main py import torchvision input Press key 它在命令行中正确运行 python main py 我需要一个适用于 Windows 的可执行文件 所以我做了 pyinstaller main
  • 更改asp图表图例标签宽度

    Aspx
  • Fancybox2:修改对多个画廊的呼吁

    我正在生成一个 HTML 页面 其中包含来自 MySQL 数据库中保存的信息的多个画廊 我需要修改 Fancybox2 调用 如下所示 document ready function a rel gall24 a rel gall30 et
  • 显示 (head .unit ) = Agda 中的 head

    我试图证明 Agda 中的一个简单引理 我认为这是正确的 如果向量有两个以上元素 则取其head继采取init与取其相同head立即地 我将其表述如下 lem headInit l xs Vec suc suc l gt head init