Much work on legal knowledge systems treats legal reasoning as arguments that lead from a description of the law and the facts of a case, to the legal conclusion for the case. The reasoning steps of the inference engine parallel the logical steps by means of which the legal conclusion is derived from the factual and legal premises. In short, the relation between the input and the output of a legal inference engine is a logical one. The truth of the conclusion only depends on the premises, and is independent of the argument that leads to the conclusion.This paper opposes the logical approach, and defends a procedural approach to legal reasoning. Legal conclusions are not true or false independent of the reasoning process that ended in these conclusions. In critical cases this reasoning process consists of an adversarial procedure in which several parties are involved. The course of the argument determines whether the conclusion is true or false. The phenomenon of hard cases is used to demonstrate this essential procedural nature of legal reasoning.