(************************************************************************) (* * The Rocq Prover / The Rocq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************)
let ensure_exists f = ifnot (Sys.file_exists f) then
fatal_error (hov 0 (str "Can't find file" ++ spc () ++ str f))
let ensure_exists_with_prefix ~src ~tgt:f_out ~src_ext ~tgt_ext = let long_f_dot_src = ensure ~ext:src_ext ~src ~tgt:src in
ensure_exists long_f_dot_src; let long_f_dot_tgt = match f_out with
| None -> safe_chop_extension long_f_dot_src ^ tgt_ext
| Some f -> ensure ~ext:tgt_ext ~src:long_f_dot_src ~tgt:f in
long_f_dot_src, long_f_dot_tgt
let ensure_no_pending_proofs ~filename s = match s.Vernacstate.interp.lemmas with
| Some lemmas -> let pfs = Vernacstate.LemmaStack.get_all_proof_names lemmas in
fatal_error (str "There are pending proofs in file " ++ str filename ++ str": "
++ (pfs
|> List.rev
|> prlist_with_sep pr_comma Names.Id.print)
++ str ".");
| None -> let pm = s.Vernacstate.interp.program in let what_for = Pp.str ("file " ^ filename) in
NeList.iter (fun pm -> Declare.Obls.check_solved_obligations ~what_for ~pm) pm
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.