Save products by querying lower part of X
While working on the term deletion logic in !95 (merged) I realized it makes a difference whether we compute the upper or lower offdiagonal part of X: apparently querying the lower diagonal part is more efficient!