Syntax suggestion:
tac : [ H 1 H 2 | x y Hx Hy H | ...].
applies tac and then destruct each new hyp with the corresponding intropattern.
Seems to need ocaml code because tactic notation are not suitable.
how to deal with several subgoals? Is it possible to split a disjunctive intropattern for each subgoal?
I find "tac1 ; { tac2 }." is nice because it resembles "tac ; [ tac2 ]."
but curly braces are already over-overloaded.
tac1 ; [[ tac2 ]].
tac1 ;; tac2. tac1 ;<; tac2.
We don't need the 4 variants anymore (ltac2 is fast enough to avoid the list variants).
tac /sn. may clash with ssreflect.
we need to have vaiants
/s /n /g /r and all interesting combinations.
make possible the fact to decide to use an arg name only if it is an id.
typically: "h_eq_add_add" is not so interesting
idea yet to be refined: at last level if seeing a hyp name then use it else don't generate the last level.
Typically "h_add_x_y_z" would maybe be better as "h_add_x_y__z"
- which args to ignore
- Auto ignore implicit args
- make the new "as" implementable?