UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF 3230/4230 Formell modellering og analyse av kommuniserende systemer Eksamensdag: 7. juni 2007 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 9 sider. Vedlegg: Ett (i slutten av oppgavesettet) Tillatte hjelpemidler: Alle trykte og skrevne Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Oppgavene og deloppgavene kan til en stor grad løses uavhengig av hverandre. Om det er en deloppgave du ikke har løst, så kan du anta at du har løst den og kan prøve å gå videre i settet. Legg vekt på å finne enkle og elegante løsninger! Poengtallene angitt i parentes for hver oppgave er veiledende. Alle svar skal begrunnes godt! English! This exam is given in English after the Norwegian part, from page 5 onwards. (Fortsettes på side 2.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 2 Oppgave 1 Tavlespillet (42 poeng) I det velkjente tavlespillet har man en tavle hvor det er skrevet en del naturlige tall. Man kan når som helst erstatte to vilkårlige tall på tavlen med deres gjennomsnitt. (Gjennomsnittet av to tall m og n defineres i Maude som (m + n) quo 2 i denne oppgaven.) 1a Modellering (5 poeng) Modellér dette tavlespillet i Maude. 1b Konfluens (2 poeng) Er din spesifikasjon konfluent? (Ligningsmengden må være konfluent, så spørsmålet gjelder mest regelmengden.) 1c Parallelle steg (4 poeng) Gitt en tavle med sju tall. Hva er det minste antall parallelle ett-stegs-omskrivninger som er nødvendig for å komme til en tavle med bare ett tall? Hva er det største antall parallelle ett-stegs-omskrivninger som kan brukes for å komme til et slik tavle med bare ett tall? 1d Noen utsagn (3 poeng) Gitt følgende utsagn: 1. Tavlen har nøyaktig ett tall. 2. Summen av alle tallene på tavlen er mindre enn eller lik 14. 3. Summen av alle tallene på tavlen er lik 14. 4. Fra tavlen er det mulig å komme til en tavle med bare ett tall. 5. Summen av tallene på tavlen er mindre enn eller lik summen av tallene på tavlen i initialtilstanden. 6. Det er færre tall på tavlen enn i initialtilstanden. 7. Antall tall på tavlen er enten 1, eller én mer enn i neste tilstand. Hvilke(n) av utsagnene er tilstandsutsagn, slik som tilstandsutsagn er definert i kurset? (Fortsettes på side 3.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 3 1e Temporale egenskaper (6 poeng) For hvert av tilstandsutsagnene i deloppgaven over, forklar hvorvidt utsagnet er invariant, oppnåelig, garantert, stabil og/eller en respons-egenskap med hensyn til en initialtilstand med en tavle med tallene 9, 3, 6 og 12. (I denne deloppgaven trenger du ikke gi grundige begrunnelser.) 1f Invarianter og søk (6 poeng) For alle tilstandsutsagnene over som er invariant(e) for initialtilstanden over: 1. Gi en fullstendig Maude søkekommando som sjekker hvorvidt utsagnet er invariant for den initialtilstanden. 2. Hva ville resultatet av søket bli? 1g En ny versjon av tavlespillet (10 poeng) OK, dette tavlespillet ble litt kjedelig etter å spilt det noen tusen ganger. Derfor legger vil nå til følgende regel: to forekomster av samme tall n kan nå byttes ut med tallene n, n 1, n 2,..., 1 hvis n er større enn 0. For eksempel, hvis vi ser to firere, kan den ene av dem byttes ut med ett tre-tall, ett to-tall, og ett ett-tall. 1. Spesifisér den nye versjonen av spillet i Maude. (Det er selvfølgelig tilstrekkelig å si hva som skal legges til din forrige spesifikasjon.) 2. Er den nye versjonen av spillet terminerende? Bevis ditt svar. 1h Enda en ny versjon av tavlespillet (6 poeng; tas helst helt til slutt) Nå glemmer vi alle tidligere tavlespill-varianter, og ser på en versjon som kun har følgende spilleregel: Vilkårlige to tall m og n på tavlen kan erstattes med tallet m + n + (m n). Er denne versjonen av spillet konfluent? (Du kan selvfølgelig anta alle velkjente matematiske egenskaper til funksjoner som addisjon og multiplikasjon.) (Merk: du trenger ikke modellere denne versjonen av spillet i Maude.) (Fortsettes på side 4.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 4 Oppgave 2 Synkrone bursdager (21 poeng) I kursets eksempel av livsløpene til en samling av personer (se også vedlegg på side 8) hadde vi særlig ett stort problem: en person kunne feire 4 bursdager uten at en annen person hadde noen bursdag innimellom. I denne oppgaven skal vi rett og slett utvide spesifikasjonen (og selvfølgelig droppe den gamle bursdagsregelen) slik at alle personene har bursdag samtidig (f. eks. kan vi anta at enhver person feirer bursdag den førstejanuar hvert år!). 2a Modellere synkron bursdag (11 poeng) Definér én regel som øker alderen til enhver Person i tilstanden med 1 (i ett steg, selvfølgelig). (Det er ingen øvre aldersgrense!) Du må selvfølgelig angi eventuelle forandringer i resten av spesifikasjonen. 2b Definere initialtilstand (2 poeng) Definér en passende initialtilstand av systemet med tre Personer: "TomBrady" som er 29 år og er forlovet med "Gisele"; "Gisele" som er 26 år og forlovet med "TomBrady"; og "Bridget" som er 34 år og single for øyeblikket. 2c Analysere en invariant (8 poeng) Gitt initialtilstanden over, så bør følgende egenskap være invariant: "TomBrady" er tre år eldre enn "Gisele". 1. Skriv en søkekommando som undersøker hvorvidt egenskapen over virkelig er invariant. 2. Hva blir resultatet av søkekommandoen? Lykke til! Peter C. Ölveczky (Fortsettes på side 5.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 5 The Exam in English The following pages present the (same!) exam exercises in English. The exercises can, to a certain degree, be solved independently of each other. If you have not solved an exercise, you may assume that you have solved it and can continue with other exercises. Emphasize simplicity and elegance in your solutions. All answers must be explained/justified! Exercise 1 The Blackboard Game (42 points) In the well known blackboard game, some natural numbers are written on a blackboard. At any time, any two numbers can be replaced by their arithmetic mean. (The arithmetic mean of two numbers m and n is defined in Maude as (m + n) quo 2 in this exam.) Exercise 1a Modeling (5 points) Model the blackboard game in Maude. Exercise 1b Confluence (2 points) Is your specification confluent? Exercise 1c Concurrent steps (4 points) Given a blackboard with seven numbers. What is the smallest number of concurrent onestep rewrites needed to reach a blackboard with only one number? What is the greatest number of concurrent one-step rewrites that can be used to reach such a state? Exercise 1d Some statements (3 points) Given the following statements: 1. The blackboard contains exactly one number. 2. The sum of the numbers on the blackboard is less than or equal to 14. (Fortsettes på side 6.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 6 3. The sum of the numbers on the blackboard is 14. 4. From the blackboard it is possible to reach a state with only one number. 5. The sum of the numbers on the blackboard is less than or equal to the sum of the numbers on the blackboard in the initial state. 6. There are fewer numbers on the blackboard than in the initial state. 7. The number of numbers on the blackboard is 1, or one more than in the following state. Which of these statements are state formulas, as they are defined in this course? Exercise 1e Temporal properties (6 points) For each of the state formulas above, explain whether the formula is invariant, reachable, guaranteed, stable, and/or is a response property with respect to an initial state with the numbers 9, 3, 6, and 12. (Exhaustive explanations not needed.) Exercise 1f Invariants and search (6 points) For each state formula that is invariant for the above initial state: 1. Give a Maude search command that is used to check whether or not the state formula is indeed invariant for the given initial state. 2. What is the result of the search command? Exercise 1g A new version of the game (10 points) We add the following rule to our exciting game: two occurrences of the same non-zero number n can now be replaced by the numbers n, n 1, n 2,..., 1. For example, if we see two occurrences of the number 4, then one of these occurrences can be replaced by one 3, one 2, and one occurrence of 1. 1. Specify the new version of the game in Maude. 2. Is the specification terminating? (Fortsettes på side 7.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 7 Exercise 1h Yet another version of the game (6 points) We now forget all previous versions of the game, and only have the following rule: any two numbers m and n can now be replaced by the number m+n+(m n). Is this game confluent? (You can of course assume all well known properties of addition and multiplication.) (Notice that you do not need to specify this game in Maude.) Exercise 2 Synchronous Birthdays (21 points) In the example in the course where we modeled the lives of a collection of Persons (given in the appendix on page 8), we had a serious problem: one person could celebrate four birthdays without anyone else celebrating a single birthday. In this exercise, we modify our specification so that all persons have birthday at the same time (say, January 1 each year). Exercise 2a Modeling synchronous birthdays (11 points) Define one rewrite rule that increases the age of each Person in the state by one (in one rewrite step, of course). There should be no upper age limit! You must of course describe any additional changes in the specification. Exercise 2b Defining an initial state (2 points) Define a suitable initial state with three Persons: "TomBrady", who is 29 years old and is engaged to "Gisele"; "Gisele", who is 26 and engaged to "TomBrady"; and "Bridget", who is 34 years old and still single. Exercise 2c Analyzing an invariant (8 points) The following property should be invariant with respect to the above initial state: "TomBrady" is three years older than "Gisele". 1. Write a Full Maude search command that checks whether or not the property is indeed invariant in the specification. 2. What is the result of the search command? Good luck! Peter C. Ölveczky (Fortsettes på side 8.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 8 Vedlegg/Appendix Følgende er et utdrag av livsløpeksempelet i kurset. The following is a part of the specification of a population related to Exercise 2. (omod POPULATION is protecting NAT. protecting STRING. sort Status. op single : -> Status [ctor]. ops engaged married separated : Oid -> Status [ctor]. subsort String < Oid. msg separate : Oid -> Msg. class Person age : Nat, status : Status. vars N N : Nat. vars X X : String. --- This bad birthday rule is commented away: --- --- rl [birthday] : < X : Person age : N > --- < X : Person age : N + 1 >. crl [engagement] : < X : Person age : N, status : single > < X : Person age : N, status : single > < X : Person status : engaged(x ) > < X : Person status : engaged(x) > if N > 15 / N > 15. *** Some synchronous rules: rl [marriage] : < X : Person status : engaged(x ) > < X : Person status : engaged(x) > < X : Person status : married(x ) > < X : Person status : married(x) >. --- some rules may be missing endom) (omod GOOD-SEPARATION is including POPULATION. vars X X : Oid. op waitsep : Oid -> Status [ctor]. (Fortsettes på side 9.)
Eksamen i INF 3230/4230, 7. juni 2007 Side 9 rl [initsep] : < X : Person status : married(x ) > < X : Person status : waitsep(x ) > separate(x ). rl [acceptsep] : separate(x) < X : Person status : married(x ) > < X : Person status : separated(x ) > separate(x ). rl [acceptsep2] : separate(x) < X : Person status : waitsep(x ) > < X : Person status : separated(x ) >. rl [synchdivorce] : < X : Person status : separated(x ) > < X : Person status : separated(x) > < X : Person status : single > < X : Person status : single >. endom)