ST类型论
-{下面}-的系统是Mendelson的(1997: 289-93)ST。量化的域被划分成上升的类型层次,带有所有的个体都被指派了一个类型。量化的变量确立范围只在一个类型上;所以底层逻辑是一阶逻辑。ST是"简单的"(相对于《数学原理》中的类型论)主要是因为任何关系的域和陪域的所有成员都必须是同一个类型的。 有一个最低的类型,它的个体没有成员并且是次最低类型的成员。最低类型的个体对应于特定集合论中的基本元素(urelement)。每个类型…
共 46 篇文章
-{下面}-的系统是Mendelson的(1997: 289-93)ST。量化的域被划分成上升的类型层次,带有所有的个体都被指派了一个类型。量化的变量确立范围只在一个类型上;所以底层逻辑是一阶逻辑。ST是"简单的"(相对于《数学原理》中的类型论)主要是因为任何关系的域和陪域的所有成员都必须是同一个类型的。 有一个最低的类型,它的个体没有成员并且是次最低类型的成员。最低类型的个体对应于特定集合论中的基本元素(urelement)。每个类型…
在面向对象的程序设计中,里氏替换原则(Liskov Substitution principle)是对子类型的特别定义。它由芭芭拉·利斯科夫(Barbara Liskov)在1987年在一次会议上名为“数据的抽象与层次”的演说中首先提出。 里氏替换原则的内容可以描述为: “派生类(子类)对象可以在程式中代替其基类(超类)对象。” 以上内容并非利斯科夫的原文,而是译自罗伯特·马丁(Robert Martin)对原文的解读。其原文为: :L…
类型擦除是计算机程序设计时,在编译期明确去掉所编程序(某部分)的类型系统。 操作语义不需要程序伴随着类型,这称作“类型擦除语义”(type-erasure semantics)。 类型擦除语义的一种可能是通过,确保程序在运行时执行不依赖类型信息。 与之相对的是类型传递语义(type-passing semantics)。如通过具体化。。类型擦除的逆操作是类型推断。 Java实现 Java通过类型擦除的方式实现泛型。 具体来说,Java编…
在类型理论, 类型系统有主体类型t,当且仅当对于任意的类型环境A和表达式e,A |- e :u,都可以从t推导到u。 例如λ演算λx.x,其主体类型t=α -> α,α为类型变量,类似Java或C#的泛型类型变量。若有A|-λx.x: int -> int,令α=int,则可以从主体类型t具体化为int -> int。 类型系统希望具有主体类型,因为它可以对表达式确定一种单一类型,该单一类型可演化为该表达式的所有可能类型。如果类型系统没…
在数理逻辑中,直覺主義邏輯的布勞威爾-海廷-柯爾莫哥洛夫释义(Brouwer–Heyting–Kolmogorov interpretation)或BHK释义是由魯伊茲·布勞威爾、阿蘭德·海廷和独立的由安德雷·柯爾莫哥洛夫提出的。它有时也叫做可实现性释义,因为有关于斯蒂芬·科尔·克莱尼的可实现性理论。 释义 释义精确的陈述一个给定的公式的证明是什么。这是通过这个公式的在结构上归纳规定的: P \wedge Q的证明是有序对,这裡的a是P…
类型构造器也称类型构造子,是把若干已知类型组合成一新类型的手段。可以看作是类型的构造函数。打个比方,如果说普通的函数操作变量并产生新值,那么类型构造器就是操作类型返回新类型。 例如,数组 T[] 是若干相同类型 T 元素的有序集合,我们说从 T 类型构造出“T 的数组”这一类型的类型构造器是(后缀)[]、即“加上数组”。 参见 C++11: 中的元函数类,例如 add_pointer 返回 T、remove_reference 去掉引用…