An optimization technique that handles non-smooth terms by solving implicit subproblems involving a proximity operator.