Zulip Chat Archive
Stream: new members
Topic: Reverse unfold
Duncan Skahan (Oct 30 2024 at 17:07):
If I was to define e.g. let x := 37, is there a tactic that would change 37 to x in the goal?
Yaël Dillies (Oct 30 2024 at 17:08):
Does change x to 37 work? That would be my guess
Duncan Skahan (Oct 30 2024 at 17:11):
Yes. That looks useful.
Damiano Testa (Oct 30 2024 at 17:12):
You can probably also use set instead of let (and set ... with h to get the equality as an extra assumption).
Kyle Miller (Oct 30 2024 at 17:13):
example (a : Nat) : 37 = a := by
let x := 37
refold_let x
-- ⊢ x = a
Kyle Miller (Oct 30 2024 at 17:13):
What's change _ to _ @Yaël Dillies ?
Luigi Massacci (Oct 30 2024 at 17:13):
(you can also use set and add a with th_name clause after to get the theorem you want in the context)
Duncan Skahan (Oct 30 2024 at 17:13):
Actually this doesn't quite work for what I'm doing because my definition is a function and it is passed bound variables in the goal.
Yaël Dillies said:
Does
change x to 37work? That would be my guess
Yaël Dillies (Oct 30 2024 at 17:14):
Kyle Miller said:
What's
change _ to _Yaël Dillies ?
Did I dream the syntax? I definitely remember a change _ to _ or change _ with _ syntax (maybe in Lean 3?) that would target a subexpression rather than the entire goal
Kyle Miller (Oct 30 2024 at 17:16):
Yes, you seem to be dreaming :-) Lean 3 did have change _ with _ though, and there's an issue tracking it's non-existence: lean4#5116
Last updated: May 02 2025 at 03:31 UTC