扩展纯类型系统:参数化常量与定义的探索
1. 引言
在类型系统的研究中,纯类型系统(PTSs)是一个重要的框架,它能够描述许多现有的类型系统。本文将对PTSs进行扩展,引入参数化常量和参数化定义,形成CₚDₚ - PTSs。接下来,我们将详细介绍这一扩展的相关概念、规则和性质。
2. 扩展PTSs:参数化常量与定义
2.1 基本定义
- 集合定义 :设V、C和S分别为不相交的变量、常量和类型集。
- 参数化项 :参数化项集TP、带类型变量列表集LV和项列表集LT的定义如下:
TP ::= V | S | C(LT ) | (TP TP ) | (λV:TP .TP ) | (ΠV:TP .TP ) | (C(LV )=TP :TP in TP );
LV ::= ? | ⟨LV , V:TP ⟩;
LT ::= ? | ⟨LT , TP ⟩.
例如,在参数化项c(b₁, …, bₙ)中,b₁, …, bₙ被称为该项的参数。而形如C(LV )=TP :TP in TP的项表示参数化局部定义,如double(x:Int)=(x + x):Int in A,表示A中形如double(P)的子项应解释为P + P,且类型为Int。
-
自由变量与常量 :对于参数化项A,其自由变量集FV(A)和常量集Cons(A)的定义如下: