La logica nell informatica

Documenti analoghi
L uso delle formule logiche come formalismo descrittivo

* PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE *

Logica Matematica. Dipartimento di Elettronica e Informazione Politecnico di Milano. 21 aprile 2017

Intorduzione alla teoria delle Catene di Markov

RICHIAMI SULLA RAPPRESENTAZIONE IN COMPLEMENTO A 2

Ragionamento probabilistico: rappresentazione

Specifica, progetto e verifica della correttezza di algoritmi iterativi. Ragionamenti su di un algoritmo. Il metodo delle asserzioni (Floyd)

OPERAZIONI E INSIEMI NUMERICI

Algebra Sia A un anello commutativo. Si ricorda che in un anello commutativo vale il teorema binomiale, cioè. (a + b) n = a i b n i i.

3 Partizioni dell unità 6

Matematica Computazionale(6cfu) Ottimizzazione(8cfu)

x 0 x 50 x 20 x 100 CASO 1 CASO 2 CASO 3 CASO 4 X n X n X n X n

INDICE. Scaricabile su: Derivate TEORIA. Derivata in un punto. Significato geometrico della derivata

Algoritmi basati sulla tecnica Divide et Impera

Scrivere programmi corretti

Dipartimento di Matematica per le scienze economiche e sociali Università di Bologna. Matematica aa lezione marzo 2009

{ 1, 2,..., n} Elementi di teoria dei giochi. Giovanni Di Bartolomeo Università degli Studi di Teramo

Corso di Logica I. Modulo sul Calcolo dei Sequenti. Dispensa Lezione II.

IL GRUPPO SIMMETRICO S n

La soluzione delle equazioni differenziali con il metodo di Galerkin

6.1- Sistemi punti, forze interne ed esterne

6 Prodotti scalari e prodotti Hermitiani

Intelligenza Artificiale II. Ragionamento probabilistico Rappresentazione. Marco Piastra. Intelligenza Artificiale II - AA 2007/2008

Un quadro della situazione. Lezione 7 Logica Digitale (1) Dove siamo nel corso. Organizzazione della lezione. Dove siamo. Dove stiamo andando..

Sistemi punti, forze interne ed esterne

Metodi variazionali. ed agiscono sulla FORMA DEBOLE DEL PROBLEMA

Il procedimento può essere pensato come una ricerca in un insieme ordinato, il peso incognito può essere cercato con il metodo della ricerca binaria.

Dipartimento di Matematica per le scienze economiche e sociali Università di Bologna

Metodi variazionali. ed agiscono sulla FORMA DEBOLE DEL PROBLEMA

Statistica descrittiva

Sulla teoria di Z in L = {+,<}

Analisi Class info sul corso Lezione 1 22 settembre 2014

Il logaritmo discreto in Z p Il gruppo moltiplicativo Z p delle classi resto modulo un primo p è un gruppo ciclico.

Analisi Matenatica Lezione 1 23 settembre 2013

Lezione 20 Maggio 29

Analisi Matematica Lezione 16 3 novembre 2014 Limiti di funzioni

Lezione n. 10. Legge di Raoult Legge di Henry Soluzioni ideali Deviazioni dall idealit. idealità Convenzioni per le soluzioni reali

Algoritmi di Ordinamento. Fondamenti di Informatica Prof. Ing. Salvatore Cavalieri

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Algoritmi

Stabilità dei Sistemi Dinamici. Stabilità Semplice. Stabilità Asintotica. Stabilità: concetto intuitivo che può essere formalizzato in molti modi

Modello del Gruppo d Acquisto

ANELLI E SOTTOANELLI. contrassegna gli esercizi (relativamente) più complessi.

LE FREQUENZE CUMULATE

4.6 Dualità in Programmazione Lineare

Metodi e Modelli per l Ottimizzazione Combinatoria Progetto: Metodo di soluzione basato su generazione di colonne

FUNZIONAMENTO IN REGIME ALTERNATO SINUSOIDALE

Architetture aritmetiche. Corso di Organizzazione dei Calcolatori Mariagiovanna Sami

Dinamica del corpo rigido

Appunti di Teoria dell Informazione

4. ALGORITMI GREEDY. cambia-monete scheduling a minimo il ritardo. Il problema del cambia-monete. Proprietà di una soluzione ottima

