addParticipant(ident uid, ident id, ident studentId) {
assume exists /account[uid]/student && /account[uid]/student/id = studentId && /exam[id]/free
|| exists /account[uid]/examiner[id];
assume exists /exam[id]; # implicitly true in OO implementations
assume count (studentId, /account/student/id) = 1;
assume not exists /exam[id]/participant[studentId];
insert /exam[id]/participant[studentId];
}