This is an old revision of the document!
deleteAccount(ident username) {
assume exists //accounts/account[username];
assume size(//accounts/account[username]/examiner) = 0;
assume size(//accounts/account[username]/assistant) = 0;
assume size(//accounts/account[username]/tutor) = 0;
# not yet a constraint of the implementation, but is seems practically relevant :-)
if exists //accounts/account[username]/admin then
assume size(//accounts/account/admin) > 1;
fi
if exists //accounts/account[username]/student then
assume size(//exercises/exercise/students/student[//accounts/account[username]/student/id]) = 0;
assume size(//exams/exam/results/participant[//accounts/account[username]/student/id]) = 0;
fi
remove //accounts/account[username];
}