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

        《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:α ),

意思同上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值