This is an old revision of the document!
addResult(ident uid, ident id, ident studentId, ident taskId, double points) {
assume exists //accounts/account[uid]/examiner[id];
assume exists //exams/exam[id]/results/participant[studentId]; # can also be implicitly true in an OO language
assume exists //exams/exam[id]/tasks/task[taskId];
assume not exists //exams/exam[id]/results/participant[studentId]/result[taskId];
assume points >= 0 && points <= //exams/exam[id]/tasks/task[taskId]/maxPoints;
insert //exams/exam[id]/results/participant[studentId] <result task=[taskId] points=[points] />;
}