package coq-serapi
Serialization library and protocol for machine interaction with the Coq proof assistant
Install
Dune Dependency
Authors
Maintainers
Sources
coq-serapi-8.15.0.0.15.1.tbz
sha256=31d1e4661f5b1b917d7004c749cc05eb73546d3190ac632faddc37348531a0a5
sha512=a9816915f9dc4051e76c5b0e615b27c1bb0a6a5ffd445af94ad2ed1582a0e704a7f49f69b6764fa92dbfa092aa8e41ee3151a1330b394eb0338c796d6460fa20
doc/src/serlib_ssr/ser_ssrparser.ml.html
Source file ser_ssrparser.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
(************************************************************************) (* * The Coq Proof Assistant / The Coq Development Team *) (* v * INRIA, CNRS and contributors - Copyright 1999-2018 *) (* <O___,, * (see CREDITS file for the list of authors) *) (* \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) *) (************************************************************************) (************************************************************************) (* Coq serialization API/Plugin *) (* Copyright 2016-2018 MINES ParisTech -- Dual License LGPL 2.1 / GPL3+ *) (************************************************************************) (* Status: Very Experimental *) (************************************************************************) open Sexplib.Conv open Serlib module Ssrmatching = Serlib_ssrmatching.Ser_ssrmatching open Ssrmatching module Ltac_plugin = struct module Tacexpr = Serlib_ltac.Ser_tacexpr end module Ssrast = Ser_ssrast module Ssreflect_plugin = struct module Ssrast = Ser_ssrast module Ssrequality = Ser_ssrequality module Ssrparser = Ssreflect_plugin.Ssrparser end open! Ssrast type t_movearg = (cpattern ssragens) ssrmovearg [@@deriving sexp] let ser_wit_ssrmovearg = Ser_genarg.mk_uniform sexp_of_t_movearg t_movearg_of_sexp let ser_wit_ssrapplyarg = Ser_genarg.mk_uniform sexp_of_ssrapplyarg ssrapplyarg_of_sexp let ser_wit_clauses = Ser_genarg.mk_uniform sexp_of_clauses clauses_of_sexp type t_rwarg = Ssreflect_plugin.Ssrequality.ssrrwarg list [@@deriving sexp] let ser_wit_ssrrwargs = Ser_genarg.mk_uniform sexp_of_t_rwarg t_rwarg_of_sexp type t_h1 = Ltac_plugin.Tacexpr.raw_tactic_expr fwdbinders [@@deriving sexp] type t_h2 = Ltac_plugin.Tacexpr.glob_tactic_expr fwdbinders [@@deriving sexp] type t_h3 = Geninterp.Val.t fwdbinders [@@deriving sexp] let ser_wit_ssrhavefwdwbinders = Ser_genarg.{ raw_ser = sexp_of_t_h1; raw_des = t_h1_of_sexp; glb_ser = sexp_of_t_h2; glb_des = t_h2_of_sexp; top_ser = sexp_of_t_h3; top_des = t_h3_of_sexp; } type ssrfwdview = [%import: Ssreflect_plugin.Ssrparser.ssrfwdview] [@@deriving sexp] type ssreqid = [%import: Ssreflect_plugin.Ssrparser.ssreqid] [@@deriving sexp] type ssrarg = [%import: Ssreflect_plugin.Ssrparser.ssrarg] [@@deriving sexp] let ser_wit_ssrarg = Ser_genarg.mk_uniform sexp_of_ssrarg ssrarg_of_sexp type h_h1 = Ltac_plugin.Tacexpr.raw_tactic_expr ssrhint [@@deriving sexp] type h_h2 = Ltac_plugin.Tacexpr.glob_tactic_expr ssrhint [@@deriving sexp] type h_h3 = Geninterp.Val.t ssrhint [@@deriving sexp] let ser_wit_ssrhintarg = Ser_genarg.{ raw_ser = sexp_of_h_h1; raw_des = h_h1_of_sexp; glb_ser = sexp_of_h_h2; glb_des = h_h2_of_sexp; top_ser = sexp_of_h_h3; top_des = h_h3_of_sexp; } module A1 = struct type h1 = Serlib_ltac.Ser_tacexpr.raw_tactic_expr ssrseqarg [@@deriving sexp] type h2 = Serlib_ltac.Ser_tacexpr.glob_tactic_expr ssrseqarg [@@deriving sexp] type h3 = Geninterp.Val.t ssrseqarg [@@deriving sexp] end let ser_wit_ssrseqarg = let open A1 in Ser_genarg. { raw_ser = sexp_of_h1 ; raw_des = h1_of_sexp ; glb_ser = sexp_of_h2 ; glb_des = h2_of_sexp ; top_ser = sexp_of_h3 ; top_des = h3_of_sexp } module A2 = struct type h1 = Serlib_ltac.Ser_tacexpr.raw_tactic_expr * ssripats [@@deriving sexp] type h2 = Serlib_ltac.Ser_tacexpr.glob_tactic_expr * ssripats [@@deriving sexp] type h3 = Geninterp.Val.t * ssripats [@@deriving sexp] end let ser_wit_ssrintrosarg = let open A2 in Ser_genarg. { raw_ser = sexp_of_h1 ; raw_des = h1_of_sexp ; glb_ser = sexp_of_h2 ; glb_des = h2_of_sexp ; top_ser = sexp_of_h3 ; top_des = h3_of_sexp } module A3 = struct type h1 = Serlib_ltac.Ser_tacexpr.raw_tactic_expr ffwbinders [@@deriving sexp] type h2 = Serlib_ltac.Ser_tacexpr.glob_tactic_expr ffwbinders [@@deriving sexp] type h3 = Geninterp.Val.t ffwbinders [@@deriving sexp] end let ser_wit_ssrsufffwd = let open A3 in Ser_genarg. { raw_ser = sexp_of_h1 ; raw_des = h1_of_sexp ; glb_ser = sexp_of_h2 ; glb_des = h2_of_sexp ; top_ser = sexp_of_h3 ; top_des = h3_of_sexp } module A4 = struct type h1 = ((int * Ssreflect_plugin.Ssrast.ssrterm) * Ssrmatching_plugin.Ssrmatching.cpattern ssragens) [@@deriving sexp] end let ser_wit_ssrcongrarg = let open A4 in Ser_genarg.mk_uniform sexp_of_h1 h1_of_sexp module A5 = struct type h1 = Serlib_ltac.Ser_tacexpr.raw_tactic_expr ssrdoarg [@@deriving sexp] type h2 = Serlib_ltac.Ser_tacexpr.glob_tactic_expr ssrdoarg [@@deriving sexp] type h3 = Geninterp.Val.t ssrdoarg [@@deriving sexp] end let ser_wit_ssrdoarg = let open A5 in Ser_genarg. { raw_ser = sexp_of_h1 ; raw_des = h1_of_sexp ; glb_ser = sexp_of_h2 ; glb_des = h2_of_sexp ; top_ser = sexp_of_h3 ; top_des = h3_of_sexp } module A6 = struct type h1 = ((ssrfwdfmt * (cpattern * ast_closure_term option)) * ssrdocc) [@@deriving sexp] end let ser_wit_ssrsetfwd = let open A6 in Ser_genarg.mk_uniform sexp_of_h1 h1_of_sexp module A7 = struct type h1 = Serlib_ltac.Ser_tacexpr.raw_tactic_expr ssrhint [@@deriving sexp] type h2 = Serlib_ltac.Ser_tacexpr.glob_tactic_expr ssrhint [@@deriving sexp] type h3 = Geninterp.Val.t ssrhint [@@deriving sexp] end let ser_wit_ssrhint = let open A7 in Ser_genarg. { raw_ser = sexp_of_h1 ; raw_des = h1_of_sexp ; glb_ser = sexp_of_h2 ; glb_des = h2_of_sexp ; top_ser = sexp_of_h3 ; top_des = h3_of_sexp } module A8 = struct type h1 = ssrfwdfmt * ast_closure_term [@@deriving sexp] end let ser_wit_ssrposefwd = let open A8 in Ser_genarg.mk_uniform sexp_of_h1 h1_of_sexp module A9 = struct type h1 = ssrocc * ssrterm [@@deriving sexp] end let ser_wit_ssrunlockarg = let open A9 in Ser_genarg.mk_uniform sexp_of_h1 h1_of_sexp module A10 = struct type h1 = clause list * (ssrfwdfmt * ast_closure_term) [@@deriving sexp] end let ser_wit_ssrwlogfwd = let open A10 in Ser_genarg.mk_uniform sexp_of_h1 h1_of_sexp module A11 = struct type h1 = Names.Id.t * (ssrfwdfmt * ast_closure_term) [@@deriving sexp] end let ser_wit_ssrfixfwd = let open A11 in Ser_genarg.mk_uniform sexp_of_h1 h1_of_sexp module A12 = struct type h1 = ssrfwdfmt * ast_closure_term [@@deriving sexp] end let ser_wit_ssrfwd = let open A12 in Ser_genarg.mk_uniform sexp_of_h1 h1_of_sexp let register () = let open Ser_genarg in let open Ssreflect_plugin.Ssrparser in register_genser wit_ssrapplyarg ser_wit_ssrapplyarg; register_genser wit_ssrarg ser_wit_ssrarg; register_genser wit_ssrcasearg ser_wit_ssrmovearg; register_genser wit_ssrclauses ser_wit_clauses; register_genser wit_ssrmovearg ser_wit_ssrmovearg; register_genser wit_ssrhavefwdwbinders ser_wit_ssrhavefwdwbinders; register_genser wit_ssrhintarg ser_wit_ssrhintarg; register_genser wit_ssrrwargs ser_wit_ssrrwargs; (* register_genser wit_ast_closure_lterm ser_wit_ast_closure_lterm register_genser wit_ast_closure_term ser_wit_ast_closure_term register_genser wit_ssr_idcomma ser_wit_ssr_idcomma register_genser wit_ssragen ser_wit_ssragen register_genser wit_ssragens ser_wit_ssragens register_genser wit_ssrbinder ser_wit_ssrbinder register_genser wit_ssrbvar ser_wit_ssrbvar register_genser wit_ssrbwdview ser_wit_ssrbwdview register_genser wit_ssrclausehyps ser_wit_ssrclausehyps register_genser wit_ssrclear ser_wit_ssrclear register_genser wit_ssrclear_ne ser_wit_ssrclear_ne register_genser wit_ssrclseq ser_wit_ssrclseq register_genser wit_ssrcofixfwd ser_wit_ssrcofixfwd *) register_genser wit_ssrcongrarg ser_wit_ssrcongrarg; register_genser wit_ssrcpat (mk_uniform sexp_of_ssripat ssripat_of_sexp); register_genser wit_ssrdgens (mk_uniform (sexp_of_ssragens sexp_of_cpattern) (ssragens_of_sexp cpattern_of_sexp)); register_genser wit_ssrdgens_tl (mk_uniform (sexp_of_ssragens sexp_of_cpattern) (ssragens_of_sexp cpattern_of_sexp)); register_genser wit_ssrdir (mk_uniform sexp_of_ssrdir ssrdir_of_sexp); register_genser wit_ssrdoarg ser_wit_ssrdoarg; (* Ssreflect_plugin.Ssrparser.wit_ssrdocc Ssreflect_plugin.Ssrparser.wit_ssreqid *) register_genser wit_ssrexactarg ser_wit_ssrapplyarg; register_genser wit_ssrfixfwd ser_wit_ssrfixfwd; register_genser wit_ssrfwd ser_wit_ssrfwd; register_genser wit_ssrfwdfmt (mk_uniform sexp_of_ssrfwdfmt ssrfwdfmt_of_sexp); register_genser wit_ssrfwdid Ser_names.(mk_uniform Id.sexp_of_t Id.t_of_sexp); (* Ssreflect_plugin.Ssrparser.wit_ssrfwdview Ssreflect_plugin.Ssrparser.wit_ssrgen Ssreflect_plugin.Ssrparser.wit_ssrhavefwd *) register_genser wit_ssrhint ser_wit_ssrhint; (* Ssreflect_plugin.Ssrparser.wit_ssrhoi_hyp Ssreflect_plugin.Ssrparser.wit_ssrhoi_id *) register_genser wit_ssrhpats (mk_uniform sexp_of_ssrhpats ssrhpats_of_sexp); register_genser wit_ssrhpats_nobs (mk_uniform sexp_of_ssrhpats ssrhpats_of_sexp); register_genser wit_ssrhpats_wtransp (mk_uniform sexp_of_ssrhpats_wtransp ssrhpats_wtransp_of_sexp); (* Ssreflect_plugin.Ssrparser.wit_ssrhyp Ssreflect_plugin.Ssrparser.wit_ssrhoi_hyp Ssreflect_plugin.Ssrparser.wit_ssrhoi_id Ssreflect_plugin.Ssrparser.wit_ssrhoirep Ssreflect_plugin.Ssrparser.wit_ssrindex Ssreflect_plugin.Ssrparser.wit_ssrintros Ssreflect_plugin.Ssrparser.wit_ssrintros_ne *) register_genser wit_ssrintrosarg ser_wit_ssrintrosarg; (* Ssreflect_plugin.Ssrparser.wit_ssriorpat Ssreflect_plugin.Ssrparser.wit_ssripat Ssreflect_plugin.Ssrparser.wit_ssripatrep Ssreflect_plugin.Ssrparser.wit_ssripats_ne Ssreflect_plugin.Ssrparser.wit_ssripats Ssreflect_plugin.Ssrparser.wit_ssrmmod Ssreflect_plugin.Ssrparser.wit_ssrmult Ssreflect_plugin.Ssrparser.wit_ssrmult_ne Ssreflect_plugin.Ssrparser.wit_ssrocc Ssreflect_plugin.Ssrparser.wit_ssrortacarg Ssreflect_plugin.Ssrparser.wit_ssrortacs Ssreflect_plugin.Ssrparser.wit_ssrpattern_squarep Ssreflect_plugin.Ssrparser.wit_ssrpattern_ne_squarep *) register_genser wit_ssrposefwd ser_wit_ssrposefwd; register_genser wit_ssrrpat (mk_uniform sexp_of_ssripat ssripat_of_sexp); (* Ssreflect_plugin.Ssrparser.wit_ssrrule Ssreflect_plugin.Ssrparser.wit_ssrrule_ne Ssreflect_plugin.Ssrparser.wit_ssrrwarg Ssreflect_plugin.Ssrparser.wit_ssrrwkind Ssreflect_plugin.Ssrparser.wit_ssrrwocc *) register_genser wit_ssrseqarg ser_wit_ssrseqarg; register_genser wit_ssrseqdir (mk_uniform sexp_of_ssrdir ssrdir_of_sexp); register_genser wit_ssrsetfwd ser_wit_ssrsetfwd; (* Ssreflect_plugin.Ssrparser.wit_ssrsimpl Ssreflect_plugin.Ssrparser.wit_ssrsimpl_ne Ssreflect_plugin.Ssrparser.wit_ssrsimplrep Ssreflect_plugin.Ssrparser.wit_ssrstruct *) register_genser wit_ssrsufffwd ser_wit_ssrsufffwd; register_genser wit_ssrtacarg Serlib_ltac.Ser_tacarg.ser_wit_tactic; register_genser wit_ssrtclarg Serlib_ltac.Ser_tacarg.ser_wit_tactic; register_genser wit_ssrterm (mk_uniform sexp_of_ssrterm ssrterm_of_sexp); register_genser wit_ssrunlockarg ser_wit_ssrunlockarg; register_genser wit_ssrunlockargs (gen_ser_list ser_wit_ssrunlockarg); register_genser wit_ssrwgen (mk_uniform sexp_of_clause clause_of_sexp); register_genser wit_ssrwlogfwd ser_wit_ssrwlogfwd; () let _ = register ()
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>