Alloy - 从元组中删除中间原子

Alloy - Remove middle atom from tuple

我目前有三个原子 classpupilgrade 和一个格式 class->pupil->grade 的元组 mark。我如何 return 格式为 class->grade 的元组,以便我可以看到特定学生在每个 class 中的成绩作为 class/grade 二元关系?假设系统中只有一个学生。谢谢!

我可以想象实现这一点的一种方法是使用集合理解如下:

fun getGrade[p:Pupil]: Class->Grade {
  {c:Class,g:Grade|c->p->g in mark}
}