Brill–Noether theory