principal ideal domain