У меня есть три подписи из сплава, как показано ниже:
sig A{}
sig B{}
sig C{}
Как я могу определить биективное отношение (или изоморфизм) между C и A + B.
У меня есть три подписи из сплава, как показано ниже:
sig A{}
sig B{}
sig C{}
Как я могу определить биективное отношение (или изоморфизм) между C и A + B.
Отношение взаимно однозначности должно быть инъективным и сюръективным. поэтому ответ будет следующим:
sig A {}
sig B{}
sig C{r : one A+B}
fact {
all c1,c2: C | c1.r=c2.r implies c1=c2 // r is injective
all ab: A+B | some c:C | c.r=ab // r in surjective
}
Наверное, есть более короткий способ написать это. Другие люди могут комментировать.
Спасибо