  We introduce a new iterative rounding technique to round a point in a matroid
polytope subject to further matroid constraints. This technique returns an
independent set in one matroid with limited violations of the other ones. On
top of the classical steps of iterative relaxation approaches, we iteratively
refine/split involved matroid constraints to obtain a more restrictive
constraint system, that is amenable to iterative relaxation techniques. Hence,
throughout the iterations, we both tighten constraints and later relax them by
dropping constrains under certain conditions. Due to the refinement step, we
can deal with considerably more general constraint classes than existing
iterative relaxation/rounding methods, which typically round on one matroid
polytope with additional simple cardinality constraints that do not overlap too
much.
  We show how our rounding method, combined with an application of a matroid
intersection algorithm, yields the first $2$-approximation for finding a
maximum-weight common independent set in $3$ matroids. Moreover, our
$2$-approximation is LP-based, and settles the integrality gap for the natural
relaxation of the problem. Prior to our work, no better upper bound than $3$
was known for the integrality gap, which followed from the greedy algorithm. We
also discuss various other applications of our techniques, including an
extension that allows us to handle a mixture of matroid and knapsack
constraints.
