add main theorem