Multiple rules

A predicate may have multiple rules, read as “or” (disjunction):

  • Database view: for each row (Id, "water") or (Id, "ice") in type, add row (Id) to watery_pokemon.
  • Deductive view: if type(Id, "water") holds, or type(Id, "ice") holds, then watery_pokemon(Id) holds.