On Oracles and Algorithmic Methods for Proving Lower Bounds