For each variable, we keep two pieces of data:
the name it was declared with
the element it came from
invariants which may have been declared