Open fpvandoorn opened 2 weeks ago
Just crosslinking my work in that direction at https://github.com/leanprover/lean4/pull/4177.
You describe a fine goal; what I don't know though if there is going to be a simple catch-all solution, or if improved usability here is going to be a game of whack a mole where we fix different ”error conditions” one after another.
I expect that this will be a bit of whack-a-mole (see Implementation speculation in my first message). If it works in the 90% most common cases, that is already very helpful.
Proposal
The goal of this RFC is to have the tactic state not change too much while typing. This is a complaint I have heard more than once from beginners: "The goal state is jumping around too much". You can pause the goal state, but this is a bit of an inconvenient workaround.
Examples with current behavior:
Desired behavior: All examples should show the tactic state that is shown in examples 3 and 5.
User Experience: This should be a improvement for all users.
Beneficiaries: Especially new users, slow typers. But can benefit anyone that tries to apply a tactic, see that it errors, and wants to easily see the previous tactic state.
Maintainability: Should not significantly impact maintainability.
Implementation speculation: Hopefully the first example can be fixed by having a rule that any non-existent tactic still shows the tactic state from the start of the line. And maybe example 2 can be fixed by having a parse error do the same? Example 4 can probably be fixed in the implementation of
exact
(it works withapply
, see example 5).Community Feedback
Zulip
Impact
Add :+1: to issues you consider important. If others benefit from the changes in this proposal being added, please ask them to add :+1: to it.