Forward and Backward Reasoning