作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究使用 explicit universes
的可能性用于在 Coq 中构建固定的 Universe 层次结构。在构建它时使用常量 (2, 3, 4) 的尝试失败了:最后,所有组合仍然类型检查(即所有声明的宇宙都被视为分层任意):
Universe k l m x y z.
Let x := 2.
Definition k := Type@{x}.
Notation y := 3.
Definition l := Type@{y}.
Notation z := 4.
Definition m := Type@{z}.
Print x. (*x = 2: nat*)
Print y. (*Notation y := 3*)
Check l:k:m.
Check m:k:l.
Check k:m:l.
Definition k := Type@{2}
和
Definition k := Type@{x+1}
导致语法错误。是否可以使用显式 Universe 来构建固定的层次结构,如果可以,如何使用?
最佳答案
我让它工作的方式如下:
Universe X Y Z.
Definition x := Type@{X}.
Definition y := Type@{Y}.
Definition z := Type@{Z}.
(* bogus definition to fix hierarchy *)
Definition dummy:x:y:z := unit.
Check x:y.
(* ok:
x : y
: y
*)
Check x:z.
(* also ok (transitivity is still acceptable):
x : z
: z
*)
Check z:y.
(* Error:
The term "z" has type "Type@{Z+1}" while it is expected to have type "y"
(universe inconsistency: Cannot enforce Z < Y because Y < Z).
*)
关于types - Coq:带有显式 Universe 的固定 Universe 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684105/
我是一名优秀的程序员,十分优秀!