package coq-core

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

coq-core 8.17.0

Libraries

This package provides the following libraries (via ocamlobjinfo):

coq-core.boot

Documentation:

coq-core.clib

Documentation:

coq-core.config

Documentation:

coq-core.coqworkmgrapi

Documentation:

coq-core.engine

Documentation:

  • UnivSubst
  • UnivProblem
  • UnivNames Local universe name <-> level mapping
  • UnivMinim
  • UnivGen
  • UState This file defines universe unification states which are part of evarmaps. Most of the API below is reexported in Evd. Consider using higher-level primitives when needed.
  • Evar_kinds The kinds of existential variable
  • Nameops Identifiers and names
  • Evd This file defines the pervasive unification state used everywhere in Coq tactic engine. It is very low-level and most of the functions exported here are irrelevant to the standard API user. Consider using Evarutil or Proofview instead.
  • EConstr
  • Namegen This file features facilities to generate fresh names.
  • Termops This file defines various utilities for term manipulation that are not needed in the kernel.
  • Logic_monad This file implements the low-level monadic operations used by the tactic monad. The monad is divided into two layers: a non-logical layer which consists in operations which will not (or cannot) be backtracked in case of failure (input/output or persistent state) and a logical layer which handles backtracking, proof manipulation, and any other effect which needs to backtrack.
  • Proofview_monad This file defines the datatypes used as internal states by the tactic monad, and specialises the Logic_monad to these types. It should not be used directly. Consider using Proofview instead.
  • Evarutil This module provides useful higher-level functions for evar manipulation.
  • Proofview This files defines the basic mechanism of proofs: the proofview type is the state which tactics manipulate (a global state for existential variables, together with the list of goals), and the type 'a tactic is the (abstract) type of tactics modifying the proof state and returning a value of type 'a.
  • Ftactic This module defines potentially focussing tactics. They are used by Ltac to emulate the historical behaviour of always-focussed tactics while still allowing to remain global when the goal is not needed.

coq-core.gramlib

Documentation:

coq-core.interp

Documentation:

  • Stdarg Basic generic arguments.
  • NumTok Numbers in different forms: signed or unsigned, possibly with fractional part and exponent.
  • Constrexpr
  • Deprecation
  • Notation_term notation_constr
  • Genintern
  • Notation_ops
  • Notationextern Declaration of uninterpretation functions (i.e. printing rules) for notations
  • Abbreviation Abbreviations.
  • Notation Notations
  • Smartlocate locate_global_with_alias locates global reference possibly following a notation if this notation has a role of aliasing; raise Not_found if not bound in the global env; raise a UserError if bound to a syntactic def that does not denote a reference
  • Reserve
  • Constrexpr_ops Constrexpr_ops: utilities on constr_expr
  • Decls
  • Dumpglob This file implements the Coq's .glob file format, which provides information about the objects that are defined and referenced from a Coq file.
  • Impargs
  • Implicit_quantifiers
  • Constrintern Translation from front abstract syntax of term to untyped terms (glob_constr)
  • Modintern Module internalization errors
  • Constrextern Translation of pattern, cases pattern, glob_constr and term into syntax trees for printing

coq-core.kernel

