Zulip Chat Archive

Stream: general

Topic: Reduction of goal


Jasmin Blanchette (Jul 07 2020 at 15:30):

Suppose I have a goal like ((Ss_fst, Ss_snd).fst, (Ss_fst, Ss_snd).snd) ⇒ ((Ss'_fst, Ss'_snd).fst, (Ss'_fst, Ss'_snd).snd) and I just want to automatically reduce it, i.e., beta-delta-etc.-reduce it. I have the impression that Lean (and Coq) discourage that, preferring a lazy approach, but sometimes it seems useful, and in a teaching context I can see many uses for that. Going outside the goal, writing

#reduce (Ss_fst Ss_snd Ss'_fst Ss'_snd, ((Ss_fst, Ss_snd).fst, (Ss_fst, Ss_snd).snd)  ((Ss'_fst, Ss'_snd).fst, (Ss'_fst, Ss'_snd).snd))

and then doing a show with the result seems like a roundabout solution. Is there a more direct approach? If not, why not?

Johan Commelin (Jul 07 2020 at 15:31):

dsimp

Jasmin Blanchette (Jul 07 2020 at 15:34):

Ah!! That's what dsimp is for! I think the simp part mislead me there. Thanks a lot. :)

Kevin Buzzard (Jul 07 2020 at 17:46):

Maybe simp only [] would work too


Last updated: Dec 20 2023 at 11:08 UTC