'An interpretation function.
Assuming that ``parsed`` is atomic:
- if ``parsed`` is a non-logical constant, calls the valuation *V*
- else if ``parsed`` is an individual variable, calls assignment *g*
- else returns ``Undefined``.
:param parsed: an ``Expression`` of ``logic``.
:type g: Assignment
:param g: an assignment to individual variables.
:return: a semantic value'

def i(self, parsed, g, trace=False):

    if (parsed.variable.name in self.valuation.symbols):
        return self.valuation[parsed.variable.name]
    elif isinstance(parsed, IndividualVariableExpression):
        return g[parsed.variable.name]
    else:
        raise Undefined((u"Can't    find    a    value    for    %s" % parsed))
