1. Definiți axiome pentru următorii operatori pe tipul List
:
reverse
(inversează elementele dintr-o listă)filterEven
(elimină elementele impare dintr-o listă)
2. Definiți axiome pentru următorii operatori pe tipul BTree
:
mirror : BTree → BTree
(arborele oglindit pe verticală, i.e. pentru orice nod, copilul stâng devine copilul drept și vice-versa)flatten : BTree → List
(lista cu toate elementele din arbore; observați că există mai multe ordini posibile)
3. Definiți axiome pentru următorii operatori pe tipul Map
:
update : Map × K × V → Map
(un Map cu o nouă asociere cheie:element)delete : Map × K → Map
(șterge cheia și valoarea asociată)4. Demonstrați următoarele propoziții, folosind inducție structurală: