package coq-core
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
On This Page
  - 
        
          API
        
          
          - Library btauto_plugin
- Library cc_plugin
- Library coq-core.boot
- Library coq-core.clib
- Library coq-core.config
- Library coq-core.coqworkmgrapi
- Library coq-core.engine
- Library coq-core.gramlib
- Library coq-core.interp
- Library coq-core.kernel
- Library coq-core.lib
- Library coq-core.library
- Library coq-core.parsing
- Library coq-core.perf
- Library coq-core.plugins
- Library coq-core.pretyping
- Library coq-core.printing
- Library coq-core.proofs
- Library coq-core.stm
- Library coq-core.sysinit
- Library coq-core.tactics
- Library coq-core.top_printers
- Library coq-core.toplevel
- Library coq-core.vernac
- Library coq-core.vm
- Library derive_plugin
- Library extraction_plugin
- Library firstorder_plugin
- Library funind_plugin
- Library ltac2_plugin
- Library ltac_plugin
- Library micromega_plugin
- Library nsatz_plugin
- Library number_string_notation_plugin
- Library ring_plugin
- Library rtauto_plugin
- Library ssreflect_plugin
- Library ssrmatching_plugin
- Library tauto_plugin
- Library tuto0_plugin
- Library tuto1_plugin
- Library tuto2_plugin
- Library tuto3_plugin
- Library zify_plugin
 
  The Coq Proof Assistant -- Core Binaries and Tools
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      coq-8.19.2.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        md5=5d1187d5e44ed0163f76fb12dabf012e
    
    
  sha512=91bc81530fa4f6498961583ad51eac5001f139881788b88e360a866ad8e2a6e2c5bce86d1a580ab4cd4782bf49d48318767df82471ce33ba3ac143e5569ad33c
    
    
  doc/index.html
