Showing posts with label Book. Show all posts
Showing posts with label Book. Show all posts

Monday, November 24, 2025

Charles Murray's New-Found Religiosity - a conversation

Amazon

Nigel: It’s argued that Crossan and Vermes have produced a convincing historical and political-sociological account of how the Gospels were constructed. So compelling is their account that it seems literal belief in the virgin birth, resurrection, etc., requires abandoning rationality. So truly accepting these dogmas is simply a matter of blind faith.

So how would Murray deal with that critique?



GPT5.1: Murray begins from premises that bypass the Crossan–Vermes framework entirely. Their method assumes methodological naturalism: miracles are literary-theological constructs drawn from exegesis in a Jewish community culturally soaked in theology; Gospel texts are therefore community artefacts; early Christianity must be read sociologically.

Murray rejects this starting point. He treats the Gospels as forensic testimony: proximity to eyewitnesses, “undesigned coincidences,” and the resilience of resurrection belief.

Thus the disagreement is not about evidence but about what counts as admissible evidence. Murray would say that critical scholarship excludes the supernatural by methodological fiat. For him, literal belief is not irrational because the “anti-supernatural” rule is philosophical, not evidential.

He argues that the Gospels look like truthful reportage (multiple attestation, unflattering portraits of disciples, early resurrection belief). He also claims that fine-tuning, consciousness, and moral experience undermine confidence in strict naturalism and therefore make miracle “intellectually permissible.” The Resurrection becomes his central “historical puzzle,” supposedly resisting naturalistic explanation.

But the weakness is obvious: Crossan and Vermes offer a cumulative reconstruction—textual stratification, redaction history, political context, literary borrowing, sociological function in an enchanted world, the evolution of Christology. 

Murray answers with a lay apologetic—earnest texts, early dates, apparent coherence—without engaging critical-historical method itself. 

He treats the field as methodologically prejudiced. They treat his method as pre-critical. The clash is foundational: he thinks they start from the wrong metaphysics; they think he is not doing history (which he is not).

So his reply, in essence: literal belief remains rational because critical scholars artificially bracket the supernatural - this is apologetic historiography.

Your view: fundamentalist literal belief is not viable given the compelling contextual sociological-historical evidence.

His view: the evidence only looks that way because the supernatural has been excluded in advance.



Nigel: Fine-tuning in cosmology is just human aesthetics pointing to deeper physical simplicity. Invoking God as its cause explains nothing—it’s magical thinking, isn’t it?



GPT5.1: Fine-tuning describes a structural feature of our models—narrow parameter ranges for complexity—but it is not evidence for any particular metaphysics. It is compatible with brute fact, deeper physical necessity, multiverse selection, anthropic bias, cosmic evolution, simulation, or future unification. It is a puzzle, not an arrow.

“God fine-tuned the constants” explains absolutely nothing. It swaps a handful of numbers for an unmodelled supernatural agent which is vastly more complex than the system being “explained.”

There is no mechanism, no predictive framework, and it fails the regress test: if improbable constants require explanation, an infinitely structured God requires infinitely more. Invoking necessity for God merely exempts the posited entity from the very demands used to motivate the argument.

Murray uses fine-tuning not as a proof but as a mood-shifter: a signal that materialism might be incomplete, making miracle “less absurd.” But this is not explanation; it is existential reassurance. It transforms unease into narrative closure.

By a technical definition, this is indeed magical thinking: invoking a hidden agent of maximal complexity to halt inquiry. Astonishment becomes ontology. Yet a future physical theory could dissolve the puzzle entirely.

So yes: God does no explanatory work here. It is an aesthetic projection onto a mathematical curiosity.



Nigel: Incidentally, Polkinghorne shows the same gullibility. Moving on: the ‘hard problem’ is baffling, but positing God-as-explanation again explains nothing. Why does Murray fall into these elementary errors?



GPT5.1: Murray’s shift is not intellectual but existential. Three forces converge: fatigue with secular bleakness, desire for moral grounding, and a need for narrative resolution. None of these are addressed by our age's secular naturalism, and all intensify with age.

His intellectual style contributes. As a social scientist he treats consciousness, fine-tuning, and Gospel narratives as “puzzles” to be weighed, not as conceptual problems requiring structural analysis.

This leads him to misread qualia as evidential anomalies, the Gospels as forensic testimony rather than theological constructions, and mathematical features of models as coded signals.

Emotionally, decades of writing about social fracture and inequality has generated for Murray a sense of civilisational claustrophobia. In that state of almost-despair, fine-tuning and consciousness feel like hints of a desperately-desired deeper meaning.

The hard problem becomes symbolic permission for a more “mind-like” metaphysics. Once that emotional gate opens, minimal theism becomes “reasonable enough,” and apologetic arguments are retro-fitted to justify a shift already made for psychologically existential reasons.

This is a very common late-life trajectory among secular intellectuals. Smart people do not convert because the arguments improve; they convert because the worldview they previously held becomes emotionally unsustainable. The explanation is psychological rather than philosophical, let alone scientific.



Sunday, March 29, 2020

Lockdown Reading

[Adam Carlton writes.]

Paris, like the rest of Europe, is in lockdown. Les flics will not be gentle if you walk out in groups of more than two ... or attempt a bit of recreational biking. There are no more manifestations! The press, meanwhile is obsessed with relationships: spousal abuse in quarantined homes (up); couples rediscovering themselves - and each other.

What else to do these languid spring days? You could read my collected short stories as a PDF.

PDF link

I have not fared well in my attempts to get published. This is what I say in the introduction to the book:
"These are the 49 stories (113,000 words) I wrote in 2019. They were first published on the Booksie writers’ site. Sadly, only a few have been published by a curated magazine (Time Warrior at the Aphelion Webzine; various stories at The Ronin Express).

I have concluded that I’m really not a very good writer, rather linear and plodding; I’m not sufficiently interested in people to bring their emotional lives into salience - the stuff of gripping fiction.

So this is a record of heroic failure: perhaps the most interesting kind.

Adam Carlton.
March 2020."
---

Feel free to download the PDF and see for yourself.

Friday, December 28, 2018

A new book on Loop Quantum Gravity

Amazon link

