Deutsch   English   Français   Italiano  
<vkcreu$19c05$2@solani.org>

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

Path: ...!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: Mild Shock <janburse@fastmail.fm>
Newsgroups: sci.logic
Subject: Re: Linear Logic as Natural Deduction (Was: Advent of Logic 2024:
 Friendly Reminder)
Date: Tue, 24 Dec 2024 00:24:15 +0100
Message-ID: <vkcreu$19c05$2@solani.org>
References: <vjks2t$sghb$1@solani.org> <vk2i2c$1gvoe$1@solani.org>
 <vk6kfv$15r1k$1@solani.org> <vkcqk5$19bn1$1@solani.org>
 <vkcrc9$19c05$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 23 Dec 2024 23:24:14 -0000 (UTC)
Injection-Info: solani.org;
	logging-data="1355781"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Firefox/91.0 SeaMonkey/2.53.19
Cancel-Lock: sha1:R44JNH64Fjyf9BuWAmrENFv/Kx8=
X-User-ID: eJwFwQkBwDAIA0BLZeWVQ0PwL2F3dl0coW6utrbgrIyVVPB7060aIYu5wAGLuakj18GIUx1JPgXZb0Re/octFx4=
In-Reply-To: <vkcrc9$19c05$1@solani.org>
Bytes: 5815
Lines: 160

The source code is here:

https://gist.github.com/Jean-Luc-Picard-2021/db6f71f66781838c98ee8b828eb5b9c2#file-linear-p

And some testing is here:

/* 2 positive test cases */

% ?- between(1,13,N), search(typeof(X, [], [], ((a->a)->(a->a))), N, 0).
% N = 2,
% X = lam((a->a), 0) .

% ?- between(1,13,N), search(typeof(X, [], [], (a->((a->b)->b))), N, 0).
% N = 5,
% X = lam(a, lam((a->b), 0*1)) .

/* 2 negative test cases */

% ?- between(1,13,N), search(typeof(X, [], [], (a->(b->a))), N, 0).
% false.

% ?- between(1,13,N), search(typeof(X, [], [], ((a->(a->b))->(a->b))), 
N, 0).
% false.

Mild Shock schrieb:
> I skipped doing an affine logic. But one can derive
> it from the linear logic. So I made a linear logic.
> It is derived from the minimal logic but typeof
> 
> as a different signatur:
> 
> /* Minimal Logic */
> G |- M : t              /* typeof(M, G, t) */
> 
> /* Linear Logic
> G |- M : t | G'         /* typeof(M, G, G', t) */
> 
> The updated context G' does a tracking and sees to it
> that every assumption is only use once. An assumption
> has initially the flag 0 and when it was used it has
> 
> the flag 1. There are two places in the code where
> this is used:
> 
> /* Implication Intro */
> typeof(lam(A, Y), L, R, (A -> B)) :-
>     typeof(Y, [A-0|L], [A-1|R], B).
> /* Axiom */
> typeof(K, L, R, B) :-
>     nth0(K, L, A-0, H),
>     unify_with_occurs_check(A, B),
>     nth0(K, R, A-1, H).
> 
> Its not yet extremly tested. And its not widely known,
> since most presentations are Sequent Calculus and not
> Natural Deduction. I only found one paper:
> 
> Introduction to linear logic - Emmanuel Beffara
> Table 6: Intuitionistic linear logic as natural deduction
> https://hal.science/cel-01144229
> 
> Mild Shock schrieb:
>> Ok, I made a solution for Weekend 3,
>> first I made minimal logic. I opted for
>> Lambda Expressions with de Brujin indexes:
>>
>> /* 4 positive test cases */
>>
>> % ?- between(1,13,N), search(typeof(X, [], ((a->a)->(a->a))), N, 0).
>> % N = 2,
>> % X = lam((a->a), 0) .
>>
>> % ?- between(1,13,N), search(typeof(X, [], (a->((a->b)->b))), N, 0).
>> % N = 5,
>> % X = lam(a, lam((a->b), 0*1)) .
>>
>> % ?- between(1,13,N), search(typeof(X, [], (a->(b->a))), N, 0).
>> % N = 3,
>> % X = lam(a, lam(b, 1)) .
>>
>> % ?- between(1,13,N), search(typeof(X, [], ((a->(a->b))->(a->b))), N, 0).
>> % N = 7,
>> % X = lam((a->a->b), lam(a, 1*0*0)) .
>>
>> For example the 2nd solution with de Brujin indexs
>> can be read without de Brujin indexes as follows:
>>
>> λx:a.λy:(a->b).(y x)    :    (a->((a->b)->b))
>>
>> https://gist.github.com/Jean-Luc-Picard-2021/db6f71f66781838c98ee8b828eb5b9c2#file-minimal-p 
>>
>>
>> Mild Shock schrieb:
>>> Hi,
>>>
>>> Friendly Reminder that the Deadline 24. December 2024
>>> is approaching. Please be aware that Weekend 3 asks for
>>> Natural Deduction, where (E⊃) and Modus Ponens are synonymous:
>>>
>>> /* Scope of Weekend 3 */
>>>
>>>    C, X  ⊢  Y
>>> -------------- (I⊃)
>>>    C ⊢ X ⊃ Y
>>>
>>>    C ⊢ X    C ⊢ X ⊃ Y
>>> --------------------- (E⊃) /* Also known as Modus Ponens */
>>>         C ⊢ Y
>>>
>>>
>>> Simply Types and its Curry Howard is primarily defined
>>> for Natural Deduction. Extracting Lambda Experessions
>>> from Non-Natural Deduction is a little bit more complicated.
>>>
>>> So Weekend 3 is NOT for Sequent Calculus:
>>>
>>> /* Not Scope of Weekend 3 */
>>>
>>>    C, X  ⊢  Y
>>> -------------- (R⊃)
>>>    C ⊢ X ⊃ Y
>>>
>>>    C ⊢ X    C, Y ⊢ Z
>>> --------------------- (L⊃)
>>>      C, X ⊃ Y ⊢ Z
>>>
>>> Bye
>>>
>>> Mild Shock schrieb:
>>>> Specification:
>>>>
>>>>
>>>> Weekend 2:
>>>> -----------
>>>> - Input = Atom            % Propositional variable
>>>>          | Input -> Input  % Implication
>>>>
>>>> - Output = B               % B Axiom Schema
>>>>           | C               % C Axiom Schema
>>>>           | I               % I Axiom Schema
>>>>           | (Output Output) % Modus Ponens
>>>>
>>>> Weekend 3:
>>>> -----------
>>>> - Input = Atom            % Propositional variable
>>>>          | Input -> Input  % Implication
>>>>
>>>> - Output = Variable         % Repetition
>>>>           | λVariable.Output % Assumption & Detachment
>>>>           | (Output Output)  % Modus Ponens
>>>>
>>>>
>>>> Deadline:
>>>>
>>>> 24. December 2024
>>>>
>>>
>>
>