  Traditional treatments of formal logic provide: 1. A syntax for formulas. 2.
An inference relation between sets of formulas. 3. A rule for assigning meaning
to formulas (semantics) that is sound with respect to the inference relation.
  First order logic, the logic and semantics of programming languages, and the
languages that have been formulated for various kinds of categories are all
commonly described in this way. The formulas in those logics are strings of
symbols that are ultimately modeled on the sentences mathematicians speak and
write when proving theorems.
  Mathematicians with a categorial orientation frequently state and prove
theorems using graphs and diagrams. The theory of sketches provides a formal
way to describe mathematical structures and impose requirements (such as
equations) on them using graphs, diagrams and similar structures. The graphs,
diagrams and other data of a sketch are formal objects that correspond to the
graphs and diagrams used by such mathematicians in much the same way as the
formulas of traditional logic correspond to the sentences mathematicians use in
proofs.
  Sketch theory has a well-known and well-developed functorial semantics
corresponding to item 3 in the description of logic above. The content of this
paper is to propose a structure in sketch theory that corresponds to items 1
and 2 in that description.
