如何显示不存在具有依赖类型的系统中的类型(即,公式不可证明)?
对于没有依赖类型的系统,例如Hindley-Milner类型系统,这些类型对应于直觉逻辑的公式。在那里,我们知道它的模型是Heyting代数,特别是为了证明一个公式,我们可以限制为一个Heyting代数,其中每个公式都由一个开放子集表示。RR\mathbb{R} 例如,如果我们想表明,没有人居住,我们构建了一个映射φ从公式的子集开放ř通过定义: φ (α )∀α.α∨(α→⊥)∀α.α∨(α→⊥)\forall\alpha.\alpha\lor(\alpha\rightarrow\bot)ϕϕ\phiRR\mathbb{R} 然后 ϕ (α → ⊥ )ϕ(α)=(−∞,0)ϕ(α)=(−∞,0)\begin{align} \phi(\alpha) &= (-\infty, 0) \end{align} 这表明原始公式无法得到证明,因为我们有一个模型,该模型不成立,或者等效地(根据Curry-Howard同构),无法使用该类型。ϕ(α→⊥)ϕ(α∨(α→⊥))=int([0,∞))=(0,∞)=(−∞,0)∪(0,∞)=R∖0.ϕ(α→⊥)=int([0,∞))=(0,∞)ϕ(α∨(α→⊥))=(−∞,0)∪(0,∞)=R∖0.\begin{align} \phi(\alpha\rightarrow\bot) &= \mbox{int}( [0, \infty) ) \\ & = (0,\infty) \\ \phi(\alpha\lor(\alpha\rightarrow\bot)) &= (-\infty, 0) \cup (0,\infty) \\ &= \mathbb{R} \setminus {0}. \end{align} 另一种可能性是使用Kriepke框架。 对于依赖类型的系统,是否有任何类似的方法?像Heyting代数或Kripke框架的一般化? 注意:我不是在要求决策程序,我知道不可能有任何程序。我只是在寻求一种可以证明公式不可证明的机制-说服某人它不可证明。