Is every finite circuit "solvable" using Ohm's law and Kirchhoff's loop rules? Whenever I have solved circuits (only cells, resistors and wires), it has only been necessary to use Ohm's law (or things derived from Ohm's law, such as how two resistors $R_1$ and $R_2$ have effective resistance $R_1+R_2$ as a whole) and Kirchoff's loop rules. However, I was curious as to whether this always works.
That is:

Given any finitely sized circuit, consisting of only wires (with zero resistance), batteries (with known voltage) and (Ohmic) resistors (with known resistance), is it always possible to use Ohm's law and Kirchhoff's loop and junction rules to calculate the current at any given point on the circuit and the voltage between any two points?

I don't see why this isn't the case, but I do not know of any definitive proof.
(This might lean too heavily into logic, specifically the idea of completeness, so if this question isn't appropriate I'll migrate it over to MSE.)
 A: With one battery and any combination of resistors which do not short out the battery there is a unique solution for the voltages and currents.
The idea of superposition for a circuit with any number of batteries allows the contribution to the currents and voltages from each battery independently to be found with the proviso that the battery is not short circuited.
The currents and voltages contributed by each battery alone can then be added together to find the currents and voltages for the whole circuit.
So, as shown in outline, the answer to the question Is every finite circuit "solvable" using Ohm's law and Kirchhoff's loop rules?, with only resistors and batteries in the circuit, is "yes".

I possibly did not make it clear enough as to what I meant by the phrase with the proviso that the battery is not short circuited.
The short circuiting could occur if there were two batteries alone in parallel. The only configuration which would work with two batteries in parallel is if they were connected together with the the same polarity and had the same emf as then the two batteries could be treated as one.
A: Christophe's answer is really great, but if it is too confusing for you, the engineering way to express this fact is to say that in any such circuit, the number of unknowns in the circuit equation is equal to the number of knowns, so an algebraic solution always exists.
A: The Euler relation for a planar graph (Wikipedia) is probably an essential ingredient of a proof. Denote $e$ the number of edges, $f$ the number of faces and $n$ the number of nodes, the Euler relation states that
$$n-e+f=2$$
Note that in this definition, $f=2$ for a single loop because there is a face inside the loop and another one outside of it.
Assume that an electrical circuit is a particular case of a planar graph. We want to compute the intensity flowing in each branch (or edge) of this graph. There are therefore $e$ variables. At each node, the sum of the intensities should vanish (Kirchhoff law). Note that if we have two nodes connected by one or several edges, the two Kirchhoff laws written for these two nodes are actually identical. The number of independent Kirchhoff laws is not $e$ but $e-1$.
Around each face of the graph, the sum of the electrical tensions should vanish (Kirchhoff's Voltage Law). Because of the definition of the number of faces of a planar graph, we have $f-1$ (and not $f$) Kirchhoff's Voltage Laws in our circuits.
In conclusion, there are therefore $(n-1)+(f-1)$ equations. According to Euler relation, the number of equations $n+f-2$ is equal to the number of variables.
There is probably still some work to make this rigorous (any help to improve it is welcome) but it may be the idea of a proof.
Addendum
A complete and accessible proof can be found in the paper PDF
A: The other answers have noted that the total number of equations is correct, but that's not actually enough to guarantee a unique solution. There are at least two ways things can fail:

*

*The equations are inconsistent. For example, consider a circuit that just consists of two ideal $1$ Volt batteries pointing clockwise. Then Kirchoff's loop rule is $1+1 = 0$ which has no solution.

*The equations are incomplete. Suppose somewhere in your circuit, there's a closed loop that has zero resistance, and possibly a bunch of batteries whose emfs add to zero. (For example, take the previous example and flip one of the batteries around.) Then Kirchoff's loop rule is $0 = 0$ which says nothing at all; the current in that circuit is indeterminate.

In fact, having no solutions or nonunique solutions is quite common in simple physical models. Often, it means that the idealizations used in that model are breaking down. The problems I mentioned can be fixed by giving all batteries and wires small internal resistances.
A: The proof you need is that the meaning of "solving the circuit" is to find values for all unknowns which satisfy the constraints equations.  Kirchhoff's Voltage Law captures all of these constraints.  The proof of this is a bit of negative proof.  You typically prove this by showing that you're comfortable modeling a real-life circuit with ideal batteries, ideal wires, and ideal resistors.
Its trivial to show that this does not model every possible circuit, but you'll find its a pretty good model in all cases.  Regardless, your wording of the problem statement indicates that it is assumed this model is sufficient.
Once you have this, you can demonstrate that all of these constraints are linear, so you are solving a system of linear equations.
We can, of course, demonstrate when we can solve a circuit with these forms by putting these constraints into matrix form and then asking whether the matrix is invertible.  If it is, then the system is solvable.  And, of course, as others have noted, this is solvable when:

*

*There as many equations as there are variables

*There are no inconsistencies or duplicate equations in the system (which will make the matrix singular)

These things will not happen in well-formed circuits, but can appear when you do things like short a battery, or have two wires that go between the same nodes (thus you don't know how much current is carried by each).  We usually solve the latter by lumping the wires together, and the former is solved by either making the circuit less horrible or using more complete models of batteries and wires.