Some excitement about this book over at Backreaction. This from 'naivetheorist' in the comments.
".. a new book "Quantum Space" (available at Amazon UK now and at Amazon in a few weeks) is a really superb book on LQG. It is a 'pop science' book only in the sense of being equation-free. it traces the history of the development of LGQ (and string theory as well) and provides relevant biographical details on Rovelli and Smolin. it is by far the most impressive book on 'foundational physics' (as it is 'modestly' referred to by those who work on quantum gravity). I hope you will review this book with the usual incisiveness that you use in discussing arXiv manuscripts."
You can read my own thoughts here.

Wednesday, November 14, 2018

"Blueprint: How DNA Makes Us Who We Are" - Robert Plomin

Amazon link

Robert Plomin is one of the good guys, and this book is apparently a summing up, for a general audience, of his life work. It has just arrived and is on the stack.

Meanwhile Dr James Thompson of UCL has an excellent and detailed chapter-by-chapter review, from which this short excerpt.
"Chapter 11 is about the development of genome-wide association studies. Chapter 12 is a very substantial one about genetic prediction. Chapter 12 is Plomin’s real coming out: he reveals his polygenic scores for all to see. Naturally, this is a teaching opportunity, explaining the insights and the limitations of such measures. Figs 6 and 7 are worth showing again and again, if only to explain polygenic scores and their overlaps, and the fact that they provide probabilistic estimates, not certainties."
Greg Cochran has written a review at Quillette, "Forget Nature Versus Nurture. Nature Has Won".

And Toby Young, also at Quillette: "Is Sociogenomics Racist?".  No, he argues.

I'm looking forward to reading and learning. Update: here's my review.

Monday, October 08, 2018

Using Google Photo Books

(And now you decide to study them?)

Google Photos has a new tab: Photo books. This allows you to get an album printed out and delivered to your door in hard copy as an exciting glossy photo album. I decided that such an album would make a nice memento of our recent trip to Egypt.
18 x 18 cm soft-cover book: £11.99 for 20 pages, £0.49 per add. page, up to 100 pages.

23 x 23 cm hardcover book: £22.99 for 20 pages, £0.69 per add. page, up to 100 pages.

VAT included. Shipping not included.
I went for a soft-cover book of fifty photos. With one photo per page, this was fifty pages for around £12 + £15 = £27. Plus shipping.

Setting up the book in preview mode took about an hour. Google recommends photos (that AI working again!) from your selected album but you can delete some of those suggested and add others.

Each photo can be sized from small to page-filling - as you choose differently-sized versions Google auto-crops, which you may or may not like but you seem to be stuck with its choice (I could be wrong).

You can write an optional caption per photo - I didn't bother. Using drag and drop you can reorder photos.

After a week transiting from Germany, the album arrived this morning. Here's what it looked like.

The hedgehog is ours

The cover: Karnak Temple in Luxor - Google's suggestion

A delighted Clare shows internal pages:

Cleopatra with her son (left) and a Temple picture

The quality of the prints is very good, even the close-cropped ones where the program had warned that there might be blurring due to poor resolution.

Monday, September 10, 2018

The Interpretation of Quantum Theory (again!) - Philip Ball

Amazon link

I'm into extreme diminishing returns on books about the interpretation of quantum theory. And here is another, only worth considering because Peter Woit has bothered reviewing it:
"Philip Ball’s Beyond Weird is the best popular survey I’ve seen of the contemporary state of discussions about the “interpretation” of quantum mechanics. ...

Instead of spending a lot of time in the rut of Bohmian mechanics, Ball dismisses it quickly as:
But it is hard to see where the gain lies… Even Einstein, who was certainly keen to win back objective reality from quantum theory’s apparent denial of it, found Bohm’s idea ‘too cheap.”
Dynamical collapse models like GRW also get short shrift:
It’s a bodge, really: the researchers just figured out what kind of mathematical function was needed to do this job, and grafted it on… What’s more of a problem is that there is absolutely no evidence that such an effect exists.
As for the “Many-Worlds Interpretation”, which in recent years has been promoted in many popular books, Ball devotes a full chapter to it, not because he thinks it solves any problem, but because he thinks it’s a misleading and empty idea:
My own view is that the problems with the MWI are overwhelming – not because they show it must be wrong, but because they render it incoherent. It simply cannot be articulated meaningfully… 

The MWI is an exuberant attempt to rescue the ‘yes/no’, albeit at the cost of admitting both of them at once. This results in an inchoate view of macroscopic reality suggests we really can’t make our macroscopic instincts the arbiter of the situation…

Where Copenhagen seems to keep insisting ‘no,no and no’, the MWI says ‘yes, yes and yes’. And in the end, if you say everything is true, you have said nothing.
There’s a lot of material about serious efforts to go beyond Copenhagen, by understanding the role that decoherence and the environment play in the emergence of classical phenomena out of the underlying quantum world. This discussion includes a good explanation of the work of Zurek and collaborators on this topic, including the concept of “Quantum Darwinism”. ... "
The comments on Woit's post are also interesting.

---

For what it's worth (which is nothing) I suspect that we don't understand what the equations of quantum theory mean because we're still thinking in terms of the primacy of the 4D continuum. Starting from a more foundational space, ('spacetime is emergent'), quantum theory might just seem .. obvious.

Anyway, it's on my Kindle stack to look at later.

---

Update: Here's the review/

Friday, May 18, 2018

AI: inference and causality

Franz Kafka statue in Prague

When Google Lens tells me the picture above is the Statue of Franz Kafka in Prague, glossed by Wikipedia as:
"The Statue of Franz Kafka is an outdoor 2003 sculpture by Jaroslav Róna, installed on Vězeňská street in Prague, Czech Republic. It is based on a scene in Franz Kafka's first novel, Amerika, in which a political candidate is held on the shoulders of a giant man during a campaign rally, and carried through the streets,"
Google's app is doing something really complex, leveraging artificial neural nets trained by massive datasets. But it's fundamentally inference:
The world we live in |= the pixel map of the photo and Google Len's summary text.
and
the pixel map of the photo |- Google Len's summary text.
Satisfiability and entailment.

All AI systems need to map their sensor/effector primary data to internal representations which allow inference (deductive, inductive, abductive etc) - regardless of the engineering mechanisms they adopt. Neural nets training their weights are optimising the probability of valid inferences about the world.

---

Judea Pearl has a new book out arguing for the introduction of causality into AI systems. In a recent Quanta interview he said:
"All the impressive achievements of deep learning amount to just curve fitting."
Here's the book.

Amazon link

Causality is one of those constructs like Free Will, Consciousness and the intentional stance which don't exist in the underlying physics (the theories which the universe satisfies as far as we can tell), but which are emergent in a world of self-aware agents.

