Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Guardedness failure for mixed inductive coinductive types

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Guardedness failure for mixed inductive coinductive types


Chronological Thread 
  • From: Li-yao Xia <lysxia AT gmail.com>
  • To: Chung-Kil Hur <gil.hur AT gmail.com>
  • Cc: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Guardedness failure for mixed inductive coinductive types
  • Date: Thu, 2 Mar 2023 12:30:44 +0000
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=lysxia AT gmail.com; spf=Pass smtp.mailfrom=lysxia AT gmail.com; spf=None smtp.helo=postmaster AT mail-wm1-f46.google.com
  • Ironport-data: A9a23:rFgSGato9ffb+u0xIBSQS/CHLOfnVJxaMUV32f8akzHdYApBsoF/q tZmKWyGPvbcamKhKo8laI22p0hX6pPRm9RgTAE//nswRioWgMeUXt7xwmXYb3rDdJWbJK5Ex 5xDMYeYdJhcolv0/ErF3m3J9CEkvU2wbuOgTrSCY0idfCc8IA85kxVvhuUltYBhhNm9Emult Mj7yyHlEAbNNwVcbyRFu8pvlDs15K6p4GhA5ARkDRx2lAa2e0c9XMp3yZ6ZdCOQrrl8RoaSW +vFxbelyWLVlz9F5gSNz94X2mVTKlLjFVDmZkh+A8BOsTAezsAG6ZvXAdJHAathZ5plqPgqo DlFncTYpQ7EpcQgksxFO/VTO3kW0aGrZNYriJVw2CCe5xSuTpfi/xlhJBwpPKo0pPpNPW9hq 6clIj4qUDOxmsvjldpXSsE07igiBMziPYdapXQ5iD+FU7ApRpfMR6iM7thdtNsyrpoWTLCOO oxAM2opMEqojx5nYj/7DLo6jfy4h3DXfDhRqVbTrq0yi4TW5FAgiOO3boqLEjCMbe98rkmf5 VCWxFW6OjAgKtGH5De+41v504cjmguiAN5IfFGizdZhh0TWzWgOAjUNRF6jqL+4jFS/UpRRM SQpFjEGqKEz8Am0S4C4UUHm5nGDuREYVpxbFOhSBByxJrT8vhmYIURaUgR9ZvN47/I8SxsU9 W2Utoa8bdBwi4G9RXWY/7aSiDq9PykJMGMPDRPoqyNVs7EPR6lj3nryosZf/L2d1YKqRGmhq 9yehG1v2OVJ1J9jO7CTpAif21qRSo71ohnZDzg7s0qg5wJ9IZGgPsmmtQad4vFHI4KUCFKGu RDoevRyDshRUPlhdwTXGI3h+Y1FAd7ba1UwZnYxRPEcG8yFoSLLQGypyGgWyL1VGsgFYyT1R 0TYpBlc4pReVFPzM/AoPdPsVp9zl/ixfTgAahwyRooeCnSWXF/XlByCmWbNt4wQuBJ9zfluZ cnznTiEUS1KU8yLMwZat89EieNxrszP7WzUQp//wnyaPUm2NRaopUM+GALWNIgRtfvayC2Mq oo3H5bUln13DbKmCgGJq9J7BQ5RdhATW8umw/G7g8bZfWKK7kl6W6GPqV7gEqQ595loehDgp S7lAxEIkgSu1BUq62yiMxheVV8mZr4nxVpTAMDmFQ/AN6ELMN33vpQMPYA6Z6cm/+FFxPt5B atNMcaZD/gFDnyN9z0BZNOv5MZvZTa6tzKoZiCFWTkYe4I/Zgrr/tS/QBDj2hNTBQWKtOw/g Yaa6CXlfbQ5ST9PMuPqedO07lbovXEiiON4BETJBd9IeXTTyothKg2vr/puI8gzNgnPnGOK8 zmnWTEZ+O/H+d4z+vb0mJHe/puIEvR/LGVeDWL0/ba7DgiE32uBkKtrcveEQiDZb0zwoJ6dX ORyy+ruFdE2h3NIjtZMKKlqxqcA+Nffnb9W4QB6FnHtbV7wKLdfDlSZ/MtI7Ith+6R4vFaoZ 0ex5dVqA7WFF8f7Glo3JgB+TOCi1+kRqwbC/8YOP0T2yy9mzoWpCXwIEUG3txVcC79pPKcO4 +Qr4pcW4jPirCsaCI+NiyQM+lmcKnAFbb4ciagbJ43V2y4L0VBJZKLOBhDmuK+vb8p+CWh0A zu2qpebuZFi6BvsT34BG0LJ/9JhvrUVmRUTzFY9N1WDwdXEofks3Sxuyzc8TyUL7xBLz9NMP nNPMmtrL56v5BZtvtBIBEq3KjFCBTqY203/8EQIn2vnVHuVVnTBAWk+GOSV9mUbzj54Uh1E2 oqHkUDJfC3Pfs7j+gcTA2tetO3FX9h90ibgifKXNZ2JMLdiaAW0n5L0Q3QDriXWJP8YhWrFg LJP1/lxY6iqDhwgifQ3JKfC3ItBVS3eAnJJRMxg26Y7HWv8XjWW8hrWImCTfvJ9HdD7wXWaO edPeP0WDw+f0RyQpA81HaQPer94vMA47eo4J4/EGzQ0jKu9nBFI7rTgrjPzlU06ceVIyMwdE L7cRxiGM26XhEZXpVPzkdl5CjK4TOQANSLB37GT0eQWFpg8nvlmXmMs35CV4XiEEgtV0CiFn QHEZp2Mluxr9ptxrtG9DoRCGASGBtfhX8uY8A2IkopvbPGeFezspg8qul3cEAAOBoQoWvNzj qWrjNHs+VHs5ZIabjj8oIaQMIVs/uCwbfpzHuOsC0cChgqEesvnwyVbylCCMZYTze9svJi2d TW3eO6bVIAwSdxC4FZ3diIHMRIWK5qvX5favSnn8si9UEkM4zfmcuGi22TiN1xAVykyPJb7N A/4ltCu6v1cr6VOHBU0PO5nMbApPG7cXbYaSPOpuQm6FmWIhnawionmnzck6hDJDSCKLp+rq 9aNDB3zbw+7t6z03clU+d469AEeCHFmx/I8ZAQB8tpxkCq3F3MCMf9bC5gdF5VIiWbn4fkUv t0WgLcKUk0RnAiocCkQJPzmVwabQ/MLY5L3emJv8ESTZCO7QoiHBdONM8umD2heIlPeICOPc LnyOUEc+jC+x5hoQaAY4fnTbSJP2KbB3nxRkaziu5WaPvvdaInmEFRuGQNMUWrMFMSleIAn4 4QqbTgsfXxXgnId3Sqtl7C51f3ZUP7SI+0UUBqy
  • Ironport-hdrordr: A9a23:kWg1q6/CvGxqgMlcW7puk+DvI+orL9Y04lQ7vn2ZESYlFvBw5P re+8jztCWE8wr5N0tBpTntAsS9qDbnhPtICOoqTM2ftWvdyQiVxehZhOOIqQEIWReOlNK1vp 0OT0EKMrzN5C9B4/oSjjPVLz9q+qjgzEnhv5am855Cd3ATV51d
  • Ironport-phdr: A9a23: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
  • Ironport-sdr: 640096f6_VD5ir+BT7Esp+70t55ARxkceAlawPlUY4z9TR6e0DhGo43M CYKwmK7JIOvf6fpKKjfBiTbBP4Kr/Z1luQgWj4g==

