Sunteți pe pagina 1din 35

Programare Logica

2013-2014 FMI
Cuprins
1 Organizare
Instructori
Suport curs
Notare
2 Privire de ansamblu
Curs
Laborator
Organizare
Instructori
Denisa Diaconescu - curs si laboratoare
Studii:
Licent a Informatica:
Logica matematica si aplicat ii n vericarea sistemelor
2007, FMI
prof. Gheorghe Stefanescu
Master Informatica:
Teoria modelelor pentru logici cu mai multe valori
2009, Scoala Normala Superioara Bucuresti, IMAR
prof. Razvan Diaconescu
Doctorat Matematica:
Logici multivalente cu conjunct ii necomutative
2012, FMI
prof. George Georgescu
Pozit ii:
2013 - prezent: Lector Universitar, FMI
2008 - 2013: Preparator Universitar, FMI
Denisa Diaconescu - curs si laboratoare
Domenii de cercetare:
logici neclasice (logici multivalente, logici modale)
modelarea matematica a fenomenelor vagi si incerte
aplicat ii ale logicii n vericarea sistemelor
Contact:
ddiaconescu@fmi.unibuc.ro
denisa.diaconescu@gmail.com
Andrei Sipos - laboratoare
Studii:
Licent a Matematica: Calcul Schubert
2012, FMI
prof. Mihai Sorin Stupariu
Licent a Informatica: Ultraproduse n teoria modelelor
2012, FMI
prof. George Georgescu
Pozit ii:
2012 - prezent: Student Master Algebra, FMI
Domenii de cercetare:
geometrie algebrica
logica categoriala
Contact:
andrei.sipos@my.fmi.unibuc.ro
Suport curs
Site-uri curs
Moodle
https://sites.google.com/site/ddiaconescupl/
Bibliograe
J. Goguen, Theorem Proving and Algebra, manuscris.
F. Baader, T. Nipkow, Terms Rewriting and All That, Cambridge
University Press, 1998.
F.L. Tiplea, Fundamentele algebrice ale informaticii, (II40405,
biblioteca FMI).
V.E. Cazanescu, Note de curs.
Notare
Notare
Laborator: 40 puncte
Examen: 60 puncte
Condit ie minina pentru promovare: cel put in 50% din ecare proba
laborator: min. 20 puncte si
examen: min. 30 puncte
Laborator: 40 puncte
Lucrare: 30 puncte
Are loc n Saptamana 8 (7 - 11 aprilie)
Prezent a la lucrare este obligatorie!
Nu se poate reface
Timp de lucru: o ora si jumatate
Proiect: 10 puncte
Se distribuie n Saptamana 9 (14 - 17 aprilie)
Se preda n Saptamana 14 (26 - 30 mai)
Din cele doua probe de Laborator trebuie sa adunat i min. 20 puncte.
Examen: 60 puncte
Subiecte de teorie si exercit ii.
Timp de lucru: 2 ore

In Saptamana 14 vet i primi o foaie cu teorie cu care putet i veni la


examen!
Subiectele de teorie constau n demonstrarea unor rezultate din curs
(demonstrate la curs sau lasate ca tema).
Subiectele de exercit ii vor n stilul celor rezolvate la seminar
(n Laboratoarele 10-13).
La examen, trebuie sa adunat i min. 30 puncte.
Privire de ansamblu
Curs
Problema corectitudinii programelor
The Program Correctness Problem
?
Conventional models of using computers not easy to determine correctness!
Has become a very important issue, not just in safety-critical apps.
Components with assured quality, being able to give a warranty, ...
Being able to run untrusted code, certicate carrying code, ...
2
Pentru metodele convent ionale de programare (imperative), nu este
usor sa vedem ca un program este corect sau sa nt elegem ce
nseamna ca este corect (n raport cu ce?!).
Devine o problema din ce n ce mai importanta, nu doar pentru
aplicat ii safety-critical.
Avem nevoie de metode ce asigura calitate, capabile sa ofere
garant ii.
Un program imperativ simplu
#include <stdio.h>
main() {
int Number, Square;
Number = 0;
while(Number <= 5)
{ Square = Number * Number;
printf("%d\n",Square);
Number = Number + 1; } }
Este corect?

