Sei sulla pagina 1di 26

Induzione matematica

Induzione su insiemi
Stringhe
Formule ben formate

Informatica e Computazione
Induzione

Marco Maratea

Corso di Laurea in Ingegneria Informatica


Dipartimento di Informatica, Bioingegneria, Robotica e Ingegneria dei Sistemi
Università degli Studi di Genova

logo.aiia.png
logoUnige.png
siteLogo.png

1/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Outline

1 Induzione matematica

2 Induzione su insiemi

3 Stringhe

4 Formule ben formate

logo.aiia.png
logoUnige.png
siteLogo.png

2/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Outline

1 Induzione matematica

2 Induzione su insiemi

3 Stringhe

4 Formule ben formate

logo.aiia.png
logoUnige.png
siteLogo.png

3/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione matematica (I)

Principio di induzione matematica


Sia A(n) una asserzione sull’insieme dei naturali N e
supponiamo che
1. A(0) è vera; e
2. per ogni k ∈ N, se è vera A(k ) allora è vera A(k + 1).

Ne segue che A(n) è vera per ogni n ∈ N.

logo.aiia.png
logoUnige.png
siteLogo.png

4/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione matematica (II)

Principio di induzione completa


Sia A(n) una asserzione sull’insieme dei naturali N e
supponiamo che
1. A(0) è vera; e
2. per ogni m ∈ N, m > 0, se A(k ) è vera per ogni k ,
0 ≤ k < m, ne segue che è vera A(m).

Allora A(n) è vera per ogni n ∈ N, n > 0.

Ovvero qui ci riferiamo a tutti i k precedenti, e non al solo


predecessore come prima.
logo.aiia.png
logoUnige.png
siteLogo.png

5/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione matematica: Esempio I


Dimostriamo per induzione su n la seguente formula
cos(nθ) + i sin(nθ) = (cos(θ) + i sin(θ))n
Dobbiamo dimostrare l’identità per ogni n > 0.
Dimostrazione.
(Passo base) Per n = 1 è ovvio dato che
cos(θ) + i sin(θ) = (cos(θ) + i sin(θ))
(Passo induttivo) Supponiamo che la formula valga per
qualche n > 1.
Ora moltiplichiamo entrambi i termini per
cos(θ) + i sin(θ)
ed otteniamo
logo.aiia.png
logoUnige.png
siteLogo.png
(cos(nθ)+i sin(nθ))(cos(θ)+i sin(θ)) = (cos(θ)+i sin(θ))n+1 6/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione matematica: Esempio I (cont.)


Dal quale si ottiene (nella parte sinistra)
cos(θ)cos(nθ)−sin(θ)sin(nθ)+i cos(θ)sin(nθ)+i sin(θ)cos(nθ)
Da cui applicando formule di addizione:
cos(θ)cos(nθ) − sin(θ)sin(nθ) = cos(nθ + θ)
cos(θ)sin(nθ) + sin(θ)cos(nθ) = sin(nθ + θ)
si ottiene
cos((n + 1)θ) + i sin((n + 1)θ) = (cos(θ) + i sin(θ))n+1 .
Pertanto la formula è verificata per n = 1 e, se è verificata per
n, abbiamo mostrato che è verificata per n + 1. Quindi, è
logo.aiia.png
vera siteLogo.png
logoUnige.png
per ogni n. 7/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione matematica: Esempio II


L’induzione matematica può essere anche usata per dimostrare
proprietà dei programmi, per esempio gli invarianti di ciclo, che
sono proprietà verificate all’ingresso del ciclo e che restano
vere durante la sua esecuzione.
Consideriamo il seguente frammento di programma che calcola
il quadrato di un numero n:
q := 0
i := 0
while i < n
q := q + n
i := i + 1
end
logo.aiia.png
logoUnige.png
siteLogo.png
return q
8/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione matematica: Esempio II (cont.)


Mostriamo per induzione che al ciclo k-esimo è verificata la
proprietà A(k ), ovvero che q = k × n e che i = k .
(Passo base.) Per k = 0, A(0) è verificato in quanto q = 0
e i = 0.
(Passo induttivo.) Supponiamo che la proprietà sia vera
per k . Quindi quando entriamo all’interno del ciclo
abbiamo q = k × n e che i = k . All’interno del ciclo
vengono eseguite le istruzioni ed alla fine dello stesso
abbiamo q = k × n + n = (k + 1) × n e che i = k + 1,
ovvero A(k + 1).
Quindi, all’uscita del ciclo, dopo n iterazioni del ciclo, abbiamo
che q = n × n = n2 ed i = n. logo.aiia.png
logoUnige.png
siteLogo.png

9/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Outline

1 Induzione matematica

2 Induzione su insiemi

3 Stringhe

4 Formule ben formate

logo.aiia.png
logoUnige.png
siteLogo.png

10/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione su insiemi

