(************************************************************************) (* * The Rocq Prover / The Rocq Development Team *) (* v * Copyright INRIA, CNRS and contributors *) (* <O___,, * (see version control and CREDITS file for authors & dates) *) (* \VV/ **************************************************************) (* // * This file is distributed under the terms of the *) (* * GNU Lesser General Public License Version 2.1 *) (* * (see LICENSE file for the text of the license) *) (************************************************************************)
Ltac2 @ external destruct : evar_flag -> induction_clause list ->
constr_with_bindings option -> unit := "rocq-runtime.plugins.ltac2""tac_destruct".
Ltac2 @ external induction : evar_flag -> induction_clause list ->
constr_with_bindings option -> unit := "rocq-runtime.plugins.ltac2""tac_induction".
Ltac2 @external exfalso : unit -> unit := "rocq-runtime.plugins.ltac2""tac_exfalso".
(** Constructors for reduction/expansion strategies *)
ModuleRed.
Ltac2 Type t.
(** βιζ-reduction of the _head constant_ of a term. Fails if there is no
reducible head constant. *)
Ltac2 @external red : t := "rocq-runtime.plugins.ltac2""red".
(** Full βδιζ-reduction the head of a term. Does not recurse into subterms. *)
Ltac2 @external hnf : t := "rocq-runtime.plugins.ltac2""hnf".
(** Strong normalization except two key differences:
Only the following [red_flags] are relevant: [head], [delta]. *)
Ltac2 @external simpl : red_flags -> (pattern * occurrences) option -> t := "rocq-runtime.plugins.ltac2""simpl".
(** Full normalization using provided reduction flags by first evaluating the headoftheexpressionintoweak-headnormalformin_call-by-value_order. Onceaweak-headnormalformisobtained,subtermsarerecursivelyreduced
using the same strategy. *)
Ltac2 @external cbv : red_flags -> t := "rocq-runtime.plugins.ltac2""cbv".
(** [cbn] was intended to be a more principled, faster and more predictable replacementfor[simpl].Themaindifferenceisthatcbnmayunfoldconstants evenwhentheycannotbereusedinrecursivecalls.Certainmodifiersarealso nottreatedthesame.SeetherespectiveLtac1tacticdocumentationformore details.Setting[Debug"RAKAM"]makes[cbn]printvariousdebugging
information.. *)
Ltac2 @external cbn : red_flags -> t := "rocq-runtime.plugins.ltac2""cbn".
(** Full normalization using provided reduction flags by first evaluating the headoftheexpressionintoweak-headnormalformin_call-by-need_order. Onceaweak-headnormalformisobtained,subtermsarerecursivelyreduced
using the same strategy. *)
Ltac2 @external lazy : red_flags -> t := "rocq-runtime.plugins.ltac2""lazy".
(** Applies delta-reduction to the constants specified by each [reference * occurrences]andthenreducestoβιζ-normalform.Usethegeneralreductions
if you want to only apply the δ rule, for example [cbv] with [delta]. *)
Ltac2 @external unfold : (reference * occurrences) list -> t := "rocq-runtime.plugins.ltac2""unfold".
(** First, reduces each [constr] using [red]. Then, every occurrence of the
resulting terms will be replaced by its associated [constr]. *)
Ltac2 @external fold : constr list -> t := "rocq-runtime.plugins.ltac2""fold".
(** Performs beta-expansion (the inverse of beta-reduction). The [constr]s mustbefreesubtermsinthesubjectofreduction.Theexpansionisdoneby:
3. Applying the abstracted term to the [constr]s *)
Ltac2 @external pattern : (constr * occurrences) list -> t := "rocq-runtime.plugins.ltac2""pattern".
(** Optimized _call-by-value_ evaluation on a bytecode-based virtual machine. Thisalgorithmisdramaticallymoreefficientthanthealgorithmusedfor [cbv],butitcannotbefine-tuned.Itisespeciallyusefulforfull evaluationofalgebraicobjects.Thisincludesthecaseofreflection-based
tactics. *)
Ltac2 @external vm : (pattern * occurrences) option -> t := "rocq-runtime.plugins.ltac2""vm".
(** Evaluates the goal by compilation to OCaml. Depending on the configuration,itcaneitherdefaultto[vm],recompiledependenciesorfail duetosomemissingprecompileddependencies.Seethe[native-compiler]option
for details. *)
Ltac2 @external native : (pattern * occurrences) option -> t := "rocq-runtime.plugins.ltac2""native". EndRed.
Ltac2 @ external reflexivity : unit -> unit := "rocq-runtime.plugins.ltac2""tac_reflexivity".
Ltac2 @ external assumption : unit -> unit := "rocq-runtime.plugins.ltac2""tac_assumption".
Ltac2 @ external eassumption : unit -> unit := "rocq-runtime.plugins.ltac2""tac_eassumption".
Ltac2 @ external transitivity : constr -> unit := "rocq-runtime.plugins.ltac2""tac_transitivity".
Ltac2 @ external etransitivity : unit -> unit := "rocq-runtime.plugins.ltac2""tac_etransitivity".
Ltac2 @ external cut : constr -> unit := "rocq-runtime.plugins.ltac2""tac_cut".
Ltac2 @ external left : evar_flag -> bindings -> unit := "rocq-runtime.plugins.ltac2""tac_left".
Ltac2 @ external right : evar_flag -> bindings -> unit := "rocq-runtime.plugins.ltac2""tac_right".
Ltac2 @ external autorewrite : bool -> (unit -> unit) option -> ident list -> clause -> unit := "rocq-runtime.plugins.ltac2""tac_autorewrite".
Ltac2 @ external subst : ident list -> unit := "rocq-runtime.plugins.ltac2""tac_subst".
Ltac2 @ external subst_all : unit -> unit := "rocq-runtime.plugins.ltac2""tac_substall".
(** auto *)
Ltac2 Type debug := [ Off | Info | Debug ].
Ltac2 Type strategy := [ BFS | DFS ].
Ltac2 @ external trivial : debug -> reference list -> ident list option -> unit := "rocq-runtime.plugins.ltac2""tac_trivial".
Ltac2 @ external auto : debug -> int option -> reference list -> ident list option -> unit := "rocq-runtime.plugins.ltac2""tac_auto".
Ltac2 @ external eauto : debug -> int option -> reference list -> ident list option -> unit := "rocq-runtime.plugins.ltac2""tac_eauto".
Ltac2 @ external typeclasses_eauto : strategy option -> int option -> ident list option -> unit := "rocq-runtime.plugins.ltac2""tac_typeclasses_eauto".
Ltac2 @ external resolve_tc : constr -> unit := "rocq-runtime.plugins.ltac2""tac_resolve_tc". (** Resolve the existential variables appearing in the constr whosetypesaretypeclasses. Failifanyofthemcannotberesolved.
Does not focus. *)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.