Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Question about Pattern Matching on False

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Question about Pattern Matching on False


Chronological Thread 
  • From: zheng yang <zyang.uestc AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Question about Pattern Matching on False
  • Date: Fri, 14 Apr 2017 10:27:29 +0800
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=zyang.uestc AT gmail.com; spf=Pass smtp.mailfrom=zyang.uestc AT gmail.com; spf=None smtp.helo=postmaster AT mail-io0-f174.google.com
  • Ironport-phdr: 9a23:6668uR1LT+nWx5r3smDT+DRfVm0co7zxezQtwd8ZsewfLPad9pjvdHbS+e9qxAeQG96Kt7Qc06L/iOPJYSQ4+5GPsXQPItRndiQuroEopTEmG9OPEkbhLfTnPGQQFcVGU0J5rTngaRAGUMnxaEfPrXKs8DUcBgvwNRZvJuTyB4Xek9m72/q89pDXbAhEniaxba9vJxiqsAvdsdUbj5F/Iagr0BvJpXVIe+VSxWx2IF+Yggjx6MSt8pN96ipco/0u+dJOXqX8ZKQ4UKdXDC86PGAv5c3krgfMQA2S7XYBSGoWkx5IAw/Y7BHmW5r6ryX3uvZh1CScIMb7S60/Vza/4KdxUBLniikHOT43/m/Ul8J+kr5UrQm7qBBj2YPZep2ZOOZ8c67bYNgURXBBXsFUVyFZA4K8b5UAD+wOPe1Fr4jyvV0OrRSjDgSrBeLuyiVHhnn53aEgzuQuDxrG3BA8EN8Vv3TUqc/6NKYWUeyv0KbIyjDDYupQ1Dzg64bIaggsre+QUb90a8bcykkiGxnbglmOp4HpJS6Z2+YCvmWd8uFuT/igi3Q9pAF0ujWvxtkjio3Oho8Nz1DL7yR5wIIsKd25T053fceoEJVNuyyYOIZ6WMwiQ2ZvuCY1zr0Jp4S3czQNyJQi3xLfavqHfJaU4h/7SuqdPTN1iGhmdb+/nRq+71asx+PmWsWp0ltHoTJJktzWuXAM0xzT5NKHSvx4/kq52DeO1xrc6udLIUwuiKrUNYUhwqIsmZcIvkTDGzX5mETyjKOMakok/e2o5/z9Yrr6vp+cK5N0igbmP6syncy/GP00PRQKX2iG4uuxz6bj/E38QLVSlPI6iKjZsJbAJcQavKG1GQFV0pxwoyq4WjyhyZETmWQNBFNDYhOOyYbzaH/UJ/WtH/eyhVvkgT5tyLiSLKzoBJqLM3XYjLzJcrN06koaww02m4MMr6lIA60MdaqgEnT6s8bVW0c0

Hi Anton,

Thanks for your kind help, I'm clear now O(∩_∩)O

Best,
Zheng Yang

2017-04-13 16:09 GMT+08:00 Anton Trunov <anton.a.trunov AT gmail.com>:
Hi Zheng Yang,

See chapter 17 of the reference manual. Here is the relevant quote:
The pattern-matching compilation strategy examines patterns from left to right.
A match _expression_ is generated only when there is at least one constructor in the column of patterns.
E.g. the following example does not build a match _expression_.
Coq < Check (fun x:nat => match x return nat with
                          | y => y end).

If you print back your `false_rect` definition, you’ll see the following
false_rect = fun (_ : nat) (_ : False) => 0
     : nat -> False -> nat


best regards,
Anton

> On 13 Apr 2017, at 10:01, zheng yang <zyang.uestc AT gmail.com> wrote:
>
> Hi all,
>
> I am a fresh user of Coq, and I have a question. I find that the following definition typecheck in Coq:
>
> Parameter x : Set.
> Definition false_rect (n : nat) (f : False) : nat :=
>   match f return nat with | x => O end.
>
> And it is allowed in Coq. However, False does not has any constructor. Why does it work?





Archive powered by MHonArc 2.6.18.

Top of Page