Computer reasoning