Shafarevich theorem