Introduzione al Machine Learning

3) Entropie condizionate, entropie congiunte ed informazione mutua

Lezione 2 Codifica della informazione

Si dice corpo rigido un oggetto ideale che mantiene la stessa forma e le stesse dimensioni qualunque sia la sollecitazione cui lo si sottopone.

LA SCOMPOSIZIONE DEI POLINOMI

Unità Didattica N 5. Impulso e quantità di moto

Lezione 3 Codifica della informazione (2)

Geometria 1 a.a. 2011/12 Esonero del 23/01/12 Soluzioni (Compito A) sì determinarla, altrimenti dimostrare che ciò è impossibile.

PROBLEMA DI SCELTA FRA DUE REGIMI DI

Statistica di Bose-Einstein

Relazione funzionale e statistica tra due variabili Modello di regressione lineare semplice Stima puntuale dei coefficienti di regressione

Equilibrio e stabilità di sistemi dinamici. Stabilità dell equilibrio di sistemi dinamici non lineari per linearizzazione

Teoria dell informazione e Meccanica Statistica

Capitolo 3 Covarianza, correlazione, bestfit lineari e non lineari

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.9)

Dipartimento di Matematica per le scienze economiche e sociali Università di Bologna

Analisi Matenatica Lezione 5 1 ottobre 2013

Elementi di strutturistica cristallina I

STATISTICA PSICOMETRICA a.a. 2004/2005 Corsi di laurea. Scienze e tecniche neuropsicologiche Modulo 3 Statistica Inferenziale

Energia e Lavoro. In pratica, si determina la dipendenza dallo spazio invece che dal tempo

Metodi di analisi R 1 =15Ω R 2 =40Ω R 3 =16Ω

Elementi di statistica

Strani spazi vettoriali

Teoria dei Giochi. Dr. Giuseppe Rose Università degli Studi della Calabria Corso di Laurea Magistrale in Economia Applicata a.a 2011/2012 Handout 4

3 CAMPIONAMENTO DI BERNOULLI E DI POISSON

PICCOLE OSCILLAZIONI ATTORNO ALLA POSIZIONE DI EQUILIBRIO

Premessa essa sulle soluzioni

Lezione 7. Numeri primi. Teorema Fondamentale dell'aritmetica.

Dipartimento di Matematica per le scienze economiche e sociali Università di Bologna. Matematica aa lezione febbraio 2009

1 Le equazioni per le variabili macroscopiche: i momenti dell equazione di Boltzmann

Ministero della Salute D.G. della programmazione sanitaria --- GLI ACC - L ANALISI DELLA VARIABILITÀ METODOLOGIA

ELEMENTI DI STATISTICA

Studio grafico-analitico di una funzioni reale in una variabile reale

Support Vector Machines. Macchine a vettori di supporto

Corso di laurea in Ingegneria Meccatronica. DINAMICI CA - 04 ModiStabilita

y. E' semplicemente la media calcolata mettendo

CAPITOLO IV CENNI SULLE MACCHINE SEQUENZIALI

Dai circuiti ai grafi

Il modello markoviano per la rappresentazione del Sistema Bonus Malus. Prof. Cerchiara Rocco Roberto. Materiale e Riferimenti

Dipartimento di Statistica Università di Bologna. Matematica Finanziaria aa lezione 16: 2 maggio 2012

DOMANDE TEORICHE 1 PARTE

Dipartimento di Statistica Università di Bologna. Matematica finanziaria aa lezione 2: 21 febbraio 2013

COMPORTAMENTO DINAMICO DI ASSI E ALBERI

6. Catene di Markov a tempo continuo (CMTC)

Dipartimento di Matematica per le scienze economiche e sociali Università di Bologna. Modelli 1 lezione novembre 2011 Media e varianza

Principi di ingegneria elettrica. Lezione 2 a

POLINOMIO MINIMO E FORMA CANONICA DI JORDAN NOTA AGGIUNTIVA PER IL CORSO DI GEOMETRIA ANALITICA E ALGEBRA LINEARE A.A DOCENTE: PAOLO LISCA

Il traffico è un gioco?

Transcript:

La logca nell nformatca La logca goca un ruolo mportante nell nformatca Logc plays a smlar role n computer scence to that played by calculus n the physcal scences and tradtonal engneerng dscplnes (M. Vard, 2007) Logca 1

