 In many-sorted first-order logic, a structure is understood as a tuple having a family of non-empty sets as domains and a family of operations (functions and relations) defined over these domains. These relations and functions are defined according to a given signature.