INF 3230/4230 Forelesning 9: Omskrivningslogikk

Like dokumenter
INF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk

En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen

Modellering av kommuniserende systemer i Maude

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

UNIVERSITETET I OSLO

INF 3230: Videregående kurs i formell modellering

UNIVERSITETET I OSLO

INF 3232/4232 Forelesning 1: Introduksjon; signaturer; grunntermer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Definisjon 1.1 (Sunnhet). Sekventkalkylen LK er sunn hvis enhver LK-bevisbar sekvent er gyldig.

Grunnleggende Grafteori

En repetisjon hrj høst 2009

UNIVERSITETET I OSLO

Oversikt over Real-Time Maude

Sekventkalkyle for utsagnslogikk

INF Algoritmer og datastrukturer

INF2080 Logikk og beregninger

Skanning del I INF /01/15 1

UNIVERSITETET I OSLO

MAT1030 Diskret Matematikk

UNIVERSITETET I OSLO

INF1800 LOGIKK OG BEREGNBARHET

Repetisjon INF1800 LOGIKK OG BEREGNBARHET FORELESNING 3: MENGDELÆRE, RELASJONER, FUNKSJONER. Mengder. Multimengder og tupler.

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Repetisjonsforelesning - INF1080

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

UNIVERSITETET I OSLO

IN Algoritmer og datastrukturer

Hvis Ole følger inf3170, så liker Ole logikk. Ole følger inf3170, og Ole følger ikke inf3170. Ole følger inf3170, eller Ole følger ikke inf3170.

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Dagens plan. INF3170 Logikk. Syntaks: Utsagnslogiske formler. Motivasjon

Universitetet i Oslo Institutt for informatikk. Datatyper og eksempelstudier i Creol. Nabil Mounzir Safadi. Hovedfagsoppgave

Matematikk 1 (TMA4100)

Intuisjonistisk logikk

INF3170 Logikk. Forelesning 11: Intuisjonistisk logikk. Roger Antonsen. 27. april Institutt for informatikk, Universitetet i Oslo

Skanning del I. Kapittel 2 INF 3110/ INF

Dagens plan. INF3170 Logikk. Negasjon som bakgrunn for intuisjonistisk logikk. Til nå i kurset. Forelesning 9: Intuisjonistisk logikk.

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ

En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen. Masteroppgave. Henrik Dæhli Joakim Hjertås

INF3170 Forelesning 11

Dagens plan. INF4170 Logikk. Fri-variabel sekventkalkyle. Forelesning 10: Automatisk bevissøk II fri-variabel sekventkalkyle og sunnhet.

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan

INF2080 Logikk og beregninger

Norsk informatikkolympiade runde

Før vi begynner. Kapittel 5: Relasjoner og funksjoner. MAT1030 Diskret Matematikk. Litt om obligen og studentengasjementet

INF Algoritmer og datastrukturer

Semantisk Analyse del I

Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot. barn

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

INF2220: Time 12 - Sortering

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Algoritmer - definisjon

UNIVERSITETET I OSLO

Repetisjon. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 15: Rekursjon og induksjon. Roger Antonsen

TDT4100 Objektorientert programmering

INF oktober Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

INF1800 Forelesning 17

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

UNIVERSITETET I OSLO

MAT1030 Forelesning 12

INF1800 LOGIKK OG BEREGNBARHET

INF1000: Forelesning 7

Kompleksitet og Beregnbarhet

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

Relasjonsdatabasedesign (forts.)

INF2220: Forelesning 2

Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg

Definisjon av prosess

Pensum: fra boken (H-03)+ forelesninger

MAT1030 Forelesning 22

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

MAT1030 Diskret Matematikk

Universitetet i Oslo Institutt for informatikk. En abstrakt maskin for Creol i Maude. Marte Arnestad. Hovedfagsoppgave

Kapittel 5: Relasjoner

Relasjonsdatabasedesign

1 innhold. Forskningsdagene. Grafiske retningslinjer, februar 2011

Grafisk profilhåndbok Retningslinjer for grafisk profil

Prøveeksamen INF2440 v Arne Maus PSE, Inst. for informatikk

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2)

Bevis for sunnhet (og kompletthet) av bevissystemet med hensyn på semantikken

Relasjonsdatabasedesign (forts.)

Litt om kompilering og interpretering. Dagens tema Syntaks (kapittel Komp. 47, kap. 1 og 2) Syntaks og semantikk

7) Radix-sortering sekvensielt kode og effekten av cache

INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo.

INF1000: Forelesning 7. Konstruktører Static

UNIVERSITETET I OSLO

Scanning - I Kap. 2. Hva scanneren gjør

INF Algoritmer og datastrukturer

