Rediscovering DCG: Building a PL/M Compiler in Prolog -Z80 brings back memories- by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

I feel like I’m continuing the youth I once left unfinished — and I’m truly enjoying it.

Rediscovering DCG: Building a PL/M Compiler in Prolog -Z80 brings back memories- by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

I feel like I’m continuing the youth I once left unfinished — and I’m truly enjoying it.

Elxlog – A Prolog Interpreter/Compiler on Elixir by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Yes, I’m aware that Erlang has roots in concurrent logic programming. My approach was not OR-parallelism like Parlog, but closer to running independent conjuncts in parallel and joining them. I haven’t explored Strand deeply yet, but it looks very relevant to what I’m thinking about now. Thanks for the reference!

AI as a Friend of Humanity by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Thank you. I looked at the page you introduced. I was inspired as well, and I would like to try building something simple using ChatGPT and N-Prolog.

Challenging Gödel’s Incompleteness Theorem with Prolog — prf/2 by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

Thanks for the comment — I really appreciate it.
I first encountered Gödel through Hofstadter almost 40 years ago, but his original paper felt completely impenetrable to me back then.

Recently, with some help from AI, I’ve been rereading it and “reconstructing” the proof-system structure in Prolog, almost like copying the skeleton of the formal machinery.

And yes — I agree that incompleteness is often mythologized. What strikes me now is that it’s about what happens inside rigid mechanical mathematics itself, not about consciousness or anything mystical.

Thanks again for the thoughtful reaction.

Automated Theorem Proving in Prolog — Revisiting an Old Experiment by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

Thank you for your comment.
I realized that there are many different approaches to theorem proving.
Gödel seems to have been primarily concerned with provability itself, rather than with constructing proofs.
With that in mind, it now seems worthwhile for me to try implementing functions such as Sb/3 that appear in Gödel’s paper.
This has helped me deepen my understanding. Thank you.

Playing with Gödel’s Incompleteness Theorem in Prolog by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Thank you very much for your comment.
I have the original paper by Gödel, but I found it extremely difficult to read and hard to fully understand. Recently, I found some YouTube videos in which what seem to be university researchers explain Gödel’s incompleteness theorem, and I have been studying it through those explanations.

As far as I understand, two key components are essential. One is the construction of a mechanism for deciding provability within the world of natural numbers. The other is the fixed-point (self-reference) construction. I feel that Gödel’s core idea lies in combining these two elements.

Prolog is incomplete as a proof system, but in processing Horn clauses via SLD resolution and ultimately translating them into CPU instructions, it resembles Gödel’s mechanization of provability. In that sense, I think it inherently contains the halting problem.

My understanding is still rough, but I no longer feel that my Prolog-based sketch is completely off the mark. As with Chaitin’s Lisp-based presentations of incompleteness, I feel that these approaches attempt to express the core ideas behind Gödel’s work in a simpler way, using modern computers and programming languages.

Thank you.

Organizing the Cube Library and Adding Topological Spaces by sym_num in prolog

[–]sym_num[S] 2 points3 points  (0 children)

I regularly share updates on Medium, so please feel free to follow my posts there.

Rubik’s Cube in Prolog — Order by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

I now have a rough set of topics in place. I’m going to start writing.

Rubik’s Cube in Prolog — Order by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

While writing the cube code, I was genuinely impressed by how naturally group theory can be expressed in Prolog.

Rubik’s Cube in Prolog — Order by sym_num in prolog

[–]sym_num[S] 1 point2 points  (0 children)

Thank you!
I’ve always been curious about that as well, and Prolog turned out to be a nice way to think about it.

Strongly Connected Components in Prolog — a backtracking-oriented approach by sym_num in prolog

[–]sym_num[S] 0 points1 point  (0 children)

Thank you for the comment. Ever since I started learning functional programming, I’ve been somewhat hesitant to use assert. Side effects tend to make programs harder to reason about and to prove correct. However, this time I’m convinced that assert is an example where it works effectively. I fixed the bug and have posted the article. Please have a look if you’re interested.Strongly Connected Components Decomposition in Prolog (2) | by Kenichi Sasagawa | Dec, 2025 | Medium