6. N. Shimizu (chikoski@gmail.com / @chikoski)
sig RadioStation { band set: Freq}#
sig Freq {}#
fact NoOverlapping{#
no disj s, s’ : RadioStation | #
some s.band & s’band#
}
7. N. Shimizu (chikoski@gmail.com / @chikoski)
sig Object {}#
sig Directory extends Object { #
contents: set Object}#
sig File extends Object {}#
fact {#
no d: Directory | d in d^contents#
Object in Root.*contents#
all o: Object | lone o.~contents#
}
9. N. Shimizu (chikoski@gmail.com / @chikoski)
sig Host {}#
sig Link { from, to : Host}#
fact { all x : Link | x.from ! = x.to }
sig Host {}#
sig Link { from, to : Host}{ from != to}#
10. N. Shimizu (chikoski@gmail.com / @chikoski)
sig Host {}#
sig Link { from, to : Host}#
fact{ all this: Link | #
some x: Link | x.from = this.to and x.to = this.from#
}#
sig Host {}#
sig Link { from, to : Host}{#
some x:Link | x.@from = to and x.@to = from#
}#
11. N. Shimizu (chikoski@gmail.com / @chikoski)
sig Book {#
homeAddress, workAddress : Name -> Addr#
address: homeAddress + workAddress#
}#
sig Name, Addr {}#
sig Book{#
homeAddress, worksAddress, address : Name -> Addr#
}{ address in homeAddress + workAddress}#
sig Name, Addr {}#
17. N. Shimizu (chikoski@gmail.com / @chikoski)
abstract sig Color {}#
one sig Red, Yellow, Green extends Color {}#
fun colorSequence: Color -> Color{#
Color <: iden + Red -> Green + #
Green -> Yellow + Yellow -> Red#
}