File: WithDefUBinders.v

package info (click to toggle)
coq-doc 8.16.1-1
  • links: PTS, VCS
  • area: non-free
  • in suites: bookworm
  • size: 42,788 kB
  • sloc: ml: 219,673; sh: 4,035; python: 3,372; ansic: 2,529; makefile: 728; lisp: 279; javascript: 87; xml: 24; sed: 2
file content (17 lines) | stat: -rw-r--r-- 460 bytes parent folder | download | duplicates (5)
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'.