c-semiring

c-semiring

In abstract algebra, a c-semiring (that is, a constraint-based semiring) is a tuple <A,+,X,0,1> such that:

  • A is a set and 0, 1 are elements of A.
  • + is the additive operation and is a commutative (i.e., +(a,b) = +(b,a)) and associative (i.e., +(a,+(b,c)) = +(+(a,b),c)) operation such that +(a,0) = a = +(0,a) (i.e., 0 is its unit element).
  • + is defined over (possibly infinite) sets of elements of A as follows:
    • for all a which are elements of A, +({a}) = a;
    • +(empty set) = 0 and +(A) = 1;
    • +(UAi, i element of S) = +({+(Ai), i element of S}) for all sets of indices of S (flattening property).
  • X is called the multiplicative operation, is a binary, associative and commutative operation such that 1 is its unit element and a X 0 = 0 = 0 X a (i.e., 0 is its absorbing element);
  • X distributes over +.