File: WithDefUBinders.v

package info (click to toggle)
coq 8.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 30,604 kB
  • sloc: ml: 192,230; sh: 2,585; python: 2,206; ansic: 1,878; makefile: 818; lisp: 202; xml: 24; sed: 2
file content (15 lines) | stat: -rw-r--r-- 414 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

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.