Deutsch   English   Français   Italiano  
<vlo9os$2dkpd$11@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Julio Di Egidio <julio@diegidio.name>
Newsgroups: sci.logic
Subject: A miraculous match? (Was: Honoring Raymond Smullyan)
Date: Thu, 9 Jan 2025 11:52:11 +0100
Organization: A noiseless patient Spider
Lines: 105
Message-ID: <vlo9os$2dkpd$11@dont-email.me>
References: <vlkfq7$1vh4j$1@solani.org> <vlkrge$2dkpc$1@dont-email.me>
 <vllgli$2039r$1@solani.org> <vlmdk8$2dkpd$6@dont-email.me>
 <vlme6h$2dkpc$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 09 Jan 2025 11:52:13 +0100 (CET)
Injection-Info: dont-email.me; posting-host="e9d42356b81d42d02d68289eca9ecab3";
	logging-data="2544429"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1++q/H7fzUGPkE0LS1hGDfQceLwQLrti10="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:imrUA72bw1Zeak0LC/2WaZdutHU=
In-Reply-To: <vlme6h$2dkpc$3@dont-email.me>
Content-Language: en-GB
Bytes: 4478

On 08/01/2025 18:55, Julio Di Egidio wrote:
> On 08/01/2025 18:45, Julio Di Egidio wrote:
>> On 08/01/2025 10:31, Mild Shock wrote:
>>> Julio Di Egidio schrieb:
>>>> On 08/01/2025 01:10, Mild Shock wrote:
>>>>> Hi,
>>>>>
>>>>> Now you can listen to Bird songs for a minute:
>>>>>
>>>>> 2016 Dana Scott gave a talk honoring Raymond Smullyan
>>>>> https://www.youtube.com/watch?v=omz6SbUpFQ8
>>>>
>>>> Define Smullyan.
>>>>
>>>>> A little quiz:
>>>>>
>>>>> Q: And also on the Curry-Howard Isomorphism. Is
>>>>> there a nice way to put it in bird-forest form like To
>>>>> Mock a Mocking Bird. This book made everything so
>>>>> simple and intuitive for me.
>>>>>
>>>>> A: Hardly, because xx has no simple type.
>>>>>
>>>>> Right?
>>>>
>>>> Let `F : forall (X Y : Type), X -> Y`, then we can
>>>> (almost) write `F F`.  Simple seems simple, it just
>>>> doesn't end well:
>>>>
>>>> ```coq
>>>> (** There exists a function
>>>>      from any type to any type! *)
>>>> Axiom F : forall (X Y : Type), X -> Y.
>>>>
>>>> (** Any two types: might be False False if
>>>>      that's all there is, an uninhabited type. *)
>>>> Parameters (T U : Type).
>>>>
>>>> (** Now we can prove False. *)
>>>> Definition absurd : False :=
>>>>    F (T -> U) False (F T U).
>>>> ```
>>>
>>> Thats System F and not simple types. also
>>> known as the polymorphic lambda-calculus
>>> or second-order lambda-calculus, it is an
>>> extension of simply typed lambda-calculus.
>>
>> It's as simple as a mocking bird... :)
>>
>> Why do you care so much about simply-typed?  If not as a foundation 
>> for the theory of functional languages: yet xx is an object of 
>> interest in its own right, simply beyond the simply-typed.
>>
>>> But in simple types itself, th self application
>>> x x has no type. You can try yourself:
>>>
>>> /* Typed Variable */
>>> typeof(_:A, B) :-
>>>     unify_with_occurs_check(A, B).
>>> /* Modus Ponens */
>>> typeof((S*T), B) :-
>>>     typeof(S, (A -> B)),
>>>     typeof(T, A).
>>>
>>> And then the query:
>>>
>>> ?- X=_:_, typeof((X*X), T).
>>> false.
>>>
>>> The query will though succeed if you remove
>>> the occurs check.
>>
>> Which is more interesting: what it is, not what it is not.
>>
>> With plain unification (on SWI):
>>
>> ```
>> ?- X=_:_, typeof((X*X), T).
>> X = _:_S1, % where
>>      _S1 = (_S1->T).
>> ```
>>
>> That is also somewhat reminiscent of Coq's result, except that here 
>> the type is a ground and cyclic term (a "cyclic type"?), as such not 
>> even polymorphic...  Nor, OTOH, can I think of a way to construct a 
>> cyclic term in Coq.
> 
> Correction: it's not really ground since T isn't...

Anyway, looking back at the Coq term for `absurd`, i.e. `F (T -> U) 
False (F T U)`, unifying the parameter `U` with `False` would be no 
prob, and unifying `T` with `T->U` would give the exact same cyclic term 
as `_S1` above.

A miraculous match?  A significant one?

(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.)

-Julio