Declarative Systems