In logic, the term "homomorphism" is used in a manner similar to but a bit different from its usage in abstract algebra. The usage in logic is a special case of a "morphism" from category theory. Let A = (A, (c^A)_(c element C), (P^A)_(P element P), (f_(f element ℱ)^A), and B = (A, (c^B)_(c element C), (P^B)_(P element P), (f_(f element ℱ)^B) be structures for a common language L, and let h:A->B. Then h is a homomorphism from A to B provided that it satisfies the following: 1. For each constant c element C, h(c^A) = c^B. 2. For each predicate symbol P element P, if the arity of P is n, then P^B = {h(a_1), ..., h(a_n)|(a_1, ..., a_n) element P^A}.