Estratto del documento

Logica per la programmazione

Indice

  1. Regole di inferenza .......................................... pag. 1
  2. Logica del primo ordine .................................... pag. 3
  3. Leggi su quantificatori non standard ............... pag. 6
  4. Sintassi dei predicati ....................................... pag. 8
  5. Triple di Hoare ................................................ pag. 10

Regole di inferenza

1.1 Commutatività
p ∨ q ≡ q ∨ p
p ∧ q ≡ q ∧ p

1.2 Associatività
p ∨ (q ∨ r) ≡ (p ∨ q) ∨ r
p ∧ (q ∧ r) ≡ (p ∧ q) ∧ r

1.3 Idempotenza
p ∨ p ≡ p
p ∧ p ≡ p

1.4 Uniti
p ∧ ⊤ ≡ p
p ∨ ⊥ ≡ p

1.5 Zero
p ∧ ⊥ ≡ ⊥
p ∨ ⊤ ≡ ⊤

1.6 Distributività
p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r)

1.7 Assorbimento
p ∧ (p ∨ q) ≡ p
p ∨ (p ∧ q) ≡ p

1.8 Doppia negazione
¬(¬p) ≡ p

1.9 Terzo escluso
p ∨ ¬p ≡ ⊤

1.10 Contraddizione
p ∧ ¬p ≡ ⊥

1.11 De Morgan
¬(p ∨ q) ≡ ¬p ∧ ¬q
¬(p ∧ q) ≡ ¬p ∨ ¬q

1.12 Tautologia
p ≡ ⊤

1.13 Completo
p ∨ (¬p ∧ q) ≡ p ∨ q
p ∧ (¬p ∨ q) ≡ p ∧ q

1.14 Eliminazione ≡
(p ⇒ q) ≡ ¬p ∨ q

1.15 Eliminazione ≡≡
(p ≡ q) ≡ (p ⇒ q) ∧ (q ⇒ p)

1.16 Modus Ponens
(p ∧ (p ⇒ q)) ⇒ q

1.17 Semp. ⇒
p ∧ q ⇒ p

1.18 Riduzione ad assurdo
(p ⇒ q) ⇒ ¬p

1.19 Contraposizione
(p ⇒ q) ≡ (¬q ⇒ ¬p)

1.20 Scambio
p ∧ q ⇒ c ≡ p ∨ ¬r ⇒ ¬q

1.21 Transitività ⇒
((p ⇒ q) ∧ (q ⇒ r)) ⇒ (p ⇒ r)

1.22 Eliminazione ≡≡ bis
(p ≡ q) ≡ (p ∧ q) ∨ (¬p ∧ ¬q)

1.23 Taut. ∨
p ≡ p ∨ q

1.24 Tollendo Ponens
(p ∨ q) ∧ ¬p ⇒ q

1.25 Tollendo Tollens
((p ⇒ q) ∧ ¬q) ⇒ ¬p

1.26 Sempl. Destra
(p ⇒ q) ∧ (q ⇒ r) ⇒ (p ⇒ q ∧ r)
(p ⇒ q) ∨ (q ⇒ r) ⇒ (p ⇒ q ∨ r)

1.27 Sempl. Sinistra
(p ⇒ q) ∨ (q ⇒ r) ⇒ (p ∧ q) ⇒ r
(p ⇒ q) ∧ (q ⇒ r) ⇒ (p ∨ q) ⇒ r

1.28 Sempl. Sinistra
(p ⇒ q) ∧ (q ⇒ r) ⇒ (p ∧ q) ⇒ r

1.31 Sempl.
(p ⇒ q) ∧ ((r ⇒ s) ⇒ (p ∧ r) ⇒ s) ⇔ (p ⇒ q) ∧ (p ∧ r ⇒ s ⇒ p ∧ s)

1.30 Risoluzione
(p ∨ q) ∧ (p ⇒ q ∨ r) ⇔ (q ∨ r)

1.32 Silogismo disgiuntivo
(p ∨ q) ∧ ((p ⇒ r) ∧ (q ⇒ s)) ⇔ (r ∨ s)

1.33 Assurdo
(p ⇒ ⊥) ⇔ ¬p

1.33 Diversione
((q ⇒ p) ∧ (q ⇒ s? p)) ⇔ p

1.34 E: Uni ⇒ V
(∀x, P) ⇔ P(x)

