coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Jan-Oliver Kaiser <janno AT mpi-sws.org>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: [Coq-Club] match context and evars
- Date: Thu, 24 Nov 2016 15:59:16 +0100
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=janno AT mpi-sws.org; spf=Pass smtp.mailfrom=janno AT mpi-sws.org; spf=None smtp.helo=postmaster AT hera.mpi-klsb.mpg.de
- Ironport-phdr: 9a23:f0yfqBehh7PFLasE1V1muQ37lGMj4u6mDksu8pMizoh2WeGdxcu7ZB7h7PlgxGXEQZ/co6odzbGH6Oa6CCdeud6oizMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVrO+/7BpDdj9it1+C15pbffxhEiCCzbL52Ihi6txvdu80ZjYZjNqo61wfErGZPd+lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLeTQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgzoBOjUk8m/Yl9ZwgbpFrhyhuhJxwIDab4+aO/Vica3QZs8aSGhbU8pNSyBMDIGxYo0SBOQBJ+ZYqIz9qkMKoxSkAwmgHfrhyjtJhn/ow6I6yfkqHwTc0wwhBNIBrm7Up8jyOacQS++1yq/IzTLYYvNTwTf96ZHEcgsvoPGXR75wdtDRyUY2Gg7Dk16eqpTlMiuI2ukDt2WX9fdsWOa1h2I6sQ18rTyiy8ExgYfTnI0V0ErL9SBhzYY1O9K4TEl7bMakEJROrSGVLZF6QsY6Q2FpoSo6ybkGuYWgcyQQzZQn3xHfZ+aafIeW+h7jVeCRLilkhH99Zb6yiRK//VK9xuD4TMW4zUxGoyVBn9XUs3ACzR3T6syJSvtn+Ueh3C6C1wLJ5eFCJ0A0krHWK5s5wr4xj5YTqkrCHjTslEXxlq+WeV0o+vK05OT/frXmupicOpdohQH5K6Qig9CwAeAlMgcVRGWb4uS91Lj7/ULjWrlKj/s2krPYsJ/AP8gbqLS5UEdp1dNp4BGmSjyizd4wnH8dLVsDdgjNx9ziPEiLK/TlB9++hU6tmXFl3aaVEKfmB8DvJ36Gt7PgY7tno21VyRE+15gL5ZtSDLYpJeryH1Tur5rfFBBvYF/8+PruFNgojtBWYmmIGKLMaK4=
Hello,
I am trying to find occurrences of an instantiated existential variable in a bigger term. I have yet to find a way to make this work. I have, however, identified a rather peculiar minimal failing example of interaction between evars and match context:
(* Some notation to hide a the overhead associated with evars *)
Tactic Notation "exvar" constr(type) tactic(cnt) :=
let name := fresh in
evar (name : type);
let var := (eval unfold name in name) in
clear name;
cnt var.
Goal True.
exvar Type (fun t => unify t nat; match nat with context f [nat] => idtac "yay" end).
Fail exvar Type (fun t => unify t nat; match nat with context f [t] => idtac "yay" end).
Abort.
The first call to exvar is just a sanity check to see if the evar machinery works and the context pattern work as intended. The second call is what really baffles me. t is successfully unified with nat - but it cannot be found in the term nat. What is going on here?
Thanks,
Jan-Oliver
- [Coq-Club] match context and evars, Jan-Oliver Kaiser, 11/24/2016
- Re: [Coq-Club] match context and evars, Jonathan Leivent, 11/24/2016
- Re: [Coq-Club] match context and evars, Jan-Oliver Kaiser, 11/24/2016
- Re: [Coq-Club] match context and evars, Jonathan Leivent, 11/24/2016
- Re: [Coq-Club] match context and evars, Jan-Oliver Kaiser, 11/24/2016
- Re: [Coq-Club] match context and evars, Jonathan Leivent, 11/24/2016
Archive powered by MHonArc 2.6.18.