A symbolic language is developed around the primitive notions of edge and spanning tree, with each spanning tree being interpreted as a binary relation on edges. A sense is considered in which the properties expressible in this language are precisely the self-dual properties of graph theory.