### 3.7.107. Functional dependency

A constraint that allows for representing a functional dependency between possibly several domain variables and a single domain variable. A sequence of variables ${X}_{1},{X}_{2},\cdots ,{X}_{n}$ is said to functionally determine another variable $Y$ if and only if each potential tuple of values of ${X}_{1},{X}_{2},\cdots ,{X}_{n}$ is associated with exactly one potential value of $Y$ (i.e., $Y$ is a function of ${X}_{1},{X}_{2},\cdots ,{X}_{n}$). For each constraint we indicate whether its functional dependency is defined in intention or in extension. We also indicate which variable $\mathrm{var}$ is determined by the functional dependency. Within the Arg. properties slot of a constraint that mentions the functional dependency keyword, we also mention which variables determine $\mathrm{var}$.

Finally, the keyword Pure functional dependency provides the list of constraints that are only defined by one or several functional dependencies. For instance the $\mathrm{𝚗𝚟𝚊𝚕𝚞𝚎}$$\left(n,〈{v}_{1},{v}_{2},\cdots ,{v}_{m}\right)$ constraint is only defined in term of a functional dependency (i.e., $n$ is equal to the number of distinct values in ${v}_{1},{v}_{2},\cdots ,{v}_{m}$), while the $\mathrm{𝚝𝚛𝚎𝚎}$$\left(n,〈{\mathrm{𝑛𝑜𝑑𝑒}}_{1},{\mathrm{𝑛𝑜𝑑𝑒}}_{2},\cdots ,{\mathrm{𝑛𝑜𝑑𝑒}}_{m}\right)$ constraint is not only defined in term of a functional dependency since, in addition of counting trees, it also enforces no cycle in the corresponding graph.