Abstract. Essence is a formal language for specifying combinatorial problems, in a manner similar to natural rigorous specifications that use a mixture of natural language and discrete mathematics. provides a high level of abstraction, much of which is the consequence of the provision of decision variables whose values can be combinatorial objects, such as tuples, sets, multisets, relations, partitions and functions. Essence also allows these combinatorial objects to be nested to arbitrary depth, providing for example sets of partitions, sets of sets of partitions, and so forth. Therefore, a problem that requires finding a complex combinatorial object can be specified directly by using a decision variable whose type is precisely that combinatorial object.
Alan M. Frisch, Warwick Harvey, Christopher Jeffer