In raport cu ce?
Un formalism adecvat trebuie:
sa permita descrierea problemelor (specicat ii), si
sa rat ioneze despre implementarea lor (corectitudinea programelor).
Logica
Un mijloc de a clarica/modela procesul de a rat iona.
De exemplu, n logica clasica putem modela rat ionamentul:
Aristotel iubeste prajiturile, si
Platon este prieten cu oricine iubeste prajiturile, deci
Platon este prieten cu Aristotel.
Simbolic:
a
1
: iubeste(Aristotel , prajituri )
a
2
: (X) iubeste(X, prajituri ) prieten(Platon, X)
a
3
: prieten(Platon, Aristotel )
a
1
, a
2
a
3
Cum poate folosita logica pentru:
a descrie probleme (specicat ii)?
a rezolva probleme?
Folosind logica
Use of Logic
?
YES / NO
Proof
(Logic)
Specs
Semantics
For expressing specications and reasoning about the correctness of programs
we need:
Specication languages (assertions), modeling, ...
Program semantics (models, axiomatic, xpoint, ...).
Proofs: program verication (and debugging, equivalence, ...).
9
Logica ne permite sa reprezentam/modelam probleme.
Pentru a scrie specicat ii si a rat iona despre corectitudinea programelor:
Limbaje de specicat ii (modelarea problemelor)
Semantica programelor (operat ionala, denotat ionala, . . .)
Demonstrat ii (vericarea programelor, . . .)
Patratele numerelor naturale 5
Numerele naturale: reprezentarea lui Peano
0 0 1 s(0) 2 s(s(0)) 3 s(s(s(0))) . . .
Denirea numerelor naturale:
nat(0) nat(s(0)) nat(s(s(0))) . . .
O solut ie mai buna:
nat(0) (X)(nat(X) nat(s(X)))
Ordinea pe numere naturale:
(X)le(0, X)
(X, Y)(le(X, Y) le(s(X), s(Y)))
Adunarea numerelor naturale:
(X)(nat(X) add(0, X, X))
(X, Y, Z)(add(X, Y, Z) add(s(X), Y, s(Z)))
Patratele numerelor naturale 5

Inmul tirea numerelor naturale:


(X)(nat(X) mult(0, X, 0))
(X, Y, Z, W)(mult(X, Y, W) add(W, Y, Z)
mult(s(X), Y, Z))
Patrate de numere naturale:
(X, Y)(nat(X) nat(Y) mult(X, X, Y)) square(X, Y))
Acum putem spune clar ce condit ii vrem sa satisfaca programul:
Preconditie:
niciuna
Postconditie:
(X)(
(Y)nat(Y) le(Y, s(s(s(s(s(0)))))) square(Y, X))
output(X))
Semantica
Semantica da un nt eles (obiect matematic) unui program.
Semantica trebuie:
sa poata verica ca un program satisface condit iile cerute.
sa poata demonstra ca doua programe au aceeasi semantica.
. . .
Tipuri de Semantica
Operat ionala:

Int elesul programului este denit n funct ie de pasii (transformari


dintr-o stare n alta) care apar n timpul execut iei.
Axiomatica:

Int elesul programului este denit indirect n funct ie de axiomele si


regulile unei logici.
Denotat ionala:

Int elesul programului este denit abstract ca element dintr-o


structura matematica adecvata.
Bazata pe modele:

Int elesul programului este denit ca un model minimal al unei logici.