Varetà d logca Esstono molt lnguagg logc Con dvers lvell d astrazone rspetto al lnguaggo naturale Esemp: Logca Proposzonale FOL Descrpton Logc Logche temporal Logca 2

Applcazon La logca è un formalsmo unversale S applca a numeros ambt: archtetture (porte logche) ngegnera del software (specfca e verfca) lnguagg d programmazone (semantca, programmazone logca) database (calcolo relazonale, Datalog) ntellgenza artfcale (dmostrazon automatche d teorem) Logca 3

Applcazon d base La logca proposzonale è usata nell nformatca per l progetto d crcut FOL (pù potente) è usata nella verfca de programm e nell ntellgenza artfcale Us all nterno d questo corso: defnzone d lnguagg specfca d propretà d programm specfca d propretà d sstem (dnamc) Logca 4

Lnguagg I lnguagg sono nsem d strnghe su un alfabeto Esempo: Il lnguaggo d strnghe su {a, b} con lo stesso numero d a e d b e tutte le a prma è nformalmente descrtto dall nseme { a n b n n 0 } Logca 5

In logca FOL può autare a descrvere un lnguaggo Gl nsem possono essere vst come abbrevazon d formule FOL Problem: Che cosa dobbamo descrvere? Come defnre le dverse part? Qual prmtve possamo assumere? Logca 6

Esempo Come descrvere l nseme { a n b n n 0 }? D fatto è una forma abbrevata d "x (x L «$n (n 0 Ù x = a n.b n )) Predcat: L,, = Funzon: concatenazone, elevamento a potenza Cos è x n? "n"x((n=0 x n = e) Ù (n>0 x n = x n-1. x)) Logca 7

Osservazon Occorrerebbe defnre tutt predcat e le funzon non elementar (=, >, +, -, *, :, concatenazone ) Per questo motvo, nel seguto, per defnre lnguagg faremo rfermento anche a logche molto pù rstrette, con una sntass specfca gà predsposta Logca 8

Logca 9 L 1 = a * b * L 1 è l lnguaggo delle strnghe su {a, b} con tutte le a all nzo Pù precsamente, una strnga è n L 1 se è la strnga vuota, oppure è composta da un prefsso a e da un suffsso y (che appartene sempre a L 1 ) è composta da un prefsso y (che appartene sempre a L 1 ) e da un suffsso b Questo s può esprmere come " x(x Î L1 «(x = ε) Ú $ y (x = ay Ù yî L1) Ú $ y (x = yb Ù yî L1))

Logca 10 L 2 = a * b * c * (1) L 2 è l lnguaggo delle strnghe su {a, b, c} con tutte le a all nzo, po tutte le b e alla fne tutte le c L 2 può essere vsto come a * b *. b * c * a * b * è L 1 b * c * ha la stessa struttura d L 1 (chamamolo L 3 ) Una strnga appartene a L 2 se È n L 1 oppure È n L 3 oppure È composta da un prefsso a e da un suffsso y (che appartene a L 2 o a L 3 ) oppure È composta da un prefsso y (che appartene a L 1 o a L 2 ) e da un suffsso c

Logca 11 L 2 = a * b * c * (2) In FOL: " x(x Î L 2 «(x Î L 1 ) Ú (x Î L $ y ((x = ay Ù 3 ) Ú (yî L 2 Ú yî L 3 )) Ú (x = yc Ù (yî L 2 Ú yî L 1 )))) x è n L 1 x è n L 3 S può scomporre nel prefsso a e nel suffsso y (che appartene a L2 o a L3) S può scomporre nel prefsso y (che appartene a L1 o a L2) e l suffsso c c servono tutt?

Note e consderazon agguntve Quando l ordne tra le lettere n un lnguaggo è mportante, la formula FOL defnsce l lnguaggo decomponendolo Defnzone rcorsva Quando occorre contare le lettere, s può defnre una funzone agguntva Logca 12

