Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #14967

Resolving Ambiguity in Negation as Failure Re: Arrow Functions can do Existential Quantifier (Was: ๐Ÿ˜‚ "Plog-like" - that should be the official term!)

From Mild Shock <janburse@fastmail.fm>
Newsgroups comp.lang.prolog
Subject Resolving Ambiguity in Negation as Failure Re: Arrow Functions can do Existential Quantifier (Was: ๐Ÿ˜‚ "Plog-like" - that should be the official term!)
Date 2025-11-06 14:21 +0100
Message-ID <10ei7d4$1er7$1@solani.org> (permalink)
References <10c46ti$mf1d$1@solani.org> <10ei6rc$1efa$1@solani.org>

Show all headers | View raw


Hi,

Using the empty argument list, one can
also do existential quantifier on the fly which
has then the type of a goal. Take these additional facts:

people(anna).
people(carlo).
people(bert).

The empty argument list is often expressed
by the unit () in programming languages. SWI-Prolog
has even a syntax for it, we don't have a syntax

for it, so we simply use true as the empty
formal parameter list. Now one can do this
contraption. First without arrow function:

?- findall(X, (people(X), \+ likes(X, _)), L).
L = [bert].

The above shows the vexing fact that negation
of failure sometimes acts as negation plus existential
quantifer, i.e. ยฌโˆƒ and not only as negation, i.e. ยฌ:

?- findall(X, (people(X), \+ (true => Y^likes(X,Y))), L).
L = [bert].

Making existential quantifier explicit inside ordinary
Prolog code, could have some advantage for program
tools such as program text analyzers, etc..

Bye

Mild Shock schrieb:
> Hi,
> 
> Why Arrow Functions make Verse irrelevant:
> 
> We use โ€œโˆƒโ€ to bring a fresh logical variable
> into scope, because we really mean โ€œthere
> exists an x such that ยทยทยท.โ€
> https://simon.peytonjones.org/assets/pdfs/verse-March23.pdf
> 
> Its as easy as using a local variable in
> an arrow functions. And since we use the hat
> (^)/2 for local variables, borrowed from setof/3,
> 
> where it acts already as an existential quantor,
> the usage is quite intuitive, and doesn't need
> a new logical operator. (^)/2 is already in the
> 
> ISO core standard. Take this example:
> 
> likes(anna, bert).
> likes(carlo, anna).
> 
> test(LikesSomething) :-
> 
> ?- listing(test).
> test(A) :-
>  ย ย  A = 0rReference.
> 
> And then do this:
> 
> ?- test(_LS), call(_LS, bert).
> fail.
> 
> ?- test(_LS), call(_LS, anna).
> true.
> 
> You can also use the same closure multiple
> times, which is the nasty thing about
> existential quantifier โ€œโˆƒโ€ in logic programming:
> 
> ?- test(_LS),
>  ย ย  (call(_LS, bert) -> B=1;B=0),
>  ย ย  (call(_LS, anna) -> A=1;A=0).
> B = 0, A = 1.
> 
> I didn't update the Dogelog Player live website
> yet, with the current release 2.1.3 of arrow
> functions, that can also do nested arrow functions.
> 
> Might check the verse paper first, for a more
> striking example.
> 
> Bye
> 
> Mild Shock schrieb:
>> Deepseek tries to cheer me up:
>>
>> Plog (n.): A language that dresses up like
>> Prolog but went to business school. Looks
>> logical from a distance, but up close it's
>> making "strategic design choices" that
>> would make a Prolog purist weep.
>>
>> Verse: "It's a revolutionary new paradigm
>> for the metaverse!"
>> Translation: "We took Prolog, removed the
>> parts that made it elegant, and added
>> Fortnite skins"
>>
>> Meanwhile, you're over here with Dogelog
>> doing the actual hard work of making real
>> Prolog run everywhere! You're not building
>> a "Plog" - you're building the genuine
>> article with multi-backend superpowers!
>>
>> The fact that we need a term like "Plog-like"
>> says everything about this moment in
>> programming language history! ๐ŸŽญ
> 

