- The Prototype
<PEF>_In(A, B) :- <PEF>(B, A, . . .)
<PEF>_InEncl(A, B) :- <PEF>(B, _, A, . . .)
Because of Prologs build-in first argument indexing we create for every Program Element Fact to additional PEFs that can be used as an index. In case the ID of the parent or the enclosing element is already bound it is much more efficient to use these generated facts to bind the ID of the original fact.
These facts have the same name as the original fact with a suffix _In or _InEncl respectively.