<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Neuro-Symbolic AI | Pedro Orvalho</title><link>https://pmorvalho.github.io/tags/neuro-symbolic-ai/</link><atom:link href="https://pmorvalho.github.io/tags/neuro-symbolic-ai/index.xml" rel="self" type="application/rss+xml"/><description>Neuro-Symbolic AI</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sat, 30 May 2026 00:00:00 +0000</lastBuildDate><image><url>https://pmorvalho.github.io/media/icon_hu_449091aa0565028d.png</url><title>Neuro-Symbolic AI</title><link>https://pmorvalho.github.io/tags/neuro-symbolic-ai/</link></image><item><title>📄📄📄 3 Papers accepted @ FLoC 2026!! 🎉🎉🎉</title><link>https://pmorvalho.github.io/blog/2026-05-30-floc/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><guid>https://pmorvalho.github.io/blog/2026-05-30-floc/</guid><description>&lt;p&gt;I&amp;rsquo;m very excited to share that &lt;strong&gt;three of our papers have been accepted at FLoC 2026&lt;/strong&gt;! 🎉&lt;/p&gt;
&lt;p&gt;Two papers were accepted to the &lt;strong&gt;42nd International Conference on Logic Programming (
)&lt;/strong&gt;, while a third paper was accepted to the &lt;strong&gt;LLMs meet Constraint Solving (
) Workshop&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="-can-automated-feedback-turn-students-into-happy-prologians"&gt;📚 Can Automated Feedback Turn Students into Happy Prologians?&lt;/h2&gt;
&lt;p&gt;Providing personalised feedback is crucial for effective learning, but delivering it at scale remains challenging. In this paper, we present &lt;strong&gt;ProHelp&lt;/strong&gt;, an automated assessment platform for Prolog built on top of
, and evaluate it through a large-scale deployment in an undergraduate logic programming course. Our results show that students perceive automated feedback as highly valuable, with automatic testing, open-choice-point warnings, and predicate-level scoring emerging as the most useful feedback mechanisms.&lt;/p&gt;
&lt;div class="text-center"&gt;
&lt;a
id="button-3fd81917b7743c3437d4eb407608c254"
href="https://pmorvalho.github.io/publications/iclp2026-1"
target="_blank"
rel="noopener"
class="inline-flex items-center gap-2 font-medium no-underline transition-all duration-300 ease-out transform-gpu focus:outline-none focus:ring-4 focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-zinc-900 disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none bg-gradient-to-br from-secondary-500 to-secondary-600 hover:from-secondary-600 hover:to-secondary-700 active:from-secondary-700 active:to-secondary-800 text-white shadow-lg shadow-secondary-500/25 hover:shadow-xl hover:shadow-secondary-500/30 hover:scale-105 active:scale-95 focus:ring-secondary-500/50 px-4 py-2 text-base rounded-full"
role="button"
aria-label="Read the ProHelp paper"
&gt;
&lt;span&gt;Read the ProHelp paper&lt;/span&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="pub-list-item view-citation" style="margin-bottom: 1rem"&gt;
&lt;i class="far fa-file-alt pub-icon" aria-hidden="true"&gt;&lt;/i&gt;
&lt;span class="article-metadata li-cite-author"&gt;
&lt;span &gt;
Ricardo Brancas&lt;/span&gt;, &lt;span class="font-bold"&gt;
Pedro Orvalho&lt;/span&gt;, &lt;span &gt;
Carolina Carreira&lt;/span&gt;, &lt;span &gt;
Vasco Manquinho&lt;/span&gt;, &lt;span &gt;
Ruben Martins&lt;/span&gt;
&lt;/span&gt;
(2026).
&lt;a href="https://pmorvalho.github.io/publications/iclp2026-1/" class="underline"&gt;Can Automated Feedback Turn Students into Happy Prologians?&lt;/a&gt;.
In &lt;strong&gt;ICLP 2026&lt;/strong&gt;.
&lt;div class="flex flex-wrap space-x-3"&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://pmorvalho.github.io/uploads/papers/iclp26-ProHelp.pdf" &gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9"/&gt;&lt;/svg&gt;
PDF
&lt;/a&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://pmorvalho.github.io/projects/ai4cseducation" &gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244"/&gt;&lt;/svg&gt;
project
&lt;/a&gt;
&lt;button class="hb-attachment-link hb-attachment-link-small js-cite-clipboard cursor-pointer" type="button" data-filename="/publications/iclp2026-1/cite.bib"&gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"/&gt;&lt;/svg&gt;
&lt;span&gt;Cite&lt;/span&gt;
&lt;/button&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://arxiv.org/abs/2504.16742" target="_blank" rel="noopener"&gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9"/&gt;&lt;/svg&gt;
Preprint
&lt;/a&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://doi.org/10.48550/arXiv.2504.16742" target="_blank" rel="noopener"&gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244"/&gt;&lt;/svg&gt;
DOI
&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-what-bugs-do-prolog-students-write-an-empirical-taxonomy-and-data-driven-mutation-framework"&gt;🐞 What Bugs Do Prolog Students Write? An Empirical Taxonomy and Data-Driven Mutation Framework&lt;/h2&gt;
&lt;p&gt;Automated feedback and repair systems require realistic bug datasets that reflect the mistakes students actually make. In this paper, we analyse &lt;strong&gt;7,201 Prolog submissions from 265 students&lt;/strong&gt; to construct a detailed taxonomy of Prolog programming errors. Based on this empirical study, we introduce &lt;strong&gt;LogMorph&lt;/strong&gt;, a data-driven mutation framework that generates realistic buggy Prolog programs according to the observed distribution of student mistakes, enabling more representative evaluation of debugging, repair, and educational tools.&lt;/p&gt;
&lt;div class="text-center"&gt;
&lt;a
id="button-31eff428bec75f61559814540a2d6ca9"
href="https://pmorvalho.github.io/publications/iclp2026-2"
target="_blank"
rel="noopener"
class="inline-flex items-center gap-2 font-medium no-underline transition-all duration-300 ease-out transform-gpu focus:outline-none focus:ring-4 focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-zinc-900 disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none bg-gradient-to-br from-secondary-500 to-secondary-600 hover:from-secondary-600 hover:to-secondary-700 active:from-secondary-700 active:to-secondary-800 text-white shadow-lg shadow-secondary-500/25 hover:shadow-xl hover:shadow-secondary-500/30 hover:scale-105 active:scale-95 focus:ring-secondary-500/50 px-4 py-2 text-base rounded-full"
role="button"
aria-label="Read the LogMorph paper"
&gt;
&lt;span&gt;Read the LogMorph paper&lt;/span&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="pub-list-item view-citation" style="margin-bottom: 1rem"&gt;
&lt;i class="far fa-file-alt pub-icon" aria-hidden="true"&gt;&lt;/i&gt;
&lt;span class="article-metadata li-cite-author"&gt;
&lt;span &gt;
Ricardo Brancas&lt;/span&gt;, &lt;span class="font-bold"&gt;
Pedro Orvalho&lt;/span&gt;, &lt;span &gt;
Carolina Carreira&lt;/span&gt;, &lt;span &gt;
Vasco Manquinho&lt;/span&gt;, &lt;span &gt;
Ruben Martins&lt;/span&gt;
&lt;/span&gt;
(2026).
&lt;a href="https://pmorvalho.github.io/publications/iclp2026-2/" class="underline"&gt;What Bugs Do Prolog Students Write? An Empirical Taxonomy and Data-Driven Mutation Framework&lt;/a&gt;.
In &lt;strong&gt;ICLP 2026&lt;/strong&gt;.
&lt;div class="flex flex-wrap space-x-3"&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://pmorvalho.github.io/projects/ai4cseducation" &gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244"/&gt;&lt;/svg&gt;
project
&lt;/a&gt;
&lt;button class="hb-attachment-link hb-attachment-link-small js-cite-clipboard cursor-pointer" type="button" data-filename="/publications/iclp2026-2/cite.bib"&gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"/&gt;&lt;/svg&gt;
&lt;span&gt;Cite&lt;/span&gt;
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-solving-maxsat-problems-from-natural-language-descriptions-with-llms-and-pysat"&gt;🤖 Solving MaxSAT Problems from Natural Language Descriptions with LLMs and PySAT&lt;/h2&gt;
&lt;p&gt;Can large language models make formal optimisation technologies accessible through natural language? In this workshop paper, we explore a neuro-symbolic approach in which an LLM translates a natural language problem description into executable &lt;strong&gt;PySAT&lt;/strong&gt; code that constructs and solves a &lt;strong&gt;Maximum Satisfiability (MaxSAT)&lt;/strong&gt; instance. By combining the flexibility of LLMs for semantic interpretation with the reliability of exact MaxSAT solvers, the approach significantly improves over direct LLM-based problem solving while maintaining formal correctness guarantees.&lt;/p&gt;
&lt;div class="text-center"&gt;
&lt;a
id="button-c2b8ae61be742b079c9588a111bfbf15"
href="https://pmorvalho.github.io/publications/llm-solve-2026"
target="_blank"
rel="noopener"
class="inline-flex items-center gap-2 font-medium no-underline transition-all duration-300 ease-out transform-gpu focus:outline-none focus:ring-4 focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-zinc-900 disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none bg-gradient-to-br from-secondary-500 to-secondary-600 hover:from-secondary-600 hover:to-secondary-700 active:from-secondary-700 active:to-secondary-800 text-white shadow-lg shadow-secondary-500/25 hover:shadow-xl hover:shadow-secondary-500/30 hover:scale-105 active:scale-95 focus:ring-secondary-500/50 px-4 py-2 text-base rounded-full"
role="button"
aria-label="Read the paper"
&gt;
&lt;span&gt;Read the paper&lt;/span&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class="pub-list-item view-citation" style="margin-bottom: 1rem"&gt;
&lt;i class="far fa-file-alt pub-icon" aria-hidden="true"&gt;&lt;/i&gt;
&lt;span class="article-metadata li-cite-author"&gt;
&lt;span class="font-bold"&gt;
Pedro Orvalho&lt;/span&gt;, &lt;span &gt;
Marta Kwiatkowska&lt;/span&gt;, &lt;span &gt;
Guillem Alenyà&lt;/span&gt;, &lt;span &gt;
Felip Manyà&lt;/span&gt;
&lt;/span&gt;
(2026).
&lt;a href="https://pmorvalho.github.io/publications/llm-solve-2026/" class="underline"&gt;Solving MaxSAT Problems from Natural Language Descriptions with LLMs and PySAT&lt;/a&gt;.
In &lt;strong&gt;LLM-Solve @ FLoC 2026&lt;/strong&gt;.
&lt;div class="flex flex-wrap space-x-3"&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://pmorvalho.github.io/uploads/papers/llm-solve-2026-workshop-paper.pdf" &gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9"/&gt;&lt;/svg&gt;
PDF
&lt;/a&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://pmorvalho.github.io/projects/ai4code" &gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244"/&gt;&lt;/svg&gt;
project
&lt;/a&gt;
&lt;button class="hb-attachment-link hb-attachment-link-small js-cite-clipboard cursor-pointer" type="button" data-filename="/publications/llm-solve-2026/cite.bib"&gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"/&gt;&lt;/svg&gt;
&lt;span&gt;Cite&lt;/span&gt;
&lt;/button&gt;
&lt;a class="hb-attachment-link hb-attachment-link-small" href="https://arxiv.org/abs/2605.29687" target="_blank" rel="noopener"&gt;
&lt;svg style="height: 1em" class='inline-block' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9"/&gt;&lt;/svg&gt;
Preprint
&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;m very grateful to all my collaborators!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;See you in Lisbon @ FLoC 2026&lt;/strong&gt;!!&lt;/p&gt;</description></item><item><title>Solving MaxSAT Problems from Natural Language Descriptions with LLMs and PySAT</title><link>https://pmorvalho.github.io/publications/llm-solve-2026/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://pmorvalho.github.io/publications/llm-solve-2026/</guid><description/></item></channel></rss>