在最近的工作中,我们展示了如何通过将程序抽象编译为Horn公式f来为面向对象语言定义非常精确的类型系统。然后,类型推理就等于解决了一个特定的目标,即f的共导(即最大的)Herbrand模型。 以这种方式定义的类型系统是理想化的,因为在最有趣的实例化中,共导赫布兰德宇宙和目标派生的术语都无法有限地表示。然而,只要考虑正则项和导数,就可以实现合理且富有表现力的近似。在这样做的过程中,必须引入适当的子类型关系,将类型之间的近似概念形式化。 本文研究了基于并集和对象类型构造函数的共导项的子类型关系。我们将类型的解释定义为由值与类型的隶属关系的一种非常直观的关系所诱导的值集,并证明了子类型的定义是类型解释之间合理的w.r.t.子集包含。稳健性的证明使我们能够简化压缩派生的概念,并发现先前给出的子类型定义并没有涵盖空类型的所有可能表示。 |