MAT1030 Diskret matematikk

Transkript:

27.3.2006 INF 3230 9 1 INF 3230/4230 Forelesning 9: Omskrivningslogikk Peter Ølveczky/Ingrid Yu Kapittel 5 og 6 Omskrivningslogikk Parallelle steg Formatering

27.3.2006 INF 3230 9 2 Midterm eksamen Midterm exam: Litt om hyppige feil...

27.3.2006 INF 3230 9 3 Repetisjon I Bruke omskrivningsregler for å modellere dynamisk oppførsel Underliggende funksjoner/datatyper defineres som før vha likhetsspesifikasjoner Regel-venstresidene skal være irredusible mht likningene Definerer en modell av et system, ikke bare et program! til eksamen må modellen være korrekt

27.3.2006 INF 3230 9 4 Repetisjon II Systemet ofte ikke lenger terminerende eller konfluent trenger andre slags analysekommandoer enn red Maude kommandoene rew og frew eksekverer/simulerer én mulig oppførsel av ett system dette kalles ofte prototyping Maude s search kommando analyserer alle mulige oppførsler av et system fra gitt initialtilstand kan ta meget lang tid vil ikke terminere hvis ønskede tilstander ikke kan nås kan skrive ut stien til ønsket term

27.3.2006 INF 3230 9 5 Omskrivningslogikk Logikk for å resonnere om hvorvidt systemet kan gå fra tilstand t til tilstand u (i 0 eller flere omskrivningssteg ): R t u Essensielt likhetslogikk uten symmetri

27.3.2006 INF 3230 9 6 Refleksivitet: Slutningsregler for omskrivningslogikk (I) R t t holder for enhver term t Likhet: Dersom R t t og E t = u og E t = u alle holder, så holder også R u u Kongruens: Dersom R t 1 u 1,..., R t n u n alle holder, så holder også R f(t 1,...,t n ) f(u 1,...,u n ) for ethvert funksjonssymbol f Regelinstansiering: Dersom R t 1 u 1,..., R t n u n alle holder, så holder også R t(t 1 /x 1,...,t n /x n ) u(u 1 /x 1,...,u n /x n ) for regel l : t(x 1,...,x n ) u(x 1,...,x n ) Transitivitet: Dersom både R t 1 t 2 og R t 2 t 3 holder, så holder også R t 1 t 3

27.3.2006 INF 3230 9 7 Slutningsregler for likhetslogikk (II) Ett omskrivningssteg tilsvarer bruk av ligning Derfor har vi t E u hviss...,,rules(e) t u Følgelig er det uavgjørbart hvorvidt R t t spesifikasjon holder i en

27.3.2006 INF 3230 9 8 Resonnering om parellellitet Høynivå resonnering omkring hvilke parallelle beregninger det er mulig å foreta abstrakt resonnering om hvilke beregningssteg som kan foretas parallelt antar ingenting om underliggende maskinarkitekturen og gir derfor ikke konkret parallellisering/scheduling av subprosesser til prosessorer Logikken tillater resonnering om parallelle systemer, Maude eksekverer foreløpig sekvensielt Eksempel: Får man mer parallellitet ved bruk av sjekker/giroer eller ved at alle går til banken?

27.3.2006 INF 3230 9 9 Parellelle steg (I) Definisjon: R t t er en ett-stegs parallell omskrivning dersom t t kan sluttes uten bruk av deduksjonsregelen Transitivitet (og ikke bare følger fra Refleksivitet og Likhet) Slutningsreglene Kongruens og Regelinstansiering tilsvarer hver sin type parallellitet Ett-stegs sekvensiell omskrivning: deduksjonsregelen Regelinstansiering brukt nøyaktig én gang (tilsvarer ett reduksjonssteg) Teorem: Ethvert parallelt steg kan splittes opp i en sekvens av ett-stegs (sekvensielle) steg

27.3.2006 INF 3230 9 10 Parellelle steg (II) Parallellitet tilsvarende slutningsregel Kongruens: hvordan parallellisere beregningen av 9267852381 +primtall(8333104742)? dersom t 1 u 1 og... og t n u n kan beregnes i ett steg, så kan også f(t 1,...,t n ) f(u 1,...,u n ) beregnes i ett steg

27.3.2006 INF 3230 9 11 Parallelle steg (III) Mer parallellitet tilsvarende slutningsregel Kongruens: multisett av personer sort Population. subsort Person < Population. op emptypopulation : -> Population [ctor]. op : Population Population -> Population [ctor assoc comm id: emptypopulation].

