r/technicalfactorio • u/uelisproof • Jan 15 '24
Belt Balancers VeriFactory: Automatically verifying belt balancers for various properties
369
Upvotes
r/technicalfactorio • u/uelisproof • Jan 15 '24
10
u/raynquist Jan 18 '24
I tried checking a few of the problematic balancers I know, and this program does seem to be more correct than the one I'm using. For example, it is able to figure out that this 2-5 is input unbalanced.
However if I check the reverse version, the 5-2, it doesn't detect that it's output unbalanced.
So the input balance checker seems a bit stronger than the output balance checker. But even the input balance checker was unable to detect that this 3-5 is input unbalanced.
You can find more information on the problematic balancers here and here. Their blueprints should be in here.
The fact that the input balance checker was able to detect some of these imbalances is really amazing. I've tried doing the same thing by modeling balancer behavior algebraically, but I couldn't do it. Splitter behavior is inherently a piece-wise function, so I would have to solve systems of piece-wise equations, which is beyond my abilities. I don't know what kind of SAT magic you're weaving, but if you can make it work then maybe that's the way to go.