How to project variables? [PIP-4711: Marked Variables]

Liste des GroupesRevenir à cl prolog 
Sujet : How to project variables? [PIP-4711: Marked Variables]
De : janburse (at) *nospam* fastmail.fm (Mild Shock)
Groupes : comp.lang.prolog
Date : 11. Apr 2025, 11:42:11
Autres entêtes
Message-ID : <vtarm5$11ove$1@solani.org>
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0 SeaMonkey/2.53.20
Hi,
Now I am writing a new Prolog Improvement Proposal
(PIP), which is PIP-4711: Marked Variables. Can
we easily specify what marked variables should
do in the top-level? Oh yes. If you have a query
that contains unmarked and marked variables,
just like this here:
?- q(N1, .., Nn, _M1, .., _Mm)
Then the above query should work as:
p(N1, .., Nn) :- q(N1, .., Nn, _M1, .., _Mm).
?- p(N1, .., Nn).
The above specification assures that no information
is lost, because it relies on the existential
quantifier of Clark Completion. One can read the
definition of q/n logically in first order logic
as follows, namely with existential quantifiers:
p(N1, .., Nn) <=> EXISTS(_M1, .., _Mm):q(N1, .., Nn, _M1, .., _Mm)
Do some Prolog systems satisfy the above specification.
Amazingly most Prolog systems cannot do it. They
have problems archiving the above result, in very
small test cases. The main problem is some permutation
dependency, how the query q/n+m is formulated. It
seems most Prolog systems do not use a
permutation agnostic algorithm, whereas the
first order logic specification doesn't have some
permutation dependency and should be immune.
                 Test1   Test2
Trealla Prolog  Pass    Fail
SWI-Prolog      Fail    Pass
Dogelog Player  Pass    Pass
Bye

Date Sujet#  Auteur
11 Apr 25 * How to project variables? [PIP-4711: Marked Variables]4Mild Shock
11 Apr 25 `* Elaboration Test 1 (Re: How to project variables? [PIP-4711: Marked Variables])3Mild Shock
11 Apr 25  `* Elaboration Test 2 (Re: How to project variables? [PIP-4711: Marked Variables])2Mild Shock
11 Apr 25   `- Elaboration Test 3 (Re: How to project variables? [PIP-4711: Marked Variables])1Mild Shock

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal