Unset Strict Universe Declaration.
Set Printing Universes.
Set Universe Polymorphism.
Definition foo (a := Type ) (b := Type ) (c := Type ) := Type .
Print foo.
(* foo@{Top.2 Top.3 Top.5 Top.6 Top.8 Top.9 Top.10} =
let a : = Type @ { Top . 2 } in let b : = Type @ { Top . 5 } in let c : = Type @ { Top . 8 } in Type @ { Top . 10 }
: Type @ { Top . 10 + 1 }
(* Top.2 Top.3 Top.5 Top.6 Top.8 Top.9 Top.10 |= Top.2 < Top.3
Top . 5 < Top . 6
Top . 8 < Top . 9
*)
*)
Check @foo. (* foo@{Top.11 Top.12 Top.13 Top.14 Top.15 Top.16
Top . 17 }
: Type @ { Top . 17 + 1 }
(* Top.11 Top.12 Top.13 Top.14 Top.15 Top.16 Top.17 |= Top.11 < Top.12
Top . 13 < Top . 14
Top . 15 < Top . 16
*)
*)
Definition bar := ltac :(let t := eval compute in foo in exact t).
Check @bar. (* bar@{Top.27}
: Type @ { Top . 27 + 1 }
(* Top.27 |= *) *)
Check @bar@{i}.
Definition baz (a := Type ) (b := Type : a) (c := Type : b) := a -> c.
Definition qux := Eval compute in baz.
Check @qux. (* qux@{Top.38 Top.39 Top.40
Top . 41 }
: Type @ { max ( Top . 38 + 1 , Top . 41 + 1 ) }
(* Top.38 Top.39 Top.40 Top.41 |= Top.38 < Top.39
Top . 40 < Top . 38
Top . 41 < Top . 40
*) *)
Print qux. (* qux@{Top.34 Top.35 Top.36 Top.37} =
Type @ { Top . 34 } - > Type @ { Top . 37 }
: Type @ { max ( Top . 34 + 1 , Top . 37 + 1 ) }
(* Top.34 Top.35 Top.36 Top.37 |= Top.34 < Top.35
Top . 36 < Top . 34
Top . 37 < Top . 36
*) *)
Check @qux@{Type Type }.
(* used to have 4 universes *)
Messung V0.5 in Prozent C=78 H=100 G=89
¤ Dauer der Verarbeitung: 0.18 Sekunden
(vorverarbeitet am 2026-09-29)
¤
*© Formatika GbR, Deutschland