of variables, denoted ($x,y,z,\ldots$)

$L$, the finite set of attributes, also called features, denoted ($f,g,h,\ldots$)

An [*$f$-edge*]{} from $x$ to $s$ is a triple $(x,f,s)$ such that $x$ is a variable, $f$ is an attribute, and $s$ is a constant or a variable. A [*path*]{}, $p$, is a, possibly empty, sequence of $f$-edges $(x_1,f_1,x_2),(x_2,f_2,x_3),\ldots,(x_{n},f_n,s)$ in which the $x_i$ are variables and $s$ is either a variable or a constant. Often a path is denoted by the sequence of its edges’ attributes, in reversed order, e.g., $p = f_n\ldots f_1$. Let $p$ be a path, $ps$ denotes the path that starts from $s$, where $s$ is a constant only if $p$ is the empty path. If the path is nonempty, $p = f_n\ldots f_1 \;(n geq 1)$, then $s$ is a variable. For paths $ps$ and $qt$ we write $ps\doteq qt$ iff $p$ and $q$ start in $s$ and $t$ respectively and end in the same variable or constant. The expression $ps\doteq qs$ is called a [*path equation*]{}. A [*feature graph*]{} is either a pair $(a,\emptyset)$, or a pair $(x,E)$ where $x$ is the root and $E$ a finite set of $f$-edges such that:

1.  if $(y,f,s)$ and $(y,f,t)$ are in 