1.35 Intro: ∃
P(x) ∧ x ⇔ ∃x, p

1.36 De Morgan
¬(x ∈ P) ⇔ ∀x, ¬P
¬(∀x, p) ⇔ ∃x, ¬p

1.37 Annidamento
(∀x, ∀y, P) ⇔ ∀y, (∀x, P))
(∃x, (∃y, p)) ⇔ (∃y, (∃x, P))

1.38 ∀∀ A e ∃∀ V
(∀x, P(x, P) ⇔ (∀x, ∀x, Q) ⇔ (∃x, P ∨ Q) ⇔ (∀x, x, Q ∨ x)

1.39 Costante
(∀x, P) ⇔ P (x ∴ P) ⇔ Px

1.40 ∃ R e ∀: V
(∃x P ∧ R) ⇔ (x ∶ P) ∧ (∃x, Q)(x ∶ P) ∨ (∀x Q) ⇔ (∀x, P ∨ Q)

1.41 Leibniz
x = y ⇔ (p = p (p x, y)(x = y ∧ p)⇔(x = y ∧ p(x)(x ≠ y ∧ P) ⇔ P(y)

1.42 Singoletto
(∀x x ≠ ∃x, x) ⇔ ((∃x, x ≠ A P) ⇔ P) ⇔

1.43 Generalizzazione
(∀P(x))[(P(x) con q nuovo costante)

1.44 I;: formalizzazione
(∀P(P(x) con q nuovo costante)

1.45 Intervallo
(x ∈ [a, b]): ∧ (∀x, x K, Q) ∧ ∧ ∀xi x ∈ [a, l) x x K, Q) a, b) (x ≠ c) y a, b) x[(∀x, x ∈ [a, b]): ∧ (∀x, x Q)) ∀ K, Q) Q(∃x, ∈ [a, l) x x a) ∧ ∀

1.46 Dominio
(∀x, P ∨ Q) > = R) ⇔ (∀x, P ⇒ R) ∧ (∀x, Q ⇒ R)(∃x, P ∨ Q) ∧ R) ⇔ (∃x ∧ P ∧ R) ∨ (∃x ∧ Q ∧ R)

Logica del primo ordine

Sintassi

Perché una frase sia corretta occorre che sia ben definita la sua sintassi, cioè il suo linguaggio. Il linguaggio (L) è basato su di un alfabeto.

Alfabeto

L'alfabeto di un linguaggio è composto da:

  • Costanti (c)
  • Funzioni (F)
  • Variabili (V)
  • Predicati (P)
  • Connettivi logici (¬, ∧, ∨, ⇒, =)
  • Quantificatori (∀, ∃)
  • Parentesi ({}, {}, {}, {})

Termini

I termini di un linguaggio sono sequenze di simboli appartenenti al dominio o soggetti dei predicati. C e Y sono due possibili termini con possibili specifici elementi degli insiemi E e F.

Formule

Le formule sono degli aspetti connessi con gli elementi del linguaggio degli assiomi nel linguaggio usiamo. E.g. (∀x ((P ∧ R) ∨ (Q ∨ P) ⇒ (∀z . S))) è una formula.

Semantica

La semantica di una formula stabilisce il suo valore di verità. Nei casi di formule chiuse (non con variabili quantificati) è definita la verità (la verità è determinata con regole di interpretazione che definiscono il significato dei simboli che compongono.

Interpretazioni

Le interpretazioni devono stabilire:

  • Domini
  • Elementi di c
  • Elementi di V
  • Elementi di P
  • Definizione del significato dei vari simboli

Assegnare: D = insieme domini E = {costanti} F = {schede} P = {predicati} f (costi, constar) = elemento di valore costante I = (D, α2) AV (costante) = elemento di valore costante A (macrodeclarcy) (χ) = J, se φ, in valore affermato

Assegnazione

Un assegnamento è una funzione φ che assegna le convocato del dominio a una variabile Esempio: e1a(Y) = 5 |θ se x=x|θ (Y) 0 cercare Se la variabile ν assume valore k dei laboratoristi se φ battersde cose restituita variabile Esempio:

Semantica dei connettivi

¬φ = ¬PIα (φ) = Iα (P) dove ♯ = F in e per o ♯) φ = P Λ QIα (φ) = ♯, se Iα (P)=♯, se Iα(Q)=♯, affermati φ = P V QIα (φ) = ♯, se Iα (P) = ♯ Iα (Q) = ♯ altrimenti φ = P ⇒ QIα (φ) = se Iα (P)=♯ e Iα (Q)=♯, Iα(P) = ♯ altrimenti φ = P ⇔ QIα (φ) = ♯, se Iα (P) = ♯, se Iα (Q) = ♯, eppure se I (P) = ♯ e Iα (φ) = ♯. Affermati

