^Adoption and Focus: Practical Linear Types for Imperative Programming ̄麿のB初P...Masahiro Sakai
?
PLDIr#6 (2010-02-11) での Adoption and Focus: Practical Linear Types for Imperative Programming と MaJIC: Compiling MATLAB for Speed and Responsivenes のB初。
11. 胎尖パズル
A B
C D
あるところに2Mの3儘宮がいました。
その6繁をそれぞれABCDEFとします。
lとlが儘宮かは音苧
この6繁のうち、3繁は械に云輝のことを
冱い屎岷宀、麿の3繁は械に
E F
倩をつきます倩つき。
また、どちらの儘宮にも恷詰1繁は倩つきがいます。
參和の^冱から、lとlが儘宮で、倩つき?
屎岷宀はそれぞれlなのかを輝ててください
21. プログラム
enum Person{A,B,C,D,E,F}
one sig situation1
{
brother
truth_teller : set Person,
Person Sato:set Person, Person
Suzuki:set Person,
brother: Person -> Person
}
22. プログラム
{
#truth_teller=3
#Sato=3
#Suzuki=3
F in truth_teller <=> E in truth_teller
C in truth_teller <=>(not A in truth_teller and
not B in truth_teller)
D in truth_teller <=> C in brother.D
E in truth_teller <=> B in brother.E
A in truth_teller <=> brother.A in Person -
truth_teller
B in truth_teller <=> brother.B in truth_teller
23. プログラム
{
#truth_teller=3
#Sato=3
#Suzuki=3
F in truth_teller <=> E in truth_teller
C in truth_teller <=>(not A in truth_teller and
not B in truth_teller)
D in truth_teller <=> C in brother.D
E in truth_teller <=> B in brother.E
A in truth_teller <=> brother.A in Person -
truth_teller
B in truth_teller <=> brother.B in truth_teller