package coq
Formal proof management system
Install
Dune Dependency
Authors
Maintainers
Sources
coq-8.15.2.tar.gz
sha256=13a67c0a4559ae22e9765c8fdb88957b16c2b335a2d5f47e4d6d9b4b8b299926
doc/index.html
coq
API
Library btauto_plugin
Library cc_plugin
Library coq-core.boot
Library coq-core.clib
CArray
CEphemeron
CList
CMap
CObj
CSet
CSig
Missing pervasive types from OCaml stdlibCString
CThread
CUnix
Diff2
An implementation of Eugene Myers' O(ND) Difference Algorithm[1]. This implementation is a port of util.lcs module of Gauche Scheme interpreter.Dyn
Dynamically typed valuesExninfo
Additional information worn by exceptions.HMap
Hashcons
Generic hash-consing.Hashset
Adapted from Damien Doligez, projet Para, INRIA Rocquencourt, OCaml stdlib.Heap
HeapsIStream
Int
A native integer module with usual utility functions.Minisys
Minisys regroups some code that used to be in System. Unlike System, this module has no dependency and could be used for initial compilation target such as coqdep_boot. The functions here are still available in System thanks to an include. For the signature, look at the top of system.mliMonad
Combinators on monadic computations.NeList
Option
Module implementing basic combinators for OCaml option type. It tries follow closely the style of OCaml standard library.OrderedType
Predicate
Infinite sets over a chosenOrderedType
.Range
Skewed listsSegmenttree
This module is a very simple implementation of "segment trees".Store
Terminal
Trie
Generic functorized trie data structure.Unicode
Unicode utilitiesUnicodetable
Unicode tables generated using UUCD.Unionfind
An imperative implementation of partitions via Union-Find
Library coq-core.config
Library coq-core.engine
EConstr
Evar_kinds
The kinds of existential variableEvarutil
This module provides useful higher-level functions for evar manipulation.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 usingEvarutil
,Sigma
orProofview
instead.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.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.Namegen
This file features facilities to generate fresh names.Nameops
Identifiers and namesProofview
This files defines the basic mechanism of proofs: theproofview
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
.Proofview_monad
This file defines the datatypes used as internal states by the tactic monad, and specialises theLogic_monad
to these types. It should not be used directly. Consider usingProofview
instead.Termops
This file defines various utilities for term manipulation that are not needed in the kernel.UState
This file defines universe unification states which are part of evarmaps. Most of the API below is reexported inEvd
. Consider using higher-level primitives when needed.UnivGen
UnivMinim
UnivNames
Local universe name <-> level mappingUnivProblem
UnivSubst
Library coq-core.gramlib
Library coq-core.interp
Constrexpr
Constrexpr_ops
Constrexpr_ops: utilities onconstr_expr
Constrextern
Translation of pattern, cases pattern, glob_constr and term into syntax trees for printingConstrintern
Translation from front abstract syntax of term to untyped terms (glob_constr)Decls
Deprecation
Dumpglob
Genintern
Impargs
Implicit_quantifiers
Modintern
Module internalization errorsNotation
NotationsNotation_ops
Notation_term
notation_constr
NumTok
Numbers in different forms: signed or unsigned, possibly with fractional part and exponent.Reserve
Smartlocate
locate_global_with_alias
locates global reference possibly following a notation if this notation has a role of aliasing; raiseNot_found
if not bound in the global env; raise aUserError
if bound to a syntactic def that does not denote a referenceStdarg
Basic generic arguments.Syntax_def
Syntactic definitions.
Library coq-core.kernel
CClosure
CPrimitives
Constr
This file defines the most important datatype of Coq, namely kernel terms, as well as a handful of generic manipulation functions.Context
The modules defined below represent a local context as defined by Chapter 4 in the Reference Manual:Conv_oracle
Cooking
Declarations
This module defines the internal representation of global declarations. This includes global constants/axioms, mutual inductive definitions, modules and module typesDeclareops
Operations concerning types inDeclarations
:constant_body
,mutual_inductive_body
,module_body
...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 typesEnviron
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.Esubst
Explicit substitutionsEvar
This module defines existential variables, which are isomorphic toint
. Nonetheless, casting from anint
to a variable is deemed unsafe, so that to keep track of such casts, one has to use the providedunsafe_of_int
function.Float64
Float64_common
IndTyping
Indtypes
Inductive
InferCumulativity
Mod_subst
Mod_typing
Main functions for translating module entriesModops
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: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.Nativeconv
This module implements the conversion test by compiling to OCaml codeNativelambda
Nativelib
This file provides facilities to access OCaml compiler and dynamic linker, used by the native compiler.Nativelibrary
This file implements separate compilation for libraries in the native compilerNativevalues
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.Opaqueproof
This module implements the handling of opaque proof terms. Opaque proof terms are special since:Parray
Primred
Reduction
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.Retroknowledge
Safe_typing
Section
Kernel implementation of sections.Sorts
Subtyping
Term
Term_typing
TransparentState
Type_errors
Type errors.\label{typeerrors}
Typeops
UGraph
Uint63
Univ
Vars
Vconv
Vm
Debug printingVmbytecodes
Vmbytegen
Vmemitcodes
Vmlambda
Vmopcodes
Vmsymtable
Vmvalues
Values
Library coq-core.lib
AcyclicGraph
Graphs representing strict ordersAux_file
CAst
CDebug
CErrors
This modules implements basic manipulations of errors for use throughout Coq's code.CProfile
CWarnings
Control
Global control of Coq.CoqProject_file
DAst
Lazy AST node wrapper. Only used forglob_constr
as of today.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).Explore
Feedback
Flags
Global options of the system.Genarg
Generic arguments used by the extension mechanisms of several Coq ASTs.Hook
This module centralizes the notions of hooks. Hooks are pointers that are to be set at runtime exactly once.LStream
Extending streams with a (non-canonical) location functionLoc
ObjFile
Pp
Coq document type.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.Rtree
Spawn
Stateid
System
Util
Xml_datatype
Library coq-core.library
Coqlib
Indirection between logical names and global references.Global
This module defines the global environment of Coq. The functions below are exactly the same as the ones inSafe_typing
, operating on that global environment.add_*
functions perform name verification, i.e. check that the name given as argument match those provided bySafe_typing
.Globnames
Goptions
This module manages customization parameters at the vernacular levelLib
Lib: record of operations, backtrack, low-level sectionsLibnames
Libobject
Libobject
declares persistent objects, given with methods:Nametab
This module contains the tables for globalization.Summary
This module registers the declaration of global tables, which will be kept in synchronization during the various backtracks of the system.
Library coq-core.parsing
CLexer
Extend
Entry keys for constr notationsG_constr
G_prim
Notation_gram
Notgram_ops
Pcoq
The parser of CoqTok
The type of token for the Coq lexer and parser
Library coq-core.pretyping
Arguments_renaming
Cases
Cbv
Coercion
Coercionops
Constr_matching
This module implements pattern-matching on termsDetyping
Evarconv
Evardefine
Evarsolve
Find_subterm
Finding subterms, possibly up to some unification function, possibly at some given occurrencesGeninterp
Interpretation functions for generic arguments and interpreted Ltac values.GlobEnv
Type of environment extended with naming and ltac interpretation dataGlob_ops
Glob_term
Untyped intermediate termsHeads
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 headsIndrec
Errors related to recursors buildingInductiveops
The following three functions are similar to the ones defined in Inductive, but they expect an envKeys
Locus
Locus : positions in hypotheses and goalsLocusops
Utilities on or_varLtac_pretype
Nativenorm
This module implements normalization by evaluation to OCaml codePattern
Patternops
Pretype_errors
Pretyping
This file implements type inference. It mapsglob_constr
(i.e. untyped terms whose names are located) toconstr
. In particular, it drives complex pattern-matching problems ("match") into elementary ones, insertion of coercions and resolution of implicit arguments.Program
A bunch of Coq constants used by ProgramReductionops
Reduction Functions.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.Structures
Tacred
Typeclasses
Typeclasses_errors
Typing
This module provides the typing machine with existential variables and universes.Unification
Vnorm
Library coq-core.printing
Genprint
Entry point for generic printersPpconstr
This module implements pretty-printers for constr_expr syntactic objects and their subcomponents.Ppextend
Pputils
Printer
These are the entry points for printing terms, context, tac, ...Proof_diffs
Library coq-core.proofs
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.Evar_refiner
Refinement of existential variables.Goal
This module implements the abstract interface to goals. Most of the code here is useless and should be eventually removed. Consider usingProofview.Goal
instead.Goal_select
Logic
Legacy proof engine. Do not use in newly written code.Miscprint
Printing ofintro_pattern
Proof
Proof_bullet
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.Tacmach
Operations for handling terms under a local typing context.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.
Library coq-core.stm
AsyncTaskQueue
CoqworkmgrApi
Dag
Partac
ProofBlockDelimiter
Spawned
Stm
state-transaction-machine interfaceStmargs
TQueue
Vcs
Vio_checking
WorkerPool
Library coq-core.sysinit
Coqargs
Coqinit
Main etry point to the sysinit component, all other modules are private.Coqloadpath
Usage
Library coq-core.tactics
Abstract
Auto
This files implements auto and related automation tacticsAutorewrite
This files implements the autorewrite tactic.Btermdn
Discrimination nets with bounded depth.Cbn
Class_tactics
This files implements typeclasses eautoContradiction
DeclareScheme
Dn
Dnet
Generic discrimination net implementation over recursive types. This module implements a association data structure similar to tries but working on any types (not just lists). It is a term indexing datastructure, a generalization of the discrimination nets described for example in W.W.McCune, 1992, related also to generalized triesHinze, 2000
.Eauto
Elim
Eliminations tactics.Elimschemes
Induction/recursion schemesEqdecide
Eqschemes
This file builds schemes relative to equality inductive typesEquality
Genredexpr
Reduction expressionsHints
Hipattern
High-order patternsInd_tables
This module provides support for registering inductive scheme builders, declaring schemes and generating schemes on demandInv
Ppred
Redexpr
Interpretation layer of redexprs such as hnf, cbv, etc.Redops
Tacticals
Tactics
Main 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.Term_dnet
Dnets on constr terms.
Library coq-core.top_printers
Top_printers
Printers for the ocaml toplevel.
Library coq-core.toplevel
Ccompile
Coqc
Coqcargs
Coqloop
The Coq toplevel loop.Coqrc
Coqtop
Definition of custom toplevels.init_extra
is used to do custom initializationrun
launches a custom toplevel.G_toplevel
Vernac
WorkerLoop
Library coq-core.vernac
Assumptions
Attributes
Auto_ind_decl
This file is about the automatic generation of schemes about decidable equality,Canonical
Classes
Instance declarationComArguments
ComAssumption
ComCoercion
Classes and coercions.ComDefinition
ComFixpoint
ComHints
ComInductive
ComPrimitive
ComProgramFixpoint
ComSearch
ComTactic
DebugHook
Ltac debugger interface; clients should register hooks to interact with their provided interface.Declare
This module provides the functions to declare new variables, parameters, constants and inductive types in the global environment. It also updates some accesory tables such asNametab
(name resolution),Impargs
, andNotations
.DeclareInd
Registering a mutual inductive definition together with its associated schemesDeclareUctx
DeclareUniv
Declaremods
Egramcoq
Mapping of grammar productions to camlp5 actionsEgramml
Mapping of grammar productions to camlp5 actions.Future
G_proofs
G_vernac
Himsg
This module provides functions to explain the type errors.Indschemes
See also Auto_ind_decl, Indrec, Eqscheme, Ind_tables, ...Library
This 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 theDigest
module), which are checked at loading time to prevent inconsistencies between files written at various dates.Loadpath
* Load paths.Locality
* Managing localityMetasyntax
Adding a (constr) notation in the environmentMltop
Opaques
Ppvernac
This module implements pretty-printers for vernac_expr syntactic objects and their subcomponents.Prettyp
A Pretty-Printer for the Calculus of Inductive Constructions.Printmod
Proof_using
Utility code for section variables handling in Proof using...Pvernac
RecLemmas
Record
RetrieveObl
Search
Topfmt
Console printing optionsVernac_classifier
Vernacentries
Vernacexpr
Vernacextend
Vernacular Extension dataVernacinterp
Vernacprop
Vernacstate
Library coq-core.vm
Library coqide-server.core
Library coqide-server.protocol
Interface
* Declarative part of the interface of CoqIDE calls to CoqRichpp
This module offers semi-structured pretty-printing.Serialize
Xml_lexer
Xml_parser
Xml Light ParserXml_printer
Xmlprotocol
* Applicative part of the interface of CoqIDE calls to Coq
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.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.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 coqide-server.core
- Library coqide-server.protocol
- 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