They usefully describe relationships between belief-and-goal-driven entities; they succinctly encode the effects of the second law of thermodynamics plus boundary conditions. We use these concepts .. and AI will have to if we are ever to create socially-competent artificial agents.

What Pearl is really asking for is an AI which utilises the intentional stance (specifically including reasoning about cause and effect).

---

To find out more about Judea Pearl's work (without buying the book!) view the recommended slides at his website. For a review of Pearl's substantive contribution to causality theory, see here.

My own subjective response? I find his dense notation and cluttered semantics worthy but unexciting.

---

Update: my further impressionistic, superficial and under-researched thoughts.

The difference between a mere association between P and Q (which could be a spurious correlation, or the result of an independent cause of both) and a causation, P causes Q, is captured by the modal operator of necessity []. See here for a detailed discussion.

To check P causes Q we need to check: [](P → Q) and [](¬Q → ¬P).

So we're in possible world semantics and we look to 'neighbouring worlds' to check the truth status of P and Q. But we have the usual problem that such worlds are way too 'big', too full of irrelevancies.

So like Situation Semantics, Pearl takes the engineering approach of restricting his worlds to just those entities and actions which seem relevant to the causality under investigation. These are his causal diagrams which he intends to counterfactually 'mutilate'.

A philosophical strategy similar to the modal analysis of epistemics etc .. and of similar utility.

Sunday, April 15, 2018

Michael Roberts: Total Automation under Capitalism

Michael Roberts has a new book out:

Amazon link

Here is what he has to say about the impact of total automation on capitalism (pages 137-141).
"What does this all mean if we enter the extreme (science fiction?) future where robotic technology and AI leads to robots making robots AND robots extracting raw materials and making everything AND carrying out all personal and public services so that human labour is no longer required for ANY task of production at all?

Let's imagine a totally automated process where no human worked in the production process. Surely, value has been added by the conversion of raw materials into goods without humans? Surely, that refutes Marx's claim that only human labour can create value?

In Marx's economic theory, abstract labour is the only source of value and surplus-value. However, in the case of an economy where robots build robots build robots and there is no human labour involved, surely value is still created?

This was the argument of Dmitriev in 1898, in his critique of Marx's value theory. He said that, in a fully automated system, a certain input of machines can create a greater output of machines (or of other commodities). In this case, profit and the rate of profit would be determined exclusively by the technology used (productivity) and not by (abstract) labour. If 10 machines produce 12 machines, the profit is 2 machines and the rate of profit is 2/10, 20%.

Value reduced to use value has nothing to do with Marx's notion of value, which is the monetary expression of abstract labour expended by labourers. If machines could create 'value', this value would be use-value rather than value as the outcome of humans' abstract labour. But, if machines can create 'value', so can an infinity of other factors (animals, the forces of nature, sunspots, etc.) and the determination of value becomes impossible. And if machines supposedly could transfer their use-value to the product, this would immediately crash against the problem of the aggregation of different use-values.

For Marx, machines do not create value. Rather, concrete labour transfers the value of the machines (and, more generally, of the means of production) to the product. They increase human productivity and thus the output per unit of capital invested, while decreasing the quantity of living labour needed for the production of a certain output. Given that only labour creates value, the substitution of the means of production for living labour decreases the quantity of value created per unit of capital invested. ...

The Dmitriev critique confuses the dual nature of value under capitalism: use value and exchange value. There is use value (things and services that people need); and exchange value (the value measured in labour time and appropriated from human labour by the owners of capital and realised by sale on the market). In every commodity under the capitalist mode of production, there is both use value and exchange value. You can't have one without the other under capitalism. But the latter rules the capitalist investment and production process, not the former.

Value (as defined) is specific to capitalism. Sure, living labour can create things and do services (use values). But value is the substance of the capitalist mode of producing things. Capital (the owners) controls the means of production created by labour and will only put them to use in order to appropriate value created by labour. Capital does not create value itself.  So in our hypothetical all-encompassing robot/AI world, productivity (of use values) would tend to infinity while profitability (surplus value to capital value) would tend to zero. ...

This is no longer capitalism. The analogy is more with a slave economy as in ancient Rome. In ancient Rome, over hundreds of years, the formerly predominantly small-holding peasant economy was replaced by slaves in mining, farming and all sorts of other tasks. This happened because the booty of the successful wars that the Roman republic and empire conducted included a mass supply of slave labour.

The cost to the slave owners of these slaves was incredibly cheap (to begin with) compared with employing free labour. The slave owners drove the farmers off their land through a combination of debt demands, requisition in wars and sheer violence. The former peasants and their families were forced into slavery themselves or into the cities, where they scraped a living with menial tasks and skills or begged. The class struggle did not end. The struggle was between the slave-owning aristocrats and the slaves and between the aristocrats and the atomised plebs in the cities.

A fully robot economy means that the owners of the means of production (robots) would have a super-abundant economy of things and services at zero cost (robots making robots making robots). The owners can then just consume. They don't need to make 'profit', just as the aristocrat slave owners in Rome just consumed and did not run businesses to sell commodities to make a profit. So a robotic economy could mean a super-abundant world for all or it could mean a new form of slave society with extreme inequality of wealth and income. It's a social 'choice' or more accurately, it depends of the outcome of the class struggle under capitalism.

The key issue is Marx's law of the tendency of the rate of profit to fall. A rising organic composition of capital leads to a fall in the overall rate of profit engendering recurring crises. If robots and AI do replace human labour at an accelerating rate, that can only intensify that tendency. Well before we get to a robot-all world, capitalism will experience ever-increasing periods of crises and stagnation."
Everything Roberts says here is orthodox Marxist economics and yet there is something missing: the use of the abstract concepts of Marx's theory to reconstruct the concrete phenomena, to discern the details of the actual transition to 'a robot-all world'.

Marx was not a vitalist. He did not think that human protoplasm endowed human labour with some mysterious value-producing quality that mere steel and electronics could never replicate. So what if human workers were everywhere replaced by fabricated androids who also toiled in the factories, were paid wages and consumed ersatz food? Does capitalism still work? [Answer: of course].

If one particular capitalist creates a totally automated factory (or one using purely slave labour which is - in Marxist terms - the same thing) is that incompatible with capitalism? [Answer: of course not].

As more and more capitalists automate their factories, displacing human labour, what is the process which unfolds before them and why? How do they perceive the capitalist economy failing before their eyes?

