λProlog Home Page

@screwlisp @kentpitman regarding the discussion we had after the #LispyGopherClimate show ended, MiniKanren is logic programming language embedded in Scheme (sort-of like a Prolog implemented in Scheme and coded with S-expressions), and you can use machine leaning methods like neural networks to guide the search tree of the goal solver mechanism. This paper is an example of what I was talking about.

Even before LLMs were invented, MiniKanren was able to do program synthesis using purely symbolic logic. They developed a prototype called Barliman where you would provide example input->output pairs as constraints, and using a constraint solver, could generalize those examples to a function that generates any output for any input. As a simple example, you could give it the following input-output pairs:

  • () -> ()
  • (a) () -> (a)
  • () (a) -> (a)
  • (a) (a) -> (a a)
  • …and the constraint solver could determine that you are trying to implement the append function for lists and write the code automatically — without LLMs, using purely symbolic logic.

    As you might expect, the solver could be very slow, or even diverge (never returning an answer). The paper I mentioned above talks about using neural networks to try to guide the constraint solver to improve the performance and usefulness of the results returned by the solver.

    Now imagine applying this technique to other domains besides code generation or optimization, for example, auto-completion, or cache pre-fetching, and building it into a programmable computing environment like Emacs. You could have a tool like “Cursor,” but instead of using LLMs, it uses classical computing and constraint solvers, while taking a fraction of the amount of energy that LLMs use.

    #tech #software #AI #LLM #MachineLearning #NeuralNetwork #ConstraintLogic #ConstraintSolver #LogicProgramming #Prolog #MiniKanren #Emacs #Lisp #Scheme #SchemeLang #ProgramSynthesis

    Readings shared January 19, 2026

    The readings shared in Bluesky on 19 January 2026 are: Broken proofs and broken provers. ~ Lawrence Paulson. #ITP #IsabelleHOL #RocqProver #LeanProver A formalization of Borel determinacy in Lean. ~

    Vestigium
    Logic programming with extensible types. ~ Ivan Perez, Angel Herranz. https://arxiv.org/abs/2601.03836v1 #Haskell #FunctionalProgramming #Prolog #LogicProgramming
    Logic Programming with Extensible Types

    Logic programming languages present clear advantages in terms of declarativeness and conciseness. However, the ideas of logic programming have been met with resistance in other programming communities, and have not generally been adopted by other paradigms and languages. This paper proposes a novel way to incorporate logic programming in an existing codebase in a typed functional programming language. Our approach integrates with the host language without sacrificing static typing, and leverages strengths of typed functional programming such as polymorphism and higher-order. We do so by combining three ideas. First, we use the extensible types technique to allow values of the host language to contain logic variables. Second, we implement a unification algorithm that works for any data structure that supports certain operations.Third, we introduce a domain-specific language to define and query predicates. We demonstrate our proposal via a series of examples, and provide aids to make the notation convenient for users, showing that the proposed approach is not just technically possible but also practical. Our ideas have been implemented in the language Haskell with very good results.

    arXiv.org
    Coding exercise ———————– Given this map (you choose an input representation), assign colours to regions A–F so that no adjacent regions have the same colour. Choose your favourite prog language. #logicprogramming #computerscience #gofai Based on Triska's lovely #Prolog video youtu.be/6XD7vBbywMc

    https://gitlab.com/b2495/fleng

    A compiler for the concurrent logic programming languages FGHC, Strand, KL1 and PCN.

    #prolog #logicprogramming #concurrent

    bunny351 / fleng · GitLab

    A compiler for the concurrent logic programming languages FGHC, Strand, KL1 and PCN.

    GitLab
    Readings shared December 7, 2025

    The readings shared in Bluesky on 7 December 2025 are: 50 years of proof assistants. ~ Lawrence Paulson. #ITP #IsabelleHOL #CoqProver #HOL DeepWiki leanprover-community/mathlib4: A comprehensive data

    Vestigium

    𝗣𝗿𝗼𝗹𝗼𝗴 𝗯𝘆 𝗘𝘅𝗮𝗺𝗽𝗹𝗲

    A short course developed specifically for anyone who struggled with the traditional university courses and textbooks.

    The focus is on concepts, and building confidence through short hands-on examples and exercises.

    I actually had a lot of fun writing it myself ! 😄

    https://www.amazon.co.uk/dp/B0BTQ7P69H/

    #prolog #logicprogramming