Rules in a course handbook are full of modal verbs like “must”, “should”, “may”, etc. It’s possible to study what’s called modal logic, which attempts to formalise the meaning of such verbs. We won’t do that in this module. We also wouldn’t need to in order to build a module enrollment system. The part of the system which actually implements the rules is a checking procedure which takes a list of modules entered by the student and checks whether they do or don’t satisfy the requirements. In describing such a procedure it’s more natural to express things declaratively than imperatively. The rule which appears in course handbook as “You must take Probability and Statistics or Algebra and Geometry” can be rewritten as the statement “The student is taking Probability and Statistics or Algebra and Geometry”. The checking procedure checks whether this statement, along with any others it’s been given, is true for the student whose choices it’s validating. I’ll generally use this point of view, with statements in place of rules, from now on.