Universes a b c ω ω'.
Definition Typeω := Type@{ω}.
Definition Type2 : Typeω := Type@{c}.
Definition Type1 : Type2 := Type@{b}.
Definition Type0 : Type1 := Type@{a}.
Set Universe Polymorphism.
Set Printing Universes.
Definition Typei' (n : nat)
:= match n return Type@{ω'} with
| 0 => Type0
| 1 => Type1
| 2 => Type2
| _ => Typeω
end.
Definition TypeOfTypei' {n} (x : Typei' n) : Type@{ω'}
:= match n return Typei' n -> Type@{ω'} with
| 0 | 1 | 2 | _ => fun x => x
end x.
Definition Typei (n : nat) : Typei' (S n)
:= match n return Typei' (S n) with
| 0 => Type0
| 1 => Type1
| _ => Type2
end.
Definition TypeOfTypei {n} (x : TypeOfTypei' (Typei n)) : Type@{ω'}
:= match n return TypeOfTypei' (Typei n) -> Type@{ω'} with
| 0 | 1 | _ => fun x => x
end x.
Check Typei 0 : Typei 1.
Check Typei 1 : Typei 2.
Definition lift' {n} : TypeOfTypei' (Typei n) -> TypeOfTypei' (Typei (S n))
:= match n return TypeOfTypei' (Typei n) -> TypeOfTypei' (Typei (S n)) with
| 0 | 1 | 2 | _ => fun x => (x : Type)
end.
Definition lift'' {n} : TypeOfTypei' (Typei n) -> TypeOfTypei' (Typei (S n))
:= match n return TypeOfTypei' (Typei n) -> TypeOfTypei' (Typei (S n)) with
| 0 | 1 | 2 | _ => fun x => x
end. (* The command has indeed failed with message:
In environment
n : nat
x : TypeOfTypei' (Typei 0)
The term "x" has type "TypeOfTypei' (Typei 0)" while it is expected to have type
"TypeOfTypei' (Typei 1)" (universe inconsistency: Cannot enforce b = a because a < b).
*)
Check (fun x : TypeOfTypei' (Typei 0) => TypeOfTypei' (Typei 1)).
Definition lift''' {n} : TypeOfTypei' (Typei n) -> TypeOfTypei' (Typei (S n)).
refine match n return TypeOfTypei' (Typei n) -> TypeOfTypei' (Typei (S n)) with
| 0 | 1 | 2 | _ => fun x => _
end.
exact x.
Undo.
(* The command has indeed failed with message:
In environment
n : nat
x : TypeOfTypei' (Typei 0)
The term "x" has type "TypeOfTypei' (Typei 0)" while it is expected to have type
"TypeOfTypei' (Typei 1)" (universe inconsistency: Cannot enforce b = a because a < b).
*)
all:compute in *.
all:exact x.
Abort.
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|