# Path: calculus/variable.py
# class GeneralizedVariable:
# class Variable(GeneralizedVariable):
# class StringVariable(Variable):
# class ApplySymbolVariable(GeneralizedVariable):
# class ProductVariable(GeneralizedVariable):
#   def simplify(self):
#   def render(self):
#   def applied_variables(self):
#   def relatedVariable(self):
#   def __init__(self):
#   def _generate_id(self):
#   def updateVariables(self):
#   def __eq__(self, other):
#   def __ne__(self, other):
#   def __hash__(self):
#   def applied_variables(self):
#   def __repr__(self):
#   def substituteVariable(self, a, b):
#   def freeVariables(self):
#   def __init__(self, name, infix = None):
#   def relatedVariable(self):
#   def render(self):
#   def name(self):
#   def __repr__(self):
#   def updateVariables(self):
# def renderInfix(productVariable, infixSymbols, infixVariable):
#   def __init__(self, variable, symbol):
#   def __eq__(self, other):
#   def applied_variables(self):
#   def __ne__(self, other):
#   def __repr__(self):
#   def updateVariables(self):
#   def substituteVariable(self, a, b):
#   def freeVariables(self):
#   def render(self):
# def colors_for_symbol(symbol):
#   def __init__(self, symbol_variable_pairs):
#   def applied_variables(self):
#   def __eq__(self, other):
#   def __ne__(self, other):
#   def __repr__(self):
#   def updateVariables(self):
#   def substituteVariable(self, a, b):
#   def freeVariables(self):
#   def render(self):
# def renderSymbolVariablePair(s, v, c0, c1):
# def borderStack(dimension, color, a, b, borderWidth):
# def renderSymbol(s):
# def renderStringSymbol(s):
# def renderWithBackground(s, border_width, color):
# 
# Path: calculus/variable.py
# class StringVariable(Variable):
#   # infix: either None, or a pair of symbols (a, b) such that when this variable holds
#   #        of a variable v, v is a product variable over symbols a and b.
#   def __init__(self, name, infix = None):
#     self._generate_id()
#     self._name = name
#     self.infix = infix
# 
#   def relatedVariable(self):
#     return StringVariable(name = self.name() + "'", infix = self.infix)
# 
#   def render(self):
#     return primitives.newTextStack(colors.variableColor, repr(self))
# 
#   def name(self):
#     return self._name
# 
#   def __repr__(self):
#     return self.name()
# 
#   def updateVariables(self):
#     return self.relatedVariable()
# 
# Path: lib/common_symbols.py



from calculus import variable
from calculus.variable import StringVariable
from lib.common_symbols import functionPairsSymbol
# Copyright (C) 2013 Korei Klein <korei.klein1@gmail.com>


p = lambda: StringVariable('p')
n = lambda: StringVariable('n')
m = lambda: StringVariable('m')
h = lambda: StringVariable('h')
k = lambda: StringVariable('k')
t = lambda: StringVariable('t')
q = lambda: StringVariable('q')
r = lambda: StringVariable('r')
s = lambda: StringVariable('s')
l = lambda: StringVariable('l')

a = lambda: StringVariable('a')
b = lambda: StringVariable('b')
c = lambda: StringVariable('c')
d = lambda: StringVariable('d')

# Path: calculus/variable.py
# class GeneralizedVariable:
# class Variable(GeneralizedVariable):
# class StringVariable(Variable):
# class ApplySymbolVariable(GeneralizedVariable):
# class ProductVariable(GeneralizedVariable):
#   def simplify(self):
#   def render(self):
#   def applied_variables(self):
#   def relatedVariable(self):
#   def __init__(self):
#   def _generate_id(self):
#   def updateVariables(self):
#   def __eq__(self, other):
#   def __ne__(self, other):
#   def __hash__(self):
#   def applied_variables(self):
#   def __repr__(self):
#   def substituteVariable(self, a, b):
#   def freeVariables(self):
#   def __init__(self, name, infix = None):
#   def relatedVariable(self):
#   def render(self):
#   def name(self):
#   def __repr__(self):
#   def updateVariables(self):
# def renderInfix(productVariable, infixSymbols, infixVariable):
#   def __init__(self, variable, symbol):
#   def __eq__(self, other):
#   def applied_variables(self):
#   def __ne__(self, other):
#   def __repr__(self):
#   def updateVariables(self):
#   def substituteVariable(self, a, b):
#   def freeVariables(self):
#   def render(self):
# def colors_for_symbol(symbol):
#   def __init__(self, symbol_variable_pairs):
#   def applied_variables(self):
#   def __eq__(self, other):
#   def __ne__(self, other):
#   def __repr__(self):
#   def updateVariables(self):
#   def substituteVariable(self, a, b):
#   def freeVariables(self):
#   def render(self):
# def renderSymbolVariablePair(s, v, c0, c1):
# def borderStack(dimension, color, a, b, borderWidth):
# def renderSymbol(s):
# def renderStringSymbol(s):
# def renderWithBackground(s, border_width, color):
# 
# Path: calculus/variable.py
# class StringVariable(Variable):
#   # infix: either None, or a pair of symbols (a, b) such that when this variable holds
#   #        of a variable v, v is a product variable over symbols a and b.
#   def __init__(self, name, infix = None):
#     self._generate_id()
#     self._name = name
#     self.infix = infix
# 
#   def relatedVariable(self):
#     return StringVariable(name = self.name() + "'", infix = self.infix)
# 
#   def render(self):
#     return primitives.newTextStack(colors.variableColor, repr(self))
# 
#   def name(self):
#     return self._name
# 
#   def __repr__(self):
#     return self.name()
# 
#   def updateVariables(self):
#     return self.relatedVariable()
# 
# Path: lib/common_symbols.py



# Path: lib/common_vars.py
from calculus import variable
from calculus.variable import StringVariable
from lib.common_symbols import functionPairsSymbol

# Copyright (C) 2013 Korei Klein <korei.klein1@gmail.com>


p = lambda: StringVariable('p')
n = lambda: StringVariable('n')
m = lambda: StringVariable('m')
h = lambda: StringVariable('h')
k = lambda: StringVariable('k')
t = lambda: StringVariable('t')
q = lambda: StringVariable('q')
r = lambda: StringVariable('r')
s = lambda: StringVariable('s')
l = lambda: StringVariable('l')

a = lambda: StringVariable('a')
b = lambda: StringVariable('b')
c = lambda: StringVariable('c')
d = lambda: StringVariable('d')

e = lambda: StringVariable('e')