MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Consider the class of all structures for a given signature in first-order logic. Let $S_i$ be a family of structures, and $\oplus S_i$ be the direct product of the family. You can extend the notion of a direct product to the cover the case of an empty family as follows. Let the underlying carrier set be a set with one element, $\lbrace x \rbrace$. For every function symbol, $f$, let $f(x, \ldots, x) = x$. For every relation symbol, $R$, let $R(x, \ldots, x)$ be true. If you consider the category of all structures with a given signature with homomorphisms as the morphisms, this is exactly the categorical direct product for an empty family.

Is it known what sentences are preserved by direct products, including the empty direct product? Most Horn sentences are still preserved. (The exception is Horn sentences with no positive literals.) The standard example of a non-Horn sentence preserved by direct products (the sentence "there exists an atom" in the signature of Boolean algebras) is not preserved by the empty direct product. It's tempting to conjecture that the sentences preserved by direct products, including the empty product, are exactly the sentences equivalent to a Horn sentence with one positive literal. Is there a known proof or counterexample?

share|cite|improve this question
How do you extend functional and relational symbols in the direct product? Presumably, R^S(x_1, ..., x_n) holds iff x_1, ..., x_n are in the same copy S_i and R^S_i (x_1, ..., x_n) but there is no obvious analogue for function symbols. (You could assume that the language is relational) – David Harris Nov 23 '10 at 19:00
What is the problem? We are talking about direct products, i.e., the underlying set is a cartesion product. Functions are defined coordinate wise, the same for relations. You seem to be thinking of disjoint unions. – Stefan Geschke Nov 23 '10 at 19:07
That's right. Everything is defined coordinate-wise. So $f( (x_1, x_2), (y_1, y_2) ) = (f(x_1, y_1), f(x_2, y_2) )$. $R( (x_1, x_2), (y_1, y_2) )$ is true if and only if $R(x_1, y_1)$ and $R(x_2, y_2)$ are true. – arsmath Nov 23 '10 at 20:00
The function definition is clearly the right one, but it's not obvious to me why that should be the definition for relations. Ideally if $R((x_1,x_2),(y_1,y_2))$ is true (false), then $R(x_1,y_1)$ is true (false) and $R(x_2,y_2)$ is true (false). But you obviously can't have it both ways for mixed tuples ... this is why we usually use ultraproducts. But I guess you're trying to do something else here? – Richard Rast May 29 '15 at 2:23

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.