package coq
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
-
API
- Library btauto_plugin
- Library cc_plugin
- 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.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 coqide-server.core
- Library coqide-server.protocol
- Library derive_plugin
- Library extraction_plugin
- Library firstorder_plugin
- Library float_syntax_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 ssrsearch_plugin
- Library tauto_plugin
- Library tuto0_plugin
- Library tuto1_plugin
- Library tuto2_plugin
- Library tuto3_plugin
- Library zify_plugin
Formal proof management system
Install
dune-project
Dependency
Authors
Maintainers
Sources
coq-8.14.0.tar.gz
sha256=b1501d686c21836302191ae30f610cca57fb309214c126518ca009363ad2cd3c
doc/index.html
coq
API
Library btauto_plugin
Library cc_plugin
Library coq-core.clib
CArrayCEphemeronCListCMapCObjCPathCSetCSigMissing pervasive types from OCaml stdlibCStringCThreadCUnixDiff2An implementation of Eugene Myers' O(ND) Difference Algorithm[1]. This implementation is a port of util.lcs module of Gauche Scheme interpreter.DynDynamically typed valuesExninfoAdditional information worn by exceptions.HMapHashconsGeneric hash-consing.HashsetAdapted from Damien Doligez, projet Para, INRIA Rocquencourt, OCaml stdlib.HeapHeapsIStreamIntA native integer module with usual utility functions.MinisysMinisys 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.mliMonadCombinators on monadic computations.OptionModule implementing basic combinators for OCaml option type. It tries follow closely the style of OCaml standard library.OrderedTypePredicateInfinite sets over a chosenOrderedType.RangeSkewed listsSegmenttreeThis module is a very simple implementation of "segment trees".StoreTerminalTrieGeneric functorized trie data structure.UnicodeUnicode utilitiesUnicodetableUnicode tables generated using UUCD.UnionfindAn imperative implementation of partitions via Union-Find
Library coq-core.config
Library coq-core.engine
EConstrEvar_kindsThe kinds of existential variableEvarutilThis 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 usingEvarutil,SigmaorProofviewinstead.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 namesProofviewThis files defines the basic mechanism of proofs: theproofviewtype 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 theLogic_monadto these types. It should not be used directly. Consider usingProofviewinstead.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 inEvd. Consider using higher-level primitives when needed.UnivGenSide-effecting functions creating new universe levels.UnivMinimUnivNamesLocal universe name <-> level mappingUnivProblemUnivSubst
Library coq-core.gramlib
Library coq-core.interp
ConstrexprConstrexpr_opsConstrexpr_ops: utilities onconstr_exprConstrexternTranslation of pattern, cases pattern, glob_constr and term into syntax trees for printingConstrinternTranslation from front abstract syntax of term to untyped terms (glob_constr)DeclsDeprecationDumpglobGeninternImpargsImplicit_quantifiersModinternModule internalization errorsNotationNotationsNotation_opsNotation_termnotation_constrNumTokNumbers in different forms: signed or unsigned, possibly with fractional part and exponent.ReserveSmartlocatelocate_global_with_aliaslocates global reference possibly following a notation if this notation has a role of aliasing; raiseNot_foundif not bound in the global env; raise aUserErrorif bound to a syntactic def that does not denote a referenceStdargBasic generic arguments.Syntax_defSyntactic definitions.
Library coq-core.kernel
CClosureCPrimitivesConstrThis 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_oracleCookingDeclarationsThis module defines the internal representation of global declarations. This includes global constants/axioms, mutual inductive definitions, modules and module typesDeclareopsOperations concerning types inDeclarations:constant_body,mutual_inductive_body,module_body...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 typesEnvironUnsafe 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 substitutionsEvarThis module defines existential variables, which are isomorphic toint. Nonetheless, casting from anintto a variable is deemed unsafe, so that to keep track of such casts, one has to use the providedunsafe_of_intfunction.Float64Float64_commonIndTypingIndtypesInductiveInferCumulativityMod_substMod_typingMain functions for translating module entriesModopsNamesThis 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 codeNativelambdaNativelibThis 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 compilerNativevaluesThis 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:ParrayPrimredReductionRelevanceopsWe 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.RetroknowledgeSafe_typingSectionKernel implementation of sections.SortsSubtypingTermTerm_typingTransparentStateType_errorsType errors.\label{typeerrors}TypeopsUGraphUint63UnivVarsVconvVmDebug printingVmbytecodesVmbytegenVmemitcodesVmlambdaVmopcodesVmsymtableVmvaluesValues
Library coq-core.lib
AcyclicGraphGraphs representing strict ordersAux_fileCAstCDebugCErrorsThis modules implements basic manipulations of errors for use throughout Coq's code.CProfileCWarningsControlGlobal control of Coq.CoqProject_fileDAstLazy AST node wrapper. Only used forglob_constras of today.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).ExploreFeedbackFlagsGlobal options of the system.FutureGenargGeneric arguments used by the extension mechanisms of several Coq ASTs.HookThis module centralizes the notions of hooks. Hooks are pointers that are to be set at runtime exactly once.LStreamExtending streams with a (non-canonical) location functionLocObjFilePpCoq 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.RtreeSpawnStateidSystemUtilXml_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 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.GlobnamesGoptionsThis module manages customization parameters at the vernacular levelLibLib: record of operations, backtrack, low-level sectionsLibnamesLibobjectLibobjectdeclares persistent objects, given with methods:NametabThis module contains the tables for globalization.SummaryThis module registers the declaration of global tables, which will be kept in synchronization during the various backtracks of the system.
Library coq-core.parsing
CLexerExtendEntry keys for constr notationsG_constrG_primNotation_gramNotgram_opsPcoqThe parser of CoqPpextendTokThe type of token for the Coq lexer and parser
Library coq-core.plugins
No module.
Library coq-core.pretyping
Arguments_renamingCasesCbvCoercionCoercionopsConstr_matchingThis module implements pattern-matching on termsDetypingEvarconvEvardefineEvarsolveFind_subtermFinding subterms, possibly up to some unification function, possibly at some given occurrencesGeninterpInterpretation functions for generic arguments and interpreted Ltac values.GlobEnvType of environment extended with naming and ltac interpretation dataGlob_opsGlob_termUntyped intermediate termsHeadsThis 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 headsIndrecErrors related to recursors buildingInductiveopsThe following three functions are similar to the ones defined in Inductive, but they expect an envKeysLocusLocus : positions in hypotheses and goalsLocusopsUtilities on or_varLtac_pretypeNativenormThis module implements normalization by evaluation to OCaml codePatternPatternopsPretype_errorsPretypingThis 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.ProgramA bunch of Coq constants used by ProgramReductionopsReduction 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.StructuresTacredTypeclassesTypeclasses_errorsTypingThis module provides the typing machine with existential variables and universes.UnificationVnorm
Library coq-core.printing
GenprintEntry point for generic printersPpconstrThis module implements pretty-printers for constr_expr syntactic objects and their subcomponents.PputilsPrinterThese 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. Most of the API here is legacy except for the evar-based clauses.Evar_refinerRefinement of existential variables.GoalThis module implements the abstract interface to goals. Most of the code here is useless and should be eventually removed. Consider usingProofview.Goalinstead.Goal_selectLogicLegacy proof engine. Do not use in newly written code.MiscprintPrinting ofintro_patternProofProof_bulletRefineThe 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
AsyncTaskQueueCoqworkmgrApiDagPartacProofBlockDelimiterSpawnedStmstate-transaction-machine interfaceStmargsTQueueVcsVio_checkingWorkerPool
Library coq-core.sysinit
CoqargsCoqinitMain etry point to the sysinit component, all other modules are private.CoqloadpathUsage
Library coq-core.tactics
AbstractAutoThis files implements auto and related automation tacticsAutorewriteThis files implements the autorewrite tactic.BtermdnDiscrimination nets with bounded depth.CbnClass_tacticsThis files implements typeclasses eautoContradictionDeclareSchemeDeclareUctxDnDnetGeneric 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.EautoElimEliminations tactics.ElimschemesInduction/recursion schemesEqdecideEqschemesThis file builds schemes relative to equality inductive typesEqualityGenredexprReduction expressionsHintsHipatternHigh-order patternsInd_tablesThis module provides support for registering inductive scheme builders, declaring schemes and generating schemes on demandInvPpredRedexprInterpretation layer of redexprs such as hnf, cbv, etc.RedopsTacticalsTacticsMain 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_dnetDnets on constr terms.
Library coq-core.top_printers
Top_printersPrinters for the ocaml toplevel.
Library coq-core.toplevel
CcompileCoqcCoqcargsCoqloopThe Coq toplevel loop.CoqrcCoqtopDefinition of custom toplevels.init_extrais used to do custom initializationrunlaunches a custom toplevel.G_toplevelVernacWorkerLoop
Library coq-core.vernac
AssumptionsAttributesAuto_ind_declThis file is about the automatic generation of schemes about decidable equality,CanonicalClassesInstance declarationComArgumentsComAssumptionComCoercionClasses and coercions.ComDefinitionComFixpointComHintsComInductiveComPrimitiveComProgramFixpointComSearchComTacticDebugHookDeclareThis 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.DeclareIndRegistering a mutual inductive definition together with its associated schemesDeclareUnivDeclaremodsEgramcoqMapping of grammar productions to camlp5 actionsEgrammlMapping of grammar productions to camlp5 actions.G_proofsG_vernacHimsgThis module provides functions to explain the type errors.IndschemesSee also Auto_ind_decl, Indrec, Eqscheme, Ind_tables, ...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 theDigestmodule), which are checked at loading time to prevent inconsistencies between files written at various dates.Loadpath* Load paths.Locality* Managing localityMetasyntaxMltopPpvernacThis module implements pretty-printers for vernac_expr syntactic objects and their subcomponents.PrettypA Pretty-Printer for the Calculus of Inductive Constructions.PrintmodProof_usingUtility code for section variables handling in Proof using...PvernacRecLemmasRecordRetrieveOblSearchTopfmtConsole printing optionsVernac_classifierVernacentriesVernacexprVernacextendVernacular Extension dataVernacinterpVernacpropVernacstate
Library coq-core.vm
Library coqide-server.core
Library coqide-server.protocol
Interface* Declarative part of the interface of CoqIde calls to CoqRichppThis module offers semi-structured pretty-printing.SerializeXml_lexerXml_parserXml Light ParserXml_printerXmlprotocol* Applicative part of the interface of CoqIde calls to Coq
Library derive_plugin
Library extraction_plugin
Library firstorder_plugin
Library float_syntax_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 ssrsearch_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.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.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 coqide-server.core
- Library coqide-server.protocol
- Library derive_plugin
- Library extraction_plugin
- Library firstorder_plugin
- Library float_syntax_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 ssrsearch_plugin
- Library tauto_plugin
- Library tuto0_plugin
- Library tuto1_plugin
- Library tuto2_plugin
- Library tuto3_plugin
- Library zify_plugin