aboutsummaryrefslogtreecommitdiff
path: root/kernel/environ.ml
diff options
context:
space:
mode:
authorGaëtan Gilbert2018-11-19 18:18:26 +0100
committerGaëtan Gilbert2019-01-21 13:22:47 +0100
commit9c678306157b2c6199091709ef7bb067f724f80c (patch)
tree28bbb08c4500676b2eca478323243d867cf27c15 /kernel/environ.ml
parent70ce3e98991a96f9d7f181a4a6f5b250457f1245 (diff)
Refactor typechecking of inductive types
We split into smaller functions, use more specific types for universe manipulation, and try to limit how much of the big tuple gets passed to subroutines.
Diffstat (limited to 'kernel/environ.ml')
-rw-r--r--kernel/environ.ml7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/environ.ml b/kernel/environ.ml
index 38a428d9a1..77820a301e 100644
--- a/kernel/environ.ml
+++ b/kernel/environ.ml
@@ -238,6 +238,13 @@ let is_impredicative_set env =
| ImpredicativeSet -> true
| _ -> false
+let is_impredicative_sort env = function
+ | Sorts.Prop -> true
+ | Sorts.Set -> is_impredicative_set env
+ | Sorts.Type _ -> false
+
+let is_impredicative_univ env u = is_impredicative_sort env (Sorts.sort_of_univ u)
+
let type_in_type env = not (typing_flags env).check_universes
let deactivated_guard env = not (typing_flags env).check_guarded