specification of the prolog language