27.3.2006 INF 3230 9 12 Parallelle steg (IV) (forts.) Da kan person("peter", 36, single) person("fisk", 59, married) person("chomsky", 75, married) omskrives til person("peter", 36, engaged) person("fisk", 60, married) person("chomsky", 76, married) i ett parallelt steg (2 bursdager + 1 forlovelse samme dag!) Brukt til parallelle objekter

27.3.2006 INF 3230 9 13 Parallelle steg (V) Parallellitet svarende til slutningsregel Regelinstansiering: Eksempel: Gitt så fins det ett parallelt steg {l 1 : f(x) g(x), l 2 : a b} f(a) g(b) (og ett parallelt steg f(f(a)) g(g(b)), osv.) Fra 2003: flyet flyr fra Chicago til Arlanda i ett steg kapittel 6 av kompendiet kan skrives i ett steg da kan kapittel 6 skrives i ett steg på flyet fra Chicago til Arlanda

27.3.2006 INF 3230 9 14 Avsluttende eksempel 1: choice Choice operator? som velger ikke-deterministisk ett av to tall: mod CHOICE-INT is protecting INT. op _?_ : Int Int -> Int. vars I J : Int. rl [choose_first] : I? J => I. rl [choose_second] : I? J => J. endm (Ikke dynamisk :) hvorfor kan ikke? defineres vha. ligninger?

27.3.2006 INF 3230 9 15 Sortering av en liste ved regler: Avsluttende eksempel 2: sortering sort List. subsort Int < List. op nil : -> List [ctor]. op : List List -> List [assoc id: nil ctor]. vars I J : Int. var L : List. crl [swap] : I L J => J L I if J < I. Kjøring gir sortert liste tilbake: Maude> rew 5 1 3-5 0 5 2 23-9. result List: -9-5 0 1 2 3 5 5 23 Enda kortere regel: crl [swap] : I J => J I if J < I.

27.3.2006 INF 3230 9 16 Formatering i Maude (I) Ikke pensum Maude termer kan bli store og uoversiktlige Et funksjonssymbol kan gis farge og format ved attributtet format To parametre: fargen/formatet på funksjonssymbolet, og fargen/formatet på det som kommer etterpå op f : s -> s [format (r! o)]. betyr at f skrives med rød farge (r) og med tjukk skrift (!), og at resten av output går tilbake til original (o)

27.3.2006 INF 3230 9 17 Formatering i Maude (II) Varianter: r red g green y yellow b blue p black m magenta c cyan w white x reverse video! bold o original s space t tab f blink(?) h hidden Kan slås sammen

27.3.2006 INF 3230 9 18 Formatering i Maude (III) Eksempel: fmod FORMAT is sort Color ColorList. subsort Color < ColorList. op : ColorList ColorList -> ColorList [assoc]. op b : -> Color [format (b o)]. op r : -> Color [format (r o)]. op boldr : -> Color [format (r! o)]. op y : -> Color [format (sssy o)]. op magenta : -> Color [format (xm o)]. op f : Color -> Color [format (p o)]. endfm red b r magenta boldr f(r).

27.3.2006 INF 3230 9 19 Formattering av mix-fix-symboler (I) Hvor mange format-parametre trenger? op : s s -> s [format (...)]. 1. hvordan skal første -argumentet se ut? 2. hvordan skal andre -argumentet se ut? 3. hva skjer etterpå? Totalt 3 format-parametre: fmod format2 is protecting NAT. sort s. op : Nat Nat -> s [format (r! nox o)]. endfm red 5 4.

27.3.2006 INF 3230 9 20 Formattering av mix-fix-symboler (II) Hva med op _++_ : s s -> s [format (...)]. Trenger 4 format-parametre fmod format2 is protecting NAT. sort s. op _++_ : Nat Nat -> s [format (r! h ob o)]. endfm red 5 ++ 4.

27.3.2006 INF 3230 9 21 Mer om søk (I) Søk foregår ved bredde-først traversering av treet av mulige oppførsler fra gitt initialtilstand Maude effektivisering: lagrer alle besøkte tilstander fortsetter ikke søket fra en tilstand som er sett før Plassproblemer: alle tilstander vi har sett til nå må lagres i internminnet (Uten effektivisering: treets frontier må hele tiden lagres kan kanskje t.o.m. være verre enn Maude s versjon?) Maude meget effektivt, men problemet med antall tilstander forsvinner ikke reflekterer problemets vanskelighetsgrad

27.3.2006 INF 3230 9 22 Mer om søk (II) Internminnet kan bli oppbrukt...... og/eller søket kan ta lang tid Maude s søkekommando finner alltid den korteste stien til en (u)ønsket tilstand (hvorfor?) Antall tilstander som besøkes innen n omskrivningssteg er røft regnet x n hvis man kan fra hver tilstand kan gå til x tilstander i ett steg