Footage emerged last week of masked ruffians beating a man as he writhed on the ground at Berkeley's campus. What had he done? The goons assumed, without evidence, that he was an alt-right supporter, or at least a Trump voter.

Suppose, for the sake of argument, that he actually held extreme views. Would that have mitigated the assailants' crime? Most of us, I hope, can see that it would make no difference. Battery is battery. I wrote in this column a few weeks back that it is a short distance from "punch a Nazi" to "shoot a Republican." Either political violence is legitimate in a democracy, or it is not.

But let's try a different question. What if he had himself been violent, as the two sides were in Charlottesville? That still wouldn't justify assault; it would be for the police to punish criminal behavior on both sides.

That much should be obvious, even banal. But when Donald Trump said so, there was an explosion. The Washington Post called it "an apparent attempt to equate those vocally defending Nazism and the goals of the Confederacy in Charlottesville with those who showed up in opposition." The New York Times claimed that "President Trump buoyed the white nationalist movement." Republicans scrambled to distance themselves from him. Even the United Nations got in on the act, complaining that the president had failed to "unequivocally and unconditionally reject and condemn racist hate speech and crimes".

Regular readers will know that I am no Trumpster: I have criticized him regularly in this magazine. But no one could fairly read his remarks as a refusal to denounce the racists. He condemned them quite unambiguously. What bothered his critics was that he also condemned those who had attacked them. He had, we were told, treated Nazis and anti-Nazis as being morally equivalent.

It fell to Peter Singer, the liberal ethicist and father of the animal rights movement, to point out that Trump had done nothing of the kind. In an essay last week, the professor, a fierce critic of the president, argued that "a close reading of the transcript of Trump's remarks" made clear that he was censuring the protesters, not for being anti-Nazis, but for "charging with clubs in their hands, swinging clubs."

Ah, replied the commentators, but maybe swinging clubs is OK if the targets are fascists. Set aside, for a moment, that in Berkeley, as elsewhere, the hoodlums are not attacking fascists, but supporters of a legitimately elected president. Let's just analyze, for a moment, why actual fascists might be placed in a different moral category. What is it we find so abhorrent about them?

We can all make our own lists, but my guess is that most of us would point to their intolerance of dissent, their readiness to use violence against opponents, their determination to categorize people by racial or other criteria, their preference for war over peace, their disdain for free speech and their contempt for democracy.

Take another look at the "antifa" hooligans who have been orchestrating these violent protests around the country. They tick every box, down to their black shirts. Sure, they call themselves anti-fascists, but that trick has been tried before: when the Communists established their dictatorships across Central Europe in the 1940s, they called them anti-fascist fronts. Perhaps one or two credulous souls fell for it back then. But most people, then as now, could see what was going on. When hatred drives a man use his "No Hatred" placard as an assault weapon, the words don't magically nullify his bellicosity.

Believe me, equivalence doesn't rehabilitate fascists: Their misanthropy and aggression has already damned them. Rather, it allows us to see the extreme Left for what it is: a movement which elevates violence, sneers at democracy and despises freedom.

Because Western democracies were thrown into a brief alliance with Stalin, we chose not to look too closely at how much he had in common with Hitler. Somehow, the revolutionary socialists were presumed to have nobler intentions than the Nazis. Being worked to death in a gulag was not the same as being worked to death in a concentration camp. Being shot for having been born bourgeois was not the same as being shot for having been born Jewish. You couldn't make an omelette without breaking some eggs.

Yet, when I look at the antifa thugs, casting around for any ideology to justify their sociopathic tendencies, I see people who, in an earlier age, would probably have become stormtroopers. Moral equivalence? Absolutely.

Dan Hannan is a British Conservative MEP.