Asserts that every referenced Name has a declaration, and that no Name is declared multiple times in the same scope.
if a referenced Name is not in scope.
if a Name is declared multiple times in the same scope.