This PR adds support for interactivity to the combined "try this" messages that were introduced in #9966. In doing so, it moves the link to apply a suggestion to a separate `[apply]` button in front of the suggestion. Hints with diffs remain unchanged, as they did not previously support interacting with terms in the diff, either. <img width="379" height="256" alt="Suggestion with interactive message" src="https://github.com/user-attachments/assets/7838ebf6-0613-46e7-bc88-468a05acbf51" />
21 lines
444 B
Text
21 lines
444 B
Text
inductive Aexp where
|
|
| val : Int → Aexp
|
|
| plus : Aexp → Aexp → Aexp
|
|
|
|
@[simp]
|
|
def asimp_const : Aexp -> Aexp
|
|
| .val x => .val x
|
|
| .plus x y => .plus x y
|
|
|
|
@[simp]
|
|
def optimal' (a : Aexp) : Prop :=
|
|
optimal' a ∧ True
|
|
inductive_fixpoint
|
|
|
|
/--
|
|
info: Try this:
|
|
[apply] simp_all only [asimp_const, reduceCtorEq]
|
|
-/
|
|
#guard_msgs in
|
|
example (x y : Aexp) (k : Int) (h : asimp_const (.val k) = x.plus y) : optimal' x := by
|
|
simp_all?
|