LEAN 赋型唯一性(Unique Typing)之 n-provability 注解

news2024/9/29 3:35:48

        《LEAN 赋型唯一性(Unique Typing)之 证明过程简介》 中,梳理了赋型唯一性(Unique Typing)牵涉的概念及相关推论与证明,此篇文章就先介绍 n-provability 的概念,记 ⊢ₙ 。其围绕的是赋型规则(Typing Rules)而衍生的。 

        即,表达式 e 在进行计算的过程中,赋型规则随着表达式 e 的形变,给每一步计算后的形变表达式 e‘ 进行赋型。此时,赋型规则的前提(Premises),利用归纳假设(Inductive Hypothese)提供的定义上相等关系,即 Γ ⊢ₙ α ≡ β,为其结果的赋型,即 Γ ⊢ₙ e:α,提供证明。那么就有, Γ ⊢ₙ α ≡ β   => Γ ⊢ₙ e:α => Γ ⊢ₙ₊₁ α ≡ β => ... ,归纳推演的过程(Induction Proof)。

注:形变,指的是,表达式 e 经过应用一次计算规则(reductions and conversions)后,其形态发生的变换,即计算的一步(one step of computation / normalization)。

注:该类型变换规则的唯一性,使得后面定义上反向(Defintional Inversion)的概念得以引入。

        记,

1 赋型规则 为  Γ ⊢ₙ e:α 。

2 定义上相等 为  Γ ⊢ₙ₊₁ α ≡ β  。

即 n-provability 转换规则(conversion rules)如下:

1. Γ ⊢₀ α ≡ β ↔ α = β

析:Γ ⊢₀ α ≡ β ,意味着,当 表达式 α 与 表达式 β 相同(α = β)。即,表达式 β 无须经过转化,就与 表达式 α 定义上相等(Reflexive)。

2. Γ ⊢ₙ₊₁ α ≡ β ↔ ( Γ ⊢ₙ e:α → Γ ⊢ α ≡ β )

析:Γ ⊢ₙ₊₁ α ≡ β,意味着,只使用 Γ ⊢ₙ e:α ,可以推导出 Γ ⊢ α ≡ β。即,基于定义上相等规则(Definitional Equality Rules),经过 n 次,定义上相等类型可替的转化,得到了 Γ ⊢ α ≡ β。 

3. Γ ⊢ₙ e:α  ↔ ( Γ ⊢ₘ α ≡ β, m ≤ n → Γ ⊢ e:α )

析:Γ ⊢ₙ e:α,意味着,只使用 Γ ⊢ₘ α ≡ β, m ≤ n

(包含了所有 m ≤ n 的情况,如 Γ ⊢₀ α ≡ β, Γ ⊢₁ α ≡ β,等),

可以推导出 Γ ⊢ α ≡ β。

        由此,n-provability (n ∈ ℕ),表示了,使用n-provability 转换规则(上述定义的规则)的步数。有基本步,记为 ⊢₀  ,下一步,记为 ⊢ₙ₊₁ ,对应的前一步,记为  ⊢ₙ  。

然后,分别应用于两种规则,即赋型规则(Typing Rules),记为 Γ ⊢ₙ e:α,及定义上相等规则(Definitional Equality),记为 Γ ⊢ₙ α ≡ β。

同时,上述 n-provability 转换规则 表达了 Γ ⊢ₙ e:α 与 Γ ⊢ₙ α ≡ β 的交互递归定义的关系(mutually recursive)

        注意:要注意的是,其中的 e, α, β 都可以是表达式的形态出现,即未经过规范化的(Normalization)。而规范化(normalization)的过程,就是使用对应的转化规则(conversion and reduction rules),使其行为最终的正规元素(Canonical Element )的形态。

        一般来说,e 等小写字母用于表示变量及其表达式,而α, β等小写希腊字母用于表示类型变量及其表达式。变量有,自由变量(Free Variable)和绑定了的变量(Bound Variable)。自由变量(Free Variable)指的是,在一个表达式中,出现的变量名,没有对应的相关信息,即不知其指向的实体(Entity),包括其定义信息(Definition),类型信息(Type),等,也就是,在一个表达式中只知道该变量的名字,其它一无所知。反之是绑定了的变量(Bound Variable),由其绑定者(binder)提供,如函数里的参数信息,全局上下文(Global Context)中的全局变量及其定义(即此处的 Γ )等。

