У меня есть подпись для представления программ:
sig Program {
???: Data -> Result
}
Каждая программа отображает входные данные в выходной результат.Итак, существует троичное отношение (Программа -> Данные -> Результат).
Обратите внимание на вопросительные знаки для имени поля.Какое имя поля вы предлагаете?
Имя ввода-вывода кажется хорошим:
sig Program {
IO: Data -> Result
}
Тогда я могу написать элегантные выражения, такие как:
all p: Program | p.IO ...
Однако имяIO имеет смысл только для (Данные -> Результат), а не (Программа -> Данные -> Результат).
Я застрял.Что вы предлагаете?