Trump sure is angry at Attorney General Jeff Sessions — perhaps because he thinks Sessions’ recusal from matters related to Russia set in motion the chain of events that got Mueller appointed. My pet theory, though, is that he’s already asked Sessions to unrecuse himself and fire Mueller, and that Sessions told Trump no.

As this unthinkable firing becomes more and more thinkable, I’m seeing a mix of panic and resignation in how people are forecasting the aftermath. Trump would get away with firing Mueller, the thinking goes, because Republicans in Congress are the ones who would have to hold him accountable, and they let him get away with anything.

I don’t think this is right.

So far, every attempt Trump has made to impede the investigation into him and his associates has backfired. I don’t think firing Mueller would be different — in part, because congressional Republicans have been more aggressive than people are giving them credit for about holding Trump accountable.

Republicans in Congress should be doing more (I’ll get to that below), but it’s worth reflecting on the fact that they could be doing a lot less, too.

What are they doing to contain Trump? Well, for one thing, they’re about to pass legislation that codifies sanctions against Russia and requires Trump to seek congressional approval if he wishes to relax them. This proposal will pass the House by an overwhelming bipartisan majority, and has passed the Senate in a similar manner.

This is kind of an amazing rebuke to a Republican president from a Republican Congress.

Every presidential administration seeks to protect its prerogative to conduct foreign policy unilaterally. President Barack Obama managed to fend off congressional efforts to block him from striking the Iran deal. But congresspeople in both parties overwhelmingly reject Trump’s desire to forgive Russia and distrust his handling of US relations with Russia — they distrust him to such an extent that Republicans are willing to embarrass him by passing this law by a veto-proof margin.

For another thing, congressional committees have been conducting a fairly aggressive investigation into Russia’s meddling in our election and possible involvement by the Trump campaign in such efforts. This week, Jared Kushner will sit for interviews with two such committees. Donald Trump Jr. and Paul Manafort, the former Trump campaign manager, will also be interviewed soon.

Liberals have tended to watch these committees’ public hearings on Russia and complain that Republican questioning has not been aggressive enough. Republican members of the committees have often been interested in pushing the White House-preferred line that leaks are “the real story,” not Russian meddling.

But this misses the big picture: Republicans do not have to hold these hearings at all.

Democrats have the opportunity to ask tough questions because the Republican chairmen of these committees chose to give them a venue to do so. (Additionally, some of the Republicans on the committees have asked tough and probing questions of their own.)

Trump complained this weekend that Republicans “do very little to protect their president.” I think he means he wishes that Chuck Grassley, the Republican chairman of the Senate Judiciary Committee, were not seeking to interview his son about Russia collusion under threat of a subpoena. In a way, Trump is right: Grassley did not have to do that, and if his key goal were to protect the president from scrutiny, he would not do that. But he is doing it.

If Trump fired Mueller, this would increase pressure on Congress to conduct more aggressive and more public inquiries. You may think I sound Pollyannaish, but this is exactly what happened after Trump fired FBI Director James Comey.

Remember the order of events: Comey’s release of information from a memo that detailed the president’s efforts to pressure him about the investigation led Deputy Attorney General Rod Rosenstein to appoint Mueller, and also led the Senate Intelligence Committee — led by Republican Richard Burr — to call Comey to offer damaging, public testimony.

We are six months into the term of a Republican president, and the Republican-controlled Congress is already deep into a damaging investigation of his wrongdoing. If you step back, what that says about the quality of our institutions isn’t depressing — it’s kind of amazing.

Plus, remember that firing Mueller also would not automatically end the inquiry Mueller is leading, just as firing Comey did not end the FBI’s investigative activities around Russia. It was Rosenstein — a Trump appointee who had been complicit in Trump’s firing of Comey — who ensured an independent investigation would go on.

When Trump complains about the “Deep State,” what he means is that Washington is full of bureaucrats and officials who are committed to enforcing the law and preserving our institutions, even when Trump finds that inconvenient. Maddeningly for the president, some of those stubborn officials his putative allies in Congress. Even more maddeningly, some are his own appointees in Cabinet departments.

Trump is absolutely at war with our institutions, but the institutions are winning.

All that said, Republicans in Congress could, and should, do more to box Trump in.

Ramesh Ponnuru is right that some of the Democratic calls for Republicans to stand up to the president amount to asking them to stop being Republicans. For example, the idea that Republicans shouldn’t move on a domestic policy agenda until the Russia matter is settled is pure partisanship. None of the ideas in the healthcare bill belong to the president, anyway.*

And Ponnuru is also right that it’s too early for impeachment — a proposition that even most Democrats in Congress agree with, for now.

But Republicans should have imposed more restrictions on the president’s cabinet choices. They should have rejected Rex Tillerson for Secretary of State on the grounds of being too friendly to Russia (and too inexperienced), and they should not have confirmed Mike Pompeo, who gleefully shared Wikileaks releases during the campaign, to run the CIA.

If Trump forces Jeff Sessions out at the Justice Department and tries to replace him with a lackey like Rudy Giuliani, they should reject that choice, too.

Not all of the relevant committee heads have been as conscientious as Burr and Grassley have been. Rep. Devin Nunes, who chairs the House Intelligence Committee, has been an embarrassing suck-up to the president. House leaders should replace him with someone more independent and respected.

And, yes, it would be nice if more Republicans would be more openly critical of the president’s lawless behaviour. Words do matter.

But so far, it seems to be we have a Republican Congress that has earned a “C-” for how it talks about the president and Russia, and a “B” for what it’s doing about it. I’d much sooner take that than the other way around.