即:

那么:

推论(Lemma):

即 给定 (h: m ≤ n) 和 (Γ ⊢ₘ e:α ),求 (Γ ⊢ₙ e:α)  。

亦  proof: (h: m ≤ n) → (Γ ⊢ₘ e:α ) → (Γ ⊢ₙ e:α)
       ↔ (h: m ≤ n) → (Γ ⊢ₘ e:α ) → (Γ ⊢ₘ α ≡ β, m ≤ n → Γ ⊢ e:α )
       ↔ (h: m ≤ n) → ( Γ ⊢ₘ α ≡ β, m ≤ n → Γ ⊢ e:α ) → (Γ ⊢ₘ α ≡ β, m ≤ n → Γ ⊢ e:α )

通过将 n-provability 转换规则带入对应的表达式,可以求得,即最后的表达式,A → A。

实则上的意思是,如果通过 少步骤 可以证明 e:α,即 (Γ ⊢ₘ e:α ),那么,通过 更多的步骤 (m ≤ n) 同样也可以证明 e:α,即 (Γ ⊢ₙ e:α)

证明同上。

意思是,如果 能够证明 (Γ ⊢ e:α ),那么,肯定存在一定的步骤数 n,从第0个基础事实开始,到第 n 步的时候,证明  (Γ ⊢ e:α )。

这里,Γ ⊢ₙ e:α  ↔ ( Γ ⊢ₘ α ≡ β, m ≤ n → Γ ⊢ e:α ),

意思同上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2137136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PHP创意无限一键生成小程序名片生成系统源码

创意无限,一键生成 —— 小程序名片生成系统,开启你的个性化商务新时代! 一、告别千篇一律,拥抱个性化名片 你还在使用那些千篇一律的传统纸质名片吗?是时候做出改变了!现在有了“创意无限一键生成小程序名…

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED 思科 Catalyst 9000 交换产品系列 IOS XE 系统软件 请访问原文链接:https://sysin.org/blog/cisco-catalyst-9000/,查看最新版。原创作品,转载请保留出处。 作者主页&…

如何计算光伏在安装过程中的损耗程度?

光伏系统在实际安装和运营过程中,会受到多种因素的影响,导致电能损耗。这些损耗包括线缆损耗、逆变器效率、组件品质、灰尘积累、入射角损失等。 一、光伏系统损耗的分类 光伏系统的损耗大致可以分为以下几类: 1、线缆损耗:光伏…

响应式网站和自适应网站有什么区别?

响应式网站和自适应网站在技术基础、用户体验以及开发成本等方面存在显著差异。具体分析如下: 响应式网站和自适应网站有什么区别? 技术基础 响应式网站:通过CSS3的媒体查询(Media Query)来检测设备屏幕尺寸,并加载…

全网最适合入门的面向对象编程教程:49 Python函数方法与接口-函数与方法的区别和lamda匿名函数

合集 - Python面向对象编程(51) 1.可能是全网最适合入门的面向对象编程教程:Python实现-嵌入式爱好者必看!06-232.全网最适合入门的面向对象编程教程:00 面向对象设计方法导论06-243.全网最适合入门的面向对象编程教程:01 面向对…

make 程序规定的 makefile 文件的书写语法(5)

(40)接着学习自动变量,就是 make 程序执行时,自动定义和产生的变量,来描述 makefile 文件,可以直接拿来用: 补充 D 与 F 的使用,前者只获得目录,后者只获得文件名&#x…

【C++算法】滑动窗口

长度最小的子数组 题目链接: 209. 长度最小的子数组 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 算法原理 代码步骤: 设置left0,right0设置sum0,len0遍历l…

深度学习-13-小语言模型之SmolLM的使用

文章附录 1 SmolLM概述1.1 SmolLM简介1.2 下载模型2 运行2.1 在CPU/GPU/多 GPU上运行模型2.2 使用torch.bfloat162.3 通过位和字节的量化版本3 应用示例4 问题及解决4.1 attention_mask和pad_token_id报错4.2 max_new_tokens=205 参考附录1 SmolLM概述 1.1 SmolLM简介 SmolLM…