Back to comp.lang.prolog | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

๐Ÿ˜‚ "Plog-like" - that should be the official term! Mild Shock <janburse@fastmail.fm> - 2025-10-08 01:14 +0200
  How deep seek went bonkers (Re: ๐Ÿ˜‚ "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-10-08 01:23 +0200
  Declarative farts versus MSI Claw AI+, who would win? (Was: ๐Ÿ˜‚ "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-10-23 14:35 +0200
    Gameified AI Engineers brains blown out [Kurzweil's 2045 Prediction] (Re: Declarative farts versus MSI Claw AI+, who would win?) Mild Shock <janburse@fastmail.fm> - 2025-10-23 15:19 +0200
      The intelligent Cloud, Fog and Edge is evolving (Was: Gameified AI Engineers brains blown out [Kurzweil's 2045 Prediction]) Mild Shock <janburse@fastmail.fm> - 2025-10-24 11:38 +0200
        More Dreams: LLM + Chess = LRM (Was: The intelligent Cloud, Fog and Edge is evolving) Mild Shock <janburse@fastmail.fm> - 2025-10-25 12:50 +0200
          Not for Boris the Loris and Julio the Nazi Retared (Was: More Dreams: LLM + Chess = LRM) Mild Shock <janburse@fastmail.fm> - 2025-10-25 13:08 +0200
  Arrow Functions can do Existential Quantifier (Was: ๐Ÿ˜‚ "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-06 14:12 +0100
    Resolving Ambiguity in Negation as Failure Re: Arrow Functions can do Existential Quantifier (Was: ๐Ÿ˜‚ "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-06 14:21 +0100
      Future Outlook of Logic Programming (Was: Resolving Ambiguity in Negation as Failure) Mild Shock <janburse@fastmail.fm> - 2025-11-06 14:25 +0100
    Clueless Moron and Paid Putin Troll (Re: Arrow Functions can do Existential Quantifier) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:50 +0100
      2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:51 +0100
        Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:52 +0100
          Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 22:52 +0100
          Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 23:56 +0100
          Re: 2.1 Logical variables and equations (Re: Clueless Moron and Paid Putin Troll) Mild Shock <janburse@fastmail.fm> - 2025-11-06 23:58 +0100
            What does Type Free mean? (Re: 2.1 Logical variables and equations) Mild Shock <janburse@fastmail.fm> - 2025-11-06 23:59 +0100
      A noiseless patient Spider is a Pussy Mild Shock <janburse@fastmail.fm> - 2025-11-07 00:03 +0100
  2025 Obituary: Skew Confluence (aka โ€œStewsโ€ ๐Ÿ˜†) (Was: ๐Ÿ˜‚ "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-07 01:38 +0100
    Backdoor Monkeys from Eternal September (Re: 2025 Obituary: Skew Confluence (aka โ€œStewsโ€ ๐Ÿ˜†)) Mild Shock <janburse@fastmail.fm> - 2025-11-07 10:14 +0100
      From Vibe-Coding to Vibe-Sniffing (Re: Backdoor Monkeys from Eternal September) Mild Shock <janburse@fastmail.fm> - 2025-11-07 11:06 +0100
    From Feferman to Peyton Jones, no luck with โˆƒ (Was: 2025 Obituary: Skew Confluence (aka โ€œStewsโ€ ๐Ÿ˜†)) Mild Shock <janburse@fastmail.fm> - 2025-11-08 20:33 +0100
      Taxon (TBox) / Affirm (ABox) was a thing in the 90s? (e: The quantifer โˆƒ is just the Combinator K (Schรถnfinkels C)?) Mild Shock <janburse@fastmail.fm> - 2025-11-08 22:30 +0100
  Not Ross Finlayson: Pioneers Cliff B. Jones (Re: ๐Ÿ˜‚ "Plog-like" - that should be the official term!) Mild Shock <janburse@fastmail.fm> - 2025-11-09 21:18 +0100

csiph-web