@@ -359,32 +359,40 @@ let pr_pattern t = pr_pattern_env (Global.env()) empty_names_context t*)
359359
360360(* Flag for compact display of goals *)
361361
362- let get_compact_context,set_compact_context =
363- let compact_context = ref false in
364- (fun () -> ! compact_context),(fun b -> compact_context := b)
362+ let { Goptions. get = get_compact_context } =
363+ Goptions. declare_bool_option_and_ref ~key: [" Printing" ;" Compact" ;" Contexts" ] ~value: false ()
364+
365+ let { Goptions. get = print_var_status } =
366+ Goptions. declare_bool_option_and_ref ~key: [" Printing" ;" Variables" ;" Status" ] ~value: false ()
365367
366368let pr_ecompacted_decl ?flags env sigma decl =
367- let ids, pbody, typ = match decl with
368- | CompactedDecl. LocalAssum (ids , typ ) ->
369- ids, None , typ
370- | CompactedDecl. LocalDef (ids ,c , typ ) ->
371- (* Force evaluation *)
372- let pb = pr_leconstr_env ?flags ~inctx: true env sigma c in
373- let pb = if EConstr. isCast sigma c then surround pb else pb in
374- ids, Some pb, typ in
369+ let status, ids, pbody, typ = match decl with
370+ | CompactedDecl. LocalAssum (status , ids , typ ) ->
371+ status, ids, None , typ
372+ | CompactedDecl. LocalDef (status , ids , c , typ ) ->
373+ (* Force evaluation *)
374+ let pb = pr_leconstr_env ?flags ~inctx: true env sigma c in
375+ let pb = if EConstr. isCast sigma c then surround pb else pb in
376+ status, ids, Some pb, typ in
375377 let pids =
376378 hov 0 (prlist_with_sep pr_comma (fun id -> pr_id id.binder_name) ids) in
377379 let pt = pr_letype_env ?flags env sigma typ in
380+ let pstatus = if print_var_status() then
381+ match status with
382+ | SecVar -> spc() ++ pr_in_comment (str " section variable" )
383+ | ProofVar -> spc() ++ pr_in_comment (str " hypothesis" )
384+ else mt()
385+ in
378386 match pbody with
379- | None -> hov 2 (pids ++ str" :" ++ spc () ++ pt)
387+ | None -> hov 2 (pids ++ str" :" ++ spc () ++ pt ++ pstatus )
380388 | Some pbody ->
381- hov 2 (pids ++ str" :=" ++ spc () ++ pbody ++ spc () ++ str" : " ++ pt)
389+ hov 2 (pids ++ str" :=" ++ spc () ++ pbody ++ spc () ++ str" : " ++ pt ++ pstatus )
382390
383- let pr_enamed_decl ?flags env sigma decl =
384- decl |> CompactedDecl. of_named_decl |> pr_ecompacted_decl ?flags env sigma
391+ let pr_enamed_decl ?flags env sigma status decl =
392+ decl |> CompactedDecl. of_named_decl status |> pr_ecompacted_decl ?flags env sigma
385393
386- let pr_named_decl ?flags env sigma (decl :Constr.named_declaration ) =
387- pr_enamed_decl ?flags env sigma (EConstr. of_named_decl decl)
394+ let pr_named_decl ?flags env sigma status (decl :Constr.named_declaration ) =
395+ pr_enamed_decl ?flags env sigma status (EConstr. of_named_decl decl)
388396
389397let pr_rel_decl ?flags env sigma decl =
390398 let na = RelDecl. get_name decl in
@@ -413,18 +421,13 @@ let pr_erel_decl ?flags env sigma (decl:EConstr.rel_declaration) =
413421
414422(* Prints a signature, all declarations on the same line if possible *)
415423let pr_named_context_of ?flags env sigma =
416- let make_decl_list env _status d pps = pr_named_decl ?flags env sigma d :: pps in
424+ let make_decl_list env status d pps = pr_named_decl ?flags env sigma status d :: pps in
417425 let psl = List. rev (fold_named_context make_decl_list env ~init: [] ) in
418426 hv 0 (prlist_with_sep (fun _ -> ws 2 ) (fun x -> x) psl)
419427
420428let pr_var_list_decl ?flags env sigma decl =
421429 hov 0 (pr_ecompacted_decl ?flags env sigma decl)
422430
423- let pr_named_context ?flags env sigma ne_context =
424- hv 0 (Context.Named. fold_outside
425- (fun d pps -> pps ++ ws 2 ++ pr_named_decl ?flags env sigma d)
426- ne_context ~init: (mt () ))
427-
428431let pr_rel_context ?(flags =current_combined() ) env sigma rel_context =
429432 let ppflags = Ppconstr. of_printing_flags flags in
430433 let rel_context = EConstr. of_rel_context rel_context in
@@ -440,7 +443,7 @@ let pr_context_unlimited ?flags env sigma =
440443 (fun d pps ->
441444 let pidt = pr_ecompacted_decl ?flags env sigma d in
442445 (pps ++ fnl () ++ pidt))
443- (compact_named_context sigma (EConstr. named_context env)) (mt () )
446+ (compact_named_context sigma (Environ. named_context_val env)) (mt () )
444447 in
445448 let db_env =
446449 fold_rel_context
@@ -469,7 +472,7 @@ let should_compact env sigma typ =
469472let rec bld_sign_env ?flags env sigma ctxt pps =
470473 match ctxt with
471474 | [] -> pps
472- | CompactedDecl. LocalAssum (ids ,typ )::ctxt' when should_compact env sigma typ ->
475+ | CompactedDecl. LocalAssum (_ , ids ,typ )::ctxt' when should_compact env sigma typ ->
473476 let pps',ctxt' = bld_sign_env_id ?flags env sigma ctxt (mt () ) true in
474477 (* putting simple hyps in a more horizontal flavor *)
475478 bld_sign_env ?flags env sigma ctxt' (pps ++ brk (0 ,0 ) ++ hov 0 pps')
@@ -480,7 +483,7 @@ let rec bld_sign_env ?flags env sigma ctxt pps =
480483and bld_sign_env_id ?flags env sigma ctxt pps is_start =
481484 match ctxt with
482485 | [] -> pps,ctxt
483- | CompactedDecl. LocalAssum (ids ,typ ) as d :: ctxt' when should_compact env sigma typ ->
486+ | CompactedDecl. LocalAssum (_ , ids ,typ ) as d :: ctxt' when should_compact env sigma typ ->
484487 let pidt = pr_var_list_decl ?flags env sigma d in
485488 let pps' = pps ++ (if not is_start then brk (3 ,0 ) else (mt () )) ++ pidt in
486489 bld_sign_env_id ?flags env sigma ctxt' pps' false
@@ -490,7 +493,7 @@ and bld_sign_env_id ?flags env sigma ctxt pps is_start =
490493(* compact printing an env (variables and de Bruijn). Separator: three
491494 spaces between simple hyps, and newline otherwise *)
492495let pr_context_limit_compact ?n ?flags env sigma =
493- let ctxt = EConstr. named_context env in
496+ let ctxt = Environ. named_context_val env in
494497 let ctxt = compact_named_context sigma ctxt in
495498 let lgth = List. length ctxt in
496499 let n_capped =
0 commit comments