Circuit Solving