Next: , Previous: Set (accumulative), Up: Types reference


4.9.10 Intersective set

A set over a domain. Different lattices depending on the domain, which can be:

  1. a finite domain of constants
  2. integer
  3. a tuple of which all projections are finite domains of constants
4.9.10.1 Set generator expressions

If the domain of the intersective set is a tuple of which all projections are finite domains of constants (case 2), the set can be specified using a set generator expression. Set generator expressions describe sets of tuples over finite domains of constants, using set generator conjunction (& operator) and set generator disjunction (| operator).1 Here is the semantics of set generator conjunction:

4.9.10.2 Example (set generator expressions)

As an example from our grammar file Grammars/Acl01.ul, consider the set generator expression ($ fem & (dat|gen) & sg & def). The corresponding type has identifier id.agrs, and corresponds to the type definitions below:

       deftype "id.person" {first second third}
       deftype "id.number" {sg pl}
       deftype "id.gender" {masc fem neut}
       deftype "id.case" {nom gen dat acc}
       deftype "id.def" {def indef undef}
       deftype "id.agr" tuple(ref("id.person")
                              ref("id.number")
                              ref("id.gender")
                              ref("id.case")
                              ref("id.def"))
       deftype "id.agrs" iset(ref("id.agr"))

The set generator expression ($ fem & (dat|gen) & sg & def) describes the set of all tuples with constant fem at the third projection (corresponding to the finite domain id.gender), either dat or gen at the fourth projection (id.case), sg a the second projection (id.number), and def at the fifth projection (id.def). The first projection (id.person) is not specified, i.e. it can be any of the constants in the domain (first, second, or third).

4.9.10.3 Top value
  1. the full set (containing all constants in the domain)
  2. the set of all integers
  3. the full set (containing all tuples in the domain)
4.9.10.4 Bottom value
  1. empty set
  2. empty set
  3. empty set
4.9.10.5 Greatest lower bound operation
  1. set intersection
  2. set intersection
  3. set intersection
4.9.10.6 Example

Here is an example intersective set type definition with domain type ref("type"):

     deftype "iset" ref("type")

Footnotes

[1] Set generator conjunction & and set generator disjunction | are different from conjunction and disjunction in the lexicon. Set generator disjunction is restricted to set generator expressions and set generator disjunction does not lead to an increase of the the number of lexical entries. On the other hand, conjunction and disjunction in the lexicon can be used for all terms, and disjunction leads to an increase of the number of lexical entries.