File: WithDefUBinders.v

package info (click to toggle)
coq 9.1.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 35,964 kB
  • sloc: ml: 239,908; sh: 4,355; python: 2,985; ansic: 2,644; makefile: 874; lisp: 171; javascript: 63; xml: 24; sed: 2
file content (17 lines) | stat: -rw-r--r-- 460 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Set Universe Polymorphism.
Module Type T.
  Axiom foo@{u v|u < v} : Type@{v}.
End T.

Module M : T with Definition foo@{u v} := Type@{u} : Type@{v}.
  Definition foo@{u v} := Type@{u} : Type@{v}.
End M.

Fail Module M' : T with Definition foo := Type.

(* Without the binder expression we have to do trickery to get the
   universes in the right order. *)
Module M' : T with Definition foo := let t := Type in t.
Definition foo := let t := Type in t.
End M'.