Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] implicit arguments

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] implicit arguments


Chronological Thread 
  • From: Jeremy Dawson <Jeremy.Dawson AT anu.edu.au>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] implicit arguments
  • Date: Sat, 12 Dec 2020 22:42:13 +1100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=anu.edu.au; dmarc=pass action=none header.from=anu.edu.au; dkim=pass header.d=anu.edu.au; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8SQmc3lEbz/JCkZsaSGVCVnIjWljZwb4S/CBtZ2rbhE=; b=crdBkTrhB2vb/xO0o2QtVZkihNle7dHczLl69dbIIXSEC4s4sj+LOgFtpVqWF0mUUgyGvoBLvKN2cpBEp4bodeoXnNrY8F7YpcOt/h5ENpLHd+tLd5HLTVKcZKGzYzz6NMJFq+Rq7bJx1ZBZgfqWKCEbq/dJgiK81UoIBmCK58tvHrg9oZtZpEas9Yi2qN3O02Dbb51dBdGSklAWk/A3bOkjQ/pdCQhPVBAMpKwN98nc9/5HsbSPvG5etZHzC4na1zCSuO0mF1sNK6wCmW39WzaH9jlrd9kZyl9a+4DjhmhAusxFoG6SG4FPxyPssT4i7uaQwEFWEG9zkYZSg8tj7g==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ACljoEImDLA7UGBtwJe/AwvCcRWb2/IXXC0sgiT96mrODV+4SnRxdAaASN3g+K0bbGSDjW5YeWSf7Hg/114IhGl3J+Y1xje64J5X64EwDBcSWV89R4BPRB4HOvSLxQ16gxkwF3e9SLo4GeVyXLVjm/KksG5Rc5L+lnhzB2c1gpAgUmc4LybTt1QhrjKK+m+wQ1zmVsnlfQvuHXUw9TdkdODmjaO/Z642g2jhKp8y+rVau4j0zRMCJ+8vRnPJZM5GyMRkbkU4vqNMsZMRwsYSTYfAacLeqIsC2mrWDDzdtGNb/5YS6VXPwl6x8BEvgTzEXVYp/EFiJQIMwNXf8ZMKoQ==
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=Jeremy.Dawson AT anu.edu.au; spf=Pass smtp.mailfrom=Jeremy.Dawson AT anu.edu.au; spf=Pass smtp.helo=postmaster AT AUS01-ME3-obe.outbound.protection.outlook.com
  • Ironport-phdr: 9a23:w3cwuBbIUpQKMNnL0/+zWH7/LSx+4OfEezUN459isYplN5qZrs+4bnLW6fgltlLVR4KTs6sC17OJ9fmwBSdZuN6oizMrSNR0TRgLiMEbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVrO+/7BpDdj9it1+C15pbffxhEiCCybL9vLhi6txjdu8oZjIdtN6o91wbCr2dVdehR2W5mP0+YkQzm5se38p5j8iBQtOwk+sVdT6j0fLk2QKJBAjg+PG87+MPktR/YTQuS/XQcSXkZkgBJAwfe8h73WIr6vzbguep83CmaOtD2TawxVD+/4apnVAPkhSEaPDM/7WrZiNF/jLhDrRy8uRJ/zY7aboKbOvVwfKzSYdwURWtOUctKSyxMAZmxY5cTA+cPP+tVqZT2qVsUrRu5AAmhHOfhxSFShnDo2K070/kqHw/c0w0uBNIOt3LUp8jyOakWT++11rfHzTDDbv9M1zny8obJcgsmofGKRr9/a8zRyVQ1Gwzbk1qQtJbpMCmI1ukUtWWQ8uVvW/61hWE9twFxviagxt0qioTRiY8Yyk3J+Dh2zYs7ONC0VUB2bNCqHZdNtiyXKYV7T988T2x2uCg21qEKtYC7ciUL1Zkr2QLTZfOZfoWM/h/vSuCcKip2inJifbKwnRey8U64x+39UMm0yldKoTBfntnCrHAA0QHY5MufSvZl8UqtxSyD2x3P5uxGO0w4iLbXJp07zrIti5YevlzPEyDylUnskaObdVko9vKq5unleLnqu4GQOoxyhwrjKKohgNa/Dv49MgUWX2iU5+C81Lr78EDlTrpEk+E6nrTAvJ7dKsoWqLe1AwhO3Yk98Rq/CCqm0MgDknkAMVJFfg+Ig5LxO1HUJ/D4EemwjEiwkDdqwPDGOKftApLQLnjflLfherF9601GxAUvytBf4opYCrAHIP3tRk/8rNPVAgMjPwCp3+rqCs9x2p4CVW+MGKOVLb7evFCQ6uIqOeaMZYsVuDjnK/gi4v7jlXs3lkEHfaa32JsWaGq0EPp8LESXenrshdEBHHwQsQo4UezmkkONXiNOZ3qoRa08+yk3CJi6AofbWoCtnLuB0T+nEZ1Rf2BKE0yDEXP1d4qfQPoMcyKTIsp5kjMeT7ShSokh1QuvtADg0bZnIPDUqWUkssfo08Ew7OnOnzkz8yZ1BoKTyTKjVWZxy0EFXTIzzehTqFNmzVHLhYp1mfFdBJp/7uxSVQESPJjBieF2Fpb7R1SSLZ+yVF+6T4D+UnkKRdUrzopWOhcvK5CZlhnGmhGSLfoQnr2PCoYz9/uGjXH3OoBwx2uA3bRz1gB6EPsKDnWvg+tEzyaWH5TAyh/LnqC3M6kQwWjE6TXblDfcjARjSAd1FJ79czUfa0/R8Yurz375F+brLJl8dwxLxIiFN7dAbcDvgRNeXvD/Nd/CYmW33WCtGRKPwbDKZ43vKTwQ