coq-core
API
Library btauto_plugin
Library cc_plugin
Library coq-core.boot
Library coq-core.clib
- CArray
- CEphemeron
- CList
- CMap
- CObj
- CSet
- CSigMissing pervasive types from OCaml stdlib
- CString
- CThread
- CUnix
- Diff2An implementation of Eugene Myers' O(ND) Difference Algorithm[1]. This implementation is a port of util.lcs module of Gauche Scheme interpreter.
- DynDynamically typed values
- ExninfoAdditional information worn by exceptions.
- HMap
- HashconsGeneric hash-consing.
- HashsetAdapted from Damien Doligez, projet Para, INRIA Rocquencourt, OCaml stdlib.
- HeapHeaps
- IStream
- IntA native integer module with usual utility functions.
- MonadCombinators on monadic computations.
- NeList
- OptionModule implementing basic combinators for OCaml option type. It tries follow closely the style of OCaml standard library.
- OrderedType
- PolyMap
- PredicateInfinite sets over a chosen- OrderedType.
- RangeSkewed lists
- SListSparse lists.
- SegmenttreeThis module is a very simple implementation of "segment trees".
- Store
- Terminal
- TrieGeneric functorized trie data structure.
- UnicodeUnicode utilities
- Unicodetable
- UnionfindAn imperative implementation of partitions via Union-Find
Library coq-core.config
Library coq-core.coqworkmgrapi
Library coq-core.engine
- EConstr
- Evar_kindsThe kinds of existential variable
- EvarutilThis module provides useful higher-level functions for evar manipulation.
- EvdThis 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- Evarutilor- Proofviewinstead.
- FtacticThis 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.
- Logic_monadThis 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.
- NamegenThis file features facilities to generate fresh names.
- NameopsIdentifiers and names
- ProofviewThis files defines the basic mechanism of proofs: the- proofviewtype is the state which tactics manipulate (a global state for existential variables, together with the list of goals), and the type- 'a tacticis the (abstract) type of tactics modifying the proof state and returning a value of type- 'a.
- Proofview_monadThis file defines the datatypes used as internal states by the tactic monad, and specialises the- Logic_monadto these types. It should not be used directly. Consider using- Proofviewinstead.
- TermopsThis file defines various utilities for term manipulation that are not needed in the kernel.
- UStateThis 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.
- UnivFlex
- UnivGen
- UnivMinim
- UnivNamesLocal universe name <-> level mapping
- UnivProblem
- UnivSubst
Library coq-core.gramlib
Library coq-core.interp
- AbbreviationAbbreviations.
- Constrexpr
- Constrexpr_opsConstrexpr_ops: utilities on- constr_expr
- ConstrexternTranslation of pattern, cases pattern, glob_constr and term into syntax trees for printing
- ConstrinternTranslation from front abstract syntax of term to untyped terms (glob_constr)
- Decls
- DumpglobThis file implements the Coq's- .globfile format, which provides information about the objects that are defined and referenced from a Coq file.
- Genintern
- Impargs
- Implicit_quantifiers
- ModinternModule internalization errors
- NotationNotations
- Notation_opsConstr default entries
- Notation_term- notation_constr
- NotationexternDeclaration of uninterpretation functions (i.e. printing rules) for notations
- NumTokNumbers in different forms: signed or unsigned, possibly with fractional part and exponent.
- Reserve
- Smartlocate- locate_global_with_aliaslocates global reference possibly following a notation if this notation has a role of aliasing; raise- Not_foundif not bound in the global env; raise a- UserErrorif bound to a syntactic def that does not denote a reference
- StdargBasic generic arguments.
Library coq-core.kernel
- CClosureLazy reduction.
- CPrimitives
- Constant_typing
- ConstrThis file defines the most important datatype of Coq, namely kernel terms, as well as a handful of generic manipulation functions.
- ContextThe modules defined below represent a local context as defined by Chapter 4 in the Reference Manual:
- Conv_oracle
- Conversion
- Cooking
- DeclarationsThis module defines the internal representation of global declarations. This includes global constants/axioms, mutual inductive definitions, modules and module types
- DeclareopsOperations concerning types in- Declarations:- constant_body,- mutual_inductive_body,- module_body...
- Discharge
- EntriesThis 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
- EnvironUnsafe 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.
- EsubstExplicit substitutions
- EvarThis module defines existential variables, which are isomorphic to- int. Nonetheless, casting from an- intto a variable is deemed unsafe, so that to keep track of such casts, one has to use the provided- unsafe_of_intfunction.
- Float64
- Float64_common
- GenlambdaIntermediate language used by both the VM and native.
- IndTyping
- Indtypes
- Inductive
- InferCumulativity
- Mod_subst
- Mod_typingMain functions for translating module entries
- Modops
- NamesThis 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:
- NativecodeThis 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.
- NativeconvThis module implements the conversion test by compiling to OCaml code
- NativelambdaThis file defines the lambda code generation phase of the native compiler
- NativelibThis file provides facilities to access OCaml compiler and dynamic linker, used by the native compiler.
- NativelibraryThis file implements separate compilation for libraries in the native compiler
- NativevaluesThis 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.
- OpaqueproofThis module implements the handling of opaque proof terms. Opaque proof terms are special since:
- Parray
- Primred
- RedFlagsDelta implies all consts (both global (= by- kernel_name) and local (= by- Relor- Var)), all evars, and letin's. Rem: reduction of a Rel/Var bound to a term is Delta, but reduction of a LetIn expression is Letin reduction
- ReductionNone of these functions do eta reduction
- RelevanceopsWe 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.
- Retroknowledge
- Safe_typing
- SectionKernel implementation of sections.
- Sorts
- Subtyping
- Term
- TransparentState
- Type_errorsType errors.- \label{typeerrors}
- Typeops
- UGraph
- UVars
- Uint63
- Univ
- Values
- Vars
- Vconv
- Vm
- Vmbytecodes
- Vmbytegen
- Vmemitcodes
- Vmerrors
- Vmlambda
- Vmopcodes
- Vmsymtable
- VmvaluesValues
Library coq-core.lib
- AcyclicGraphGraphs representing strict orders
- Aux_file
- CAst
- CDebug
- CErrorsThis modules implements basic manipulations of errors for use throughout Coq's code.
- CProfile
- CWarnings
- ControlGlobal control of Coq.
- CoqProject_file
- Core_plugins_findlib_compat
- DAstLazy AST node wrapper. Only used for- glob_constras of today.
- Deprecation
- EnvarsThis 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).
- Feedback
- FlagsGlobal options of the system.
- HookThis module centralizes the notions of hooks. Hooks are pointers that are to be set at runtime exactly once.
- InstrPlatform-specific Implementation of a global instruction counter.
- Interrupted
- Loc
- NewProfile
- ObjFile
- PpCoq document type.
- Pp_diffComputes 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.
- Rtree
- Spawn
- Stateid
- System
- UtilThis module contains numerous utility functions on strings, lists, arrays, etc.
- Xml_datatype
Library coq-core.library
- CoqlibIndirection between logical names and global references.
- GlobalThis 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.
- Globnames
- GoptionsThis module manages customization parameters at the vernacular level
- LibLib: record of operations, backtrack, low-level sections
- Libnames
- Libobject- Libobjectdeclares persistent objects, given with methods:
- Library_info
- NametabThis module contains the tables for globalization.
- Summary
Library coq-core.parsing
- CLexer
- ExtendEntry keys for constr notations
- G_constr
- G_prim
- Notation_gram
- Notgram_ops
- PcoqThe parser of Coq
- TokThe type of token for the Coq lexer and parser
Library coq-core.perf
- PerfGlobal CPU instruction counter.
Library coq-core.plugins
No module.
Library coq-core.pretyping
- Arguments_renaming
- Cases
- Cbv
- Coercion
- Coercionops
- Constr_matchingThis module implements pattern-matching on terms
- Detyping
- Evarconv
- Evardefine
- Evarsolve
- Find_subtermFinding subterms, possibly up to some unification function, possibly at some given occurrences
- GenargGeneric arguments used by the extension mechanisms of several Coq ASTs.
- GeninterpInterpretation functions for generic arguments and interpreted Ltac values.
- Gensubst
- GlobEnvType of environment extended with naming and ltac interpretation data
- Glob_ops
- Glob_termUntyped intermediate terms
- HeadsThis 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
- IndrecErrors related to recursors building
- InductiveopsThe following three functions are similar to the ones defined in Inductive, but they expect an env
- Keys
- LocusLocus : positions in hypotheses and goals
- LocusopsUtilities on or_var
- Ltac_pretype
- NativenormThis module implements normalization by evaluation to OCaml code
- Pattern
- Patternops
- Pretype_errors
- PretypingThis 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.
- ProgramA bunch of Coq constants used by Program
- ReductionopsReduction Functions.
- RetypingThis 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.
- Structures
- Tacred
- Typeclasses
- Typeclasses_errors
- TypingThis module provides the typing machine with existential variables and universes.
- Unification
- Vnorm
Library coq-core.printing
- GenprintEntry point for generic printers
- PpconstrThis module implements pretty-printers for constr_expr syntactic objects and their subcomponents.
- Ppextend
- Pputils
- PrinterThese are the entry points for printing terms, context, tac, ...
- Proof_diffs
Library coq-core.proofs
- ClenvThis file defines clausenv, which is a deprecated way to handle open terms in the proof engine. This API is legacy.
- Goal_select
- LogicLegacy proof engine. Do not use in newly written code.
- MiscprintPrinting of- intro_pattern
- Proof
- Proof_bullet
- RefineThe 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.
- TacmachOperations for handling terms under a local typing context.
- TactypesTactic-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.
Library coq-core.stm
- AsyncTaskQueue
- Dag
- Partac
- ProofBlockDelimiter
- Spawned
- Stmstate-transaction-machine interface
- Stmargs
- TQueue
- Vcs
- Vio_checking
- WorkerPool
Library coq-core.sysinit
- Coqargs
- CoqinitMain etry point to the sysinit component, all other modules are private.
- Coqloadpath
Library coq-core.tactics
- Abstract
- AutoThis files implements auto and related automation tactics
- AutorewriteThis files implements the autorewrite tactic.
- BtermdnDiscrimination nets with bounded depth.
- Cbn
- Class_tacticsThis files implements typeclasses eauto
- Contradiction
- DeclareScheme
- Dn
- EClause
- Eauto
- ElimEliminations tactics.
- ElimschemesInduction/recursion schemes
- Eqdecide
- EqschemesThis file builds schemes relative to equality inductive types
- Equality
- Evar_tactics
- Generalize
- GenredexprReduction expressions
- Hints
- HipatternHigh-order patterns
- Ind_tablesThis module provides support for registering inductive scheme builders, declaring schemes and generating schemes on demand
- Induction
- Inv
- Ppred
- RedexprInterpretation layer of redexprs such as hnf, cbv, etc.
- Redops
- RewriteTODO: document and clean me!
- Tacticals
- TacticsMain tactics defined in ML. This file is huge and should probably be split in more reasonable units at some point. Because of its size and age, the implementation features various styles and stages of the proof engine. This has to be uniformized someday.
Library coq-core.top_printers
- Top_printersPrinters for the ocaml toplevel.
Library coq-core.toplevel
- Ccompile
- ColorsInitializer color for output
- Common_compile
- Coqc
- Coqcargs
- CoqloopThe Coq toplevel loop.
- Coqrc
- CoqtopDefinition of custom toplevels.- init_extrais used to do custom initialization- runlaunches a custom toplevel.
- G_toplevel
- Load
- Memtrace_init
- Vernac
- Vio_compile
- WorkerLoop
Library coq-core.vernac
- Assumptions
- Attributes
- Auto_ind_declThis file is about the automatic generation of schemes about decidable equality,
- Canonical
- ClassesInstance declaration
- ComArguments
- ComAssumption
- ComCoercionClasses and coercions.
- ComDefinition
- ComExtraDeps
- ComFixpoint
- ComHints
- ComInductive
- ComPrimitive
- ComProgramFixpoint
- ComSearch
- ComTactic
- DebugHookLtac debugger interface; clients should register hooks to interact with their provided interface.
- DeclareThis module provides the functions to declare new variables, parameters, constants and inductive types in the global environment. It also updates some accesory tables such as- Nametab(name resolution),- Impargs, and- Notations.
- DeclareIndRegistering a mutual inductive definition together with its associated schemes
- DeclareUniv
- Declaremods
- EgramcoqMapping of grammar productions to camlp5 actions
- EgrammlMapping of grammar productions to camlp5 actions.
- Future
- G_proofs
- G_vernac
- HimsgThis module provides functions to explain the type errors.
- Indschemes
- LibraryThis module provides functions to load, open and save libraries. Libraries correspond to the subclass of modules that coincide with a file on disk (the ".vo" files). Libraries on the disk comes with checksums (obtained with the- Digestmodule), which are checked at loading time to prevent inconsistencies between files written at various dates.
- Loadpath* Load paths.
- Locality* Managing locality
- Metasyntax
- Mltop
- Opaques
- PpvernacThis module implements pretty-printers for vernac_expr syntactic objects and their subcomponents.
- PrettypA Pretty-Printer for the Calculus of Inductive Constructions.
- Printmod
- Proof_usingUtility code for section variables handling in Proof using...
- Pvernac
- RecLemmas
- Record
- RetrieveObl
- Search
- SynterpThis module implements the syntactic interpretation phase of vernacular commands. The main entry point is- synterp_control, which transforms a vernacexpr into a- vernac_control_entry.
- TopfmtConsole printing options
- Vernac_classifier
- Vernacentries
- Vernacexpr
- VernacextendVernacular Extension data
- Vernacinterp
- Vernacoptions
- Vernacprop
- Vernacstate
- VernactypesInterpretation of extended vernac phrases.
Library coq-core.vm
Library derive_plugin
Library extraction_plugin
Library firstorder_plugin
Library funind_plugin
Library ltac2_plugin
Library ltac_plugin
Library micromega_plugin
Library nsatz_plugin
Library number_string_notation_plugin
Library ring_plugin
Library rtauto_plugin
Library ssreflect_plugin
Library ssrmatching_plugin
Library tauto_plugin
Library tuto0_plugin
Library tuto1_plugin
Library tuto2_plugin
Library tuto3_plugin
Library zify_plugin
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  On This Page
  - 
        
          API
        
          
          - Library btauto_plugin
- Library cc_plugin
- Library coq-core.boot
- Library coq-core.clib
- Library coq-core.config
- Library coq-core.coqworkmgrapi
- Library coq-core.engine
- Library coq-core.gramlib
- Library coq-core.interp
- Library coq-core.kernel
- Library coq-core.lib
- Library coq-core.library
- Library coq-core.parsing
- Library coq-core.perf
- Library coq-core.plugins
- Library coq-core.pretyping
- Library coq-core.printing
- Library coq-core.proofs
- Library coq-core.stm
- Library coq-core.sysinit
- Library coq-core.tactics
- Library coq-core.top_printers
- Library coq-core.toplevel
- Library coq-core.vernac
- Library coq-core.vm
- Library derive_plugin
- Library extraction_plugin
- Library firstorder_plugin
- Library funind_plugin
- Library ltac2_plugin
- Library ltac_plugin
- Library micromega_plugin
- Library nsatz_plugin
- Library number_string_notation_plugin
- Library ring_plugin
- Library rtauto_plugin
- Library ssreflect_plugin
- Library ssrmatching_plugin
- Library tauto_plugin
- Library tuto0_plugin
- Library tuto1_plugin
- Library tuto2_plugin
- Library tuto3_plugin
- Library zify_plugin