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