Zulip Chat Archive

Stream: general

Topic: tactic.to_expr


Edward Ayers (Dec 11 2018 at 17:33):

How can I get tactic.to_expr to not apply metavariables to implicit arguments? That is;

constant α : Type
axiom P :  {a:α}, a = a
run_cmd do
    p  tactic.resolve_name `P,
    e  tactic.to_expr p,
    t  tactic.infer_type e,
    trace t,  -- gives "?m_1 = ?m_1"
    pure ()

I really want to find a way of getting trace t to say ∀ {a:α}, a = a given only the declaration name P

Reid Barton (Dec 11 2018 at 18:22):

Do you need to go through to_expr?

Rob Lewis (Dec 11 2018 at 18:22):

e ← tactic.to_expr p.mk_explicit should work for this case.

Reid Barton (Dec 11 2018 at 18:25):

I was going to suggest

run_cmd do
    d  get_decl `P,
    trace d.type,
    pure ()

Rob Lewis (Dec 11 2018 at 18:42):

Yeah, that's better here, although I guess it depends on the real context.


Last updated: Dec 20 2023 at 11:08 UTC