Or will they rather observe, as Peter Singer writes in his book on Marx: ‘Future capitalists will not find their profits drying up as they dismiss the last workers from their newly-automated factories’ (p. 76).

I outlined some answers here.

Friday, March 09, 2018

My top twelve Favourite SF novels

Over at Marginal Revolution, Tyler Cowen has his "Ten favorite science fiction novels". It's a party game anyone can play: here are mine - in no particular order.

---

1. Eon by Greg Bear (and its follow-on, Eternity)

Amazon link

Great sense of wonder SF on the grandest of canvases. The plot seriously holds attention while characterisation is not bad, at least for the major characters.

2. Quarantine by Greg Egan 

Amazon link

Cowen prefers "Permutation City", Egan's 'reality is computation' novel (cf Dust Theory), but the many-worlds interpretation of QM is so compelling a setting and the private-eye thriller-based plot so convoluted that I felt compelled to buy this novel twice.

3. The City and the City by China Miéville

Amazon link

Cowan prefers "EmbassyTown" which is clever but, for me, less involving. The City and the City has a most unusual setting, the only novel I've read centred around the social construction of reality - and while the police procedural plotting and characterisation is a bit clunky, the whole book amazes throughout. The idealism of the premise is capped by its superpowered final denouement, a brutal assertion of materialism.

It's shortly to be a four part series on BBC2 (April 6th 2018).

4. Hyperion (and its three successors) by Dan Simmons 

Amazon link

Cowan agrees with this choice. The four novels are beautifully written, have cultural depth and immerse the reader. Some of the scenes are truly shocking.

5. Altered Carbon by Richard Morgan 

Amazon link

The story of brutal but fundamentally moral Takeshi Kovacs. The successors are good also and complete the exploration of Morgan's interestingly-complex protagonist. Warning: high levels of sex, torture and violence throughout; most characters lacking in personal empathy .

6. The Mote in God's Eye by Larry Niven and Jerry Pournelle

Amazon link

The writing is clunky but the plot and setting completely compelling. You won't read a better account of first contact. The style is a bracing antidote to a public culture of suffocating high-mindedness.

7. Accelerando by Charles Stross

Amazon link

Hits you hard and then accelerates. A convincing and baroque invocation of the Singularity: never bettered.

8. Mindbridge by Joe Halderman 

Amazon link

People usually quote "The Forever War" which is good, but Mindbridge hits more of my buttons.

9. The Reality Dysfunction (and successors) by Peter Hamilton

Amazon link

Hamilton's later door-stoppers have proven tedious, but the Night's Dawn Trilogy brims with energy and inventiveness on the grandest of scales.

10. Tactics of Mistake (and follow-on Dorsai novels) by Gordon R. Dickson

Amazon link

Intelligent and exciting, intricately plotted with overtones of mediaeval chivalry. Loved them all.

11. The Three-Body Problem trilogy by Cixin Liu 

Amazon link

The writing may sometimes be rather pedestrian, as Cowen observes, but the three volumes are incredibly inventive.

12. Starship Troopers by Robert Heinlein

Amazon link

Starship Troopers: last but not least. It's the only Heinlein novel which makes the cut for me, impressing by force of conviction. The author profoundly cares about the message of the novel and it's another antidote to contemporary hand-wringing.

Putting aside the occasional bouts of didacticism, it's a great story too.

---

Near Misses

Solaris is brilliant - I'm also a fan of Lem's other works such as His Master's Voice and The Invincible.

As a child I loved Isaac Asimov's Foundation trilogy and Frank Herbert's Dune sequence but, like Cowan, coming back to them I find they're not brilliantly written.

Sunday, November 12, 2017

A high-tech capitalist Imperium in 31 AD

Amazon link

I should say 784 ab urbe condita: it seems unlikely that Christianity is going to end up on top when the Roman army is driving around Jerusalem in armoured cars, toting assault rifles. And where a certain Yeshua Ben Yusuf will be on trial for terrorism.

Helen Dale explains her thinking:
"What struck me at once was the attack on the moneychangers in the Jerusalem Temple. All four Gospels record it, and their combined accounts do not reflect well on the perpetrator’s character.

Jesus went in armed (with a whip) and trashed the place, stampeding animals, destroying property and assaulting people. He also did it during or just before Passover, when the Temple precinct would have been packed to capacity with tourists, pilgrims, and religious officials.

I live in Edinburgh, a city that has many large festivals - religious and secular. The thought of what would happen if someone behaved similarly in Princes Street during Hogmanay filled my mind’s eye. This was not a small incident.

It seemed obvious to me that Jesus was executed because he started a riot. Everything else - the Messianic claims, giving Pilate attitude at trial, verbal jousting with Jewish religious leaders - was by the by.

Our system would send someone down for a decent stretch if they did something similar; the Romans were not alone in developing concepts of ‘breach of the peace’, ‘assault’ or ‘malicious mischief’. Those things exist at common law, too. ..."
Jesus was far from 'meek and mild'.
"Finally, instead of bringing Jesus forward in time and placing him in modernity, I thought to leave him where he was and instead put modernity into the past. What, I wondered, would have happened had Jesus emerged in a Roman Empire that had gone through an industrial revolution?

"Other things being equal, what would modern science and technology do to a society with very different values from our own? Would they react with the same incomprehension that we do when confronted by religious terrorism? ..."

"My industrial revolution has its origins when Archimedes survives the Siege of Syracuse in 212 BC and is treated to a Roman version of ‘Operation Paperclip’ (the American retrieval of scientists from defeated Nazi Germany). As a consequence he (or his students) develop calculus and a variety of practical military technologies. In keeping with Roman militarism, the first place the new technologies manifest themselves is in warfare. They then propagate...."
Of course, new technologies can be introduced under slavery, although without the dynamism which capitalist competition alone provides.
"Chattel slavery undermines incentives to develop labour-saving devices because human labour power never loses its comparative advantage. People can just go out and buy another slave to do that labour-intensive job. Among other things, the industrial revolution in Britain depended on the presence (relative to other countries) of high wages, thus making the development of labour-saving devices worthwhile.  ...

"Slavery—and its near relative, serfdom—have been pervasive in even sophisticated human societies, and campaigns for abolition few and far between. We forget that our view that slavery and slavers are obnoxious is of recent vintage. In days gone by, people who made fortunes in the slave trade were held in the highest esteem and sat on our great councils of state.

