Module Ssreflect_plugin.Ssrelim

type elim_what =
| EConstr of Ssrast.ssrhyp list * Ssrmatching_plugin.Ssrmatching.occ * EConstr.constr
| EGen of (Ssrast.ssrhyp list option * Ssrmatching_plugin.Ssrmatching.occ) * Ssrmatching_plugin.Ssrmatching.cpattern
val ssrelim : ?⁠is_case:bool -> ((Ssrast.ssrhyps option * Ssrast.ssrocc) * Ssrmatching_plugin.Ssrmatching.cpattern) list -> elim_what -> ?⁠elim:EConstr.constr -> Ssrast.ssripat option -> (?⁠seed:Names.Name.t list array -> elim_what -> Ssrast.ssripat option -> unit Proofview.tactic -> bool -> Ssrast.ssrhyp list -> unit Proofview.tactic) -> unit Proofview.tactic
val elimtac : EConstr.constr -> unit Proofview.tactic
val casetac : EConstr.constr -> (?⁠seed:Names.Name.t list array -> unit Proofview.tactic -> unit Proofview.tactic) -> unit Proofview.tactic
val is_injection_case : Environ.env -> Evd.evar_map -> EConstr.t -> bool
val perform_injection : EConstr.constr -> unit Proofview.tactic
val ssrscase_or_inj_tac : EConstr.constr -> unit Proofview.tactic