  Network coding is a new technique to transmit data through a network by
letting the intermediate nodes combine the packets they receive. Given a
network, the network coding solvability problem decides whether all the packets
requested by the destinations can be transmitted. In this paper, we introduce a
new approach to this problem. We define a closure operator on a digraph closely
related to the network coding instance and we show that the constraints for
network coding can all be expressed according to that closure operator. Thus, a
solution for the network coding problem is equivalent to a so-called solution
of the closure operator. We can then define the closure solvability problem in
general, which surprisingly reduces to finding secret-sharing matroids when the
closure operator is a matroid. Based on this reformulation, we can easily prove
that any multiple unicast where each node receives at least as many arcs as
there are sources is solvable by linear functions. We also give an alternative
proof that any nontrivial multiple unicast with two source-receiver pairs is
always solvable over all sufficiently large alphabets. Based on singular
properties of the closure operator, we are able to generalise the way in which
networks can be split into two distinct parts; we also provide a new way of
identifying and removing useless nodes in a network. We also introduce the
concept of network sharing, where one solvable network can be used to
accommodate another solvable network coding instance. Finally, the guessing
graph approach to network coding solvability is generalised to any closure
operator, which yields bounds on the amount of information that can be
transmitted through a network.