Hi Gil,

Just allowing `fix` in `cofix` would be unsound (see https://github.com/coq/coq/issues/4261). But maybe fix could be treated similarly to cofix for the purposes of guardedness checking, in addition to its decreasing argument requirement?

One workaround is to replace the inductive type with a non-recursive encoding, list X = { n : nat & fin n -> X }.

Li-yao

On 2023-03-02 2:02 AM, Chung-Kil Hur wrote:
Hi Coq-Club,

I just realized that Coq's guardedness checking basically rejects *every* corecursive function for mixed inductive coinductive types.
I wonder whether there is a way around, or why Coq does not support it.

To be more specific, here is an example.
==================
Variant rtreeF X :=
| node (n: nat) (chl: list X).

CoInductive rtree : Type := rtgo
{ rtobs : rtreeF rtree }.

CoFixpoint rtfix {X} (coalg: X -> rtreeF X) (x: X) : rtree :=
  match coalg x with
  | node n chl => rtgo (node n
    ((fix itr xs := match xs with
                   | nil => nil
                   | cons x xs' => cons (rtfix coalg x) (itr xs')
                   end) chl))
  end.
========================

The function `rtfix` defines the unique function from X to rtree, given a coalgebra from X to streamF X.

I think this corecursive function must be accepted in order to use the mixed inductive-coinductive type `rtree`.
However, it seems that there is no way to accept the above `rtfix` function.

Thanks!
Gil



Archive powered by MHonArc 2.6.19+.

Top of Page