This truism is reflected in history: The Society for Effecting the Abolition of the Slave Trade met for the first time in 1787. It had just twelve members—nine Quakers and three Anglicans. And yet, in 1807, Parliament passed An Act for the Abolition of the Slave Trade.

The Quaker role in abolition was so vast it is difficult to overestimate. And in the context of both Christianity specifically and human religion more generally, the Religious Society of Friends is theologically distinct. Who in antiquity could perform the Quakers’ role?

In the end, I lit upon the Stoics, and came to admire many aspects of their philosophy when researching Kingdom of the Wicked. ... "
In the novel, slavery has recently been abolished. And now we turn to Jesus's trial itself.
"I have, however, gestured towards three characteristics of Roman law that set it apart from common law. First is the capacity of judges to investigate matters on their own motion. This explains why Pilate is able to source evidence independent of counsel, something considered most improper at common law.

Next is the importance Cornelius [the prosecutor] attaches to obtaining a confession, and the lack of procedural safeguards for the accused. To a Roman lawyer, a confession is the ‘Queen of Proofs’, while his common-law counterpart always suspects that confessions come about thanks to the judicious application of lengths of rubber hose.

Finally, there is the absence of a rule against hearsay, something that is peculiar to the common law."
I've just started the book: it's well-written and taut. We're centred around the Roman administration (central characters Pilate, his family and hangers-on) and the Sanhedrin (major figure the high priest, Joseph Caiaphas).

The Romans are pious yet decadent, hedonistic and sexually uninhibited. The Jews (indistinguishable at the time from their fellow Arab tribes) are socially conservative and sexually repressed, disgusted at the loose ways of their autocratic rulers, the eponymous Kingdom of the Wicked.

Judaea is a hotbed of unrest. Terrorist groups vye with each other in atrocities. There are roadside bombs. And riots.

---

Could capitalism have taken root in Imperial Rome? Marx reminds us that capitalism was never pre-planned as a new mode of production. It took root and expanded where and when it could, and only afterwards was it understood for what it was.

The preconditions for capitalism to emerge seem to be a money economy (which the Romans had) and a strong guild-artisan sector capable of commodity production. At a certain point guild-restrictions on employment of labour are lifted, and the owners of capital begin to accumulate and expand their wealth and power.

They do however need to acquire free labourers, those who have no choice but to work in the nascent factories. In this they compete with landowners who own slaves or control a tied peasantry. The expulsion of landless labourers from agriculture everywhere propelled industrial revolutions.

It is not clear that the proto-bourgeoisie (which barely existed in Roman times) had, at any point, the political or economic clout to seriously contend with the land-owning classes. But it's a complex analysis.

---

My brother notes: "Am surprised that you didn’t include some backstory on [author] Helen Demidenko/Darville/Dale. Her biography is as interesting and extraordinarily as her fiction by all accounts!"

---

Here is the review of "Kingdom of the Wicked Book Two: Order".

Saturday, May 13, 2017

Latin's evolution to Romance

I have always been interested in the process by which Latin transitioned from being the common speech of Western Europe in the fourth century to its irretrievable fragmentation to the Romance languages - the sundry dialect precursors to modern French, Spanish, Italian, etc - by the ninth.

Why did it happen? Did people at the time even notice? Were there crisis points where definitive change occurred?

All these questions are answered in chapter 11 of Nicholas Ostler's excellent "Ad Infinitum".

Amazon link


---
"After the collapse of the Empire in the west, Latin began to split into what we now see not as a language but a language family, the vernacular languages of western Europe, collectively known as Romance. ...

"The middle and latter part of the first millennium AD was a period of social "hamletization," when horizons became narrower for many people, and the chances of wide-scale activity, e.g., travel, correspondence, or trade, were highly restricted outside the topmost elites.

"Without an overarching government, movement beyond the local market town became too costly and too dangerous to be undertaken without an exceptional reason. The resulting fragmentation of Latin, hitherto a highly unitary language across its wide range, is the best example we how a former imperial language can split when the political conditions of unity and mutual contact are no longer maintained.

"Latin was transformed on the lips of its speakers into a profusion of different dialects that were one day to become recognized as languages in their own right. The intrinsic changeability of language, the code passed on not quite perfectly from generation to generation, began to assert itself, and the speech of the different communities went off in separate directions.

"The story of how this happened is fascinating in itself, although the changes took place largely unconsciously. To tell it or understand it requires a certain tough-minded determination to see Latin not (as contemporaries did) as rule-governed text on the page, but as a vast set of spoken words, each taking its part in a system, the mental grammar, that made the language make sense.

"As local accents changed the pronunciation of certain sounds, various words' grammatical relations to other words became less obvious, or even quite impenetrable. New generations of language learners made sense of how the language worked in slightly new ways. The changes rippled throughout the system, causing new systems to form, which became the grammars of the new, Romance languages.

"First and foremost, then, Romance is the name for any more or less distorted form of Latin, as the language gradually evolved and split apart in the latter first millennium.

"Over the long centuries in which the new kingdoms established themselves, the stories of Rome's continent-wide imperium and single invincible army came to seem like legends. Societies became more strictly hierarchical, with most people bound into the feudal network of personal relationships, each man (and woman) recognizing his superior lord, but few outside the Church active in that wider world that had once been ruled through Latin.

"Within three hundred years from those fateful crossings of the Rhine, the people of France, Italy, and Iberia began to find it difficult to understand one another when they did meet. Ordinary speech, wherever it was spoken, was more and more called romanica rather than Latina lingua.

"Latin, as a single written language, was still taught in classes of grammatica and increasingly took its name from that. Meanwhile the inhabitants of Rome's old domains increasingly spoke a multitude of dialects, each called an idioma: this, when it could be recognized, arbitrarily marked out the origin of speakers. But the differences between them seemed to have no meaning.

"Nevertheless, there remained the constraint of the need to communicate with the neighbours; in practice the result was not so much a set of distinct idiomata as a dialect continuum, which varied gradually across the whole field of Romance speech. Picking out particular local varieties within this continuum as "national languages" came much later.  ...

"At the end of the eighth century, the Frankish kingdom that ruled northern France had become mightier than any other. Under Charlemagne (768-814) it united all of France, western Germany, and northern Italy, with an enclave south of the Pyrenees, and began to act in concert with the papacy in Rome in a way that recalled the glorious old alliance of Church and Empire in the century after Constantine.

"This political revival had an immediate cultural manifestation, what is to-day called the Carolingian Renaissance, when Charlemagne called scholars to receive his patronage at his court in Aachen. They came, first from Italy, but later and more notably from monasteries in England and Germany, and in 781 Alcuin, head of the cathedral school at York, was appointed the director of Charlemagne's Palace School.

