• Vanilla Prolog: semi-decidable =\= decidable (Re: Prolog Education Group clueless about the AI Boom?)

    From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Mar 14 20:40:00 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Somebody just changed the Vanilla Prolog
    meta interpreter from:

    solve(true) :- !.
    solve((A,B)) :- !, solve(A), solve(B).
    solve(H) :- clause(H, B), solve(B).

    Into a cycle checking interpreter. It makes
    certain Datalog programs and queries complete,
    but it doesn't make Horn clauses complete:

    solve(A) :- solve(A, []).

    solve(true, _) :- !.
    solve((A,B), L) :- !, solve(A, L), solve(B, L).
    solve(A, L) :- member(B, L), A =@= B, !, fail.
    solve(H, L) :- clause(H, B), solve(B, [H|L]).

    Bye

    P.S.: Here is a proof for Datalog:

    Since Datalog has only constants and variables,
    no function symbols at all, there are only finitely
    many literals at runtime modulo (=@=)/2.

    Q.E.D.

    dart200 schrieb:
    The following claim from p246 of TuringrCOs seminal paper On Computable
    Numbers is a fallacy:

    /the problem of enumerating computable sequences is equivalent to the
    problem of finding out whether a given number is the D.N of a circle-
    free machine, and we have no general process for doing this in a finite
    number of steps/

    For any given computable sequence, there are _infinite_ circle-free
    machines which compute that particular sequence. Not only can various
    machines differ significantly in the specific steps to produce the same output, machines can be changed in superficial ways that do not
    meaningfully affect the steps of computation, akin to modern no-op
    statements or unreachable code

    The problem of enumerating computable sequences, however, only
    depends on successfully identifying _one_ circle-free machine that
    computes any given computable sequences. While identifying more than one
    can certainly be done, it is _not_ a requirement for enumerating
    computable sequences, as _one_ machine computing a sequence /suffices to output any and all digits of that sequence/

    The problem of enumerating computable sequences is therefore _not_
    actually equivalent to a _general process_ of enumerating circle-free machines, as there is no need to identify all circle-free machines which compute any given computable sequence

    Said problem is only equivalent to a _limited process_ of enumerating
    circle-free machines. The machine which identifies circle-free machines
    only needs the limited power of determining _at least one_ circle-free
    machine for any given computable sequence, _not all_ machines for any
    given computable sequence

    Because of this fallacy, the proof found on the following p247, where
    an ill-defined machine EYou (which attempts and fails to compute the
    direct diagonal +#rCO) is found to be undecidable in respect to circle-free decider EYoo; does not then prove an impossibility for enumerating
    computable sequences. As the problem of enumerating /all circle-free
    machines/ is _not_ equivalent to that of enumerating /just computable sequences/



    Mild Shock schrieb:
    Concerning this boring nonsense:

    https://book.simply-logical.space/src/text/2_part_ii/5.3.html#

    Funny idea that anybody would be interested just now in
    the year 2025 in things like teaching breadth first
    search versus depth first search, or even be rCLmystifiedrCY
    by such stuff. Its extremly trivial stuff:

    Insert your favorite tree traversal pictures here.

    Its even not artificial intelligence neither has anything
    to do with mathematical logic, rather belongs to computer
    science and discrete mathematics which you have in
    1st year university

    courses, making it moot to call it rCLsimply logicalrCY. It
    reminds me of the idea of teaching how wax candles work
    to dumb down students, when just light bulbs have been
    invented. If this is the outcome

    of the Prolog Education Group 2.0, then good night.


    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 4 16:58:41 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    pi-WAM is a nice challenge, since its aim is to go
    even blow the instruction set of SWI-Prolog,
    while only using a Hack variant as instruction

    stream. But what is Hack? Well Hack seems to be
    the missing legacy of Niclaus Wirths PL0. The
    Hack (machine .asm) and Jack (highlevel compiler

    generating .vm which can be converted to .asm)
    combo makes even the famous Crafting Interpreters
    /Lox by Bob Nystrom redundant:

    Nand to Tetris courses are taught at 400+
    universities, high schools, and bootcamps. The
    students who take them range from high
    schoolers to Ph.D. students to
    https://www.nand2tetris.org/

    But digging deaper in Hack, it has no functions
    pointers so objects don't use virtual tables.
    But what will pi-WAM need and that is not yet

    in Hack? Given that my pi-WAM doesn't want a stack
    nor a choice point lists? Currently there is the
    idea to add a computed goto and that it can

    cover a more lightweight C_OR as known from
    SWI-Prolog, that would have the C_OR branches
    maybe restricted to have no outside

    clause calls? Lets see. Not yet sure.

    Bye

    Mild Shock schrieb:
    Hi,

    Somebody just changed the Vanilla Prolog
    meta interpreter from:

    solve(true) :- !.
    solve((A,B)) :- !, solve(A), solve(B).
    solve(H) :- clause(H, B), solve(B).

    Into a cycle checking interpreter. It makes
    certain Datalog programs and queries complete,
    but it doesn't make Horn clauses complete:

    solve(A) :- solve(A, []).

    solve(true, _) :- !.
    solve((A,B), L) :- !, solve(A, L), solve(B, L).
    solve(A, L) :- member(B, L), A =@= B, !, fail.
    solve(H, L) :- clause(H, B), solve(B, [H|L]).

    Bye

    P.S.: Here is a proof for Datalog:

    Since Datalog has only constants and variables,
    no function symbols at all, there are only finitely
    many literals at runtime modulo (=@=)/2.

    Q.E.D.

    dart200 schrieb:
    The following claim from p246 of TuringrCOs seminal paper On Computable
    Numbers is a fallacy:

    /the problem of enumerating computable sequences is equivalent to the
    problem of finding out whether a given number is the D.N of a circle-
    free machine, and we have no general process for doing this in a finite number of steps/

    For any given computable sequence, there are _infinite_ circle-free
    machines which compute that particular sequence. Not only can various machines differ significantly in the specific steps to produce the same output, machines can be changed in superficial ways that do not
    meaningfully affect the steps of computation, akin to modern no-op statements or unreachable code

    The problem of enumerating computable sequences, however, only
    depends on successfully identifying _one_ circle-free machine that
    computes any given computable sequences. While identifying more than one
    can certainly be done, it is _not_ a requirement for enumerating
    computable sequences, as _one_ machine computing a sequence /suffices to output any and all digits of that sequence/

    The problem of enumerating computable sequences is therefore _not_
    actually equivalent to a _general process_ of enumerating circle-free machines, as there is no need to identify all circle-free machines which compute any given computable sequence

    Said problem is only equivalent to a _limited process_ of enumerating
    circle-free machines. The machine which identifies circle-free machines
    only needs the limited power of determining _at least one_ circle-free machine for any given computable sequence, _not all_ machines for any
    given computable sequence

    Because of this fallacy, the proof found on the following p247, where
    an ill-defined machine EYou (which attempts and fails to compute the
    direct diagonal +#rCO) is found to be undecidable in respect to circle-free decider EYoo; does not then prove an impossibility for enumerating computable sequences. As the problem of enumerating /all circle-free machines/ is _not_ equivalent to that of enumerating /just computable sequences/



    Mild Shock schrieb:
    Concerning this boring nonsense:

    https://book.simply-logical.space/src/text/2_part_ii/5.3.html#

    Funny idea that anybody would be interested just now in
    the year 2025 in things like teaching breadth first
    search versus depth first search, or even be rCLmystifiedrCY
    by such stuff. Its extremly trivial stuff:

    Insert your favorite tree traversal pictures here.

    Its even not artificial intelligence neither has anything
    to do with mathematical logic, rather belongs to computer
    science and discrete mathematics which you have in
    1st year university

    courses, making it moot to call it rCLsimply logicalrCY. It
    reminds me of the idea of teaching how wax candles work
    to dumb down students, when just light bulbs have been
    invented. If this is the outcome

    of the Prolog Education Group 2.0, then good night.



    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 4 17:07:09 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    So the idea is to cover backtracking without
    stack and choice points, only with registers.
    So at the compute goto will use an instruction

    that stores the PC target into a register,
    a new instruction for Hack:

    REG = PC + REL

    And then the jump will be, again a new
    instruction for Hack:

    PC = REG

    If we squeeze the lemon and compile as much
    with that, we will only find that it breaks for
    calling recursive predicates that can use

    arbitary registers and choice points. But we
    could maybe add stack and choice point as an
    after match, instead of the classical WAM design

    that starts with stack and choice points!

    Bye

    Mild Shock schrieb:
    Hi,

    pi-WAM is a nice challenge, since its aim is to go
    even blow the instruction set of SWI-Prolog,
    while only using a Hack variant as instruction

    stream. But what is Hack? Well Hack seems to be
    the missing legacy of Niclaus Wirths PL0. The
    Hack (machine .asm) and Jack (highlevel compiler

    generating .vm which can be converted to .asm)
    combo makes even the famous Crafting Interpreters
    /Lox by Bob Nystrom redundant:

    Nand to Tetris courses are taught at 400+
    universities, high schools, and bootcamps. The
    students who take them range from high
    schoolers to Ph.D. students to
    https://www.nand2tetris.org/

    But digging deaper in Hack, it has no functions
    pointers so objects don't use virtual tables.
    But what will pi-WAM need and that is not yet

    in Hack? Given that my pi-WAM doesn't want a stack
    nor a choice point lists? Currently there is the
    idea to add a computed goto and that it can

    cover a more lightweight C_OR as known from
    SWI-Prolog, that would have the C_OR branches
    maybe restricted to have no outside

    clause calls? Lets see. Not yet sure.

    Bye
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Jul 17 10:49:59 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    Feels like reinventing FGCS concurrent
    logic programming.

    LoL

    Bye

    Mild Shock schrieb:
    Hi,

    So the idea is to cover backtracking without
    stack and choice points, only with registers.
    So at the compute goto will use an instruction

    that stores the PC target into a register,
    a new instruction for Hack:

    -a-a REG = PC + REL

    And then the jump will be, again a new
    instruction for Hack:

    -a-a PC = REG

    If we squeeze the lemon and compile as much
    with that, we will only find that it breaks for
    calling recursive predicates that can use

    arbitary registers and choice points. But we
    could maybe add stack and choice point as an
    after match, instead of the classical WAM design

    that starts with stack and choice points!

    Bye

    Mild Shock schrieb:
    Hi,

    pi-WAM is a nice challenge, since its aim is to go
    even blow the instruction set of SWI-Prolog,
    while only using a Hack variant as instruction

    stream. But what is Hack? Well Hack seems to be
    the missing legacy of Niclaus Wirths PL0. The
    Hack (machine .asm) and Jack (highlevel compiler

    generating .vm which can be converted to .asm)
    combo makes even the famous Crafting Interpreters
    /Lox by Bob Nystrom redundant:

    Nand to Tetris courses are taught at 400+
    universities, high schools, and bootcamps. The
    students who take them range from high
    schoolers to Ph.D. students to
    https://www.nand2tetris.org/

    But digging deaper in Hack, it has no functions
    pointers so objects don't use virtual tables.
    But what will pi-WAM need and that is not yet

    in Hack? Given that my pi-WAM doesn't want a stack
    nor a choice point lists? Currently there is the
    idea to add a computed goto and that it can

    cover a more lightweight C_OR as known from
    SWI-Prolog, that would have the C_OR branches
    maybe restricted to have no outside

    clause calls? Lets see. Not yet sure.

    Bye

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Jul 17 11:13:57 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Somebody tasked the logic programming community
    to make an +#-Prolog, i.e. have some alpha
    conversion whatever builtin, plus maybe nominal
    logic fresh variables whatever.

    But who reads such nonsense in 2026:

    Lifting E-Graphs: A Function Isn't a Constant
    https://arxiv.org/abs/2606.22734

    So you see where I am aiming with -C-WAM, surely
    not +#-Prolog . I wouldn't care less about +#-Prolog.
    -C is more fun than +#, and working on WAM is more
    fun then creating some silly prototype of a

    REPL of a homunkulus of a Prolog. -C beats +#:

    - +# = abstract, academic, awkward
    - -C = parallelism, performance, practical

    Bye

    Mild Shock schrieb:
    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    Feels like reinventing FGCS concurrent
    logic programming.

    LoL

    Bye

    Mild Shock schrieb:
    Hi,

    So the idea is to cover backtracking without
    stack and choice points, only with registers.
    So at the compute goto will use an instruction

    that stores the PC target into a register,
    a new instruction for Hack:

    -a-a-a REG = PC + REL

    And then the jump will be, again a new
    instruction for Hack:

    -a-a-a PC = REG

    If we squeeze the lemon and compile as much
    with that, we will only find that it breaks for
    calling recursive predicates that can use

    arbitary registers and choice points. But we
    could maybe add stack and choice point as an
    after match, instead of the classical WAM design

    that starts with stack and choice points!

    Bye

    Mild Shock schrieb:
    Hi,

    pi-WAM is a nice challenge, since its aim is to go
    even blow the instruction set of SWI-Prolog,
    while only using a Hack variant as instruction

    stream. But what is Hack? Well Hack seems to be
    the missing legacy of Niclaus Wirths PL0. The
    Hack (machine .asm) and Jack (highlevel compiler

    generating .vm which can be converted to .asm)
    combo makes even the famous Crafting Interpreters
    /Lox by Bob Nystrom redundant:

    Nand to Tetris courses are taught at 400+
    universities, high schools, and bootcamps. The
    students who take them range from high
    schoolers to Ph.D. students to
    https://www.nand2tetris.org/

    But digging deaper in Hack, it has no functions
    pointers so objects don't use virtual tables.
    But what will pi-WAM need and that is not yet

    in Hack? Given that my pi-WAM doesn't want a stack
    nor a choice point lists? Currently there is the
    idea to add a computed goto and that it can

    cover a more lightweight C_OR as known from
    SWI-Prolog, that would have the C_OR branches
    maybe restricted to have no outside

    clause calls? Lets see. Not yet sure.

    Bye


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 18 01:22:18 2026
    From Newsgroup: comp.lang.prolog


    Hi,

    The pi in pi-WAM refers to pi-calculus.
    pi-calculus has not atomic(i32).

    The -C-calculus is a universal model of computation.
    This was first observed by Milner in his paper
    "Functions as Processes",[10] in which he presents
    two encodings of the lambda-calculus in the -C-calculus. https://en.wikipedia.org/wiki/%CE%A0-calculus

    LoL

    Bye

    Chris M. Thomasson schrieb:
    On 7/17/2026 2:16 AM, Mild Shock wrote:
    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    [...]

    No atomic fetch-and-add?

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 18 01:49:39 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Milners fickle() is here:

    Functions as processes
    https://inria.hal.science/inria-00075405

    After Theorem 7.7:

    So in P we construct a fickle rCyfunctionrCO which
    behaves differently on successive calls.

    Here is a pi-WAM run in Dogelog Player, using the emulator:

    Dogelog Spieler 2.2.4, Oracle Corporation, Java 26.0.1
    (c) 1985-2026, XLOG Technologies AG, Schweiz
    ?- ensure_loaded(library(edge/brainfog)).
    true.
    ?- emulate((between(1,2,Y),in(X),out(Y))).
    : 0
    1
    : 0
    2
    fail.

    The emulator is portable, can be run every Prolog
    system. But it is only 1 process. So its better
    to use the n process backends for CPU or GPU.

    Which are less portable, not anymore pure Prolog,
    a great deal of thread start and join infrastructure
    as well, and a native Hack VM.

    The comms across process is not yet implemented.
    But the in/1 and out/1 instructions are already
    there. But they currently go to stdin/stdout.

    Bye

    Mild Shock schrieb:

    Hi,

    The pi in pi-WAM refers to pi-calculus.
    pi-calculus has not atomic(i32).

    The -C-calculus is a universal model of computation.
    This was first observed by Milner in his paper
    "Functions as Processes",[10] in which he presents
    two encodings of the lambda-calculus in the -C-calculus. https://en.wikipedia.org/wiki/%CE%A0-calculus

    LoL

    Bye

    Chris M. Thomasson schrieb:
    On 7/17/2026 2:16 AM, Mild Shock wrote:
    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    [...]

    No atomic fetch-and-add?


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 18 11:00:23 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Mild Shock schrieb:
    The -C-calculus is a universal model of computation.
    This was first observed by Milner in his paper
    "Functions as Processes",[10] in which he presents
    two encodings of the lambda-calculus in the -C-calculus. https://en.wikipedia.org/wiki/%CE%A0-calculus

    Ross Finlayson schrieb:
    Of course the lambda-calculus and pi-calculus
    are great things for models of types and communicating
    sequential processes.

    Roberto di Cosmo has a great book on types,
    and more than one.


    https://books.google.com/books/about/Isomorphisms_of_Types.html?id=cdJZRjIxavwC

    When a 1970s paper claims a relation ship between
    pi-calculus and lambda calculus, then both calculi
    refer to a typeless calculi.

    Types are a later invention. The original lambda
    calculus was typeless. Church encodings came later,
    but for example the Church Turing hypotheses is

    formulated along typeless lambda calculus.

    Bye

    P.S.: Prolog is also typeless. I do not intend to
    add any types to pi-WAM either.


    Mild Shock schrieb:
    Hi,

    Milners fickle() is here:

    Functions as processes
    https://inria.hal.science/inria-00075405

    After Theorem 7.7:

    So in P we construct a fickle rCyfunctionrCO which
    behaves differently on successive calls.

    Here is a pi-WAM run in Dogelog Player, using the emulator:

    Dogelog Spieler 2.2.4, Oracle Corporation, Java 26.0.1
    (c) 1985-2026, XLOG Technologies AG, Schweiz
    ?- ensure_loaded(library(edge/brainfog)).
    true.
    ?- emulate((between(1,2,Y),in(X),out(Y))).
    : 0
    1
    : 0
    2
    fail.

    The emulator is portable, can be run every Prolog
    system. But it is only 1 process. So its better
    to use the n process backends for CPU or GPU.

    Which are less portable, not anymore pure Prolog,
    a great deal of thread start and join infrastructure
    as well, and a native Hack VM.

    The comms across process is not yet implemented.
    But the in/1 and out/1 instructions are already
    there. But they currently go to stdin/stdout.

    Bye

    Mild Shock schrieb:

    Hi,

    The pi in pi-WAM refers to pi-calculus.
    pi-calculus has not atomic(i32).

    The -C-calculus is a universal model of computation.
    This was first observed by Milner in his paper
    "Functions as Processes",[10] in which he presents
    two encodings of the lambda-calculus in the -C-calculus.
    https://en.wikipedia.org/wiki/%CE%A0-calculus

    LoL

    Bye

    Chris M. Thomasson schrieb:
    On 7/17/2026 2:16 AM, Mild Shock wrote:
    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    [...]

    No atomic fetch-and-add?



    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Jul 18 11:10:17 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Ha Ha, TLo @ FOM schrieb:
    Lastly--there is the Church-Turing-thesis itself.
    I cannot imagine what form a proof could have. But at
    least a refutation is conceivable, if extremely far-fetched.

    Can the Church Turing hypotheses be refuted? Well
    since it is stricly speaking only a hypothesis and
    not a thesis, it cannot be that much refuted,

    since it is a kind of exhaustion argument defining
    a category by examples. The history goes as follows:

    In 1935rCo36,[7] Alonzo Church formalized the
    concept of effectively calculable functions by proposing
    that they are general recursive functions, or,
    equivalently, ++-definable functions.
    https://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis

    Does his ++-definable include types? Nope. Do
    we need large cardinal axioms? It depends.
    Church ++-computable was syntactically defined,

    it didn't have a semantic referent. The search
    for a semantic referent gave rise to certain
    additional problems of set theory and type theory.

    Have Fun!

    Bye

    Mild Shock schrieb:
    Hi,

    Mild Shock schrieb:
    The -C-calculus is a universal model of computation.
    This was first observed by Milner in his paper
    "Functions as Processes",[10] in which he presents
    two encodings of the lambda-calculus in the -C-calculus. https://en.wikipedia.org/wiki/%CE%A0-calculus

    Ross Finlayson schrieb:
    Of course the lambda-calculus and pi-calculus
    are great things for models of types and communicating
    sequential processes.

    Roberto di Cosmo has a great book on types,
    and more than one.


    https://books.google.com/books/about/Isomorphisms_of_Types.html?id=cdJZRjIxavwC


    When a 1970s paper claims a relation ship between
    pi-calculus and lambda calculus, then both calculi
    refer to a typeless calculi.

    Types are a later invention. The original lambda
    calculus was typeless. Church encodings came later,
    but for example the Church Turing hypotheses is

    formulated along typeless lambda calculus.

    Bye

    P.S.: Prolog is also typeless. I do not intend to
    add any types to pi-WAM either.


    Mild Shock schrieb:
    Hi,

    Milners fickle() is here:

    Functions as processes
    https://inria.hal.science/inria-00075405

    After Theorem 7.7:

    So in P we construct a fickle rCyfunctionrCO which
    behaves differently on successive calls.

    Here is a pi-WAM run in Dogelog Player, using the emulator:

    Dogelog Spieler 2.2.4, Oracle Corporation, Java 26.0.1
    (c) 1985-2026, XLOG Technologies AG, Schweiz
    ?- ensure_loaded(library(edge/brainfog)).
    true.
    ?- emulate((between(1,2,Y),in(X),out(Y))).
    : 0
    1
    : 0
    2
    fail.

    The emulator is portable, can be run every Prolog
    system. But it is only 1 process. So its better
    to use the n process backends for CPU or GPU.

    Which are less portable, not anymore pure Prolog,
    a great deal of thread start and join infrastructure
    as well, and a native Hack VM.

    The comms across process is not yet implemented.
    But the in/1 and out/1 instructions are already
    there. But they currently go to stdin/stdout.

    Bye

    Mild Shock schrieb:

    Hi,

    The pi in pi-WAM refers to pi-calculus.
    pi-calculus has not atomic(i32).

    The -C-calculus is a universal model of computation.
    This was first observed by Milner in his paper
    "Functions as Processes",[10] in which he presents
    two encodings of the lambda-calculus in the -C-calculus.
    https://en.wikipedia.org/wiki/%CE%A0-calculus

    LoL

    Bye

    Chris M. Thomasson schrieb:
    On 7/17/2026 2:16 AM, Mild Shock wrote:
    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    [...]

    No atomic fetch-and-add?




    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog,sci.logic,sci.math on Sun Jul 19 16:06:21 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    Accelerate Lean! And get from Theorem 3.11
    to Corollary 3.12 done.

    PROJECT LANA INTERIM REPORT ON IUT THEORY
    ZEN Mathematics Center - 2026/07/17
    https://zen.ac.jp/en/zmc

    ZMCN+eZEN Mathematics Center) is an international
    research institute established with the aim
    of promoting and developing modern mathematics

    with a focus on arithmetic geometry and the
    formalization of modern mathematics using
    computer languages

    LoL

    Bye

    Mild Shock schrieb:
    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    Feels like reinventing FGCS concurrent
    logic programming.

    LoL

    Bye

    Mild Shock schrieb:
    Hi,

    So the idea is to cover backtracking without
    stack and choice points, only with registers.
    So at the compute goto will use an instruction

    that stores the PC target into a register,
    a new instruction for Hack:

    -a-a-a REG = PC + REL

    And then the jump will be, again a new
    instruction for Hack:

    -a-a-a PC = REG

    If we squeeze the lemon and compile as much
    with that, we will only find that it breaks for
    calling recursive predicates that can use

    arbitary registers and choice points. But we
    could maybe add stack and choice point as an
    after match, instead of the classical WAM design

    that starts with stack and choice points!

    Bye

    Mild Shock schrieb:
    Hi,

    pi-WAM is a nice challenge, since its aim is to go
    even blow the instruction set of SWI-Prolog,
    while only using a Hack variant as instruction

    stream. But what is Hack? Well Hack seems to be
    the missing legacy of Niclaus Wirths PL0. The
    Hack (machine .asm) and Jack (highlevel compiler

    generating .vm which can be converted to .asm)
    combo makes even the famous Crafting Interpreters
    /Lox by Bob Nystrom redundant:

    Nand to Tetris courses are taught at 400+
    universities, high schools, and bootcamps. The
    students who take them range from high
    schoolers to Ph.D. students to
    https://www.nand2tetris.org/

    But digging deaper in Hack, it has no functions
    pointers so objects don't use virtual tables.
    But what will pi-WAM need and that is not yet

    in Hack? Given that my pi-WAM doesn't want a stack
    nor a choice point lists? Currently there is the
    idea to add a computed goto and that it can

    cover a more lightweight C_OR as known from
    SWI-Prolog, that would have the C_OR branches
    maybe restricted to have no outside

    clause calls? Lets see. Not yet sure.

    Bye


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog,sci.logic,sci.math on Sun Jul 19 16:21:57 2026
    From Newsgroup: comp.lang.prolog

    Hi,

    While some logicians seem to go backwards,
    bascially want GPUs eliminated from laptops,
    and then kill any windows manager, just use EXWM:

    From XFCE to EXWM
    Emacs is a text editor that, through EXWM (Emacs X
    Window Manager), can also be your window manager: https://www.vidal-rosset.net/2026-07-12-from-xfce-to-exwm-living-in-emacs-desktop-on-mx-linux.html

    Mostlikely we might soon see the backward
    sequel to E-graphs called EMACS-graphs. But
    here is my proposal, why not go the other way?

    - -C-E-graphs: Basically parallel E-graphs
    - Pegg: An alternative egg library, using -C-WAM

    Ok, this will not come so fast. Currently
    my -C-WAM is still very integerish. Not
    sure how to do anything E-graph yet.

    Bye

    P.S: There is already an attempt based on
    Scala 3.4.1, some experiments done on
    Intel Core i7-12700K using 8 threads.

    But why use a very old CPU from Q4'21,
    when you can use an AI Laptop from 2026
    with 512 GPU streaming processors?

    Parallel and Customizable Equality Saturation https://dl.acm.org/doi/pdf/10.1145/3771775.3786266

    Mild Shock schrieb:
    Hi,

    Accelerate Lean! And get from Theorem 3.11
    to Corollary 3.12 done.

    PROJECT LANA INTERIM REPORT ON IUT THEORY
    ZEN Mathematics Center - 2026/07/17
    https://zen.ac.jp/en/zmc

    ZMCN+eZEN Mathematics Center) is an international
    research institute established with the aim
    of promoting and developing modern mathematics

    with a focus on arithmetic geometry and the
    formalization of modern mathematics using
    computer languages

    LoL

    Bye

    Mild Shock schrieb:
    Hi,

    Maybe I should write a blog post, titled
    Introduction to AI Accelerator Prolog:

    - specialized jobs -C-WAM (currently integerish stuff)
    - -C-WAM uses no atomics, only comms
    - -C-WAM uses warp, 30-40% more speed
    - -C-WAM runs on GPU and CPU
    - -C-WAM runs from within JavaScript, Python and Java

    Feels like reinventing FGCS concurrent
    logic programming.

    LoL

    Bye

    Mild Shock schrieb:
    Hi,

    So the idea is to cover backtracking without
    stack and choice points, only with registers.
    So at the compute goto will use an instruction

    that stores the PC target into a register,
    a new instruction for Hack:

    -a-a-a REG = PC + REL

    And then the jump will be, again a new
    instruction for Hack:

    -a-a-a PC = REG

    If we squeeze the lemon and compile as much
    with that, we will only find that it breaks for
    calling recursive predicates that can use

    arbitary registers and choice points. But we
    could maybe add stack and choice point as an
    after match, instead of the classical WAM design

    that starts with stack and choice points!

    Bye

    Mild Shock schrieb:
    Hi,

    pi-WAM is a nice challenge, since its aim is to go
    even blow the instruction set of SWI-Prolog,
    while only using a Hack variant as instruction

    stream. But what is Hack? Well Hack seems to be
    the missing legacy of Niclaus Wirths PL0. The
    Hack (machine .asm) and Jack (highlevel compiler

    generating .vm which can be converted to .asm)
    combo makes even the famous Crafting Interpreters
    /Lox by Bob Nystrom redundant:

    Nand to Tetris courses are taught at 400+
    universities, high schools, and bootcamps. The
    students who take them range from high
    schoolers to Ph.D. students to
    https://www.nand2tetris.org/

    But digging deaper in Hack, it has no functions
    pointers so objects don't use virtual tables.
    But what will pi-WAM need and that is not yet

    in Hack? Given that my pi-WAM doesn't want a stack
    nor a choice point lists? Currently there is the
    idea to add a computed goto and that it can

    cover a more lightweight C_OR as known from
    SWI-Prolog, that would have the C_OR branches
    maybe restricted to have no outside

    clause calls? Lets see. Not yet sure.

    Bye



    --- Synchronet 3.22a-Linux NewsLink 1.2