SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0

13
SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0 Gianna Reggio [email protected]

description

SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0. Gianna Reggio [email protected]. 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) - PowerPoint PPT Presentation

Transcript of SPECIFICA INIZIALE DELLE MAPPE FINITE v. 0.0

Page 1: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

SPECIFICA INIZIALE DELLE MAPPE FINITE

v. 0.0Gianna Reggio

[email protected]

Page 2: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Naturali “iniziale”spec NATi = Sorts natOpns 0: nat succ: nat -> nat

_+_: nat x nat -> natAxioms

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 l’assioma **, cambia il modello iniziale.

• Esercizio 52: estendere NATi con le altre 4 operazioni(-,*,mod,div).

Page 3: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Esercizio 50• Il modello iniziale esiste poichè la specifica è positiva condizionale.• Usiamo la caratterizzazione vista a lezione I(NATi) = TSig(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 n≥0 t.c. t ~ succn(0). Proviamo ciò per induzione sulla struttura di t.– Base t = 0 Ovvio.– Step 2 casi

• t = succ(t1) Per l’ipotesi induttiva t1 ~ succn(0); pertanto t ~ succ(succn(0))= succn+1(0) (~ è una congruenza).

• t = t1 + t2 Per l’ipotesi induttiva t1 ~ succn(0) e t2 ~ succm(0). Usando Birkhoff possiamo provare che succn(0) + succm(0) = succn+m(0) (vedi dopo). Essendo Birkhoff sound, t ~ succn+m(0).

• Quindi il modello iniziale di NATi descrive precisamente i naturali intesi nel modo ovvio.

Page 4: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Esercizio 50 (continauzione)• Prova con Birkhoff di

succn(0) + succm(0) = succn+m(0) per ogni n, m ≥ 0 [perchè n, m italici ???]

• per induzione su n– base n = 0

0 + n = n________Assioma proprio

0 + succm(0) = succm(0)__________Istanziazione

– step n = p+1

succp(0) + succm(0) = succp+m(0)

________________per l’ipotesi induttiva…………...

succ(n) + m = succ(n+m)________________________Assioma proprio__________________________________________________

succ(succp(0)) + succm(0) = succ(succp(0)+ succm(0) )Istanziazione

succ(succp(0) + succm(0)) = succ1+p+m(0)

________________congruenza

__________________________________________________

succ(succp(0)) + succm(0) = succ1+p+m(0)transitività

Page 5: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Esercizio 51• Procediamo in modo simile all’esercizio 50;

ma in questo caso prima proviamo [@], e poi dato che I termini della forma succm(0) sono sempre definiti, usando Birkhoff proviamo che ogni t termine ground è definito.

Page 6: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Aggiunta di <spec NAT1> = extend NATiPreds _<_: nat x natAxioms

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.

Page 7: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Esercizio 53• Per tutto ciò che non riguarda il < si ci riconduce all’esercizio 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,m≥0 succn(0) ~< succm(0) ses n < m. – SE m = n + p Usando Birkhoff proviamo succn(0) ~< succn+p(0)

[dopo]– SOLO SE Supponiamo di avere una prova per

succn(0) ~< succm(0). Per induzione sulla lunghezza della prova dimostriamo che n < m.

• Base primo assioma della specifica seguita da sua istanziazione provando che succn(0) ~< succn+1(0). OK

• Step La prova consiste di una prova di succn(0) ~< succm(0), seguita dal l’applicazione del secondo assioma, sua istanziazione, modus ponens.Per l’ipotesi induttiva n < m, e quindi n < m+1.

Page 8: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Esercizio 53 (continuazione)• Prova con Birkhoff di

succn(0) ~< succn+p(0) per ogni n ≥ 0, p ≥ 1 • per induzione su p

– base p = 1

x < succ(x)________Assioma proprio

succn(0) < succ(succn(0))__________Istanziazione

– step p = q+1

succn(0) < succn+q(0)

________________per l’ipotesi induttiva…………...

x < y x < succ(y)________________________Assioma proprio__________________________________________________

succn(0) < succn+q(0) succn(0) < succ(succn+q(0))Istanziazione

__________________________________________________

succn(0) < succ(succn+q(0)) modus ponens

Page 9: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0non positivi conditional

Mappe basiche (1)spec MAP = extend NATi, STRINGiSorts mapOpns

[]: map _[_/_]: map x nat x string -> map

_[_]: map x string -> natAxioms

-- [] e _[_/_] sono totaliDef([]) Def(m[n/s])-- solo l’ultima associazione di un naturale ad una-- stringam[n1/s][n2/s] = m[n2/s]s1 ≠ s2 m[n1/s1][n2/s2] = m[n2/s2][n1/s1]-- l’ordine delle associazione per stringhe diverse non-- contam[n/s][s] = ns1 ≠ s2 m[n1/s1][s2] = m[s2]

Page 10: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Mappe basiche (2)Occorre definire Preds difS: string x string-- definibile con assiomi positivi conditionaldifS(s1,s2) m[n1/s1][n2/s2] = m[n2/s2][n1/s1]-- l’ordine delle associazione per stringhe diverse non-- contadifS(s1,s2) m[n1/s1][s2] = m[s2]

Esercizio 55: definire difS, il predicato corrispondente alla differenza tra stringhe.

Page 11: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Insiemi di naturalispec SET-NATi = extend NATSorts set-natOpns-- costruttori

{}: set-nat{_}: nat -> set-nat -- singleton__: set-nat x set-nat -> set-nat

card: set-nat -> nat Preds isIn: nat x set-natAxioms-- tutte le operazioni sono totalidef({}) 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 = scard({}) = 0card({n} s) = succ(card(s))Esercizio 56: trovare assioma errato, cioè che richiede una

proprietà non ragionevole per gli insiemi di naturaliEsercizio 57: caratterizzare il modello iniziale di

SET-NATi.

Page 12: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Esercizio 56• L’assioma errato è l’ultimo; 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).

Page 13: SPECIFICA INIZIALE DELLE MAPPE FINITE  v. 0.0

Ver. 0.0

Operazioni su mappeEsercizio 58: dare una specifica il cui modello iniziale corrisponde

alle mappe con dominio e codominio.

Esercizio 59: aggiungere anche un’operazione 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.