Fondamenti di Informatica, 14 Febbraio 2013

Non e' ammesso l'uso di alcun testo, appunti o calcolatrici. Le risposte vanno scritte nel foglio di bella copia. Si raccomanda la massima SINTETICITA'. L'eccessiva verbosita' verra' considerata negativamente.
  • Occorre essersi prenotati sul portale studenti del nostro ateneo. Se cio' non e' stato fatto, comunicatelo immediatamente al docente o all'assistente in aula.
  • I risultati verranno indicati nella pagina web del corso. Date ed orari degli orali, sul Forum.
  • Esercizio 1
    (a) Descrivere il sistema formale del Calcolo dei Predicati (Logica dei Predicati del primo ordine) nella sua versione alla Hilbert o in deduzione naturale.

    (b) Scrivere, nel linguaggio dell'Aritmetica di Peano, la formula ben formata P(x,y,z) corrispondente alla seguente relazione sui naturali: x e' un multiplo del quoziente della divisione di y e z
    Dire inoltre se e' vera la seguente affermazione:
    (n,m,p)∈R se e solo se PA|- P(n,m,p)
    Perche?
    (ricordiamo che, se q e' un numero naturale, q e'il termine che lo rappresenta nel linguaggio di PA)

    (c) Ricopiare la seguente dimostrazione (in deduzione naturale per la logica proposizionale con operatori →, ¬, ∨ e ⊥) di
    D, D→A, B→ (¬D ∨ C), A → (B∨C) |-- C
    riempiendo le parti mancanti (indicate con sequenze di '?').
    Indicare inoltre le regole nelle quali vengono scaricate le ipotesi (e quali sono le ipotesi scaricate) e il nome delle regole utilizzate nella deduzione.
    
                                                                   ????   D
                                                                  -----------
                   ????    ??         ????????          [B]            ⊥
                  ------------      --------------------------     ---------
      ?????             A                    (¬D)∨C                    C         ???
     ----------------------------    -------------------------------------------------
               B∨C                                           ??                           [C]
           ------------------------------------------------------------------------------------                                            
                                                     ??
    


    Esercizio 2
    (a) Descrivere il sistema formale della Logica di Hoare

    (b) Scrivere un programma URM che calcoli (n div 2), dove n e' l'input e div e' la divisione intera.

    (c) Supponiamo di vedere il modello computazionale delle URM, senza l'istruzione J(-,-,-), come un linguaggio di programmazione, e di voler utilizzare una logica di Hoare per darne la semantica assiomatica.
    Fornire le regole e/o gli assiomi che descrivono la semantica delle istruzioni Z(n) e T(n,m).
    Dire inoltre se, aggiungendo l'istruzione J(-,-,-), l'assioma
    -----------------------
    {A} J(n,m,p) {A}

    risulterebbe valido e se descriverebbe correttamente il comportamento di tale istruzione.
    Esercizio 3
    Dimostrare che la rappresentazione di (n mod B) si ottiene prendendo la cifra piu' a destra della rappresentazione in notazione posizionale, in base B, di n