Semantica dei quantificatori

φ = (χΑ, β)Iα (φ) = ♯, se Iα (c1)[χ(P)] = ♯ per qualunque χ D, l♤ (φ)=♯ affermati φ = (∃χ₁, P)Iα1 (φ) = ♯, se c'è elemento x₁ D per cui Iα[χ(P)]= ♯

Dimostrazioni

Per sostituzione per ≡

(Q ≡ R) ⊆ Γ ⊢ P ≡ P

Sostituzione per ≡ ⇒

(Q ≡ R) ⊆ Q occorre positivamente in P Γ ⊢ P ≡ P

Teorema di deduzione ⇒

Γ ⊢ P → Q ≡ Γ, P ⊢ Q

Leggi su quantificatori non standard

3.1 minu ⇒ (∀x.P ⇒ Q) ⇒ (minx.P.E) > (minx.Q.E)

3.2 max ⇒ (∀x.P ⇒ Q) ⇒ (maxx.P.E) ≤ (maxx.Q.E)

3.3 m u == (∀x.P ≡ Q) = (mx.P.E) = (ux.Q.E)

3.4 # ⇒ (∀x.P ≡ Q) ⇒ (# x:P(R) = (# x:Q(R)

3.5 # ⇒ (∀x.P ⇒ Q) ⇒ (#x:P(R) < (#x:Q(R))(∀x.R ≥ S) ⇒ (#x:P(R) ⋐ (∀x:P(S))

3.6 Σ == (∀x.P ≡ Q) ⇒ (Σx:P.E) ≡ (Σx:Q.E)

3.7 Σ = ⇒ (∀x.E ≥ 0 ∧ P ⇒ Q) ⇒ (Σx:P.E) ≤ (Σx:Q.E)(∀x.E < 0 ∧ P ≡ Q) ⇒ (Σx:P.E) ≥ (Σx:Q.E)

