of a ci filter is achieved by specifying the number of the term where the relevant unknown is found in the constraint predicate this term number is then placed on the term number lines the enable line is also set high the program control line for this and only this ci filter is then momentarily raised high this sets the enable flip flop high to allow memory writing counter incrementing and the pass output to depend on the ci set compare it also programs the latch in the ci filter so that whenever the programmed term number appears on the term number n lines the value on the term bus lines will be read into the latch after all of the relevant ci filters have been programmed the predicate filtering begins a term of a fact is placed on the term bus the term number is then placed on the term number lines this is accomplished in a stream fashion and is repeated for every term in the fact a filter which has been programmed for a given term number will latch the term bus value when that term number appears once all terms of a fact have been streamed the filter signal is issued the memory is read at the location specified by the output of the latch since the latch output is connected to the address lines of the memory the filter signal is also the control input to the multiplexer and when high connects the data output of the memory to the input 2 of the comparator the input 1 of the comparator is connected to the data or threshold output of the counter if this memory value is equal to or greater than.