Universes a b c ω ω'. DefinitionTypeω := 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 returnType@{ω'} 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.
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.