When calling the above tactics, Ltac2 does not always recognize which tactic I am calling. For instance, if I want to call the first tactic and just write
Tactic name s.
for some s that makes sense in a goal, I receive an error that there are more arguments needed (as it assumes that I am calling the second tactic, and I think this happens because it is the last one that is compiled).
Is it possible to circumvent this without changing the names of the tactics?
Then now both tactics seem to work (I believe the second line from above is an identifier). I have seen this done a few times in the Ltac2.Notations file.
However, the above works if I have a tactic with no arguments/variables. How can I extend this to tactics that have variables?
Moreover, the above seems to be really sensitive to writing the identifiers and the tactics with a lower case letter. Is it possible to extend this to capital letters for the tactic names?
At least some of your symptoms (e.g. those in the first post) are consistent with a parsing problem — it might be too hard for the parser to distinguish the different tactics, since the distinction must happen “locally”, not by looking at the whole input:
I don’t know if Ltac2 notations have the same automated left-factoring of other notations.