Documentation:

  • Evar This module defines existential variables, which are isomorphic to int. Nonetheless, casting from an int to a variable is deemed unsafe, so that to keep track of such casts, one has to use the provided unsafe_of_int function.
  • Uint63
  • Float64_common
  • Float64
  • Names This file defines a lot of different notions of names used pervasively in the kernel as well as in other places. The essential datatypes exported by this API are:
  • Parray
  • Univ
  • Sorts
  • Vmvalues Values
  • Context The modules defined below represent a local context as defined by Chapter 4 in the Reference Manual:
  • Esubst Explicit substitutions
  • UGraph
  • Constr This file defines the most important datatype of Coq, namely kernel terms, as well as a handful of generic manipulation functions.
  • CPrimitives
  • TransparentState
  • Conv_oracle
  • Vars
  • Term
  • Cooking
  • Retroknowledge
  • Mod_subst
  • Opaqueproof This module implements the handling of opaque proof terms. Opaque proof terms are special since:
  • Vmbytecodes
  • Vmopcodes
  • Vmemitcodes
  • Declarations This module defines the internal representation of global declarations. This includes global constants/axioms, mutual inductive definitions, modules and module types
  • Entries This module defines the entry types for global declarations. This information is entered in the environments. This includes global constants/axioms, mutual inductive definitions, modules and module types
  • Declareops Operations concerning types in Declarations : constant_body, mutual_inductive_body, module_body ...
  • Environ Unsafe environments. We define here a datatype for environments. Since typing is not yet defined, it is not possible to check the informations added in environments, and that is why we speak here of ``unsafe'' environments.
  • Primred
  • CClosure
  • Reduction
  • Type_errors Type errors. \label{typeerrors}
  • Inductive
  • Genlambda Intermediate language used by both the VM and native.
  • Vmlambda
  • Vmbytegen
  • Vmsymtable
  • Vm Debug printing
  • Vconv
  • Nativevalues This modules defines the representation of values internally used by the native compiler. Be careful when removing apparently dead code from this interface, as it may be used by programs generated at runtime.
  • Nativelambda This file defines the lambda code generation phase of the native compiler
  • Nativecode This file defines the mllambda code generation phase of the native compiler. mllambda represents a fragment of ML, and can easily be printed to OCaml code.
  • Nativelib This file provides facilities to access OCaml compiler and dynamic linker, used by the native compiler.
  • Nativeconv This module implements the conversion test by compiling to OCaml code
  • Typeops
  • Discharge
  • Relevanceops We can take advantage of non-cumulativity of SProp to avoid fully retyping terms when we just want to know if they inhabit some proof-irrelevant type.
  • Term_typing
  • Modops
  • Subtyping
  • Section Kernel implementation of sections.
  • InferCumulativity
  • IndTyping
  • Indtypes
  • Mod_typing Main functions for translating module entries
  • Nativelibrary This file implements separate compilation for libraries in the native compiler
  • Safe_typing

coq-core.lib

Documentation:

  • Util
  • Control Global control of Coq.
  • Pp Coq document type.
  • Loc
  • CErrors This modules implements basic manipulations of errors for use throughout Coq's code.
  • Stateid
  • Feedback
  • Flags Global options of the system.
  • CWarnings
  • System
  • CDebug
  • Spawn
  • Rtree
  • Pp_diff Computes the differences between 2 Pp's and adds additional tags to a Pp to highlight them. Strings are split into tokens using the Coq lexer, then the lists of tokens are diffed using the Myers algorithm. A fixup routine, shorten_diff_span, shortens the span of the diff result in some cases.
  • ObjFile
  • Hook This module centralizes the notions of hooks. Hooks are pointers that are to be set at runtime exactly once.
  • Genarg Generic arguments used by the extension mechanisms of several Coq ASTs.
  • Envars This file provides a high-level interface to the environment variables needed by Coq to run (such as coqlib). The values of these variables may come from different sources (shell environment variables, command line options, options set at the time Coq was build).
  • CAst
  • DAst Lazy AST node wrapper. Only used for glob_constr as of today.
  • Core_plugins_findlib_compat
  • CoqProject_file
  • CProfile
  • Aux_file
  • AcyclicGraph Graphs representing strict orders

coq-core.library

Documentation:

  • Summary
  • Globnames
  • Libnames
  • Nametab This module contains the tables for globalization.
  • Libobject Libobject declares persistent objects, given with methods:
  • Global This module defines the global environment of Coq. The functions below are exactly the same as the ones in Safe_typing, operating on that global environment. add_* functions perform name verification, i.e. check that the name given as argument match those provided by Safe_typing.
  • Lib Lib: record of operations, backtrack, low-level sections
  • Goptions This module manages customization parameters at the vernacular level
  • Coqlib Indirection between logical names and global references.

coq-core.parsing

Documentation:

coq-core.plugins.btauto

Documentation:

coq-core.plugins.cc

Documentation:

coq-core.plugins.derive

Documentation:

coq-core.plugins.extraction

Documentation:

