package coq
Formal proof management system
Install
Dune Dependency
Authors
Maintainers
Sources
coq-8.16.1.tar.gz
sha256=583471c8ed4f227cb374ee8a13a769c46579313d407db67a82d202ee48300e4b
doc/src/coq-core.kernel/opaqueproof.ml.html
Source file opaqueproof.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
(************************************************************************) (* * The Coq Proof Assistant / The Coq 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) *) (************************************************************************) open Names open Mod_subst open Cooking type 'a delayed_universes = | PrivateMonomorphic of 'a | PrivatePolymorphic of Univ.ContextSet.t type opaque_proofterm = Constr.t * unit delayed_universes type opaque = | Indirect of substitution list * cooking_info list * DirPath.t * int (* subst, discharge, lib, index *) type opaquetab = { opaque_len : int; (** Size of the above map *) opaque_dir : DirPath.t; } let empty_opaquetab = { opaque_len = 0; opaque_dir = DirPath.initial; } let repr (Indirect (s, ci, dp, i)) = (s, ci, dp, i) let create dp tab = let id = tab.opaque_len in let opaque_dir = if DirPath.equal dp tab.opaque_dir then tab.opaque_dir else if DirPath.equal tab.opaque_dir DirPath.initial then dp else CErrors.anomaly (Pp.str "Using the same opaque table for multiple dirpaths.") in let ntab = { opaque_dir; opaque_len = id + 1 } in Indirect ([], [], dp, id), ntab let subst_opaque sub = function | Indirect (s, ci, dp, i) -> Indirect (sub :: s, ci, dp, i) let discharge_opaque info = function | Indirect (s, ci, dp, i) -> assert (CList.is_empty s); Indirect ([], info :: ci, dp, i) module HandleMap = Int.Map type opaque_handle = int let repr_handle i = i let mem_handle i { opaque_len = n; _ } = i < n
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>