(************************************************************************) (* * 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) *) (************************************************************************)
(** This file contains conversion and unification. Bothcanadduniverseconstraints. Comparedtoconversion,unificationcanadditionalyinstantiateevars.
*)
(** Conversion **)
(** Controls if cumulativity Prop <= Set <= Type 1 <= ... <= Type i <= ... is used for conversion. *)
Ltac2 Type conv_flag := [
| CONV
| CUMUL
].
(** Conv returns true if both terms are convertible, in which case it updates the environmentwiththeuniversesconstraintsrequiredforthetermstobeconvertible. Itreturnsfalseifthetermsarenotconvertible. Itfailsifthereismorethanonegoalunderfocus.
(** It only unfolds constants that are transparent in the current state *)
Ltac2 conv_current : constr -> constr -> bool := fun c1 c2 => conv CONV (TransparentState.current ()) c1 c2.
(** All constants are considered as transparents when doing conversion *)
Ltac2 conv_full : constr -> constr -> bool := fun c1 c2 => conv CONV TransparentState.full c1 c2.
(** Unification **)
(** [unify ts c1 c2] unifies [c1] and [c2] (using Evarconv unification), which mayhavetheeffectofinstantiatingevars.Ifthe[c1]and[c2]cannotbe
unified, an [Internal] exception is raised. *)
Ltac2 @ external unify : TransparentState.t -> constr -> constr -> unit := "rocq-runtime.plugins.ltac2""evarconv_unify".
(** [unify_with_full_ts] is like [unify TransparentState.full]. *)
Ltac2 unify_with_full_ts : constr -> constr -> unit := fun c1 c2 =>
unify TransparentState.full c1 c2.
(** [unify_with_current_ts] is like [unify (TransparentState.current ())]. *)
Ltac2 unify_with_current_ts : constr -> constr -> unit := fun c1 c2 =>
unify (TransparentState.current ()) c1 c2.
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-06-10)
¤
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.