| Deutsch English Français Italiano |
|
<vk1lqu$2s7tr$1@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!.POSTED!not-for-mail
From: Julio Di Egidio <julio@diegidio.name>
Newsgroups: sci.logic
Subject: Re: Proofs as programs (Was: Advent of Logic 2024: Weekend 3)
Date: Thu, 19 Dec 2024 18:40:47 +0100
Organization: A noiseless patient Spider
Lines: 64
Message-ID: <vk1lqu$2s7tr$1@dont-email.me>
References: <vjks2t$sghb$1@solani.org> <vjksaq$sgo6$1@solani.org>
<vjksdb$sgo6$2@solani.org> <vjs63g$1m603$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 19 Dec 2024 18:40:47 +0100 (CET)
Injection-Info: dont-email.me; posting-host="5c82a02c1e2f107e6a78dfd6f7615e23";
logging-data="3022779"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+feVGjTrQsEQOiDx6aEHla8UDpyG7Mcj4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:COBdF3z/tJkkC4qarJqyj2QlAP8=
In-Reply-To: <vjs63g$1m603$1@dont-email.me>
Content-Language: en-GB
Bytes: 2678
On 17/12/2024 16:41, Julio Di Egidio wrote:
> On 14/12/2024 22:13, Mild Shock wrote:
>
>> Create a proof search in Simple Types,
>> that finds Lambda Expressions as proof,
>> for a given formula in propositional logic.
>
> Thinking about it:
>
> Either by hand or with a 'solve', we/I [*] go from a Goal to a Proof
> (proof tree). And, by Curry-Howard, that is (already!) our Type and
> witnessing Term, i.e. our Proof is a program whose type is the Goal.
> Indeed, we also already find type-checking: of a Proof against the Goal
> it alleges to be a proof of.
<snip>
My interpretation might be unorthodox, anyway here is concretely what I
am doing (a far better approximation that is):
<https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_system#Syntax-directed_rule_system>
So yeah, my system definitely qualifies, assuming I meet a deadline that
remains a mystery to this point - I guess that's the main challenge.
> <https://gist.github.com/jp-diegidio/b6a7a071f9f81a469c493c4afcc5cb11#file-gentzen-pl>
Meanwhile, kindly, for your records:
```
?- case(codile, LT, G), prove(LT, G, Ps), print_ps(Ps). % v30-alpha
[
orE(0)
[
orIL
impE(2)
[
init(0)
]
[
init(0)
]
]
[
orIR
impE(1)
[
init(0)
]
[
init(0)
]
]
]
LT = pos,
G = ([(p->q),(r->s),p\/r]=>q\/s),
Ps = [orE(0),[orIL,impE(2),[init(0)],[init(0)]],
[orIR,impE(1),[init(0)],[init(0)]]] .
% 3 more solutions...
```
Have fun,
-Julio