+0.36 λProlog: Logic programming in higher-order logic (www.lix.polytechnique.fr S:+0.25 )
167 points by ux266478 9 days ago | 37 comments on HN | Moderate positive Contested Mission · v3.7 · 2026-02-26 04:18:22 0
Summary Free Expression & Education Access Advocates
This academic research page on λProlog presents programming language theory and educational resources with strong commitment to open access and scientific freedom. The content demonstrates high support for Articles 19 (free expression through peer-reviewed research attribution and transparent scientific discourse) and Article 26–27 (education and scientific participation through free access to tutorials, textbooks, implementations, and code examples). A minor structural tension exists around Article 12 (privacy) due to unvalidated Google Analytics tracking.
Article Heatmap
Preamble: +0.20 — Preamble P Article 1: ND — Freedom, Equality, Brotherhood Article 1: No Data — Freedom, Equality, Brotherhood 1 Article 2: ND — Non-Discrimination Article 2: No Data — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: ND — Privacy Article 12: No Data — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: ND — Property Article 17: No Data — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.47 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: ND — Work & Equal Pay Article 23: No Data — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: ND — Standard of Living Article 25: No Data — Standard of Living 25 Article 26: +0.62 — Education 26 Article 27: +0.62 — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: ND — Duties to Community Article 29: No Data — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Editorial Mean +0.36 Structural Mean +0.25
Weighted Mean +0.50 Unweighted Mean +0.48
Max +0.62 Article 26 Min +0.20 Preamble
Signal 4 No Data 27
Volatility 0.17 (Medium)
Negative 0 Channels E: 0.6 S: 0.4
SETL +0.20 Editorial-dominant
FW Ratio 59% 22 facts · 15 inferences
Evidence 19% coverage
3H 4M 2L 22 ND
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.20 (1 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.00 (0 articles) Personal: 0.00 (0 articles) Expression: 0.47 (1 articles) Economic & Social: 0.00 (0 articles) Cultural: 0.62 (2 articles) Order & Duties: 0.00 (0 articles)
HN Discussion 13 top-level · 12 replies
TheRoque 2026-02-24 12:35 UTC link
I remember learning it in univerisity. It's a really weird language to reason with IMO. But really fun. However I've heard the performances are not that good if you wanna make e.g. game AIs with it.
yodsanklai 2026-02-24 13:01 UTC link
I'm curious to see how AI is going to reshape research in programming languages. Statically typed languages with expressive type systems should be even more relevant for instance.
upghost 2026-02-24 13:27 UTC link
I'm surprised how hard I had to dig for an actual example of syntax[1], so here you go.

[1]: https://www.lix.polytechnique.fr/~dale/lProlog/proghol/extra...

Antibabelic 2026-02-24 13:31 UTC link
There is a great overview of λProlog from 1988: https://repository.upenn.edu/bitstreams/e91f803b-8e75-4f3c-9...
polairscience 2026-02-24 13:38 UTC link
I think that might be my favorite department/lab website I've ever come across. Really fun. Doesn't at all align with the contemporary design status quo and it shows just how good a rich website can be on a large screen. Big fan.

https://www.lix.polytechnique.fr/

boxfire 2026-02-24 15:26 UTC link
I am a huge fan of the work towards putting this in kanren as λKanren:

https://www.proquest.com/openview/2a5f2e00e8df7ea3f1fd3e8619...

A few of my own experiments in this time with unification over the binders as variables themselves shows there’s almost always a post HM inference sitting there but likely not one that works in total generality.

To me that spot of trying to binding unification in higher order logic constraint equations is the most challenging and interesting problem since it’s almost always decidable or decidably undecidable in specific instances, but provably undecidable in general.

So what gives? Where is this boundary and does it give a clue to bigger gains in higher order unification? Is a more topological approach sitting just behind the veil for a much wider class of higher order inference?

And what of optimal sharing in the presence of backtracking? Lampings algorithm when the unification variables is in the binder has to have purely binding attached path contexts like closures. How does that get shared?

Fun to poke at, maybe just enough modern interest in logic programming to get there too…

big-chungus4 2026-02-24 16:36 UTC link
(1987)
big-chungus4 2026-02-24 16:37 UTC link
when I downloaded the example programs, they open up in my music player but don't play anything
poppingtonic 2026-02-24 17:50 UTC link
Learning how to implement Prolog in pg's On Lisp was a fun way to spend multiple weeks programming. Doing this again this year should be a lot of fun.
abathologist 2026-02-24 17:55 UTC link
I did a few days of AoC in 2020 in λProlog (as a non-expert in the language), using the Elpi implementation. It provides a decent source of relatively digestable toy examples: https://github.com/shonfeder/aoc-2020

(Caveat that I don't claim to be a λProlog or expert.)

All examples showcase the typing discipline that is novel relative to Prolog, and towards day 10, use of the lambda binders, hereditary harrop formulas, and higher order niceness shows up.

llsf 2026-02-24 19:15 UTC link
Did some modest development on Lambda Prolog back in 1999. I still have a vivid memory of feeling my brain expanding :) like rewiring how I approach programming and opening up new territory in my brain.

It might sound weird and crazy, but it quite literally blew my mind at the time !

TZubiri 2026-02-24 21:22 UTC link
Anyone know why there seems to be a Prolog renaissance?

I personally found it by asking for a specific language recommendation from ChatGPT, and one of the suggestions was Prolog.

011101101 2026-02-24 23:14 UTC link
λProlog, the Simple Theory of Types (1940) Church, A.
pjmlp 2026-02-24 12:58 UTC link
First of all, it helps to actually use a proper compiled Prolog implementation like SWI Prolog.

Second you really need to understand and fine tune cuts, and other search optimization primitives.

Finally in what concerns Game AIs, it is a mixture of algorithms and heuristics, a single paradigm language (first order logic) like Prolog, can't be a tool for all nails.

laksjhdlka 2026-02-24 13:25 UTC link
With λProlog in particular I think it probably finds most of its use in specifying and reasoning about systems/languages/logics, e.g. with Abella. I don't think many people are running it in production as an implementation language.
Antibabelic 2026-02-24 13:32 UTC link
There is also an implementation of 99 Bottles of Beer on Rosetta Code: https://rosettacode.org/wiki/99_bottles_of_beer#Lambda_Prolo...
neuroelectron 2026-02-24 13:44 UTC link
So brainfuck x lisp
ux266478 2026-02-24 14:18 UTC link
> It's a really weird language to reason with IMO

I know you likely mean regular Prolog, but that's actually fairly easy and intuitive to reason with (code dependent). Lambda Prolog is much, much harder to reason about IMO and there's a certain intractability to it because of just how complex the language is.

acjohnson55 2026-02-24 14:31 UTC link
Why do you think that?
tmaly 2026-02-24 16:00 UTC link
I have written stuff in Prolog, but I find this lambda Prolog syntax very difficult to grok.
tannhaeuser 2026-02-24 17:25 UTC link
The term "AI" has changed in recent years but if you mean classic game logic such as complex rules and combinatorial opponents then there's plenty of Prolog game code on github eg. for Poker and other card or board games. Prolog is also as natural a choice for adventure puzzles as it gets with repository items and complicated conditions to advance the game. In fact, Amzi! Prolog uses adventure game coding as a topic for its classic (1980s) introductory Prolog learning book Adventure in Prolog ([1]). Based on a cursory look, most code in that book should run just fine on a modern ISO Prolog engine ([2]) in your browser.

[1]: https://www.amzi.com/AdventureInProlog/advtop.php

[2]: https://quantumprolog.sgml.net

dyingkneepad 2026-02-24 17:32 UTC link
I also learned Prolog in the university.

In the Classsic AI course we had to implement gaming AI algorithms (A*, alpha-beta pruning, etc) and in Prolog for one specific assignment. After trying for a while, I got frustrated and asked the teacher if I could do it in Ruby instead. He agreed: he was the kind of person who just couldn't say no, he was too nice for his own good. I still feel bad about it.

Rest In Peace, Alexandre.

dyingkneepad 2026-02-24 17:35 UTC link
As usual, try mplayer. It can play anything.
cess11 2026-02-24 19:08 UTC link
There are some examples in this tutorial PDF:

https://www.lix.polytechnique.fr/Labo/Dale.Miller/lProlog/fe...

Twey 2026-02-25 20:54 UTC link
Constantly amused by the split in comments of any moderately innovative language post between ‘I don't care about all this explanation, just show me the syntax!’ and ‘I don't understand any of this syntax, what a useless language!’

If the language is ‘JavaScript but with square brackets instead of braces’ maybe the syntax is relevant. But in general concrete syntax is the least interesting (not least important, but easiest to change) thing in a programming language, and its similarity to other languages a particular reader knows less interesting still. JavaScript is not the ultimate in programming language syntax (I hope!) so it's still worth experimenting, even if the results aren't immediately comprehensible without learning.

Editorial Channel
What the content says
+0.45
Article 27 Cultural Participation
High Advocacy Practice
Editorial
+0.45
SETL
+0.21

Content extensively presents λProlog as contributing to scientific and cultural understanding through peer-reviewed publications, theoretical advances, and meta-programming applications. Programming language is framed as advancing mathematical logic (Church's Simple Theory of Types) and computational theory. Multiple researchers credited with scientific contributions. References to proof theory, theorem proving, and formal methods indicate scientific community participation.

+0.40
Article 26 Education
High Advocacy Practice
Editorial
+0.40
SETL
+0.20

Content explicitly frames λProlog as an educational tool with extensive documentation for learners. Mentions textbooks, tutorials, course materials, and educational applications. Programming language is presented as intellectually accessible through 'declarative specifications' and systematic design. References educational work by multiple scholars (Alwen Tiu course material, Amy Felty tutorial, John Hannan program analysis tutorial).

+0.35
Article 19 Freedom of Expression
High Advocacy Practice
Editorial
+0.35
SETL
+0.19

Content extensively documents research findings, tutorial materials, and open scientific discourse on λProlog theory and implementation. Multiple authored perspectives (Dale Miller, Gopalan Nadathur, Zakaria Chihani, etc.) are presented without editorial censorship. References to peer-reviewed publications and academic conferences support open scientific communication.

+0.25
Preamble Preamble
Medium Framing
Editorial
+0.25
SETL
+0.19

Content frames logic programming and higher-order programming as foundational knowledge domains accessible to researchers and practitioners, implying support for intellectual development and knowledge sharing.

ND
Article 1 Freedom, Equality, Brotherhood
Low

No direct discussion of human dignity or equality principles in the content.

ND
Article 2 Non-Discrimination
Low

No explicit anti-discrimination statement or discussion.

ND
Article 3 Life, Liberty, Security

No discussion of security or personal safety.

ND
Article 4 No Slavery

No mention of slavery or servitude.

ND
Article 5 No Torture

No discussion of torture or cruel treatment.

ND
Article 6 Legal Personhood

No discussion of right to legal personhood.

ND
Article 7 Equality Before Law

No discussion of equal protection or legal discrimination.

ND
Article 8 Right to Remedy

No discussion of judicial remedy or legal recourse.

ND
Article 9 No Arbitrary Detention

No discussion of arbitrary arrest or detention.

ND
Article 10 Fair Hearing

No discussion of fair trial or due process.

ND
Article 11 Presumption of Innocence

No discussion of criminal law or presumption of innocence.

ND
Article 12 Privacy
Medium Practice

No editorial content addresses privacy rights.

ND
Article 13 Freedom of Movement
Medium Practice

No discussion of freedom of movement.

ND
Article 14 Asylum

No discussion of right to asylum or refuge.

ND
Article 15 Nationality

No discussion of nationality.

ND
Article 16 Marriage & Family

No discussion of marriage or family.

ND
Article 17 Property

No discussion of property rights.

ND
Article 18 Freedom of Thought

No discussion of conscience or religion.

ND
Article 20 Assembly & Association

No discussion of freedom of assembly or association.

ND
Article 21 Political Participation

No discussion of political participation or voting.

ND
Article 22 Social Security

No discussion of social security or welfare benefits.

ND
Article 23 Work & Equal Pay

No discussion of labor rights or employment.

ND
Article 24 Rest & Leisure

No discussion of rest or leisure.

ND
Article 25 Standard of Living

No discussion of health or standard of living.

ND
Article 28 Social & International Order
Medium Practice

No explicit discussion of international social order.

ND
Article 29 Duties to Community

No discussion of individual duties or community responsibilities.

ND
Article 30 No Destruction of Rights

No content that seeks to destroy UDHR rights or freedoms.

Structural Channel
What the site does
+0.35
Article 27 Cultural Participation
High Advocacy Practice
Structural
+0.35
Context Modifier
+0.20
SETL
+0.21

Free access to scientific publications, implementations, and code examples enables participation in scientific culture. Open-source implementations allow direct access to scientific work. Academic institution provides research infrastructure and credibility. Peer-reviewed conference references (LPAR, PLILP) and academic book publishing support quality scientific participation. Abella theorem prover and formal π-calculus formalization represent cutting-edge scientific contribution.

+0.30
Article 26 Education
High Advocacy Practice
Structural
+0.30
Context Modifier
+0.25
SETL
+0.20

Free access to educational resources without registration, credential requirement, or tuition barrier. Multiple learning modalities provided: video tutorials, written courses, books (both commercial and freely available), code examples, and interactive tools. Basic semantic HTML supports accessibility for diverse learners. Open implementations enable hands-on learning. Academic institution backing ensures sustained access to knowledge.

+0.25
Article 19 Freedom of Expression
High Advocacy Practice
Structural
+0.25
Context Modifier
+0.15
SETL
+0.19

Free access to academic papers, tutorials, and code repositories without paywall or registration barrier. Transparent authorship attribution throughout. Open-source implementations (ELPI, Teyjus, Makam) distributed freely. Domain ownership by Polytechnique Paris academic institution supports institutional freedom of expression.

+0.10
Preamble Preamble
Medium Framing
Structural
+0.10
Context Modifier
0.00
SETL
+0.19

Open educational access to documentation and implementations supports universal knowledge dissemination; Google Analytics tracking represents minor structural tension with privacy ideals.

ND
Article 1 Freedom, Equality, Brotherhood
Low

Open educational access without gatekeeping by credential or payment reflects structural support for equal intellectual access.

ND
Article 2 Non-Discrimination
Low

Accessible HTML semantic structure supports inclusive access for diverse users including those with assistive technology needs (domain-level accessibility modifier applies).

ND
Article 3 Life, Liberty, Security

No observable structural signals regarding right to security.

ND
Article 4 No Slavery

No structural signals observable.

ND
Article 5 No Torture

No structural signals observable.

ND
Article 6 Legal Personhood

No structural signals observable.

ND
Article 7 Equality Before Law

No structural signals observable.

ND
Article 8 Right to Remedy

No structural signals observable.

ND
Article 9 No Arbitrary Detention

No structural signals observable.

ND
Article 10 Fair Hearing

No structural signals observable.

ND
Article 11 Presumption of Innocence

No structural signals observable.

ND
Article 12 Privacy
Medium Practice

Google Analytics tracking (ID G-7BLXF7TK0D) embedded in page without visible user consent mechanism or privacy notice. Domain-level analysis indicates this affects Article 12 negatively.

ND
Article 13 Freedom of Movement
Medium Practice

Open access to educational content without geographic restriction supports freedom of information access across borders.

ND
Article 14 Asylum

No structural signals observable.

ND
Article 15 Nationality

No structural signals observable.

ND
Article 16 Marriage & Family

No discussion of marriage or family.

ND
Article 17 Property

No structural signals observable.

ND
Article 18 Freedom of Thought

No structural signals observable.

ND
Article 20 Assembly & Association

No structural signals observable.

ND
Article 21 Political Participation

No structural signals observable.

ND
Article 22 Social Security

No structural signals observable.

ND
Article 23 Work & Equal Pay

No structural signals observable.

ND
Article 24 Rest & Leisure

No structural signals observable.

ND
Article 25 Standard of Living

No structural signals observable.

ND
Article 28 Social & International Order
Medium Practice

Open-source, freely distributed implementations enable participation in global technical community without national or institutional barriers. Research on formal logic and programming supports international scientific order.

ND
Article 29 Duties to Community

No structural signals observable.

ND
Article 30 No Destruction of Rights

No structural signals observable.

Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.77 medium claims
Sources
0.8
Evidence
0.8
Uncertainty
0.7
Purpose
0.8
Propaganda Flags
No manipulative rhetoric detected
0 techniques detected
Emotional Tone
Emotional character: positive/negative, intensity, authority
measured
Valence
+0.3
Arousal
0.2
Dominance
0.5
Transparency
Does the content identify its author and disclose interests?
0.50
✓ Author
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.76 solution oriented
Reader Agency
0.8
Stakeholder Voice
Whose perspectives are represented in this content?
0.72 8 perspectives
Speaks: institutionindividuals
About: individualsinstitution
Temporal Framing
Is this content looking backward, at the present, or forward?
mixed medium term
Geographic Scope
What geographic area does this content cover?
global
France, Italy, United States
Complexity
How accessible is this content to a general audience?
technical high jargon domain specific
Longitudinal · 7 evals
+1 0 −1 HN
Audit Trail 27 entries
2026-02-28 14:40 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 14:40 model_divergence Cross-model spread 0.32 exceeds threshold (4 models) - -
2026-02-28 14:40 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral) 0.00
reasoning
PR tech tutorial
2026-02-28 14:35 model_divergence Cross-model spread 0.32 exceeds threshold (4 models) - -
2026-02-28 14:35 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 14:35 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral)
reasoning
PR tech tutorial
2026-02-26 23:06 eval_success Light evaluated: Neutral (0.00) - -
2026-02-26 23:06 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral)
2026-02-26 20:12 dlq Dead-lettered after 1 attempts: λProlog: Logic programming in higher-order logic - -
2026-02-26 20:10 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 20:09 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 20:07 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:37 dlq Dead-lettered after 1 attempts: λProlog: Logic programming in higher-order logic - -
2026-02-26 17:34 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:33 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 17:32 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-26 11:04 eval_success Evaluated: Mild positive (0.21) - -
2026-02-26 11:04 eval Evaluated by deepseek-v3.2: +0.21 (Mild positive) 10,249 tokens
2026-02-26 09:00 dlq Dead-lettered after 1 attempts: λProlog: Logic programming in higher-order logic - -
2026-02-26 08:59 dlq Dead-lettered after 1 attempts: λProlog: Logic programming in higher-order logic - -
2026-02-26 08:59 dlq Dead-lettered after 1 attempts: λProlog: Logic programming in higher-order logic - -
2026-02-26 08:59 dlq Dead-lettered after 1 attempts: λProlog: Logic programming in higher-order logic - -
2026-02-26 08:58 rate_limit OpenRouter rate limited (429) model=qwen3-next-80b - -
2026-02-26 08:58 rate_limit OpenRouter rate limited (429) model=mistral-small-3.1 - -
2026-02-26 04:18 eval Evaluated by claude-haiku-4-5-20251001: +0.32 (Neutral) 12,101 tokens +0.01
2026-02-26 04:00 eval Evaluated by claude-haiku-4-5-20251001: +0.31 (Neutral) 11,623 tokens +0.00
2026-02-26 03:26 eval Evaluated by claude-haiku-4-5-20251001: +0.31 (Neutral) 11,798 tokens