3.8 Σ Π + (Σx:P(E + F) = (Σx:P.E) + (Σx:P.F)

3.9 con:, max, min(con x.P v Q.E) = (conx.P.E) max (con x.P.F)(min x.P v Q.E) = (minx.P.E) min (min x.P.F)

3.10 dominio (Σ x : P v Q.R.E) = (Σ x . P.E) + (Σ x . Q.T) - (Σx PΛ Q.T)#x:P v Q(R = )#x:P(R) + (#x:Q.R) - #x:P Λ Q.R)(ux:P v Q.E) = (ux:P.E) u (ux.Q.E)

3.11 costante (Σx:P.C) = c * (Σx.P.T) se x non è libero in c se x non è libero in c ∧ P ≠ ∅

3.12 Distributivo {Σ x: P . d + E} = d (Σ x: P . E) se x una variabile libera in c (u x: P . c + E) = c (u x: P . E) se x una variabile libera in c e P =/= ∅

3.13 Singoletto {Σ x: x = y,E} = Ey# {x: x = y|R}y = 1 se Ry0 se -Ry(u x: x = y,E) = Ey

3.14 Vuoto {Σ x: P . E} = 0# x . P (x) = 0(u x: P . E) = +∞(u x: P . E) = +∞ se P = ∅

3.15 Intervallo {Σ x: x ∈ (a,b) ∧ x /∈ K ( . P . E) + Ek se pk{x: x ∈ (a,b) ∧ x ∉ K ∧ P . E} se pk# {x ∈ (a,b) |P}s = # {x ∈ (a,b)/ x /∉ K ∧ P}t# (w x: x ∈ [a,b] ∧ x /∉ K ∧ P . E) = uex se pk(w x: x ∈ (a,b) ∧ x /∉ K ∧ P . E) ue se pk(u x x ∈ (a,b) ∧ x ∉ K . E) se pk

3.16 # ≡ ∀# {x ∈ (a,b)}| P = 0 ≡ {x ∉ (a,b) . ¬P}# 3.12 = 3 ## {x ∈ (a,b)|P] > 0 ≡ {x ∈ (a,b) . P}

3.18 massivo e unio V(∀ x ∈ (a,b). ¬P) ≡ (formalite (max x ∈ (a,b)|P) = -∞ (∀ x ∈ (a,b)).¬P) ≡ (min x ∈ (a,b)) | P) = +∞

3.28 supx : 1= P ∃x ∈ (a,b) . P) ⇒ (supx x ∈ (a,b) (P) ∈ (a,b) ∃x ∈ (a,b) . P) ⇒ (u = (supx x ∈ (a,b)) (P) ≡ u ∈ [a,b] ∧ P (u) ∧ (∀y ∈ (a,u) ¬P(y)) ∀x ∈ (a,b) ) ∅) ⇒ ( sup x ∈ (a,b) (P) ∈ (a,b)∃x ∈(a,b).P) ⇒ (u = (supx x∈(a,b) (p) ≡u ∈ (a,b)¬P (u) ∧ (∀y∈(a,u)¬P(y))

Sintassi dei predicati

Fbf → Prop | Fbf ∧ FbfProp → Impl | Prop ≡ PropImpl → Giunz | Giunz ⇒ ImplGiunz → Aud | OrAud → Audprium | AudpriumOr → Orprium | OrpriumAudprium → Pium (Or)Orprium → Pium (Aud)Pium → Atom ∧ AtomAtom → ⌝ | ⌥ | Ide (Prop) | Pred (Term = Term | Fbf)QuumIde → p | qFbf Quum → (∃ Var . Fbf) (∀ Var . Fbf)Pred → P Ide (Term {, Term})Term → Const | Var | F Ide (Term | Term)(∑ Var . Fbf . Term) ⌈#⌊ ∀ Var . Fbf ⌋ Fbf⌉ (⌈wx Var : Fbf . Term⌉) ⌈ ∑wx Var : Fbf . Term⌉ Exp⌉Exp → , , * , / operazioni aritmeticheConst → 0 | 1 | 2 | ... | +00 | -00 | ...

Triple di Hoare

Le triple di Hoare sono un metodo per specificare le proprietà di programmi e poter verificare il corretto funzionamento. {P} C {R} Nella tripla scritta sopra abbiamo: due asserzioni che descrivono le caratteristiche che il programma deve soddisfare nello stato iniziale; un comando che una volta verificata la prima asserzione, modifica lo stato del programma in uno che, dopo l'esecuzione del comando, dovrà soddisfare la seconda asserzione.

Asserzioni

Le asserzioni descrivono insiemi di stati ed il loro linguaggio è un'estensione del linguaggio delle espressioni booleani. (x-y) Le asserzioni possono confluire variabili e quantificatori; nell'asserzione con essi possono essere parti posticipate per quantificare e esse possono descrivere variabili dette libere se non compaiono nella quantificazione e perciò legate legate. Le variabili legate invece sono quelle che compaiono nella quantificazione e per questo legate. In particolare un'asserzione si definisce chiusa se la lista di variabile legata è vuota.

Lettura delle triple

Le triple di Hoare possono essere lette in tre modi: {P} C {R} Sicuramente: E ogni stato p e c e proviamo R in un modo che una volta eseguito il prog e soddisfatto. Specifica: L'esecuzione più stata p e r e dobbiamo determinare quale è il comando da eseguire per ottenere il risultato richiesto. Correttamente: Abbiamo tutta la tripla e dobbiamo verificare la correttezza.

Pre + Post Condizione

La regola dei pre-post condizione è un sottocchio per verificare la coerenza delle asserzioni iniziale e quella finale. P ⇒ P'{P'} C {R'}R' ⇒ R{P} C {R} Significa: P ⇒ P' = P R = R'

Anteprima
Vedrai una selezione di 4 pagine su 14
Logica per la programmazione - Appunti Pag. 1 Logica per la programmazione - Appunti Pag. 2
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Logica per la programmazione - Appunti Pag. 6
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Logica per la programmazione - Appunti Pag. 11
1 su 14
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher APXH94 di informazioni apprese con la frequenza delle lezioni di Logica per la programmazione e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pisa o del prof Gadducci Fabio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community