  Some basic features of the simultaneous inclusion of discrete fibrations and
discrete opfibrations in categories over a base category X are considered. In
particular, we illustrate the formulas
  (|P)x = ten(x/X,P) ; (P|)x = hom(X/x,P) which give the reflection |P and the
coreflection P| of a category P over X in discrete fibrations. The explicit use
of the "tensor functor" ten := \comp(- \times -) : Cat/X \times Cat/X \to Set
given by the components of products, allows a vast generalization of the
corresponding analysis in the two-valued context. For any df A, the functor
ten(A,-) : Cat/X \to Set has a right adjoint \neg A valued in dof's (and vice
versa); such a complement operator, which in the two-valued case reduces to the
classical complementation between lower and upper parts of a poset, turns out
to be an effective tool in the set-valued context as well. Various applications
of the formulas and of the accompanying conceptual frame are presented.
