package coq
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=b1501d686c21836302191ae30f610cca57fb309214c126518ca009363ad2cd3c
doc/ltac_plugin/Ltac_plugin/Tacenv/index.html
Module Ltac_plugin.Tacenv
Source
This module centralizes the various ways of registering tactics.
Tactic naming
Tactic notations
Type of tactic alias, used in the TacAlias
node.
type alias_tactic = {
alias_args : Names.Id.t list;
alias_body : Tacexpr.glob_tactic_expr;
alias_deprecation : Deprecation.t option;
}
Contents of a tactic notation
Register a tactic alias.
Recover the body of an alias. Raises an anomaly if it does not exist.
Coq tactic definitions
val register_ltac :
bool ->
bool ->
?deprecation:Deprecation.t ->
Names.Id.t ->
Tacexpr.glob_tactic_expr ->
unit
Register a new Ltac with the given name and body.
The first boolean indicates whether this is done from ML side, rather than Coq side. If the second boolean flag is set to true, then this is a local definition. It also puts the Ltac name in the nametab, so that it can be used unqualified.
val redefine_ltac :
bool ->
?deprecation:Deprecation.t ->
Names.KerName.t ->
Tacexpr.glob_tactic_expr ->
unit
Replace a Ltac with the given name and body. If the boolean flag is set to true, then this is a local redefinition.
Find a user-defined tactic by name. Raise Not_found
if it is absent.
Whether the tactic is defined from ML-side
The tactic deprecation notice, if any
type ltac_entry = {
tac_for_ml : bool;
(*Whether the tactic is defined from ML-side
*)tac_body : Tacexpr.glob_tactic_expr;
(*The current body of the tactic
*)tac_redef : Names.ModPath.t list;
(*List of modules redefining the tactic in reverse chronological order
*)tac_deprecation : Deprecation.t option;
(*Deprecation notice to be printed when the tactic is used
*)
}
Low-level access to all Ltac entries currently defined.
ML tactic extensions
Type of external tactics, used by TacML
.
Register an external tactic.
Get the named tactic. Raises a user error if it does not exist.