Outside the Mansion House, a remain campaigner was braving the freezing cold to offer journalists refreshments. “Have your cake and eat it,” he said hopefully. He must have nearly run out by the time the prime minister arrived, because her mission appeared to be to let most of her Brexit Ultras know that they would be going on a diet. While still allowing herself leeway to scoff as many slices as she fancied.

Brexit: May not compromising enough to make deal possible, say top MEPs - Politics live Read more

This was Theresa May’s third landmark Brexit speech – following the ones at Lancaster House and in Florence – and she was under pressure to come up with something a little less vague than her previous offerings. So she began by laying out her five tests – she refrained from calling them red lines – that any Brexit deal must meet. To which she might as well have added a sixth – that she reserved the right to add or subtract one or two more as required. In other words, all bets were off.

With that off her chest, the prime minister then went on to give the speech she probably ought to have considered giving before the referendum when she was half-heartedly in favour of remaining in the EU. And certainly before triggering article 50. But better late than never.

After nearly two years in office, it had slowly dawned on her that leaving the EU was a great deal more complicated than she had been led to believe. Britain had to wake up to the fact that it wasn’t going to be able to have everything it wanted if we left the single market and customs union and we would have to make “binding commitments” to maintain regulatory alignment with the EU in some areas. She looked a little nervous when she said “binding”. The original wording had been watered down to ‘strong’ but since Boris Johnson was snowbound in Budapest rather than in the audience, she didn’t think there would be any harm in throwing a few extra crumbs to the EU.

There were times when it looked as if the frog that had attacked her during her party conference speech was alive and well again. Several times she appeared to choke and stumble over her words, but the only time the frog really got the better of her was when she said: “We want to achieve a hard border between Northern Ireland and the Republic.” She hurriedly corrected herself to say “avoid a hard border”. Though maybe it wasn’t the frog at all. Maybe it was just a Freudian slip. After all, this was always intended as a speech with something for everyone.

Theresa May’s Brexit speech: our writers give their verdict | Polly Toynbee, Katy Balls, Maya Goodfellow and John Redwood Read more

Having successfully spelled out at length all the reasons why leaving the EU was a terrible idea, May moved on to the details of how she planned to achieve her “Managed Ambitious Divergence”. Or MAD for short. Though what she really appeared to be doing was making a desperate plea to the EU for help. She wanted a customs union as long as it wasn’t called a customs union. She was happy with the European court of justice as long as it could be called the British European court of justice. So could the EU just accommodate her a bit and give her everything she wanted? And while they were about it, any ideas for resolving the Irish border problem would be gratefully received.

By now heads were going down in the audience. With a Theresa May speech you feel every one of the 45 long minutes. Sensing she was losing her way, the prime minister went back to her familiar Maybot trademarks. She appears to confuse mindless slogans with tireless optimism and her language function began to disintegrate. “What I set out in the five tests are the five tests I will be setting,” she announced.

It got worse. Brexit would be bold and comprehensive. Our future was bright. Two sentiments she had previously done her best to contradict. She even said: “I am very clear.” Always a clear sign she is out of her depth. She ended with: “Let’s get on with it.” If only she had done so over a year ago. And if only she would. But that might take leadership. Which was one item that didn’t appear to have been on the menu.