coq-core.plugins.firstorder

Documentation:

coq-core.plugins.funind

Documentation:

coq-core.plugins.ltac

Documentation:

coq-core.plugins.ltac2

Documentation:

coq-core.plugins.micromega

Documentation:

coq-core.plugins.nsatz

Documentation:

coq-core.plugins.number_string_notation

Documentation:

coq-core.plugins.ring

Documentation:

coq-core.plugins.rtauto

Documentation:

coq-core.plugins.ssreflect

Documentation:

coq-core.plugins.ssrmatching

Documentation:

coq-core.plugins.tauto

Documentation:

coq-core.plugins.tutorial.p0

Documentation:

coq-core.plugins.tutorial.p1

Documentation:

coq-core.plugins.tutorial.p2

Documentation:

coq-core.plugins.tutorial.p3

Documentation:

coq-core.plugins.zify

Documentation:

coq-core.pretyping

Documentation:

  • Reductionops Reduction Functions.
  • Inductiveops The following three functions are similar to the ones defined in Inductive, but they expect an env
  • Arguments_renaming
  • Retyping This family of functions assumes its constr argument is known to be well-typable. It does not type-check, just recompute the type without any costly verifications. On non well-typable terms, it either produces a wrong result or raise an anomaly. Use with care. It doesn't handle predicative universes too.
  • Vnorm
  • Geninterp Interpretation functions for generic arguments and interpreted Ltac values.
  • Glob_term Untyped intermediate terms
  • Locus Locus : positions in hypotheses and goals
  • Ltac_pretype
  • Pattern
  • Cbv
  • Glob_ops
  • Structures
  • Patternops
  • Constr_matching This module implements pattern-matching on terms
  • Pretype_errors
  • Evarsolve
  • Locusops Utilities on or_var
  • Find_subterm Finding subterms, possibly up to some unification function, possibly at some given occurrences
  • Evardefine
  • Evarconv
  • Typing This module provides the typing machine with existential variables and universes.
  • Tacred
  • Coercionops
  • Heads This module is about the computation of an approximation of the head symbol of defined constants and local definitions; it provides the function to compute the head symbols and a table to store the heads
  • Program A bunch of Coq constants used by Program
  • Typeclasses_errors
  • Typeclasses
  • Coercion
  • Keys
  • Unification
  • GlobEnv Type of environment extended with naming and ltac interpretation data
  • Cases
  • Pretyping This file implements type inference. It maps glob_constr (i.e. untyped terms whose names are located) to constr. In particular, it drives complex pattern-matching problems ("match") into elementary ones, insertion of coercions and resolution of implicit arguments.
  • Nativenorm This module implements normalization by evaluation to OCaml code
  • Indrec Errors related to recursors building
  • Detyping

coq-core.printing

Documentation:

  • Ppextend
  • Genprint Entry point for generic printers
  • Pputils
  • Ppconstr This module implements pretty-printers for constr_expr syntactic objects and their subcomponents.
  • Proof_diffs
  • Printer These are the entry points for printing terms, context, tac, ...

coq-core.proofs

Documentation:

  • Tactypes Tactic-related types that are not totally Ltac specific and still used in lower API. It's not clear whether this is a temporary API or if this is meant to stay.
  • Logic Legacy proof engine. Do not use in newly written code.
  • Tacmach Operations for handling terms under a local typing context.
  • Refine The primitive refine tactic used to fill the holes in partial proofs. This is the recommended way to write tactics when the proof term is easy to write down. Note that this is not the user-level refine tactic defined in Ltac which is actually based on the one below.
  • Goal_select
  • Proof
  • Proof_bullet
  • Miscprint Printing of intro_pattern
  • Clenv This file defines clausenv, which is a deprecated way to handle open terms in the proof engine. Most of the API here is legacy except for the evar-based clauses.

coq-core.stm

Documentation:

coq-core.sysinit

Documentation:

coq-core.tactics

Documentation:

coq-core.top_printers

Documentation:

coq-core.toplevel

Documentation:

coq-core.vernac

Documentation:

coq-core.vm

Documentation:

OCaml

Innovation. Community. Security.