首页 > 其他分享 >LEAN 类型系统属性 之 定义上相等的非确定性(Undecidability of Definitional Equality)注解

LEAN 类型系统属性 之 定义上相等的非确定性(Undecidability of Definitional Equality)注解

时间:2024-09-11 08:56:05浏览次数:3  
标签:Definitional acc Equality 函数 Acc inv 自然数 LEAN 类型

        由于定义上相等(Definitional Equality)作用在所有情况,由此,当遇到不一致(Inconsistent)的时候,会导致其结果是不确定的,即会无限展开(unfolding forever)下去。

        原文中,是通过一个定义在自然数(ℕ)的大于关系(>)上的可达类型(Accessibility Type)来论证,这个看原文很好理解,这里就不再赘述了。

        关键点:要证明 acc x,x ∈ℕ,那么所有,r y x 的 y 都是 acc y,r ≡ >,即 y > x。由此,在自然数中,有无数个比 x 大的自然数,这样导致不能证明 acc x。如果给定一个 a,其类型为 acc x,那么,在使用该 a: acc x 时,就会对 a 进行无限地展开(unfolding),导致无法停止(Non-terminated)。 

        下面列出其证明过程:

函数 f 的类型:f : (n: ℕ) → Acc n → 1, 且,1 ≡ Unit, ():Unit,即 ():1.

其中函数 g: ∀y.y>x → 1 ≡  (y: ℕ) → h: (y>x) →  1,意思是,给定一个自然数 y,以及,证明 y > x,那么,该函数就会返回 ()。也就是说,当无法给入 g 的输入参数时,是无法调用 g 的。

另外,函数 g,是在可达类型的使用规则里,给定的,表示使用规则中的前果。因此,根据 可达类型的使用规则(Elimination Rule),即使用函数 rec,函数 g 为 前果,有

g (n + 1) (p n) ≡ f (n + 1) a

≡ f (n+1) (intro (inv a)) 

          ≡ f (n+1) (inv a (n + 1) (p n) )

     ≡ f (n+1) (h (n + 1) (p n) )

其中,h 为 ∀y.y>x → acc y 的证明(proof)。

由此,其步进规则,有

当 n = 0,a : Acc n,即 a : Acc 0,有 a ≡ intro (inv a) ,那么

因此

标签:Definitional,acc,Equality,函数,Acc,inv,自然数,LEAN,类型
From: https://blog.csdn.net/sinat_36821938/article/details/141960107

相关文章

  • Leangoo领歌:一站式敏捷缺陷管理平台,助力产品迭代
    ​在开发过程中,缺陷(BUG)管理一直是项目管理中的一个关键环节。及时发现并修复BUG,不仅能够提高产品质量,还能有效提升团队的工作效率和用户满意度。在敏捷开发中,快速迭代和频繁交付的特点使得缺陷管理的重要性更加凸显。Leangoo领歌​​​​​​​作为一款敏捷研发全流程管理工具,提......
  • Panasonic Programming Contest 2020 C (Sqrt Inequality) 题解
    题目大意输入三个整数\(a\),\(b\),\(c\),如果\(\sqrta+\sqrtb<\sqrtc\)成立,输出Yes,否则输出No。样例输入#1239输出#1No\(\sqrt2+\sqrt3<\sqrt9\)不成立。输入#22310输出#2Yes\(\sqrt2+\sqrt3<\sqrt10\)成立。分析错误思路首先,由......
  • Clean Architecture
    《CleanArchitecture》是一本深入探讨软件架构的书籍,由RobertC.Martin(也被称为UncleBob)所著。本书旨在帮助软件开发者、团队领导、业务分析师和管理者提升他们的技能,达到大师级工匠的水平。书中不仅讨论了软件开发的各个方面,还强调了软件架构的重要性,并提供了实现良好架......
  • LEAN 类型理论之注解(Annotations of LEAN Type Theory)—— 归纳类型(Inductive Type)浅
        归纳类型(InductiveType)的核心是,该类型是基于归纳原则(Inductiveprinciple,basecase&inductivestep)来定义的。简单来说,在定义归纳类型时,会使用其归纳类型自身。如下图的类型等式(TypeEquation),K是其定义体(ThebodyofDefinition),调用其类型自身:        ......
  • LEAN 类型理论之注解(Annotations of LEAN Type Theory)—— 归纳类型(Inductive Type)的
            使用规则(EliminationRule),也叫解构规则(DestructionRule),与构建规则(IntroductionRule),也叫建构规则(ConstructionRule),相对应。        即,构建规则(IntroductionRule),定义了该类型的正规元素是如何构建出来的;而,使用规则(EliminationRule),定义了该类型的正......
  • Leangoo领歌Scrum工具:Sprint Backlog迭代管理的最佳实践
    ​在敏捷开发中,迭代管理是确保项目持续推进、不断优化的重要环节。有效的迭代管理能够帮助团队快速响应变化,持续交付高质量产品。Leangoo是一款免费的敏捷项目管理工具,为团队提供了直观、高效的看板管理方式来管理迭代过程。本文将探讨如何使用Leangoo进行迭代管理,帮助团队更好......
  • 从需求到交付:Leangoo领歌助力敏捷项目成功
    ​在敏捷项目管理中,需求管理是决定项目成功的关键环节。准确捕捉和高效管理需求,不仅能避免项目偏航,还能确保最终交付的产品与客户预期高度契合。Leangoo领歌敏捷工具,正是为此而生,助力团队轻松实现需求管理的每一步。全方位敏捷需求管理,从未如此轻松Leangoo领歌敏捷工具以看板中......
  • Leangoo领歌Scrum管理工具,轻松实现Scrum敏捷转型
    ​在当今快速变化的商业环境中,企业面临着前所未有的挑战。如何在激烈的竞争中保持领先?如何快速响应市场需求?答案就在于敏捷转型。而在这一过程中,有一个高效的敏捷工具至关重要——Leangoo领歌(Leangoo领歌-免费一站式敏捷研发协同平台,Scrum工具,SAFe敏捷工具,敏捷项目管理)就是......
  • 使用 nuxi clean 命令清理 Nuxt 项目
    title:使用nuxiclean命令清理Nuxt项目date:2024/9/1updated:2024/9/1author:cmdragonexcerpt:nuxiclean命令是管理和维护Nuxt项目的重要工具,它帮助你快速清理生成的文件和缓存,确保开发环境的干净。通过定期使用这个命令,你可以避免由于缓存或生成文件导致的构......
  • 题解:P7020 [NWRRC2017] Boolean Satisfiability
    题目传送门题目大意给定一个由大小写字母(变量),|和~组成的布尔代数式,变量可以任意赋值为True或False。求对于给定的变量,有多少种赋值方案使得给定的代数式值为True。思路一个一个看,首先考虑|,先假设只有|,则当代数式中有一个变量为True时,代数式的值变为True。因为每一......