Zulip Chat Archive

Stream: CSLib

Topic: Formalizing Monoid Programs in CircuitComp/CSLib


Anvit Aggarwal (Feb 07 2026 at 19:17):

Hi, I am interested in formalising circuit complexity theory in Lean and contributing to CSLib. I am doing a Bachelor's project under Prof Balagopal Komarath, a complexity theory researcher at my college (IIT Gandhinagar), on this subject.

I am thinking of formalising a lemma from Heribert Vollmer's Introduction to Circuit Complexity that relates bounded-width branching programs to M-programs over finite Monoids.
The exact statement given in Vollmer is the following:

Let A  {0,1}*.
There is a family of bounded-width branching programs P of polynomial size
that computes $c_A$ if and only if
there is a finite monoid M, a set F  M,
and an M-program P' of polynomial size such that A = L(P', F)

I would like to know whether this would be a good contribution to CSLib. I would especially appreciate @Alex Meiburg's view on whether this would be a good addition to his work at CircuitComp.

Alex Meiburg (Feb 08 2026 at 00:55):

This would be very appropriate and I would appreciate it. :) My repo has a definition of monoid programs (I called them BarringtonProgram, which is another name I've seen in the literature), and I have the conversion from a BarringtonProgram to LayeredBranchingProgram as it works for symmetric groups (which gives a smaller width than the obvious construction for other monoids).

The statement you wrote is slightly stronger, because you allow different (I assume) accepting sets F. So this would be a good stronger thing to have.

The other direction (forward of your implication), that a bounded-width branching program can be converted back to a monoid program, could go "directly" or via the NC0 compilation, which is something I've been looking at doing a bit. I think it would be good.

Alex Meiburg (Feb 08 2026 at 00:59):

The reverse direction, I think, can be stated in an appropriately general way that gets you the width-5 necessary for Barrington's theorem while also getting you your statement for any arbitrary monoid.

If you have a monoid M with a faithful action on a set S, and then accepting set F of S, then you can get a branching program of width |S|. So for any monoid you can have its own action on itself, for a branching program of width |M|. For the symmetric group S_n, it acts on Fin n, so you get a branching program of width n.

Alex Meiburg (Feb 08 2026 at 01:00):

This doesn't actually require it to be a monoid at all then.


Last updated: Feb 28 2026 at 14:05 UTC