aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel/univ.mli
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-04-27 16:46:15 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-04-27 16:46:15 +0000
commitca3812d7804f3936bb420e96fad034983ede271a (patch)
tree2e22e79f2225fcf3b7afcc29f99e844bd2460328 /kernel/univ.mli
parentd7e7e6756b46998e864cc00355d1946b69a43c1a (diff)
Correction du bug des types singletons pas sous-type de Set
(i.e. "Inductive unit := tt." conduisait à "t:Prop" alors que le principe de la hiérarchie d'univers est d'être cumulative -- et que Set en soit le niveau 0). Une solution aurait été de poser Prop <= Set mais on adopte une autre solution. Pour éviter le côté contre-intuitif d'avoir unit dans Type et Prop <= Set, on garde la représentation de Prop au sein de la hiérarchie prédicative sous la forme "Type (max ([],[])" (le niveau sans aucune contrainte inférieure, appelons Type -1) et on adapte les fonctions de sous-typage et de typage pour qu'elle prenne en compte la règle Type -1 <= Prop (cf reduction.ml, reductionops.ml, et effets incidents dans Termops.refresh_universes et Univ.super). Petite uniformisation des noms d'univers et de sortes au passage (univ.ml, univ.mli, term.ml, term.mli et les autres fichiers). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10859 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel/univ.mli')
-rw-r--r--kernel/univ.mli11
1 files changed, 5 insertions, 6 deletions
diff --git a/kernel/univ.mli b/kernel/univ.mli
index c6f100dab..ce25afb26 100644
--- a/kernel/univ.mli
+++ b/kernel/univ.mli
@@ -12,12 +12,13 @@
type universe
-val base_univ : universe
-val prop_univ : universe
-val neutral_univ : universe
+val type0_univ : universe (* predicative Set seen as a universe *)
+val type1_univ : universe (* the universe of the type of Prop/Set *)
+val lower_univ : universe (* image of Prop in the predicative hierarchy *)
val make_univ : Names.dir_path * int -> universe
-val is_base_univ : universe -> bool
+val is_type0_univ : universe -> bool
+val is_lower_univ : universe -> bool
val is_univ_variable : universe -> bool
(* The type of a universe *)
@@ -66,8 +67,6 @@ val fresh_local_univ : unit -> universe
val solve_constraints_system : universe option array -> universe array ->
universe array
-val is_empty_univ : universe -> bool
-
val subst_large_constraint : universe -> universe -> universe -> universe
val subst_large_constraints :