Esempo L 4 ={x {a,b}* numero d a uguale a numero d b } #(x, a) è d aretà 2 e conta l numero d occorrenze del smbolo a nella strnga x S può defnre formalmente come: In FOL x y((x = ε #(x,a) = 0) (x = a.y #(x,a) = #(y,a) +1) (x = b.y #(x,a) = #(y,a))) x y((x = ε #(x,b) = 0) (x = b.y #(x,b) = #(y,b) +1) (x = a.y #(x,b) = #(y,b))) La defnzone dpende dall alfabeto " x(x Î L4 «#(x,a) = #(x, b)) Logca 13

Logca 14 MFO: Logca monadca del prm ordne Vedamo un frammento d logca del prm ordne che c permette d descrvere parole su un alfabeto I Sntass φ = a(x) x < y φ φ φ x(φ) laddove a I, coè ntroducamo un predcato unaro per ogn smbolo dell'alfabeto Interpretazone: < corrsponde alla solta relazone d mnore l domno delle varabl è N

Alcune classche abbrevazon Ovvamente: φ 1 φ 2 ( φ 1 φ 2 ) φ 1 φ 2 φ 1 φ 2 x(φ) x( φ) x = y (x < y) (y < x) x y (y < x) Ma possamo anche defnre: la costante 0: x = 0 y( (y < x)) l predcato per l successore succ(x,y): succ(x,y) x < y z(x < z z < y) le costant 1, 2, 3, ecc. come successore d 0, 1, 2, ecc. Logca 15

Interpretazone come parola sull alfabeto I Data una parola w I +, ed un smbolo a I: a(x) è vero se, e solo se, l'x-esmo smbolo d w è a (l prmo smbolo d w ha ndce 0) Formula che è vera su tutte e sole le parole l cu prmo smbolo esste ed è a: x(x = 0 a(x)) Formula che è vera su tutte le parole n cu ogn a è seguta da una b x(a(x) y (succ(x,y) b(y))) Logca 16

Altr esemp d abbrevazon e formule Usamo le seguent abbrevazon: y = x + 1 per dre succ(x,y) pù n generale, se k è una costante > 1, y = x + k per dre z 1... z k-1 (y = z k-1 +1... z 1 = x+1) y = x 1 per dre succ(y,x) (coè x = y + 1) y = x k per dre x = y + k last(x) per dre y(y > x) Parole (non vuote) n cu l'ultmo smbolo è a: x (last(x) a(x)) Parole (d almeno 3 smbol) n cu l terzultmo smbolo è a: x (a(x) y (y = x+2 last(y))) Oppure (abbrevate): x (a(x) last(x+2)), oppure y (a(y-2) last(y)) Logca 17

Logca 18 Semantca Sano w Î I + e V 1 l nseme delle varabl; un assegnamento è una funzone v 1 : V 1 [0.. w -1] tale che w, v 1 a(x) sse w = uav e u = v 1 (x) w, v 1 x < y sse v 1 (x) < v 1 (y) w, v 1 φ sse non w, v 1 φ w, v 1 φ 1 φ 2 sse w, v 1 φ 1 e w, v 1 φ 2 w, v 1 x(φ) sse w, v 1 φ per ogn v 1 con v 1 (y) = v 1 (y), y x Lnguaggo d una formula φ: L(φ) = { w Î I + $v 1 : w, v 1 φ }

Logca 19 Propretà d MFO (1/2) I lnguagg esprmbl medante MFO sono chus rspetto a unone, ntersezone, complemento basta fare "or", "and", "not" d formule

Logca 20 Propretà d MFO (2/2) In MFO non s può esprmere l lnguaggo L p fatto d tutte e sole le parole d lunghezza par con I = {a} MFO è strettamente meno potente degl FSA data una formula MFO s può sempre costrure un FSA equvalente non vedamo la costruzone L p può faclmente essere rconoscuto medante un FSA I lnguagg defnt da MFO non sono chus rspetto alla * d Kleene: la formula MFO a(0) a(1) last(1) defnsce l lnguaggo L p2 fatto della sola parola {aa} d lunghezza 2. Abbamo che L p = L p2 * MFO defnsce cosddett lnguagg star-free, coè defnbl tramte unone, ntersezone, complemento e concatenazone d lnguagg fnt

