def down(ri, row_index):
    """ Starting at the row corresponding to ``row_index``, return the down.

        Given a root ideal ``ri`` and a starting position ``row_index``, move right on that row until you hit the root ideal (you are now standing ontop of a cell of the root ideal), then move straight down until you hit the diagonal, and return the new index.

        EXAMPLES:

        The picture below represents the root ideal ``ri``:

        .. image:: _static/root-ideal.JPG
            :width: 180px
            :align: center
            :alt: The root ideal [(0,2), (0,3), (0,4), (1,3), (1,4), (2,4)]

        ::

            sage: ri = RootIdeals().init_from_partition([3, 2, 1], 5)
            sage: ri.down(0)
            2
            sage: ri.down(1)
            3
            sage: ri.down(2)
            4
            sage: ri.down(3) == None
            True
            sage: ri.down(4) == None
            True

        ..  SEEALSO::

            :meth:`up`, :meth:`down_path`, :meth:`up_path`, :meth:`top`, :meth:`bottom`
        """
    for r, c in ri:
        if r == row_index:
            return c
    return None