"Alcuin was above all a teacher and a regimenter. He presided over the establishment of new standards for the spelling and pronunciation of Latin, an attempt to return it to its classical roots, seen as the source of its fundamental value in education, thought, and culture.

"Alcuin enjoined a new, universal style of pronunciation for Latin, deliberately reconstructed to be close to its original sound. Rather than allow each local community to pronounce its Latin as came naturally, he proposed that all should follow a single norm. In his own words:
Me legat antiquas vult qui proferre loquelas;
Me qui non sequitur vult sine lege loqui.

Let him read me who wishes to carry on the ancient modes of speech;
He who does not follow me wishes to speak without law.
"This would perhaps give scholars closer access to the true sound of Latin poetry and rhetoric; importantly, it would certainly make it easier for them to communicate orally in Latin, wherever in Europe they might hail from.

"As a reform, it did not in itself tend towards vernacular literacy: indeed, quite the reverse, for the immediate effect of the new pronunciation was to make priests reading out their sermons or their church offices more or less incomprehensible to their illiterate parishioners.

"In the favourite - somewhat extreme - example, the word viridiarium, 'orchard', could no longer be pronounced in northern France as vair-jair, by then its natural rendering in the local variety of Romance.

"With each priest following his home pronunciation, it was possible - at least in Romance-speaking countries - for the Latin text to have been read pretty much in line with the local language, hence understood by those who could not read. The newly antiquated, universal Latin, by contrast, was a foreign language everywhere, accessible only to those who had studied it.

"So quite soon after Alcuin's reforms, rulings were needed to guarantee that Church services would still make sense. At the Council of Tours in central France in 813, as at the Council of Mainz in Germany in 847, an explicit exception was made, to guarantee the continued understanding of the countryfolk: "... and that each should work to transfer the same homilies into rustic Romance or German language [rusticam romanam linguam aut thiotiscam], so that all can more easily understand what is said"

"One effect of Alcuin's reforms must ultimately have been to impress on everyone that Latin, as written and spoken, was actually now a foreign language, not just the written, quasi-eternal form of Romance speech.
To restate it: after Alcuin's pronunciation reforms, people suddenly realised that Latin was a different language to those vernaculars which everyone in their diverse ways were actually speaking. It must have been quite a big deal.



Ostler also observes that later, in Dante's time (1303), it had been quite forgotten that the Romance languages even derived from Latin (or indeed anything else); Dante was controversial for suggesting otherwise (p. 176).

Sunday, March 19, 2017

Readings to Clare

I assume some people liked my audio recording of "The Mote in God's Eye"?

There's a new tab on the right: 'Readings to Clare'.

Here's the directory:



The books marked +....-abandoned I didn't finish. They didn't work for one reason or another as books to be read aloud to Clare. You get the earliest chapters, but then .. abandoned.

  • Game of Thrones is good. I abandoned the sequel, as the action began to slow down in the middle of the second volume. We saw the TV series instead.

  • The Patrick Lee books are uniformly excellent, but unfortunately I did not record the first book, 'The Breach', in the 'Breach' sequence. You'll have to get that for yourself.

  • There is one early chapter omitted in 'Conclave' (accident of uploading) but I summarise each chapter at the start of the next reading so it's not a show-stopper. Conclave is, in any case, excellent.

  • I was not especially impressed by Lee Child's book, nor Philip Kerr's.

  • Ursula Le Guin's Earthsea books are excellent and I will be reading the rest of the sequence in time.

  • I am currently reading 'Darkness at Noon' - that's in progress.

Here's Clare, about to go out yesterday.



Tuesday, February 21, 2017

"From Eternity to Here" - Sean Carroll

Amazon Link

Just finished Sean Carroll's 2011 book, which - after an exhaustive exploration of all other options - locates the origin of 'the arrow of time' in the quantum-fluctuation emergence of super-low-entropy 'baby universes' from a preceding high-entropy de Sitter universe.

Yep, that would be the baby universe in which I'm sitting writing this post.

This may seem extravagant, to explain why eggs produce omelettes but not the reverse, but he refutes all the simpler explanations.

It presently seems unclear, however, whether a de Sitter universe could even make baby universes, absent a better theory of quantum gravity.

Carroll's latest thinking tends in a different direction, suggesting that framing the issue within the spacetime realm may itself be a mistake; the true nature of reality may be Hilbert space with Schrödinger equation dynamics. Spacetime, with its arrow of time, may be emergent.

Strange that the weirdest ideas of modern physics - the MWI, emergent spacetime - seem to be the most plausible.

This is a fine book, and an excellent introduction for the smart non-physicist to general relativity, quantum theory (QM/QFT) and cosmology.

Thursday, January 26, 2017

Diary: books + Clare's health

Not many posts for the next few days as we have a visitor: my 'study' reverts to its ur-status as bedroom.

I ordered Sean Carroll's book (which should be arriving tomorrow or Saturday) ..


.. on account that one reviewer (3 stars) complained it was 'too hard'. I'll try to let you know.

---

Strange how hard it is to predict another's taste in books. I really appreciated Scott Bakker's "The Disciple of the Dog" but all that inline philosophy slowed it down way too much for Clare.

It's been replaced - amazingly - by the famous "The Mote in God's Eye" which she is lapping up as I read it to her.



We haven't even reached the gripping alien lightsail contact event yet; still in the early chapters of Niven's and Pournelle's backstory building, usually condemned as 'boring'.

---

I remain a fan of Scott Bakker and have purchased (Kindle) this: (start of a mega-epic) ..



.. which seems awfully complicated. I have dipped my toe in.

---

My third ordered volume is "The Genome Factor: What the Social Genomics Revolution Reveals About Ourselves, Our History, and the Future" by Dalton Conley and Jason Fletcher.



I'm hyper-wary of the fluffy-bunny pleasantries of the Standard Social Science Model, but it seems well-regarded so I'm taking the risk. Should be out some time in late February.

---

Do you hear that hacking cough from the bedroom? Clare is much recovered today but the sub-zero windchill of our lunchtime shopping trip to Waitrose has sapped her energy .. and she has retired to bed. Still, direction of progress is positive.

---

Well, enough time here. I think it's time to re-acquaint myself with J. A Robinson's exemplary treatment of unification with those substitution subtleties ... .




Thursday, December 15, 2016

