Sujet : How to make cyclic terms (Was: A miraculous match?)
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : sci.logicDate : 09. Jan 2025, 13:23:57
Autres entêtes
Message-ID : <vlof4t$21qd0$1@solani.org>
References : 1 2 3 4 5 6 7
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.20
See here:
A Modality for Recursion
Hiroshi Nakano - 2000 - Zitiert von: 237
https://www602.math.ryukoku.ac.jp/~nakano/papers/modality-lics00.pdfEven if you disband cyclic terms in your
model, like if you adhere to a strict Herband model.
If the Herband model has an equality which is a
congruence relation ≌. Nakano's paper contains
an inference rule for a congruence relation ≌.
When you have such a congruence relation, you can
of course derive things like for example for a certain
exotic recursive type C, that the following holds:
C ≌ C -> A
You can then produce the Curry Paradox in simple
types with congruence. And then ultimately derive:
|- (λx.x x)(λx.x x): A
As in Proposition 2 of Nakano's paper.
Julio Di Egidio schrieb:
(But I still wouldn't know how to create a cyclic term proper in Coq or in fact in any total functional language, despite the mechanism underlying conversion/definitional equality is logical unification, and we can even somewhat access it in Coq, via the definition of `eq`/reflexivity.)