De la reprezentare/specicare la calcul
Presupunand existent a unei metode (automate) de demonstrat ie (metoda
de deduct ie), rezolvarea unor probleme se poate face astfel:
From Representation/Speci cation to Computation
Assuming the existence of a mechanical proof method (deduction procedure)
a new view of problem solving and computing is possible [Greene]:
program once and for all the deduction procedure in the computer,
nd a suitable representation for the problem (i.e., the specication),
then, to obtain solutions, ask questions and let deduction procedure do rest:
Representation (specification)
Questions
Deduction
system
Problem
(Correct) Answers / Results
No correctness proofs needed!
13
Patratele numerelor naturale 5
Computing With Our Previous Description / Speci cation
Query Answer
nat(s(0)) ? (yes)
X add(s(0), s(s(0)), X) ? X = s(s(s(0)))
X add(s(0), X, s(s(s(0)))) ? X = s(s(0))
X nat(X) ? X = 0 X = s(0) X = s(s(0)) . . .
XY add(X, Y, s(0)) ? (X = 0 Y = s(0)) (X = s(0) Y = 0)
X nat square(s(s(0)), X) ? X = s(s(s(s(0))))
X nat square(X, s(s(s(s(0))))) ? X = s(s(0))
XY nat square(X, Y ) ? (X = 0 Y = 0) (X = s(0) Y = s(0)) (X =
s(s(0)) Y = s(s(s(s(0))))) . . .
Xoutput(X) ? X = 0 X = s(0) X = s(s(s(s(0)))) X =
s
9
(0) X = s
16
(0) X = s
25
(0)
14
Care logica?
propozit ionala
de ordinul I
de ordin nalt
logici modale
-calcul
. . .
Ce metoda de deduct ie?
deduct ie naturala
rezolut ie
rescriere
narrowing
. . .
Ce vet i vedea la curs
Bucataria din spatele limbajului de specicat ii Maude si nu numai!
1 Algebre multisortate
semantica denotat ionala
specicarea algebrica a tipurilor de date abstracte
2 Logica ecuat ionala
deduct ia ecuat ionala
asigurarea corectitudinii specicat iilor
3 Rescrieri
semantica operat ionala
metoda de demonstrare (deduct ie) automata
4 Ideile programarii logice
narrowing, rezolut ie . . .

In ce logica ne vom situa?


Logica de ordinul I (FOL)
Var mult . variabilelor,
F mult . simb. de funct ii,
P mult . simbolurilor de relat ii,

=, , , , , , .
Termen: x Var , f (t
1
, . . . , t
n
)
Formula atomica: P(t
1
, . . . , t
n
), t
1

= t
2
Formula: formula atomica, , , , , (x), (x)
Clauza Horn: (x
1
. . . x
k
)((Q
1
. . . Q
n
) Q),
Q
1
, . . . , Q
n
, Q sunt formule atomice
Q if {Q
1
, . . . , Q
n
}

In ce logica ne vom situa?


Subsisteme ale lui FOL
HCL: formulele sunt clauzele Horn
fundamentul teoretic al limbajului Prolog
EQL: formulele atomice sunt ecuat ii cuanticate universal
P =
CEQL: HCL EQL
HCL pentru P =
t
1

= t
2
if {u
1

= v
1
, . . . , u
n

= v
n
}
cuanticata universal cu toate variabilele care apar
La curs vom folosi CEQL (logica ecuat ionala condit ionata) n varianta
multisortata!
Laborator
Ce vet i vedea la laborator
Pentru partea practica vet i folosi limbajul Maude:
un limbaj de specicat ii executabil,
un fragment este bazat pe logica ecuat ionala,
semantica operat ionala este bazata pe rescriere,
http://maude.cs.uiuc.edu/

In plus, vet i face exercit ii suport pentru curs.


Planicare laboratoare
Saptamanile 1 - 7: Limbajul Maude
Saptamana 8: Lucrare
Saptamana 9: Distribuiere proiecte
Saptamanile 10 - 13: Seminarii - exercit ii suport pentru curs
Saptamana 14: Predare proiecte
Pe saptamana viitoare!

S-ar putea să vă placă și