package coq

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module TacticalsSource

Sourceexception FailError of int * Pp.t Lazy.t

A special exception for levels for the Fail tactic

Sourceval catch_failerror : Exninfo.iexn -> unit

Takes an exception and either raise it at the next level or do nothing.

Tacticals i.e. functions from tactics to tactics.

Sourcetype tactic = Evar.t Evd.sigma -> Evar.t list Evd.sigma
Sourceval tclIDTAC : tactic
Sourceval tclIDTAC_MESSAGE : Pp.t -> tactic
Sourceval tclORELSE0 : tactic -> tactic -> tactic
Sourceval tclORELSE : tactic -> tactic -> tactic
Sourceval tclTHEN : tactic -> tactic -> tactic
Sourceval tclTHENLIST : tactic list -> tactic
Sourceval tclTHEN_i : tactic -> (int -> tactic) -> tactic
Sourceval tclTHENFIRST : tactic -> tactic -> tactic
Sourceval tclTHENLAST : tactic -> tactic -> tactic
Sourceval tclTHENS : tactic -> tactic list -> tactic
Sourceval tclTHENSV : tactic -> tactic array -> tactic
Sourceval tclTHENSLASTn : tactic -> tactic -> tactic array -> tactic
Sourceval tclTHENSFIRSTn : tactic -> tactic array -> tactic -> tactic
Sourceval tclREPEAT : tactic -> tactic
Sourceval tclFIRST : tactic list -> tactic
Sourceval tclTRY : tactic -> tactic
Sourceval tclCOMPLETE : tactic -> tactic
Sourceval tclAT_LEAST_ONCE : tactic -> tactic
Sourceval tclFAIL : int -> Pp.t -> tactic
Sourceval tclFAIL_lazy : int -> Pp.t Lazy.t -> tactic
Sourceval tclDO : int -> tactic -> tactic
Sourceval tclPROGRESS : tactic -> tactic
Sourceval tclSHOWHYPS : tactic -> tactic
Sourceval tclTHENTRY : tactic -> tactic -> tactic
Sourceval tclMAP : ('a -> tactic) -> 'a list -> tactic
Tacticals applying to hypotheses
Sourceval onNthHypId : int -> (Names.Id.t -> tactic) -> tactic
Sourceval onNthHyp : int -> (EConstr.constr -> tactic) -> tactic
Sourceval onNthDecl : int -> (EConstr.named_declaration -> tactic) -> tactic
Sourceval onLastHypId : (Names.Id.t -> tactic) -> tactic
Sourceval onLastHyp : (EConstr.constr -> tactic) -> tactic
Sourceval onNLastHypsId : int -> (Names.Id.t list -> tactic) -> tactic
Sourceval onNLastHyps : int -> (EConstr.constr list -> tactic) -> tactic
Sourceval onNLastDecls : int -> (EConstr.named_context -> tactic) -> tactic
Sourceval nLastHypsId : int -> Goal.goal Evd.sigma -> Names.Id.t list
Sourceval nLastHyps : int -> Goal.goal Evd.sigma -> EConstr.constr list
Sourceval ifOnHyp : ((Names.Id.t * EConstr.types) -> bool) -> (Names.Id.t -> tactic) -> (Names.Id.t -> tactic) -> Names.Id.t -> tactic
Tacticals applying to goal components

A clause denotes occurrences and hypotheses in a goal; in particular, it can abstractly refer to the set of hypotheses independently of the effective contents of the current goal

Sourceval onAllHyps : (Names.Id.t -> tactic) -> tactic
Sourceval onAllHypsAndConcl : (Names.Id.t option -> tactic) -> tactic
Sourceval onClause : (Names.Id.t option -> tactic) -> Locus.clause -> tactic
Sourceval onClauseLR : (Names.Id.t option -> tactic) -> Locus.clause -> tactic
Elimination tacticals.
Sourceval get_and_check_or_and_pattern : ?loc:Loc.t -> Tactypes.delayed_open_constr Tactypes.or_and_intro_pattern_expr -> bool list array -> Tactypes.intro_patterns array

get_and_check_or_and_pattern loc pats branchsign returns an appropriate error message if |pats| <> |branchsign|; extends them if no pattern is given for let-ins in the case of a conjunctive pattern

Tolerate "" to mean a disjunctive pattern of any length

Sourceval compute_constructor_signatures : rec_flag:bool -> (Names.inductive * 'a) -> bool list array
Sourceval compute_induction_names : bool -> bool list array -> Tactypes.or_and_intro_pattern option -> Tactypes.intro_patterns array

Useful for as intro_pattern modifier

Sourceval elimination_sort_of_goal : Goal.goal Evd.sigma -> Sorts.family
Sourceval elimination_sort_of_hyp : Names.Id.t -> Goal.goal Evd.sigma -> Sorts.family
Sourceval elimination_sort_of_clause : Names.Id.t option -> Goal.goal Evd.sigma -> Sorts.family
Sourceval pf_with_evars : (Goal.goal Evd.sigma -> Evd.evar_map * 'a) -> ('a -> tactic) -> tactic
Sourceval pf_constr_of_global : Names.GlobRef.t -> (EConstr.constr -> tactic) -> tactic

Tacticals defined directly in term of Proofview

Sourcemodule New : sig ... end

The tacticals in the module New are the tactical of Ltac. Their semantics is an extension of the tacticals in this file for the multi-goal backtracking tactics. They do not have the same semantics as the similarly named tacticals in Proofview. The tactical of Proofview are used in the definition of the tacticals of Tacticals.New, but they are more atomic. In particular Tacticals.New.tclORELSE sees lack of progress as a failure, whereas Proofview.tclORELSE doesn't. Additionally every tactic which can catch failure (tclOR, tclORELSE, tclTRY, tclREPEAt, etc…) are run into each goal independently (failures and backtracks are localised to a given goal).

OCaml

Innovation. Community. Security.