prolog is a declarative programming language