Zulip Chat Archive

Stream: new members

Topic: instantiating meta variales


Ken Roe (Jul 24 2018 at 19:06):

Is there a way to instantiate meta variables. Consider the theorem below:

theorem x:  x, x=5 :=
begin existsi _, ..
end

What should the ... be replaced with? In this theorem, we could just change the existsi _ but in more complex theorems, meta variables seem to appear in many other places and it would be nice to instantiate them.

Kenny Lau (Jul 24 2018 at 19:07):

what information would you provide in order for the metavariables to be instantiated?

Kenny Lau (Jul 24 2018 at 19:07):

replacing .. with refl would prove the theorem, but I don't know if that is what you want

Ken Roe (Jul 24 2018 at 19:22):

refl is not what I want. In Coq, you can provide a value using instantiate (meta_var := value). Is there something similar in Lean?

Patrick Massot (Jul 24 2018 at 19:23):

Doesn't this meta variable appear as a new goal?

Kevin Buzzard (Jul 24 2018 at 19:38):

existsi 7 will instantiate the metavariable. If you use a hole _ then you get a new goal ⊢ ℕ as Patrick says. You can make this the first goal with show ℕ or swap and then instantiate it with exact 7.

Ken Roe (Jul 24 2018 at 19:48):

I've seen those new goals as holes--that is how to fill in the holes. Can swap be used beyond the second goal or is there something similar to switch for example the first and third goal?

Patrick Massot (Jul 24 2018 at 19:49):

https://github.com/leanprover/mathlib/blob/master/tactic/interactive.lean#L159

Patrick Massot (Jul 24 2018 at 19:49):

as explained by Kevin

Patrick Massot (Jul 24 2018 at 19:50):

You can also use show if you have only one goal of that type


Last updated: Dec 20 2023 at 11:08 UTC