La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0 Gianna Reggio

Presentazioni simili


Presentazione sul tema: "SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0 Gianna Reggio"— Transcript della presentazione:

1 SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0 Gianna Reggio reggio@disi.unige.it

2 Ver. 0.0 Naturali iniziale spec NATi = Sorts nat Opns 0: nat succ: nat -> nat _+_: nat x nat -> nat Axioms Def(0) Def(succ(n)) Def(n + m) ** 0 + n = n succ(m) + n = succ(m+n) Esercizio 50: caratterizzare il modelo iniziale di NATi, se esiste. Esercizio 51: se eliminiamo lassioma **, cambia il modello iniziale. Esercizio 52: estendere NATi con le altre 4 operazioni (-,*,mod,div).

3 Ver. 0.0 Esercizio 50 Il modello iniziale esiste poichè la specifica è positiva condizionale. Usiamo la caratterizzazione vista a lezione I(NATi) = T Sig(NATi) /~ NATi inoltre sappiamo che la congruenza ~NATi (indicata semplicemente da ~ nel seguito) può essere definita utilizzando il sistema di Birkhoff Tutte le operazioni sono totali e quindi ~ contiene tutte le coppie (t,t) con t termine ground su Sig(NATi) [@] Intuiamo che dagli assiomi consegue che per ogni t termine ground su Sig(NATi) esiste n0 t.c. t ~ succ n (0). Proviamo ciò per induzione sulla struttura di t. –Base t = 0 Ovvio. –Step 2 casi t = succ(t1) Per lipotesi induttiva t1 ~ succ n (0); pertanto t ~ succ(succ n (0))= succ n+1 (0) (~ è una congruenza). t = t1 + t2 Per lipotesi induttiva t1 ~ succ n (0) e t2 ~ succ m (0). Usando Birkhoff possiamo provare che succ n (0) + succ m (0) = succ n+m (0) (vedi dopo). Essendo Birkhoff sound, t ~ succ n+m (0). Quindi il modello iniziale di NATi descrive precisamente i naturali intesi nel modo ovvio.

4 Ver. 0.0 Esercizio 50 (continauzione) Prova con Birkhoff di succ n (0) + succ m (0) = succ n+m (0) per ogni n, m 0 [perchè n, m italici ???] per induzione su n –base n = 0 0 + n = n ________ Assioma proprio 0 + succ m (0) = succ m (0) __________ Istanziazione –step n = p+1 succ p (0) + succ m (0) = succ p+m (0) ________________ per lipotesi induttiva …………... succ(n) + m = succ(n+m) ________________________ Assioma proprio __________________________________________________ succ(succ p (0)) + succ m (0) = succ(succ p (0)+ succ m (0) ) Istanziazione succ(succ p (0) + succ m (0)) = succ 1+p+m (0) ________________ congruenza __________________________________________________ succ(succ p (0)) + succ m (0) = succ 1+p+m (0) transitività

5 Ver. 0.0 Esercizio 51 Procediamo in modo simile allesercizio 50; ma in questo caso prima proviamo [@], e poi dato che I termini della forma succ m (0) sono sempre definiti, usando Birkhoff proviamo che ogni t termine ground è definito.

6 Ver. 0.0 Aggiunta di < spec NAT1> = extend NATi Preds _<_: nat x nat Axioms x < succ(x) x < y x < succ(y) Esercizio 53: caratterizzare il modello iniziale, se esiste. Esercizio 54: definire una specifica STRINGi, tale che il suo modello iniziale caratterizzi le stringhe di caratteri.