"Logic: Form and Function": J. A. Robinson

John Alan Robinson is a semi-forgotten hero of artificial intelligence (he died four months ago). He discovered the resolution rule (and rediscovered Herbrand's concept of unification) which made automated theorem-proving a computational reality. And he wrote a book which was a classic on how to implement a resolution theorem prover.

Amazon Link

His 1979 book, Logic: Form and Function, is out of print and now only available second-hand. It's sunk into obscurity, as you can see from Amazon's terrible image above.

After some efforts, I have managed to order a copy and will do my best to write a review (Google reports no accessible reviews on the Internet). Here is some background on Robinson (Wikipedia).
"Robinson was born in Halifax, Yorkshire, England in 1930 and left for the United States in 1952 with a classics degree from Cambridge University. He studied philosophy at the University of Oregon before moving to Princeton University where he received his PhD in philosophy in 1956. He then worked at Du Pont as an operations research analyst, where he learned programming and taught himself mathematics.

He moved to Rice University in 1961, spending his summers as a visiting researcher at the Argonne National Laboratory's Applied Mathematics Division. He moved to Syracuse University as Distinguished Professor of Logic and Computer Science in 1967 and became professor emeritus in 1993.

It was at Argonne that Robinson became interested in automated theorem proving and developed unification and the resolution principle. Resolution and unification have since been incorporated in many automated theorem-proving systems and are the basis for the inference mechanisms used in logic programming and the programming language Prolog.
---

Automated theorem proving (ATP) is the engine of classical AI in the way that neural nets are the engine of contemporary AI.

Deep Learning, which makes everything into a classification problem, has superseded brittle, classical AI not least because high-level features emerge from the weight-training process under some optimisation criteria, rather than being hand-crafted by the programmer.

Check this brilliant article from the NYT (via Steve Hsu).

But if your ambitions are somewhat modest, ATP takes you a long way .. and you can do it at home, kids.

---

Here is the table of contents from "Logic: Form and Function".



And finally, here is the text from Chapter 13 where Robinson documents his (very old-fashioned) Lisp code for the hyper-resolution theorem prover (PDF).

My apologies for the poor quality, but it is readable. To make sense out of how it works, I suspect you need to buy the book and to read the preceding chapters.

Wednesday, December 14, 2016

Winston & Horn: A Propositional Calculus Resolution Theorem Prover in Lisp

From by Patrick Winston's and Berthold Horn's famous classic on AI and Lisp (1981) - the first edition is available as a PDF here.

Amazon link:(3rd edition)


How to code a resolution theorem prover for the propositional calculus in Lisp (page 232).

---

Resolution is one way to Prove Theorems In Propositional Calculus 

Theorem Proving is a highly developed field that requires considerable mathematical sophistication to understand fully. Still, if we limit ourselves to proofs in the propositional calculus, we can build a simple theorem prover. It will be based on the so-called resolution principle (which can be extended to deal with the more difficult problems of the predicate calculus). The key to this theorem prover, again, is a matcher.

A theorem in the propositional calculus, for our purpose, consists of a premise and a conclusion, both expressed in LISP-like prefix notation. The following sets up a typical premise and conclusion:

(SETQ PREMISE
   '(AND (OR Q (NOT P))
               (OR R (NOT Q))
               (OR S (NOT R))
               (OR (NOT U) (NOT S))))

