Revoke Tutor Rights
revokeTutorRights(ident uid, ident username, ident exerciseId, ident groupId) {
assume exists /account[uid]/assistant[exerciseId];
assume exists /account[username]/tutor[exerciseId]/group[groupId];
assume exists /exercise[exerciseId]/group[groupId]/tutor[username];
# implied by integrity and the assumption before
remove /account[username]/tutor[exerciseId]/group[groupId];
if size(/account[username]/tutor[exerciseId]/group) = 0 then # should this be an additional procedure?
remove /account[username]/tutor[exerciseId];
fi
remove /exercise[exerciseId]/group[groupId]/tutor[username];
}