7 Ver. 0.0 Esercizio 53 Per tutto ciò che non riguarda il < si ci riconduce allesercizio 51 (poichè non ci sono assiomi che coinvolgono sia < sia le altre operazioni, e tutte le operazioni sono totali). Intuiamo che dagli assiomi consegue che per ogni n,m0 succ n (0) ~ < succ m (0) ses n < m. –SE m = n + p Usando Birkhoff proviamo succ n (0) ~ < succ n+p (0) [dopo] –SOLO SE Supponiamo di avere una prova per succ n (0) ~ < succ m (0). Per induzione sulla lunghezza della prova dimostriamo che n < m. Base primo assioma della specifica seguita da sua istanziazione provando che succ n (0) ~ < succ n+1 (0). OK Step La prova consiste di una prova di succ n (0) ~ < succ m (0), seguita dal lapplicazione del secondo assioma, sua istanziazione, modus ponens. Per lipotesi induttiva n < m, e quindi n < m+1.

8 Ver. 0.0 Esercizio 53 (continuazione) Prova con Birkhoff di succ n (0) ~ < succ n+p (0) per ogni n 0, p 1 per induzione su p –base p = 1 x < succ(x) ________ Assioma proprio succ n (0) < succ( succ n (0) ) __________ Istanziazione –step p = q+1 succ n (0) < succ n+q (0) ________________ per lipotesi induttiva …………... x < y x < succ(y) ________________________ Assioma proprio __________________________________________________ succ n (0) < succ n+q (0) succ n (0) < succ( succ n+q (0) ) Istanziazione __________________________________________________ succ n (0) < succ( succ n+q (0) ) modus ponens

9 Ver. 0.0 non positivi conditional Mappe basiche (1) spec MAP = extend NATi, STRINGi Sorts map Opns []: map _[_/_]: map x nat x string -> map _[_]: map x string -> nat Axioms -- [] e _[_/_] sono totali Def([]) Def(m[n/s]) -- solo lultima associazione di un naturale ad una -- stringa m[n1/s][n2/s] = m[n2/s] s1 s2 m[n1/s1][n2/s2] = m[n2/s2][n1/s1] -- lordine delle associazione per stringhe diverse non -- conta m[n/s][s] = n s1 s2 m[n1/s1][s2] = m[s2]

10 Ver. 0.0 Mappe basiche (2) Occorre definire Preds difS: string x string -- definibile con assiomi positivi conditional difS(s1,s2) m[n1/s1][n2/s2] = m[n2/s2][n1/s1] -- lordine delle associazione per stringhe diverse non -- conta difS(s1,s2) m[n1/s1][s2] = m[s2] Esercizio 55: definire difS, il predicato corrispondente alla differenza tra stringhe.

11 Ver. 0.0 Insiemi di naturali spec SET-NATi = extend NAT Sorts set-nat Opns -- costruttori {}: set-nat {_}: nat -> set-nat -- singleton _ _: set-nat x set-nat -> set-nat card: set-nat -> nat Preds isIn: nat x set-nat Axioms -- tutte le operazioni sono totali def({}) def({b}) def(s1 U s2) -- è comm, assoc, idempotente e {} è la sua identità s1 s2 = s2 s1 (s1 s2) s3 = s1 (s2 s3) s s = s {} s = s card({}) = 0 card({n} s) = succ(card(s)) Esercizio 56: trovare assioma errato, cioè che richiede una proprietà non ragionevole per gli insiemi di naturali Esercizio 57: caratterizzare il modello iniziale di SET-NATi.

12 Ver. 0.0 Esercizio 56 Lassioma errato è lultimo; infatti implicitamente richiede che tutti i naturali maggiori di 0 siano identificati con 1. Proviamolo con Birkhoff. Per semplicità diamo solo la prova di succ(succ((0)) = succ(0).

13 Ver. 0.0 Operazioni su mappe Esercizio 58: dare una specifica il cui modello iniziale corrisponde alle mappe con dominio e codominio. Esercizio 59: aggiungere anche unoperazione di restrizione ad un sottinisieme del codominio, e di combinazione di due mappe, con la seconda che override le associazioni della prima in caso di conflitto.


Scaricare ppt "SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0 Gianna Reggio"

Presentazioni simili


Annunci Google