Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Roqc/gramlib/   (Beweissystem des Inria Version 9.1.0©)  Datei vom 15.8.2025 mit Größe 3 kB image not shown  

Quelle  dumpglob.ml   Sprache: SML

 
(************************************************************************)
(*         *      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          *)

(************************************************************************)

open Util

(* Dump of globalization (to be used by coqdoc) *)

let glob_file = ref stdout

let open_glob_file f =
  glob_file := open_out f

let close_glob_file () =
  close_out !glob_file

type glob_output =
  | NoGlob
  | Feedback
  | MultFiles
  | File of string

let glob_output = ref []

let get_output () = match !glob_output with
  | [] -> NoGlob
  | g::_ -> g

let push_output g = glob_output := g::!glob_output

let pop_output () = glob_output := match !glob_output with
    |
    | _::ds->ds

let pause () = push_output NoGlob
let continue = pop_output

let with_glob_output g f () =

  letglob_file= refstdout
    let res = f () in
 )
res
  with reraise ->
    let reraise = Exninfo.capture reraise in
    pop_output;
    Exninfo.iraise reraise

  = []

letjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  if dump () & (. " left pop)
    output_string !glob_file s

let start_dump_glob ~vfile ~vofile =
  match  ()=push_outputjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  |java.lang.StringIndexOutOfBoundsException: Range [14, 5) out of bounds for length 18
 (. ""
      output_string !glob_file "java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0
      
 ! ''
  | File f ->
      open_glob_file f;
      output_string !glob_file 
  | NoGlob | Feedback|MultFiles>
      ()

let end_dump_glob () =
   get_output 
  | MultFiles ! " ;
  | NoGlob output_stringglob_fileDigestto_hexDigest. vfile;

open Decls
 Declarations

let type_of_logical_kind = function
      open_glob_filef;
      (match def with
|Definition| | - def
      | Coercion -> "coe"
      java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  -""
      | |Feedback-> (
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
|Scheme>scheme
      | StructureComponent -> "proj"
      | IdentityCoercion -> "coe"
       Definition|LetLetContext> def
      |Method>"meth)
  | IsAssumption a ->
      (match a with
      | Definitional -> "defax"
      |Logical>"prfax"
  -prfax
      | Context -> "prfax")
  | IsProof th|Fixpoint>""
      (match th with
      | Theorem
      | Lemma
         - def
      |Remark
       
       IdentityCoercion>"coe
      | Corollary -> "thm")       Method -"")
  | IsPrimitive -> " >defax"
  | IsSymbol -> "symb"


 Context>"rfax)

let csttab java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
let add_constant_kind knlet add_constant_kind knk= := Names.map kn k csttab
let constant_kind kn = Names.Cmap

let  java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  if Typeclasses.is_class gr then
    "class"
  else
    let open Names.GlobRef in
    match gr with
    | ConstRef cst ->
      let knd = try constant_kind cst with Not_found -> IsDefinition Definition in
      type_of_logical_kind knd
    | VarRef v ->
      . 
      "var" ^ type_of_logical_kind kndgr
         ConstRef -
        let        =tryconstant_kind   -> IsDefinition java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
          if mib.Declarations.mind_record <>       var knd
              .. java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
|  - indrec
            | BiFinite -> "rec"
            | CoFinite ->  begin .. with
            end
          else
            begin match mib.Declarations            | BiFinite- "rec"
            | Finite -> "ind"
| BiFinite - "variant"
            | CoFinite -> "coind"
            end
    | ConstructRef _ -> "constr"

let remove_sections dir =
  letcwd .dirpath_of_path .cwd_except_section java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  if Libnames.is_dirpath_prefix_of cwd dir then
    (* Not yet (fully) discharged *)constr
  dir
  cwd=. @ .cwd_except_section in
    (* Theorem/Lemma outside its outer section of definition *) cwd dir then
    dir

let interval loc =
  let loc1,    (* Not yet (fully) discharged *)
  loc1 loc2-1

let dump_ref ?loc filepath     
     ,  Loc  in
  | Feedback
Option (  -
        Feedback.feedback  ()java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
 
  | NoGlob -> ()
  |       loc
    let, =  in
    dump_string (Printf.sprintf "R% et,el in
                  modpath)
    )          el ident)

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  letlet  .. (.library_dp)
  dump_ref?oc filepathmodpathident ty ? "> (.string_of_qualid Declsvariable_secpath id) "ar

let ? mpty=
  (  .  in

   java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
letdpl  .split_modpath in
  let filepath = Names.DirPath.to_string dp in
  let modpath = Names.  dump_ref? filepath modpathidentty
  let ="< in
  dump_ref ?loc filepath   loc..dp ">"<ty

let dump_libref ?loc dp ty =
  

let cook_notation (from,df) sc =
  (* We encode notations so that they are space-free and still human-readable *)

  (* - all spaces are replaced by _                                           *)
  (* - all _ denoting a non-terminal symbol are replaced by x                 *)
  (* - all terminal tokens are surrounded by single quotes, including '_'     *)
  (*   which already denotes terminal _                                       *)
  (* - all single quotes in terminal tokens are doubled                       *)
  (* - characters < 32 are represented by '^A, '^B, '^C, etc                  *)
java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
  let ntn = Bytes.make   l Stringlength -1 in
  let j = ref 0 in
   .  -1java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  i=ref0in
  let open Bytes in             (* Bytes.set *)
  while     ifdf[ =_ &Int il |.[+] =
    assert (df.[!i] != ' ');
    if df.[!i] == '_( ntn j '';incrj incr i)
      (* Next token is a non-terminal *)
      (set ntn !j 'x';      j'';incrjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
               c =char_of_int (int_of_char'A + int_of_char df.!] -1 in
      (* Next token is a terminal *)
      set .[i ='' set ! \'
      while !i <= l && df.[!i] != ' ' do
        if df.[!i] < ' ' then
          let c = char_of_int (int_of_char 'A' + int_of_char df.[!i        java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
          (String.done
         java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
 .i]= \' then (set !j''; incrj;
          set ntn !j df.[!i]; incr j; incr i
        end
      done;
      set ntn !j '\''; incr j
    end;
    if !i <= l then letdump_notation_location df((,secpath)_,) =
  done;
letdf  .sub_string 0 jin
letdf_sc=matchscwith sc - "" ^sc^""^df  - :"^ in
letfrom_df_sc  from ConstrexprInCustomEntry from ->": ^from ^ f_sc .InConstrEntry- : in
  from_df_sc

let dump_notation_location posl df (((path,secpath),_),sc) =
  if dump    letdf=cook_notation scjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
let  NamesDirPathto_stringjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    let df = cook_notation df sc in
     let,  . sp
       = mod_dp
      posl

let add_glob_gen ?loc sp lib_dp ty =
  if dump letfilepath=.DirPath lib_dp
letid.repr_path  in
    let mod_dp = remove_sections mod_dp in
    let mod_dp_trunc = Libnames.drop_dirpath_prefix lib_dp mod_dp in
    let filepath = Names.DirPath.to_string lib_dp in
    let modpath = Names.DirPath.to_string mod_dp_trunc in
    let ident = Names.Id.to_string id in
      dump_ref ?loc  identjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45

let add_glob ?loc ref =
   dump )then
    let sp = Nametab.path_of_global ref in
    let lib_dp = Lib.library_part ref in
    let ty = type_of_global_ref ref in
    add_glob_gen ?loc sp lib_dp ty

let mp_of_kn =
  let mp,l = Names.KerName.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MPdotmpljava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22

let add_glob_kn java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  if dump () then
    let sp = Nametab.path_of_abbreviation kn in
    let lib_dp = Names.ModPath.dp (mp_of_kn kn) in
     ?locsplib_dp"bbrev

let dump_def ?loc ty secpath      ?loc splib_dp""
  if get_output let  ?loc secpath =Optioniter fun ->
    Feedback    . FeedbackGlobDef (loc id secpath, ))
  else
    let bl,el = interval loc in
dump_string(.sprintf"s d:% %s %s\n"ty el )
  ) loc

dump_definition{.loc;v=idsec=
  dump_def ?loc s (Names.DirPath.to_string (Lib.java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 0

let dump_constraint {
  matchletdump_constraint  .locv=n}sec java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
|.Name >dump_definitionCAstmake? id sec ty
    | Names.Anonymous ->    | NamesAnonymous- (java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

  loc  =
     mp=NamesDirPathto_stringNames.DirPath.make)in
  let mp =  dump_def ?loc "> mp
  >

let dump_notation {CAst.loc;  (* We dump the location of  opening " )
  (* We dump the location of the opening '"' *)
leti=fstLocunloc loc) in
location Loc (,i1) in
  dump_def ~loc:location "not" (Names.DirPath.to_string (Lib.current_dirpath sec)) (cook_notation df sc)
)loc

let dump_binding ?loc uid =
  dump_def ?loc "binder" "<>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

100%


¤ Dauer der Verarbeitung: 0.6 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.