Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] How to get a constr_expr?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] How to get a constr_expr?


Chronological Thread 
  • From: Beta Ziliani <beta AT mpi-sws.org>
  • To: Coq Club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] How to get a constr_expr?
  • Date: Wed, 13 Apr 2016 15:30:05 -0300
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=beta AT mpi-sws.org; spf=Pass smtp.mailfrom=beta AT mpi-sws.org; spf=None smtp.helo=postmaster AT hera.mpi-klsb.mpg.de
  • Ironport-phdr: 9a23:UuKOIhQadol2uzq2+ezIn9tYRtpsv+yvbD5Q0YIujvd0So/mwa64YhON2/xhgRfzUJnB7Loc0qyN4/CmBDdLuM/Y+Fk5M7VyFDY9wf0MmAIhBMPXQWbaF9XNKxIAIcJZSVV+9Gu6O0UGUOz3ZlnVv2HgpWVKQka3CwN5K6zPF5LIiIzvjqbpq82VPl4D3WPkKZpJbzyI7izp/vEMhoVjLqtjgjDomVBvP9ps+GVzOFiIlAz97MrjtLRq8iBXpu5zv5UYCfayV+0CQLdZFDUrNXwurI2u7EGbDFjH2nxJeWIP2jFMHgKNuBr9R9L6tjbwnut7wiiTe8PsG+MaQzOnuo1mVBaguiYDNjc/8SmDgMFshYpeuBPkvANkhYnOb9fGZ7JFYqrBcIZCFiJ6VcFLWnkEW9vkYg==

Thanks PMP and Matthieu for their inputs. For the record, what I did in the end was to use uconstr:

TACTIC EXTEND munify_tac
| ["munify" uconstr(c) uconstr(c') ] -> ...
END

and to define the following function to understand the closed_glob_term coming from uconstr:

let understand env sigma {Glob_term.closure=closure;term=term} =
  let open Pretyping in
  let flags = all_no_fail_flags in
  let lvar = { empty_lvar with
               ltac_constrs = closure.Glob_term.typed;
               ltac_uconstrs = closure.Glob_term.untyped;
               ltac_idents = closure.Glob_term.idents;
             } in
  understand_ltac flags env sigma lvar WithoutTypeConstraint term

On Wed, Apr 13, 2016 at 12:48 PM, Beta Ziliani <beta AT mpi-sws.org> wrote:

I think this will work for me. I'm building the tactic to unify two arguments using Unicoq.

Written from mobile. Excuse my limited communication.

On Apr 13, 2016 12:23 PM, "Matthieu Sozeau" <mattam AT mattam.org> wrote:
Hi Beta,

  You should rather use uconstr and explicitely program which one is interpreted first and pass the sigmas around, merging is bad style. Maybe a hint about your example could help us.

Cheers,
-- Matthieu

On Wed, Apr 13, 2016 at 4:46 PM Beta Ziliani <bziliani AT famaf.unc.edu.ar> wrote:
On Wed, Apr 13, 2016 at 11:24 AM, Pierre-Marie Pédrot <pierre-marie.pedrot AT inria.fr> wrote:
On 13/04/2016 16:14, Beta Ziliani wrote:
> Mmm... Not quite. I have two open_constrs c and c' with sigmas s and s'.
> It looks like in s there are no evars from c' and viceversa :-(

This does not contradict what I said, quite the contrary. Each of your
evarmaps is an extension of the evarmap from the goal, but they are
incomparable between each other. Thus, a good generator of evar leaks.

You should try to merge them...


Sorry, meaning? I don't see anything like a merge for evars in evd.mli. Should I define my own?
 
PMP






Archive powered by MHonArc 2.6.18.

Top of Page