Definizione
Dato un insieme U, vogliamo costruire un sottoinsieme di U a
partire da alcuni suoi elementi iniziali. L’insieme che vogliamo
costruire deve contenere tutti gli elementi iniziali e tutti e soli gli
elementi che si possono ottenere da essi applicando
ripetutamente delle operazioni. Sia I l’insieme di elementi
iniziali (I ⊆ U) e sia O l’insieme di operazioni su U.
Supponiamo ancora che O contenga (solo) due operazioni
• g : U 7→ U (unaria)
• f : U × U 7→ U (binaria)
Vogliamo definire l’insieme C che contiene tutto e solamente
quello che possiamo costruire tramite g ed f da I. logo.aiia.png
logoUnige.png
siteLogo.png

11/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Insieme induttivo

Insieme chiuso
Diciamo che un insieme S ⊆ U è chiuso rispetto ad O iff ogni
volta che abbiamo x ∈ S, y ∈ S allora g(x) ∈ S e f (x, y ) ∈ S.

Insieme induttivo
Un insieme S è detto induttivo su I mediante le funzioni in O iff
I ⊆ S ed S è chiuso rispetto ad O.

logo.aiia.png
logoUnige.png
siteLogo.png

12/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Principio di induzione su insiemi induttivi

Principio di induzione su insiemi induttivi


Sia C l’insieme generato da I per mezzo delle funzioni in O. Se
S è un sottoinsieme di C che contiene I ed è chiuso rispetto
alle funzioni in O, allora S = C.

Tale principio definisce unicità e massimalità dell’insieme C.

logo.aiia.png
logoUnige.png
siteLogo.png

13/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione su insiemi: Esempio 1


Alla luce delle definizioni precise date ora, possiamo rivedere la
definizione (induttiva) di formula (ben formata), a slide 8 della
parte su Logica Proposizionale, e caratterizzarla secondo le
definizioni date:
• I contiene gli elementi all’item a. della definizione di
formula, ovvero I = {>, ⊥, A1 , . . . , An }, se A1 . . . A2 sono le
variabili di F ;
• O = {¬, ∧, ∨, →, ↔}, con 1 funzione unaria e 4 binarie.

Inoltre, il fatto che l’insieme delle formule (ben formate) sia


chiuso è dato dal fatto che le condizione nella definizione "ogni
volta che abbiamo x ∈ S, y ∈ S allora g(x) ∈ S e f (x, y ) ∈ S" si
rispecchiamo negli item b. e c. della definizione dilogo.aiia.png
formula logoUnige.png
siteLogo.png
mettendo una formula al posto di x ed y . 14/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Induzione su insiemi: Esempio 2

Definiamo ricorsivamente la funzione fattoriale, che ricalca la


struttura induttiva dei numeri naturali, i quali sono generati da
• I = {0},
• una funzione s(.) che definisce l’operatore di successione,
ovvero
N = {0, s(0), s(s(0)), s(s(s(0))), . . . }

Example
1. fatt(0) = 1,
2. fatt(s(n)) = s(n) × fatt(n), per ogni n > 1.
logo.aiia.png
logoUnige.png
siteLogo.png

15/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Outline

1 Induzione matematica

2 Induzione su insiemi

3 Stringhe

4 Formule ben formate

logo.aiia.png
logoUnige.png
siteLogo.png

16/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Definizione induttiva di stringhe su alfabeto


Dati:
• un alfabeto Σ,
• un simbolo  che indica la stringa vuota,
l’insieme di tutte le stringhe di lunghezza finita può essere
definito induttivamente nel seguente modo:
Σ0 = {} [unica stringa di lunghezza 0]
Σ1 = {a|a ∈ Σ} [stringhe di lunghezza 1]
Σ2 = {s|s = a ◦ s0 , a ∈ Σ, s0 ∈ Σ1 } [stringhe di lunghezza 2]
Σ3 = {s|s = a ◦ s0 , a ∈ Σ, s0 ∈ Σ2 } [stringhe di lunghezza 3]
... = ...
Σn = {s|s = a ◦ s0 , a ∈ Σ, s0 ∈ Σn−1 } [stringhe di lunghezza n]
Σ n+1 = {s|s = a ◦ s0 , a ∈ Σ, s0 ∈ Σn }
... = ... logo.aiia.png
logoUnige.png
siteLogo.png
con ◦ operatore di concatenazione. 17/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Insieme delle stringhe

