Prolog language kernel