Hi Jim,

Thanks. I think the second reference was meant to be
https://coq.inria.fr/distrib/current/refman/language/core/definitions.html#grammar-token-term_let
but that is for a different use of :=

I've found a section on := used as in this case, it's at
https://coq.inria.fr/distrib/current/refman/language/extensions/implicit-arguments.html
under the heading Explicit applications
but it doesn't include info on when implicit argments are implicitly inserted

Whereabouts can I find information about what is happening here?

Thanks,

Jeremy

On 10/12/20 3:32 pm, Jim Fehrle wrote:
Check this section of the manual: https://coq.inria.fr/distrib/current/refman/language/extensions/arguments-command.html, that may have what you seek.  Still lots of things in the manual need improvement.

However, I'm not an expert on implicit arguments.

It's a bit hard to index :=, it's used in 77 places in the grammar.  A few non-alphabetic items appear in the general index, but what's there is probably woefully inadequate.  Here is one basic use:
http://localhost:63342/coq2/doc/sphinx/_build/html/language/core/definitions.html#grammar-token-term_let

Jim

On Wed, Dec 9, 2020 at 7:46 PM Jeremy Dawson <Jeremy.Dawson AT anu.edu.au <mailto:Jeremy.Dawson AT anu.edu.au>> wrote:


Hi,

I have tried to find out when implicit arguments are inserted.  Is this
in the documentation anywhere?

With a function

lja_dd_ord < About no_rpt_same.
no_rpt_same :
forall U : Type,
relationT U ->
forall (rules : list U -> U -> Type) (prems : U -> Type) (c0 : U),
derrec rules prems c0 -> Type

Arguments U, rules, prems, c0 are implicit

I find

lja_dd_ord < Check no_rpt_same seq_ord.
no_rpt_same seq_ord
      : forall (rules : list (srseq (PropF ?V)) -> srseq (PropF ?V)
-> Type)
          (prems0 : srseq (PropF ?V) -> Type) (c0 : srseq (PropF ?V)),
        derrec rules prems0 c0 -> Type

which is as I expected (as a matter of fact, I can't find this
documented either, but I've discovered from experience that implicit
arguments (non-maximal) are inserted up to the last explicit argument)

but

lja_dd_ord < Check no_rpt_same seq_ord (prems:=prems).
no_rpt_same seq_ord (prems:=prems)
      : forall c0 : srseq (PropF V), derrec ?rules prems c0 -> Type

ie it seems to have inserted the implicit argument rules also.

What are the rules about this?

And if there are any tips for finding things like this in the
documentation, I'd appreciate it.  For example, the symbol := isn't in
the general index, which I would have expected.

Thanks

Jeremy




Archive powered by MHonArc 2.6.19+.

Top of Page