Logca 21 MSO: Logca monadca del secondo ordne Per ottenere lo stesso potere espressvo degl FSA "basta" permettere d quantfcare su predcat monadc qund: logca del secondo ordne (n pratca vuol dre poter quantfcare anche su nsem d poszon) Ammettamo formule del tpo X(φ), dove X è una varable l cu domno è l'nseme de predcat monadc per convenzone usamo le lettere mauscole per ndcare varabl avent come domno l'nseme de predcat monadc, e lettere mnuscole per ndcare varabl su numer natural

Logca 22 Semantca ed esempo L assegnamento delle varabl del II ordne (nseme V 2 ) è una funzone v 2 : V 2 Ã([0.. w -1]) w, v 1, v 2 X(x) sse v 1 (x) Î v 2 (X) w, v 1, v 2 X(φ) sse w, v 1, v' 2 φ per qualche v' 2 con v' 2 (Y) = v 2 (Y), Y X Possamo dunque scrvere la formula che descrve l lnguaggo L p P( x( P(0) ( P(x) P(x+1)) a(x) ( last(x) P(x) ) )) NB: l ndce dell ultmo carattere d una strnga d lunghezza par è dspar! P è un nseme d poszon dspar

Logca 23 Da FSA a MSO In generale, graze alle quantfcazon del second'ordne è possble trovare, per ogn FSA, una formula MSO equvalente Esempo c b q 0 q 1 c a q 2 a a Q 0,Q 1,Q 2 ( z( (Q 0 (z) Q 1 (z)) (Q 0 (z) Q 2 (z)) (Q 1 (z) Q 2 (z))) Q 0 (0) x ( ( last(x) ( (last(x) Q 0 (x) c(x) Q 0 (x+1) Q 0 (x) b(x) Q 1 (x+1) Q 0 (x) a(x) Q 2 (x+1) Q 1 (x) a(x) Q 2 (x+1) Q 2 (x) c(x) Q 0 (x+1) Q 2 (x) a(x) Q 2 (x+1)) Q 0 (x) a(x) Q 2 (x) a(x) Q 1 (x) a(x))))

Da MSO a FSA Data una formula MSO φ, è possble costrure un FSA che accetta esattamente l lnguaggo L defnto da φ (teorema d Büch-Elgot- Trakhtenbrot) la dmostrazone dell'esstenza è costruttva (mostra come ottenere un FSA da una formula MSO), ma non la vedamo per semplctà Qund la classe de lnguagg defnbl da formule MSO concde con lnguagg regolar Logca 24

Logca 25 Il bersaglo Lnguagg star-free Lnguagg regolar Lnguagg non contestual determnstc Lnguagg non contestual Lnguagg contestual Lnguagg rcorsvamente enumerabl

Precondzon e postcondzon Quando s programma una funzone è mportante defnre precsamente che cosa fa, senza necessaramente descrvere come lo fa Questo è lo scopo d precondzon e postcondzon La precondzone ndca cosa deve valere prma che la funzone sa nvocata La postcondzone ndca cosa deve valere dopo che la funzona ha fnto la propra esecuzone Logca 26

Logca 27 Struttura generale (notazone d Hoare) {Precondzone: Pre} Programma: P {Postcondzone: Post} La precondzone è verfcata prma dell esecuzone d P, mentre la postcondzone è verfcata dopo P deve essere tale per cu, se Pre vale prma dell esecuzone, allora Post vale dopo l esecuzone

Come defnrle? Le precondzon e postcondzon possono essere defnte n mod dvers Lnguaggo naturale Lnguagg per le asserzon Lnguagg ad-hoc FOL può essere usata per questo scopo Logca 28

Algortmo d rcerca (1) Sa P un programma che mplementa la rcerca d un elemento x n un array ordnato d n element Precondzone: l array è ordnato Postcondzone: la varable logca found (un flag) dev essere vera se e solo se l elemento x esste nell array a Nota: P non mplementa necessaramente un algortmo d rcerca bnara Ma la precondzone è necessara n quel caso Logca 29

Algortmo d rcerca (2) La precondzone può essere formalzzata così: {" (1 n -1 a[] a[ + 1])} La postcondzone è Qund la struttura complessva è {found «$ (1 n Ù a[] = x)} {" (1 P n -1 {found «$ (1 a[] a[ + 1])} n Ù a[] = x)} Notare che gl element d un array sono ndcat, come d consueto, con parentes quadre Logca 30

