The cross compiler only accepts conservative Prolog texts without arbitrary goals directives. During cross compilation the Prolog texts receives the same style check as when they would be consulted by the Dogelog player. Among the style checks are for example the singleton check, but we also do check other properties concerning the declaration of predicates.
The cross compiled Prolog text will not anymore repeat the style checks and will have the rec-ognized directives omitted or replaced by more simpler instructions. To be able to perform the style checks and since the cross compiler is self-hosting, it keeps track of a shadow dynamic database of some Prolog system meta information:
cross_loading/1
cross_including/2
cross_currpred/3
cross_predprop/3
cross_lastpred/2