code: def _display_expression(self, keys, user_substitutes={}):
          
          # Create some pretty maths symbols for the display.
          sigma, alpha, nu, omega, l, variance = sym.var('\sigma, \alpha, \nu, \omega, \ell, \sigma^2')
          substitutes = {'scale': sigma, 'shape': alpha, 'lengthscale': l, 'variance': variance}
          substitutes.update(user_substitutes)
  
          function_substitutes = {normcdfln : lambda arg : sym.log(normcdf(arg)),
                                  logisticln : lambda arg : -sym.log(1+sym.exp(-arg)),
                                  logistic : lambda arg : 1/(1+sym.exp(-arg)),
                                  erfcx : lambda arg : erfc(arg)/sym.exp(arg*arg),
                                  gammaln : lambda arg : sym.log(sym.gamma(arg))}
          expr = getFromDict(self.expressions, keys)
          for var_name, sub in self.variable_sort(self.expressions['update_cache'], reverse=True):
              for var in self.variables['cache']:
                  if var_name == var.name:
                      expr = expr.subs(var, sub)
                      break
          for var_name, sub in self.variable_sort(self.expressions['parameters_changed'], reverse=True):
              for var in self.variables['sub']:
                  if var_name == var.name:
                      expr = expr.subs(var, sub)
                      break
  
          for var_name, sub in self.variable_sort(substitutes, reverse=True):
              for var in self.variables['theta']:
                  if var_name == var.name:
                      expr = expr.subs(var, sub)
                      break
          for m, r in function_substitutes.items():
              expr = expr.replace(m, r)#normcdfln, lambda arg : sym.log(normcdf(arg)))
          return expr.simplify()
docs: Helper function for human friendly display of the symbolic components.