package coq-core

  1. Overview
  2. Docs
The Coq Proof Assistant -- Core Binaries and Tools

Install

Dune Dependency

Authors

Maintainers

Sources

coq-8.20.1.tar.gz
md5=0cfaa70f569be9494d24c829e6555d46
sha512=8ee967c636b67b22a4f34115871d8f9b9114df309afc9ddf5f61275251088c6e21f6cf745811df75554d30f4cebb6682f23eeb2e88b771330c4b60ce3f6bf5e2

doc/coq-core.kernel/Mod_subst/index.html

Module Mod_substSource

Mod_subst
Delta resolver
Sourcetype delta_resolver

A delta_resolver maps name (constant, inductive, module_path) to canonical name

Sourceval empty_delta_resolver : delta_resolver
Sourceval add_inline_delta_resolver : Names.KerName.t -> (int * Constr.constr UVars.univ_abstracted option) -> delta_resolver -> delta_resolver
Sourceval add_delta_resolver : delta_resolver -> delta_resolver -> delta_resolver

Effect of a delta_resolver on a module path, on a kernel name

Build a constant whose canonical part is obtained via a resolver

Sourceval constant_of_delta_kn : delta_resolver -> Names.KerName.t -> Names.Constant.t

Same, but a 2nd resolver is tried if the 1st one had no effect

Same for inductive names

Sourceval inline_of_delta : int option -> delta_resolver -> (int * Names.KerName.t) list

Extract the set of inlined constant in the resolver

Does a delta_resolver contains a mp, a constant, an inductive ?

Sourceval mp_in_delta : Names.ModPath.t -> delta_resolver -> bool
Sourceval con_in_delta : Names.Constant.t -> delta_resolver -> bool
Sourceval mind_in_delta : Names.MutInd.t -> delta_resolver -> bool
Substitution
Sourcetype substitution
Sourceval empty_subst : substitution
Sourceval is_empty_subst : substitution -> bool

add_* add arg2/arg1{arg3} to the substitution with no sequential composition. Most often this is not what you want. For sequential composition, try join (map_mbid mp delta) subs *

map_* create a new substitution arg2/arg1{arg3}

sequential composition: substitute (join sub1 sub2) t = substitute sub2 (substitute sub1 t)

Sourceval subst_dom_delta_resolver : substitution -> delta_resolver -> delta_resolver

Apply the substitution on the domain of the resolver

Sourceval subst_codom_delta_resolver : substitution -> delta_resolver -> delta_resolver

Apply the substitution on the codomain of the resolver

Sourceval subst_dom_codom_delta_resolver : substitution -> delta_resolver -> delta_resolver

subst_mp sub mp guarantees that whenever the result of the substitution is structutally equal mp, it is equal by pointers as well ==

replace_mp_in_con mp mp' con replaces mp with mp' in con

subst_mps sub c performs the substitution sub on all kernel names appearing in c

Sourceval subst_mps_list : substitution list -> Constr.constr -> Constr.constr
OCaml

Innovation. Community. Security.