Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Canonical structure inference gets lost with application

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Canonical structure inference gets lost with application


Chronological Thread 
  • From: Beta Ziliani <beta AT mpi-sws.org>
  • To: Coq Club <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] Canonical structure inference gets lost with application
  • Date: Sat, 23 Nov 2019 22:43:42 -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 juno.mpi-klsb.mpg.de
  • Ironport-phdr: 9a23:hpkmmheAWL+MFyrO7DMQ1X2tlGMj4u6mDksu8pMizoh2WeGdxcu/Yx7h7PlgxGXEQZ/co6odzbaP6Oa5BDNLusjJmUtBWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6OPn+FJLMgMSrzeCy/IDYbxlViDanbr5+MRu7oR/MusQWg4ZuJag8xxrUqXZUZupawn9lK0iOlBjm/Mew+5Bj8yVUu/0/8sNLTLv3caclQ7FGFToqK2866tHluhnFVguP+2ATUn4KnRpSAgjK9w/1U5HsuSbnrOV92S2aPcrrTbAoXDmp8qlmRAP0hCoBKjU063/chNBug61HoRKhvx1/zJDSYIGJL/p1Y6fRccoHSWZdQspdUipMCZ6+YYQSFeoMJelXr4f/qFUOoxWwBhSiCv3zxTJTnHD6wbc33v49HQ3a3gEtGc8FvnTOrNXyMacfSf24w7fUzTrZcvhZ2jb96IzJch87p/GMXK97fM3KxkYxCwPKlE6dqYn9PzOUz+gNqGaa7/F6WeKokW4npBh8rz6yzckvkonEnp8Zx17A+Clj3Yo4Ice0RU16bNK+H5ZcqzmWO5VqTs4mWW1luyY3xqcbtZO6fiUG0okryhzDZ/GBboOG+AjsVPyLLjd9nH9leKywhxK18UW4yO38S8+00FFQoipAitnMt2kB1x/X6sicUfRx5EKh2S6A1wzJ9+5LP1g4lavdK5E/3r49jocfvErHEyPshUn7iLWae0Yl9+Sy5Onrfq3qppqGOI91jgH+PL4umsu6AekgKQcBQXSb9v6n2b3m5U35QaxGjuY4k6nCqpzaIt4bpqGhDw9Pzokj8wq/Dyuh0NkAgXYHK0tFdAubgIjtJlHBO+v1Dey/glSpiDdk3erKPrznApXXL3jMiq3tfbhn6x0U9A1m5tdGr7lQF7tJdPn0Qwr6sMHSJh4/KQ29hej9XoZTzIQbDEiCHqbRAqLWsFaO56p7KeSQbacQoDe4MOc+ofn0gilqyhcmYaC10M5POziDFfN8LhDcOCK024pTISIxpgM7CdfSphiCXDpUPSzgXb864Xc+EIPjDoPYTMaomLPH0CrpRsQHNFADMUiFFDLTT6vBXv4NbCyIJco4yW4BTbnkUJA6kxa0u12jkuY1Hq/v4iQd8Knb+p1t/eSKzkM37T0xFNuGlWaXQDMskw==

Let me quickly point out at my papers on the matter. Indeed unbox f x ~ 1 triggers unification of unbox f x with 1. How to circumvent it, I will try something asap.

On Sat, Nov 23, 2019 at 9:38 PM Arthur Azevedo de Amorim <arthur.aa AT gmail.com> wrote:
Hi everyone,

I am trying to use canonical structures for an inference task, and I
am having trouble getting the unification engine to cooperate:

From Coq Require Import ssreflect ssrfun.
Set Implicit Arguments.

Record box T := Box { unbox : T }.
Canonical box_def T x := @Box T x.

(* I want Coq to try unify "unbox f ~ S" and "x ~ 0" and to conclude
that "f" must be "box_def S",
  since "box_def" is canonical. But the inference does not work... Maybe the
  first unification problem "unbox f x ~ 1" is triggering the
canonical structure inference directly? *)
Fail Definition infer :=
  (fun (f : box (nat -> nat)) (x : nat) & phant_id (unbox f x) 1 =>
(f, x)) _ _ id.

(* If "unbox" does not appear in head position, unification works just fine. *)
Definition infer :=
  (fun (f : nat -> nat) (x : box nat) & phant_id (f (unbox x)) 1 =>
(f, x)) _ _ id.

Is this behavior intentional? Can it be circumvented?


--
Arthur Azevedo de Amorim



Archive powered by MHonArc 2.6.18.

Top of Page