Zulip Chat Archive
Stream: lean4
Topic: elaborating from InfoTree
Patrick Massot (Jan 17 2023 at 15:54):
Assume I have a docs4#Lean.Elab.TacticInfo object info
and I get some Syntax object derived from part of info.stx
. Can I elaborate this to an Expr
?
Patrick Massot (Jan 17 2023 at 17:29):
@Sebastian Ullrich do you know about the above question? Is there a magic monad lifting or hidden state to save me or should a I somehow recreate a TermElabM
context by hand?
Wojciech Nawrocki (Jan 17 2023 at 17:49):
@Patrick Massot what are you trying to do using this? The syntax for a TacticInfo
is generally going to be a tactic which you could evaluate with evalTactic
. But you should generally not have to do this.
Patrick Massot (Jan 17 2023 at 17:54):
evalTactic
is even worse than elabTerm
from this point of view since it needs to be in the TacticM
monad, right?
Patrick Massot (Jan 17 2023 at 17:54):
The context is trying to translate a tactic proof into natural language.
Sebastian Ullrich (Jan 17 2023 at 17:55):
So there's a syntactic term embedded in info.stx
and you want to (re-)elaborate it?
Wojciech Nawrocki (Jan 17 2023 at 17:56):
What Expr
do you expect to get out of this? The code of the tactic metaprogram being run? The target / goal type? Something else?
Patrick Massot (Jan 17 2023 at 17:56):
Yes. It would be even better to access the result of the prior elaboration but I guess this isn't recorded anywhere.
Sebastian Ullrich (Jan 17 2023 at 17:57):
It should be, there should be a TermInfo
node nested in the tactic node
Sebastian Ullrich (Jan 17 2023 at 17:57):
Are we talking about a set of specific tactics?
Patrick Massot (Jan 17 2023 at 17:59):
For instance if you have in you proof apply my_quantified_assumption my_object
then I want the expression corresponding to my_quantified_assumption my_object
.
Patrick Massot (Jan 17 2023 at 18:00):
Sebastian Ullrich said:
It should be, there should be a
TermInfo
node nested in the tactic node
Oh indeed!
Patrick Massot (Jan 17 2023 at 18:00):
I didn't open enough nested stuff!
Patrick Massot (Jan 17 2023 at 18:00):
So this was a stupid question, I'm sorry.
Sebastian Ullrich (Jan 17 2023 at 18:01):
That's the advantage of using Emacs, I don't have tree nodes I can open to begin with
Wojciech Nawrocki (Jan 17 2023 at 18:05):
trace.Elab.info
is not currently collapsible however! It shows the whole thing at once.
Patrick Massot (Jan 17 2023 at 18:06):
Actually I don't know how to get a nice tree in VSCode. We have code dumping xml that I then open in Firefox.
Patrick Massot (Jan 17 2023 at 18:06):
Can you display collapsible InfoTrees in VSCode?
Gabriel Ebner (Jan 17 2023 at 18:07):
See also https://github.com/leanprover/lean4/issues/1678 The built-in visualization options aren't great yet.
Patrick Massot (Jan 17 2023 at 18:11):
Thanks Wojciech and Sebastian anyway. I should be unstuck now.
Last updated: Dec 20 2023 at 11:08 UTC