Abstract vanishing cycle theory