'Ensure that our expression string has variables of the form x_0, x_1,
... x_(N - 1), where N is the length of our inputs.'

def _validate(self):

    (variable_names, _unused) = getExprNames(self._expr, {})
    expr_indices = []
    for name in variable_names:
        if (name == 'inf'):
            continue
        match = _VARIABLE_NAME_RE.match(name)
        if (not match):
            raise ValueError(('%r    is    not    a    valid    variable    name' % name))
        expr_indices.append(int(match.group(2)))
    expr_indices.sort()
    expected_indices = list(range(len(self.inputs)))
    if (expr_indices != expected_indices):
        raise ValueError(('Expected    %s    for    variable    indices,    but    got    %s' % (expected_indices, expr_indices)))
    super(NumericalExpression, self)._validate()
