2016-02-07 2 views
0

Я уже собирался сплавить в целом и нашел некоторые концепции, в которых мне нужен определенный клиренс.Реляционная связь и операторы в сплаве

Прежде всего,. (Dot Join). У меня, как это работает для простых примеров, но в таком случае, как это:

sig B {} 
sig A { 
rel: B -> C 
} 
sig C { 
rel1: B -> A 
} 
rel = {(a1,b1,c1), (a2,b2,c2)} 
rel1 = {(c1,b1,a1),(c2,b2,a2)} 
rel.rel1 = {(a1,b1,b1,a1),(a2,b2,b2,a2)} 
rel1.rel = {(c1,b1,b1,c1),(c2,b2,b2,c2) 

я не получаю результат rel.rel1 или rel1.rel. Может кто-нибудь объяснить, как это работает, пожалуйста?

У меня также есть проблемы с <: и>: операторами.

Заранее спасибо.

ответ

2

Это объясняется подробно с большим количеством примеров из моей книги (Software Abstractions, MIT Press, 2012).

Кроме того, вы можете найти эти slides от старого разговора обходительного:

С горкой 80 на, есть расширенный пример различных точек соединения.

+0

Спасибо за ответ, это было полезно! –

+0

@ daniel-jackson Я только начал изучать сплав в нашем курсе Logic for Systems здесь, в Brown. Рад видеть ваши ответы на SO. :) Кроме того, читая книгу, я люблю ее ясный стиль. – k4rtik

Смежные вопросы