Zulip Chat Archive
Stream: lean4
Topic: Extract type and value from name for proof
Thomas Murrills (Mar 03 2023 at 00:45):
If I want to read off the type and proof from a theorem, I can do that using getConstInfo, then extract the .type and value?. Is this the best way to do it when constructing a proof on the meta level? My intuition is that axioms should also be usable to construct a proof, but they don't seem to have a value.
Eric Wieser (Mar 03 2023 at 00:47):
You shouldn't be using the proof of the theorem, you should refer to it by name
Thomas Murrills (Mar 03 2023 at 00:50):
Ah, via .const?
Kyle Miller (Mar 03 2023 at 00:51):
Yeah, but it seems like it's usually written as mkConst (like in mkConst ``propext []). There are a number of helper functions for it to fill in universe metavariables too.
Kyle Miller (Mar 03 2023 at 00:52):
like mkConstWithFreshMVarLevels
Kyle Miller (Mar 03 2023 at 00:53):
There's also mkAppM, which makes sure everything fully typechecks (and fills in implicit arguments, well most of them, see the docstring) when you give it some arguments, like mkAppM ``Subsingleton.elim #[lhs, rhs]
Thomas Murrills (Mar 03 2023 at 00:55):
Ah, I see, thanks! (I saw that I had a ConstantInfo and immediately forgot all about .const and friends, asking myself “how do I use this??” 🙃 But I didn’t know about the universe mvar helpers, that’s very useful!)
Jannis Limperg (Mar 03 2023 at 09:53):
Kyle Miller said:
it seems like it's usually written as
mkConst
This is a relic from the dark days before @[computed_field], when the Expr constructors were forbidden. Now .const is again the preferred spelling.
Last updated: May 02 2025 at 03:31 UTC