140 likes | 285 Views
Conseguenza semantica. Quando dalla soddisfazione di un insieme di formule consegue la soddisfazione di un’altra formula Siano G L S (X) e j L S (X) ,
E N D
Conseguenza semantica • Quando dalla soddisfazione di un insieme di formule consegue la soddisfazione di un’altra formula • Siano GLS(X) e j LS(X) , • G|= j(jsegue daG) sesper ogni S-algebra A e per ogni valutazione v di X in A(A|=Vx per ogni x G) implica A |=Vj • Esercizio 23:è equivalente definire la conseguenza semantica come “ses(per ogni S-algebra A A|= x per ogni x G) implica (per ogni S-algebra A A |= j)”
Sistemi deduttivi • Un sistema deduttivo è una relazione fra insiemi di formule G (gli assiomi assunti veri) e formule j (le formule dedotte a partire dagli assiomi) indicato G|- j • Un sistema deduttivo per la nostra logica è sound (corretto) se G|- j implica G|= j. • Un sistema deduttivo è completo rispetto ad una classe di formule F se G|= j implica G|- j per ogni j F • Perché abbia un’utilità pratica un sistema deduttivo deve essere: • Sound (non vogliamo dedurre falsità) • Completo rispetto ad una classe ragionevolmente ampia di formule • Descritto in modo effettivo, cioè in modo da poter essere usato come mezzo di calcolo • Di solito un sistema deduttivo si presenta mediante un insieme di regole di inferenza
Un sistema deduttivo per la nostra logica • stile deduzione naturale • non considera i combinatori derivati • Esercizio 23 bis: trovarfe un insieme di combinatori minimali per la nostra logica • sound e completo se consideriamo algebre con carriers non vuoti • preliminari • sostizuzione (di variabili con termini) : X TS(Y) • applicare una sostituzione t TS(X), t[] TS(Y) j LS(X), j[] LS(Y) • potrebbe essere indefinito, nei casi in cui una variabile libera diventi legata (,) • Esercizio 24: definire t[] e j[]indicando quando quest’ultima non è definita.
_______ F F F |- F F1|- FF2|- G _____________ F1 F2|- F G F |- F G F |- F G _______ _______ F |- G F |- F F1 {F } |- GF2 {F false} |- G _____________________________ F1 F2|- G Il sistema |- (1) • Assumption • -introduction • -left elimination false formula atomica sempre falsa • -rigt elimination • Tertium non datur
F |- false _________ F |- F F1|- F1 … Fn GiF2|- G1 … Gk H ___________________________________________ F1 F2|- G1… Gi-1 F1… Fn Gi+1… Gk H F {F1, …, Fn} |- G __________________ F |- F1 … Fn G F |- x . F _________ F |- F F |- F _________ se x non occorre libero in F F |- x . F Il sistema |- (2) • Absurdity • Cut • -introduction • -elimination • -introduction
_________ per x X F |- x =e x F |- F ____________________ q sostituzione, F[q] definito F |- (x in Fx =eq(x))F[q] F |- p(t1,…, tn) F |- Def(t) F |- F ______________ ___________ ________________________ q sostituzione, F[q] e F[q]definiti t1 sottotermine di t 1 ≤ I ≤ n F[q]|- (x in FDef(q(x)))F[q] F |- Def(t1) F |- Def(ti) Il sistema |- (3) • Reflexivity • Congruence • Substitution • Function strictness • Predicate strictness
_________ per t TS(X) F |- t = t F |- Def(t1) F |- t1 = t2 F |- F ___________________ ____________________ F |- t1 = e t2 q sostituzione, F[q] definito F |- t1 =e t2 __________ F |- (x in Fx =q(x))F[q] F |- t1 = t2 F |- Def(t1) falseF |- Def(t2) false ________________________________ F |- t1 = t2 Estensione per uguaglianza forte regole derivate • Reflexivity • Equality 1 • Equality 2 • Equality 3 • Congruence
Notare • il sistema è importante per aiutarvi a ragionare voi sulle formule • niente esercizi fare una prova completa • esistono tools per aiutare a fare/automatizzare le prove
Applicazione/esempio grande • Madre di tutti gli esercizi/esempi • la più usata specifica nelle applicazioni vere • dare la specifica della struttura dati mappe finite, per semplicità da stringhe di caratteri in naturali • si richiedono operazioni per rappresentare tutti i dati (caratteri, stringhe, naturali, mappe) costruttori • operazioni sulle mappe: • mappa vuota (nessuna associazione) • aggiungere/eliminare/modificare una associazione • trovare il numero associato ad una stringa • dominio/codominio di una mappa • controllare se una mappa è vuota/è una funzione
Naturali • Sort nat • Opn 0: nat • succ: nat -> nat • Axiom • D(0) • D(succ(x)) • Solo modelli term-genrated • Esercizio 25: aggiungere le 5 operazioni (+.-.X,mod, div) • Esercizio 26: aggiungere < e ≤.
< • _<_: nat x nat • 0< succ(x) [stessa cosa x. 0< succ(x) ] • Derivata dalle altre due di sotto • x < succ(x) • x < y x < succ(y)
Stringhe di caratteri • Sort char, string • Opns • L: string -- stringa vuota • _:_ :char x string -> string • --aggiunta elemento in testa • `A’,….,`Z’ char • Preds