Logo dell'Università di Catania: Siciliae Studium Generale 1434 Logo del Centro IPPARI, Programmazione
matite e gomma
Loghi istituzionali: Siciliae Studium Generale 1434, Centro ricerche IPPARI, Università di Catania, Facoltà di Scienze Matematiche, Fisiche, Naturali, Insegnamento di Programmazione

Ricorsione e induzione

Lezione 19 di Programmazione 2

Docente: Giuseppe Scollo

Università di Catania, sede di Comiso (RG)
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Studi in Informatica applicata, AA 2007-8

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0 Validazione XHTML 1.0 Validazione CSS 2

Indice

  1. Ricorsione e induzione
  2. definizioni ricorsive
  3. induzione naturale
  4. definizione induttiva di termini
  5. induzione strutturale
  6. induzione noetheriana
  7. esercizi

definizioni ricorsive

una definizione, in un linguaggio, ha due costituenti:

una definizione è ricorsiva quando il definiendum occorre nel definiens

per l'inerente circolarità, una definizione ricorsiva rischia di essere semanticamente viziosa: inutilizzabile al fine di stabilire il significato dei suoi costituenti; tuttavia ...

... si può impedire la formazione di circoli viziosi se il definiendum è un termine parametrico, con un parametro che assume valori in un insieme ben ordinato

in tal caso, possiamo rendere costruttiva, anziché viziosa, la circolarità in una definizione ricorsiva assicurando che le occorrenze del definiendum nel definiens siano riferite a valori del parametro più piccoli di quello a cui è riferito il definiendum in quanto tale

induzione naturale

il principio di induzione naturale, dovuto a Giuseppe Peano (1889), ha due distinte, sebbene correlate, manifestazioni:

nella definizione dei numeri naturali, come principio di minimalità costruttiva, evidente nella terza clausola appresso:

nelle dimostrazioni di proprietà sui numeri naturali:

la minimalità costruttiva dei numeri naturali giustifica l'uso del principio di induzione naturale come regola di inferenza logica

definizione induttiva di termini

esempi di costruzioni induttive di largo impiego nella definizione di linguaggi formali, quali ad es. linguaggi logici, linguaggi di programmazione, etc., si hanno nelle definizioni degli insiemi dei termini, formule o espressioni del linguaggio

ecco, ad esempio, la definizione induttiva dell'insieme dei termini generato da una segnatura algebrica, ovvero famiglia di operatori, cioè simboli di operazione, dove ogni operatore ha una arietà: il numero di argomenti dell'operazione che esso designa

per una data interpretazione degli operatori quali operazioni di un'algebra (di quelli di arietà 0 quali costanti dell'algebra), un tale termine, essendo privo di variabili, è la descrizione di un calcolo di un valore nell'algebra, a partire da valori costanti

induzione strutturale

la costruzione induttiva dei termini ben si presta ad introdurre una tecnica di definizione e di dimostrazione molto utile nei linguaggi di programmazione: l'induzione strutturale

supponiamo di voler definire una nuova funzione, o dimostrare che una certa proprietà valga, per tutti i possibili valori assunti da una struttura dati:

in tali condizioni, l'induzione strutturale consiste nel

il principio di induzione strutturale può essere facilmente dedotto dal principio di induzione naturale di Peano, giacché altro non è che induzione naturale sulla complessità dei termini che rappresentano i valori delle strutture dati in gioco

il seguente principio di induzione, al contrario, è una generalizzazione propria del principio di Peano

induzione noetheriana

una relazione binaria su un insieme è un ordinamento stretto se è irriflessiva (cioè non vale mai per una coppia di elementi identici) e transitiva

un ordinamento stretto < su un insieme S è detto ben fondato, o che S è ben ordinato da <, se non esistono catene discendenti infinite a0 > a1 > ... an > ..., cioè ogni catena discendente termina

una proprietà P definita per gli elementi di S, strettamente ordinato da <, è detta ereditaria se vale l'implicazione

il seguente principio di induzione è dovuto a Emmy Noether:

l'ordinamento dei naturali è ben fondato, dal che discende una forma equivalente dell'induzione di Peano (la cui base deriva dalla validità vacua dell'implicazione di ereditarietà sui naturali quando x=0)

non si può invece ricondurre l'induzione noetheriana a quella naturale: l'ordinamento dei naturali è totale, l'induzione noetheriana si applica alla più ampia classe degli ordinamenti parziali (ben fondati)

esercizi

  1. definire ricorsivamente il prodotto di due numeri naturali, usando la somma
    • suggerimento: definire per induzione su uno dei due argomenti del prodotto
  2. dimostrare per induzione la validità della formula di Gauss per il calcolo della somma dei primi n numeri naturali positivi: n(n+1)/2
  3. dimostrare per induzione che la somma dei primi n numeri naturali dispari è n2
  4. definire ricorsivamente la funzione lgf(n) = lg(n!)
  5. definire ricorsivamente la funzione lgmk(n) = (lg n) mod k, dove k>1 è un parametro costante
  6. dimostrare per induzione che un insieme di n elementi ha 2n sottoinsiemi
  7. dimostrare per induzione che esistono mn funzioni totali da un insieme di n elementi in uno di m elementi
    • (considerare anche i casi m=0 e n=0)