We describe the Szeg\"o kernel on a higher genus Riemann surface in terms of
Szeg\"o kernel data coming from lower genus surfaces via two explicit sewing
procedures where either two Riemann surfaces are sewn together or a handle is
sewn to a Riemann surface. We consider in detail the examples of the Szeg\"o
kernel on a genus two Riemann surface formed by either sewing together two
punctured tori or by sewing a twice-punctured torus to itself. We also consider
the modular properties of the Szeg\"o kernel in these cases.
We define the partition and $n$-point functions for a vertex operator algebra
on a genus two Riemann surface formed by sewing two tori together. We obtain
closed formulas for the genus two partition function for the Heisenberg free
bosonic string and for any pair of simple Heisenberg modules. We prove that the
partition function is holomorphic in the sewing parameters on a given suitable
domain and describe its modular properties for the Heisenberg and lattice
vertex operator algebras and a continuous orbifolding of the rank two fermion
vertex operator super algebra.
The leitmotif of these Notes is the idea of a vertex operator algebra (VOA)
and the relationship between VOAs and elliptic functions and modular forms.
This is to some extent analogous to the relationship between a finite group and
its irreducible characters; the algebraic structure determines a set of
numerical invariants, and arithmetic properties of the invariants provides
feedback in the form of restrictions on the algebraic structure. One of the
main points of these Notes is to explain how this works, and to give some
reasonably interesting examples.