diff options
| author | Gaëtan Gilbert | 2018-11-09 16:23:57 +0100 |
|---|---|---|
| committer | Gaëtan Gilbert | 2018-11-23 13:53:17 +0100 |
| commit | 828d9447073b06a85421857d7f8b872af6cdfe6b (patch) | |
| tree | aad9cc41020a81b60bd6d5514182c06636a89357 /printing/printer.ml | |
| parent | 90ffb19ccde90310b58e1f94eacdeed12041d86d (diff) | |
Fix printing of private universes.
Set Printing Universes.
Set Universe Polymorphism.
Lemma foo : Type.
Proof. exact (forall _ : Type, Type).
Qed.
Print foo.
Before:
(*
foo@{Top.1} =
Type@{Top.2} -> Type@{Top.3}
: Type@{Top.1}
(* Top.1 |= Prop < Set
Set < Top.1
local: {Top.3 Top.2} |= Top.2 < Top.1
Top.3 < Top.1
*)
foo is universe polymorphic
*)
Now:
(* Public universes:
Top.1 |= Set < Top.1
Private universes:
{Top.3 Top.2} |= Top.2 < Top.1
Top.3 < Top.1 *)
Diffstat (limited to 'printing/printer.ml')
| -rw-r--r-- | printing/printer.ml | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/printing/printer.ml b/printing/printer.ml index ebe8e3eebb..94b514239a 100644 --- a/printing/printer.ml +++ b/printing/printer.ml @@ -143,7 +143,7 @@ let pr_sort sigma s = pr_glob_sort (extern_sort sigma s) let _ = Termops.Internal.set_print_constr (fun env sigma t -> pr_lconstr_expr (extern_constr ~lax:true false env sigma t)) -let pr_in_comment pr x = str "(* " ++ pr x ++ str " *)" +let pr_in_comment x = str "(* " ++ x ++ str " *)" (** Term printers resilient to [Nametab] errors *) @@ -199,27 +199,25 @@ let safe_pr_constr_env = safe_gen pr_constr_env let pr_universe_ctx_set sigma c = if !Detyping.print_universes && not (Univ.ContextSet.is_empty c) then - fnl()++pr_in_comment (fun c -> v 0 - (Univ.pr_universe_context_set (Termops.pr_evd_level sigma) c)) c + fnl()++pr_in_comment (v 0 (Univ.pr_universe_context_set (Termops.pr_evd_level sigma) c)) else mt() let pr_universe_ctx sigma ?variance c = if !Detyping.print_universes && not (Univ.UContext.is_empty c) then - fnl()++pr_in_comment (fun c -> v 0 - (Univ.pr_universe_context (Termops.pr_evd_level sigma) ?variance c)) c + fnl()++pr_in_comment (v 0 (Univ.pr_universe_context (Termops.pr_evd_level sigma) ?variance c)) else mt() let pr_abstract_universe_ctx sigma ?variance c ~priv = let open Univ in let priv = Option.default Univ.ContextSet.empty priv in - if !Detyping.print_universes && not (Univ.AUContext.is_empty c && Univ.ContextSet.is_empty priv) then - let local = if ContextSet.is_empty priv then mt() else - str "local: " ++ Univ.pr_universe_context_set (Termops.pr_evd_level sigma) priv - in - fnl()++pr_in_comment (fun c -> v 0 - (Univ.pr_abstract_universe_context (Termops.pr_evd_level sigma) ?variance c) ++ v 0 local) c + let has_priv = not (ContextSet.is_empty priv) in + if !Detyping.print_universes && (not (Univ.AUContext.is_empty c) || has_priv) then + let prlev u = Termops.pr_evd_level sigma u in + let pub = (if has_priv then str "Public universes:" ++ fnl() else mt()) ++ v 0 (Univ.pr_abstract_universe_context prlev ?variance c) in + let priv = if has_priv then fnl() ++ str "Private universes:" ++ fnl() ++ v 0 (Univ.pr_universe_context_set prlev priv) else mt() in + fnl()++pr_in_comment (pub ++ priv) else mt() @@ -230,16 +228,14 @@ let pr_constant_universes sigma ~priv = function let pr_cumulativity_info sigma cumi = if !Detyping.print_universes && not (Univ.UContext.is_empty (Univ.CumulativityInfo.univ_context cumi)) then - fnl()++pr_in_comment (fun uii -> v 0 - (Univ.pr_cumulativity_info (Termops.pr_evd_level sigma) uii)) cumi + fnl()++pr_in_comment (v 0 (Univ.pr_cumulativity_info (Termops.pr_evd_level sigma) cumi)) else mt() let pr_abstract_cumulativity_info sigma cumi = if !Detyping.print_universes && not (Univ.AUContext.is_empty (Univ.ACumulativityInfo.univ_context cumi)) then - fnl()++pr_in_comment (fun uii -> v 0 - (Univ.pr_abstract_cumulativity_info (Termops.pr_evd_level sigma) uii)) cumi + fnl()++pr_in_comment (v 0 (Univ.pr_abstract_cumulativity_info (Termops.pr_evd_level sigma) cumi)) else mt() |