六西格玛咨询:石油机械制造企业的成本控制与优化专家

一、石油机械制造行业现状及主要困扰 随着全球能源需求的日益增长,石油开采和生产设备需求不断增加,石油机械制造行业在过去数十年里得到了迅猛发展。然而,石油机械制造作为一个高度复杂且技术密集的行业,也面临着多重挑战。首先…

路由策略原理与配置

🐣个人主页 可惜已不在 🐤这篇在这个专栏 华为_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 一. 原理概述 二. 实验目的 实验内容 实验拓扑 实验配置 三. 实验结果 一. 原理概述 路由策略Route-P…

STM32中的计时与延时

前言 在裸机开发中,延时作为一种规定循环周期的方式经常被使用,其中尤以HAL库官方提供的HAL_Delay为甚。刚入门的小白可能会觉得既然有官方提供的延时函数,而且精度也还挺好,为什么不用呢?实际上HAL_Delay中有不少坑,而这些也只是HAL库中无数坑的其中一些。想从坑里跳出来…

刻意练习:舒尔特方格提升专注力

1.功能描述 刻意练习:舒尔特方格提升专注力 如果发现自己存在不够专注的问题,可以通过一个小游戏来提升自己专注力--舒尔特方格。 舒尔特方格的实施步骤如下: 一张纸上画出5X5的空方格。在方格中,没有任何规律的随机填写数字1…

[数据集][目标检测]葡萄成熟度检测数据集VOC+YOLO格式1123张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1123 标注数量(xml文件个数):1123 标注数量(txt文件个数):1123 标注…

C++——多态的原理

多态的原理 多态的原理引入虚函数表 多态的原理 引入 如下代码的输出结果为() A.编译报错 B.运行报错 C.8 D.12 上⾯题⽬运⾏结果12bytes,除了_b和_ch成员,还多⼀个__vfptr放对象的前⾯(注意有些平台可能会放到对象的最后⾯&am…

【目标检测数据集】车辆分类数据集1880张7类VOC+YOLO(含摩托车、救护车、消防车、警车、警用摩托车、轿车、大车)

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1883 标注数量(xml文件个数):1883 标注数量(txt文件个数):1883 标注…

【C++知识扫盲】-----初识迭代器

1. 迭代器的基本概念 迭代器是一种抽象的指针类型,它使得你可以遍历容器中的元素而不需要知道容器的具体实现细节。迭代器可以用来访问容器中的元素、移动位置、比较位置等。 2. 迭代器的类型 输入迭代器(Input Iterator):只能…

大数据Flink(一百一十八):SQL水印操作(Watermark)

文章目录 ​​​​​​SQL水印操作(Watermark) 一、为什么要有WaterMark 二、​​​​​​​Watermark解决的问题 三、​​​​​​​​​​​​​​代码演示 ​​​​​​SQL水印操作(Watermark) 一、​​​​​​​为什么要…

出处不详 阻拦投篮

目录 阻拦投篮题目描述背景输入输出数据范围 题解解法 打赏 阻拦投篮 题目描述 背景 现在你得到了一个可以阻拦投篮的宝物,它会在投球后把篮球传送回运动员手上,但是宝物的成功率和篮球在空中运动的时间有关,并且在特定的时间点成功的几率…

152-钓鱼篇邮件钓鱼Ewomail系统网页克隆劫持用户后门上线

承接上节课没讲完的邮件钓鱼和全部的网页钓鱼 #知识点: 1、红队技能-网络钓鱼-邮件系统 2、邮件钓鱼-平台-Gophish&Swaks 3、邮件钓鱼-系统-smtp2go&SendCloud 4、邮件钓鱼-自定义-Ewomail&Postfix 5、网页钓鱼-克隆修改-劫持口令&下载后门 这…

测试工具笔记

性能测试是软件测试中非常重要的一部分,它可以帮助识别软件在高负载条件下的性能瓶颈。市面上有许多性能测试工具,它们各有特点和优势。以下是一些流行的性能测试工具: 1. LoadRunner: 由Micro Focus提供,是一个业界广…