aboutsummaryrefslogtreecommitdiff
path: root/dev/top_printers.ml
diff options
context:
space:
mode:
authorcoqbot-app[bot]2021-01-04 12:55:33 +0000
committerGitHub2021-01-04 12:55:33 +0000
commita22da3e70551658deefbbedf261acdc3ead5403d (patch)
treeff5823557a9d215e88ec23e673974c89b00a776b /dev/top_printers.ml
parent006adfbd19d5ae736463f51c7509af795070e1c7 (diff)
parentad8c2b7dab1b0759d1c304350523d6d2cc9c7b24 (diff)
Merge PR #13685: Add a debug printer for fconstr substitutions.
Reviewed-by: SkySkimmer
Diffstat (limited to 'dev/top_printers.ml')
-rw-r--r--dev/top_printers.ml9
1 files changed, 9 insertions, 0 deletions
diff --git a/dev/top_printers.ml b/dev/top_printers.ml
index 4faa12af79..6ce347ad59 100644
--- a/dev/top_printers.ml
+++ b/dev/top_printers.ml
@@ -85,6 +85,15 @@ let pppattern = (fun x -> pp(envpp pr_constr_pattern_env x))
let pptype = (fun x -> try pp(envpp (fun env evm t -> pr_ltype_env env evm t) x) with e -> pp (str (Printexc.to_string e)))
let ppfconstr c = ppconstr (CClosure.term_of_fconstr c)
+let ppfsubst s =
+ let (s, k) = Esubst.Internal.repr s in
+ let sep () = str ";" ++ spc () in
+ let pr = function
+ | Esubst.Internal.REL n -> str "<#" ++ int n ++ str ">"
+ | Esubst.Internal.VAL (k, x) -> pr_constr (Vars.lift k (CClosure.term_of_fconstr x))
+ in
+ pp @@ str "[" ++ prlist_with_sep sep pr s ++ str "| " ++ int k ++ str "]"
+
let ppnumtokunsigned n = pp (NumTok.Unsigned.print n)
let ppnumtokunsignednat n = pp (NumTok.UnsignedNat.print n)