(SETQ CONCLUSION
   '(AND (OR (NOT P) (NOT U))))

These are examples of conjunctive normal form since only atoms appear inside NOTs, only NOTs or atoms appear inside ORs, and only ORs appear inside ANDs. Each of the OR lists is called a clause. Each atom or atom with a NOT is called a literal.

Our theorem prover will use the assumption that all inputs are in conjunctive normal form because it can be shown that anything written in terms of ANDs, ORs, and NOTs can be placed in equivalent conjunctive normal form.

■ To prove a theorem, it must be shown that the premise implies the conclusion. For a premise to imply a conclusion, it must be that any combination of T and NIL values for the atoms in the premise that make the premise evaluate to T also makes the conclusion evaluate to T. Or said another way, to prove a theorem, it must be shown that any combination of literal values that makes the premise true also makes the conclusion true.

Clearly, theorems can be proved by simply trying all ways to bind the atoms to T and NIL, checking that no combination causes the premise to evaluate to T and the conclusion to NIL. Resolution offers an alternative. We first list the steps involved to give a general feel for what is involved, and then we will explain why they work.

■ Step 1: Negate the conclusion, put it into conjunctive normal form, and combine it with the premise.

In our example, negating the conclusion yields the following:

(AND (OR P) (OR U))

Combining this with the premise produces the following result:

(AND (OR P)
           (OR U)
           (OR Q (NOT P))
           (OR R (NOT Q))
           (OR S (NOT R))
           (OR (NOT U) (NOT S)))

■ Step 2: Search for two clauses in which the same atom appears naked in one and negated in the other. Form a new clause by combining everything in the two clauses except for the naked atom and its negation. The two clauses involved are said to resolve. The new clause is called a resolvent. Combine the resolvent with the other clauses.

For the example, the first and the third clauses resolve, producing a resolvent. That is, (OR P) and (OR Q (NOT P)) yield (OR Q). Combining this with the rest of the clauses yields this:

(AND (OR Q)
           (OR P)
           (OR U)
           (OR Q (NOT P))
           (OR R (NOT Q))
           (OR S (NOT R))
           (OR (NOT U) (NOT S)))

■ Step 3: Repeat step 2 until no two clauses resolve or two clauses resolve to (OR). If no two clauses resolve, report failure. If two resolve to (OR), report success.

The key step clearly is a matching process, the one that produces resolvents of two clauses. The following matching function does the job: 

(DEFUN RESOLVE (X Y)
    (PROG (REST-X REST-Y)
        (SETQ REST-Y (CDR Y))         ; Get rid of OR.
        (SETQ REST-X (CDR X))         ; Get rid of OR.
        LOOP
        (COND ((NULL REST-X) (RETURN 'NO-RESOLVENT))      ; Any atom left to try?
                     ((MEMBER ( INVERT (CAR REST-X)) REST-Y)        ; Is negation in Y?
                      (RETURN (CONS 'OR                                                   ; Add OR.
                                                     (COMBINE (CAR REST-X)           ; Tidy up.
                                                                          (APPEND (CDR X) (CDR Y)))))))
         (SETQ REST-X (CDR REST-X))
        (GO LOOP))) 


Note that two auxiliary functions are needed. INVERT returns a bare atom if the argument is in the form of (NOT <atom>) . It wraps its argument in a NOT if the argument is an atom. COMBINE gets rid of the match-causing atom and its negation and makes sure there are no repeated elements in the resulting clause:

(DEFUN INVERT (X)
               (COND ((ATOM X) (LIST 'NOT X))
                             (T (CADR X)))) 


(DEFUN COMBINE (A L)
               (COND ((NULL L) NIL)
                             ((OR (EQUAL A (CAR L))                                     ; Is it there?
                                      (EQUAL (INVERT A) (CAR L))                   ;  Is negation there?
                                      (MEMBER (CAR L) (CDR L)))                     ; Is it there twice?
                              (COMBINE A (CDR L)))                                       ; Then get rid of it.
                            (T (CONS (CAR L) (COMBINE A (CDR L))))))    ; Otherwise keep it.

The function PROVE consists of nested loops that search for resolvable clauses and add resolvents to the clause list. Here we show it applied to an example: 

(PROVE PREMISE NEGATION)
    (THE CLAUSE (OR Q (NOT P)))
    (AND THE CLAUSE (OR R (NOT Q)))
    (PRODUCE A RESOLVENT: (OR (NOT P) R))
    (THE CLAUSE (OR (NOT P) R))
    (AND THE CLAUSE (OR S (NOT R)))
    (PRODUCE A RESOLVENT: (OR (NOT P) S))
    (THE CLAUSE (OR (NOT P) S))
    (AND THE CLAUSE (OR (NOT U) (NOT S)))
    (PRODUCE A RESOLVENT: (OR (NOT P) (NOT U)))
    (THE CLAUSE (OR (NOT P) (NOT U)))
    (AND THE CLAUSE (OR P))
    (PRODUCE A RESOLVENT: (OR (NOT U)))
    (THE CLAUSE (OR (NOT U)))
    (AND THE CLAUSE (OR U))
    (PRODUCE THE EMPTY RESOLVENT)
    (THEOREM PROVED)

There are, incidentally, many ways to make resolution more efficient by limiting the attempts at resolving clauses. For example, any clause containing an atom and its negation can be ignored. 

(DEFUN PROVE (PREMISE NEGATION)
     (PROG (FIRST REST REMAINDER RESOLVENT CLAUSES)
          (SETQ CLAUSES (APPEND (CDR PREMISE)           ; Purge ANDS
                                                           (CDR NEGATION)))
          FIND-CLAUSE                                                       ; this is a label for 'GO' at end
          (SETQ REMAINDER CLAUSES)
         TRY-NEXT-X-CLAUSE
          (COND ((NULL REMAINDER) (RETURN '(THEOREM NOT PROVED))))
          (SETQ FIRST (CAR REMAINDER))
          (SETQ REST (CDR REMAINDER))
        TRY-NEXT-Y-CLAUSE
         (COND ((NULL REST) (SETQ REMAINDER (CDR REMAINDER))  ; Doesn't resolve.
                                                (GO TRY-NEXT-X-CLAUSE)))
         (SETQ RESOLVENT (RESOLVE FIRST (CAR REST)))                   ; Try resolving.
         (COND ((OR (EQUAL RESOLVENT 'NO-RESOLVENT)
                               (MEMBER RESOLVENT CLAUSES))                          ; Resolvent known.
                        (SETQ REST (CDR REST))
                        (GO TRY-NEXT-Y-CLAUSE))
                       ((NULL (CDR RESOLVENT))                                                ; Resolvent empty.
                        (PRINT (APPEND '(THE CLAUSE) (LIST FIRST)))
                        (PRINT (APPEND '(AND THE CLAUSE) (LIST (CAR REST))))
                        (PRINT '(PRODUCE THE EMPTY RESOLVENT))
                        (RETURN '(THEOREM PROVED)))
                      (T (SETQ CLAUSES (CONS RESOLVENT CLAUSES))         ; Resolvent is new.
                       (PRINT (APPEND '(THE CLAUSE) (LIST FIRST)))
                       (PRINT (APPEND '(AND THE CLAUSE) (LIST (CAR REST))))
                       (PRINT (APPEND '(PRODUCE A RESOLVENT:) (LIST RESOLVENT)))
                       (GO FIND-CLAUSE))))) 

---

I haven't yet tried to copy and paste this code into a Lisp system so there may be the odd parenthesis missing. After checking it out, my next step would be to remove all those confusing loops and write it in a recursive fashion. Also experiment with different control strategies, such as set-of-support.

But Heidi Morkland was way ahead of me.

I do find the archaic style rather attractive (CADR!).

---

Compare this PL resolution prover written in Prolog by Markus Triska in 2006.
Resolution calculus for propositional logic.

   Input is a formula in conjunctive normal form, represented as a
   list of clauses; clauses are lists of atoms and terms not/1.

   Example:

   ?- Clauses = [[p,not(q)], [not(p),not(s)], [s,not(q)], [q]],
      pl_resolution(Clauses, Rs),
      maplist(writeln, Rs).
   %@ [p,not(q)]-[not(p),not(s)]-->[not(q),not(s)]
   %@ [s,not(q)]-[not(q),not(s)]-->[not(q)]
   %@ [q]-[not(q)]-->[]

   Iterative deepening is used to find a shortest refutation.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */


pl_resolution(Clauses0, Chain) :-
        maplist(sort, Clauses0, Clauses), % remove duplicates
        length(Chain, _),
        pl_derive_empty_clause(Chain, Clauses).

pl_derive_empty_clause([], Clauses) :-
        member([], Clauses).
pl_derive_empty_clause([C|Cs], Clauses) :-
        pl_resolvent(C, Clauses, Rs),
        pl_derive_empty_clause(Cs, [Rs|Clauses]).

pl_resolvent((As0-Bs0) --> Rs, Clauses, Rs) :-
        member(As0, Clauses),
        member(Bs0, Clauses),
        select(Q, As0, As),
        select(not(Q), Bs0, Bs),
        append(As, Bs, Rs0),
        sort(Rs0, Rs), % remove duplicates
        maplist(dif(Rs), Clauses).
This may be a lot shorter but (as is often the case with Prolog programs) its operation is fairly opaque to me. In Lisp you see what you're doing; in Prolog you have to imagine execution through a complex, sprawling and invisible search tree.

I prefer Lisp.

---

And here's a resolution prover for the propositional calculus in Python.

Like I said, I prefer Lisp.