old_contents: class GPModel:
      def __init__(self, args=None, populationSize=None, maxGeneration=None,
              mutateRate=None, eliteRate=None, crossRate=None,
              crossType=None, verifyNum=None, proof=None):
          self.populationSize = populationSize or args.populationSize
          self.maxGeneration = maxGeneration or args.maxGeneration
          self.mutateRate = mutateRate or args.mutateRate
          self.eliteRate = eliteRate or args.eliteRate
          self.crossRate = crossRate or args.crossRate
          self.crossType = crossType or args.crossType
          self.verifyNum = verifyNum or args.verifyNum
          self.proof = proof
  
      def showProp(self):
          print(self.populationSize)
          print(self.maxGeneration)
          print(self.mutateRate)
          print(self.eliteRate)
          print(self.crossRate)
          print(self.crossType)
          print(self.verifyNum)
          print(self.proof)
  
      def initPopulation(self, populationSize):
          pass
  
      def initProcess(self):
          self.currentGeneration = 0
  
      def nextGeneration(self):
          self.currentGeneration += 1
  
      def start(self):
          self.initPopulation(self.populationSize)
          self.initProcess()
          while (True):
              if (self.currentGeneration > self.maxGeneration):
                  break;
              self.calculateFitness()
              self.cross()
              self.mutate()
              self.nextGeneration()
  
  
new_contents: from gene import Gene
  
  class GPModel:
      def __init__(self, args=None, populationSize=None, maxGeneration=None,
              mutateRate=None, eliteRate=None, crossRate=None,
              crossType=None, verifyNum=None, proof=None):
          self.populationSize = populationSize or args.populationSize
          self.maxGeneration = maxGeneration or args.maxGeneration
          self.mutateRate = mutateRate or args.mutateRate
          self.eliteRate = eliteRate or args.eliteRate
          self.crossRate = crossRate or args.crossRate
          self.crossType = crossType or args.crossType
          self.verifyNum = verifyNum or args.verifyNum
          self.proof = proof
  
      def showProp(self):
          print(self.populationSize)
          print(self.maxGeneration)
          print(self.mutateRate)
          print(self.eliteRate)
          print(self.crossRate)
          print(self.crossType)
          print(self.verifyNum)
          print(self.proof)
  
      def initPopulation(self, populationSize):
          pass
  
      def initProcess(self):
          self.currentGeneration = 0
  
      def nextGeneration(self):
          self.currentGeneration += 1
  
      def calculateFitness(self):
          pass
  
      def cross(self):
          pass
  
      def mutate(self):
          pass
  
      def start(self):
          self.initPopulation(self.populationSize)
          self.initProcess()
          while (True):
              if (self.currentGeneration > self.maxGeneration):
                  break;
              self.calculateFitness()
              self.cross()
              self.mutate()
              self.nextGeneration()
  
  
subject: add calulateFitness, cross, mutate method in gp/model