[
Σ∗ = Σn , n ≥ 0
n

Σ∗ è l’insieme delle stringhe (o, parole) di lunghezza qualsiasi


(finita) di simboli di Σ.

L’operatore ◦ può essere omesso: assumendo {a, b, c} ⊆ Σ, ad


esempio la stringa
a◦b◦c
può essere scritta come
abc
a ◦ bc.
Si possono anche “combinare” le due sintassi, e.g.logo.aiia.png
logoUnige.png
siteLogo.png

18/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Stringhe: Esempio I

Definiamo induttivamente la funzione

f : Σ∗ 7→ N

che calcola la lunghezza di una stringa.


Example
• f () = 0
• f (a ◦ s) = 1 + f (s), a ∈ Σ, s ∈ Σ∗

Es. f (“ciao00 ) = 1 + f (“iao”) = 1 + 1 + f (“ao00 ) =


1 + 1 + 1 + f (“o00 ) = 1 + 1 + 1 + 1 + f () = 1 + 1 + 1 + 1 + 0 = 4
logo.aiia.png
logoUnige.png
siteLogo.png

19/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Outline

1 Induzione matematica

2 Induzione su insiemi

3 Stringhe

4 Formule ben formate

logo.aiia.png
logoUnige.png
siteLogo.png

20/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Formula ben formate


Dopo averla vista in maniera informale, diamo qui una
definizione induttiva dell’insieme delle formula ben formate F di
un linguaggio L. Introduciamo:
• un insieme finito non vuoto di simboli Σ, e
• un insieme finito non vuoto di operatori O, unari (¬) e
binari (./− ),
tale che L = Σ ∪ O ∪ {(, )}.
Insieme delle formule ben formate
L’insieme delle formula ben formate costruite su L è definito
induttivamente come:
1. se a ∈ Σ, allora a ∈ F;
2. se F ∈ F, allora (¬F ) ∈ F;
3. se F ∈ F, G ∈ F, allora (F ./− G) ∈ F. logo.aiia.png
logoUnige.png
siteLogo.png

21/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Principio di induzione strutturale (I)


Il fatto che abbiamo definito l’insieme delle formule ben formate
F induttivamente è molto utile per verificare che una proprietà
vale per tutti gli elementi dell’insieme, tramite il seguente
principio:
Principio di induzione strutturale
Per dimostrare che una proprietà Q vale per ogni formula F di
F bisogna dimostrare:
• Passo base. (Dimostriamo che) Q vale per ogni formula
atomica a ∈ Σ;
• Passo induttivo.
1. Se la proprietà Q vale per F allora (dimostriamo che) vale
per (¬F );
2. Se la proprietà Q vale per F e G, allora (dimostriamo
logo.aiia.png
che) siteLogo.png
logoUnige.png
vale per (F ./− G), per ogni operatore binario in ./− .
22/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Principio di induzione strutturale (II)

Unicità della scomposizione


Per ogni formula ben formata F di F vale una (e una sola) delle
seguenti proprietà:
1. F ∈ Σ;
2. esiste un’unica formula G tale che F ha la forma (¬G);
3. esiste un unico operatore binario ./− e due formule uniche
G and H tali che F ha la forma (G ./− H).

Da questa proprietà deriva la scomposizione unica delle


formule proposizionali vista in precedenza, e la non necessità
di utilizzare tutte le parentesi.
logo.aiia.png
logoUnige.png
siteLogo.png

23/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Principio di induzione strutturale (III): Esempio


Definiamo una funzione che costruisce l’insieme degli atomi
che occorrono in una formula: la funzione è:
t : F 7→ P, P ⊆ Σ

Definizione di t
• t(a) = {a} se a ∈ Σ
• t(¬F ) = t(F )
• t(F ./− G) = t(F ) ∪ t(G)

Example
Dato F = (¬(B ∧ (C ∨ D))):
t(F ) = t(B ∧ (C ∨ D)) = t(B) ∪ t(C ∨ D) = {B} ∪ t(C) ∪ t(D)
logo.aiia.png = siteLogo.png
logoUnige.png
{B} ∪ {C} ∪ {D} = {B, C, D}. 24/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Alberto sintattico
Albero sintattico
Un albero sintattico T è un albero binario con nodi etichettati da
simboli del linguaggio, che rappresenta la scomposizione di una
formula ben formata F come segue:

1. se F è una formula atomica, l’albero binario che la rappresenta


è costituito dal solo nodo etichettato con F ;
2. se F = G ./− H , F è rappresentata dall’albero binario con
radice etichettata da ./− e figli sx e dx (ovvero, i sottoalberi che
hanno radice nei figli) che rappresentano G ed H;
3. se F = ¬G, F è rappresentata dall’albero binario che ha la
radice etichettata con ¬ ed unico figlio che rappresenta G.

L’albero sintattico rappresenta in modo univoco una formula ben


formata, con nei nodi intermedi gli operatori e gli atomilogo.aiia.png
logoUnige.png
nelle foglie siteLogo.png

terminali. 25/26

M. Maratea Induzione
Induzione matematica
Induzione su insiemi
Stringhe
Formule ben formate

Alberi sintattici: Esempio


L’albero sintattico per la formula (G ∧ ¬D) → (A ∨ (B ∧ ¬D))

∧ ∨

G ¬ A ∧

D B ¬

Gli alberi sintattici rappresentano una formula in maniera


logo.aiia.png
logoUnige.png
siteLogo.png
univoca. 26/26

M. Maratea Induzione

Potrebbero piacerti anche