In this case, rather than the brute property “there exists a morphism a → b,” denoted a ≤ b or P(a, b) = true, we instead say “here is a set of morphisms a → b.” We get a hom-set rather than a hom-Boo...In this case, rather than the brute property “there exists a morphism a → b,” denoted a ≤ b or P(a, b) = true, we instead say “here is a set of morphisms a → b.” We get a hom-set rather than a hom-Boolean. The monoidal product will take two sets, S and T, and return the set S × T = {(s, t) | s ∈ S, t ∈ T}. But whereas for monoidal preorders we had the brute associative property (p ⊗ q) ⊗ r = p ⊗ (q ⊗ r), the corresponding idea in Set is not quite true: