type 'a v = private 'a Map.Make(Literal).t
The type of vectors. Their basis is the set of literals.
Adds an entry to the vector. If the literal was already in the basis, updates the value instead.
val cardinal : 'a v -> int
Define arithmetic operations on vectors with values in a semiring.
Define arithmetic operations on vectors with values in a ring.
val make_monoid : (module Algebra.Semiring_S with type t = 'a) -> Literal.t list -> (module Algebra.Add_Monoid_S with type t = 'a v)
Create an additive monoid on vectors from a semiring of values and a finite support