code: def register_variable(self, v, key, eternal=True):
          
          if type(key) is not tuple:
              raise TypeError("Variable tracking key must be a tuple")
          if eternal:
              self.eternal_tracked_variables[key] = v
          else:
              self.temporal_tracked_variables = dict(self.temporal_tracked_variables)
              ctrkey = key + (None,)
              ctrval = self.temporal_tracked_variables.get(ctrkey, 0) + 1
              self.temporal_tracked_variables[ctrkey] = ctrval
              tempkey = key + (ctrval,)
              self.temporal_tracked_variables[tempkey] = v
docs: Register a value with the variable tracking system
  
          :param v:       The BVS to register
          :param key:     A tuple to register the variable under
          :parma eternal: Whether this is an eternal variable, default True. If False, an incrementing counter will be
                          appended to the key.