Ordnamento (1) Sa ORD un programma che ordna un array a d n element senza rpetzon Precondzone: l array non contene rpetzon Postcondzone: l array ottenuto è ordnato (se un elemento x precede un elemento y nell array, allora x<y) Formalmente: { $, j(1 n Ù1 j n Ù ¹ j Ù a[ ] = a[ j])} ORD {" (1 n -1 a[ ] a[ + 1])} Logca 31

Ordnamento (2) Questa specfca è adeguata? Consderamo l esempo seguente: a prma dell esecuzone d ORD è [7 6 2 4 22] a dopo l esecuzone d ORD è [2 6 10 10 22] Soddsfa la postcondzone! La postcondzone deve asserre che tutt e sol gl element nell array da ordnare sono contenut nell array ordnato Logca 32

Logca 33 Ordnamento (3) Usamo un array b (non usato n ORD) per rferrc all array a prma dell esecuzone Occorre aggungere alla precondzone che b è esattamente come a La soluzone dventa ])))} [ ] [ ( ) ((1 (1 ]))) [ ] [ ( ) ((1 (1 1]) [ ] [ (1 { ])} [ ] [ (1 ]) [ ] [ 1 (1, { j b a n n j j j b a n j j n a a n ORD b a n j a a j n j n j = Ù $ " Ù = Ù $ " Ù + < " = " Ù = Ù ¹ Ù Ù $

Note Una specfca deve essere consderata come un contratto Deve contenere tutte le nformazon Senza assunzon a pror Quando qualche condzone è elmnata dalla precondzone, la specfca dventa nsoddsfacente Logca 34

Cos è una specfca? Una specfca formale è una descrzone matematca d un sstema Descrve che cosa deve fare l sstema Non (necessaramente) come deve farlo Esstono molt lnguagg d specfca dvers Logca 35

Logca 36 Esempo Comportamento d una lampada: Se premo l tasto, la luce s accende entro Δ untà d tempo Servono de predcat opportun: P_B(t): tasto premuto al tempo t L_On(t): luce accesa al tempo t Formula FOL " t(p_b(t) $ t1((t t1 t + Δ) Ù L_On(t1))) È corretta?

Logca 37 Note Una specfca può essere corretta ma non realstca Occorre fornre tutt vncol necessar Le formule descrvono un nseme d comportament, ossa quell che le soddsfano t(pb(t) t 1 ((t t 1 t + Δ) L_On(t 1 ))) La luce può essere accesa anche se nessuno preme l tasto

Logca 38 Nuova specfca della lampada (1) Schema d comportamento L_On L_Off L_Off P_B(t) Se premo l tasto la luce resta accesa per k untà d tempo e po s spegne L_Off(t): la luce è spenta ( t(l_on(t) L_Off(t))) t+k

Logca 39 Nuova specfca della lampada (2) Formalmente " t(p_b(t) " t 1 " t ((t 2 t 1 < t ((t + k + k) t 2 ) L_On(t L_Off(t 2 1 )) )) Ù Che succede se s preme l tasto quando la luce è accesa? La luce può essere accesa senza premere l tasto? E se l tasto è premuto due volte?

Logca 40 Specfca corretta (?) della lampada P_B(t) L_On L_Off L_Off t+k )) ( _ )) ( _ ) (( ) ( _ (, )) ( _ )) ( _ ) (( )) ( _ ) ( _ (( 4 5 4 5 3 5 3 4 3 1 1 1 t Off L t B P t t t t t Off L t t k t Off L t On L k t t t t t Off L t B P t Ù " " Ù + Ù + < " Ù "

Logca 41 Problem nella specfca d sstem È un problema noto n AI Il cosddetto frame problem: Come esprmere un domno dnamco n logca senza specfcare esplctamente le condzon che non sono modfcate da un azone Anche stuazon estremamente semplc possono rchedere formalzzazon complesse Molt sstem formal tengono conto del problema: Fluent calculus, event calculus, stuaton calculus, Non ce ne occupamo n questo corso

Dalla specfca alla prova: cenn Dopo aver specfcato requst d un algortmo (o d un sstema), occorre verfcare la correttezza del medesmo Se ho a dsposzone un modello matematco (ad esempo un assomatzzazone) dell mplementazone costruta, l lnea d prncpo posso ottenere la prova d correttezza come una dmostrazone d teorema Logca 42