Abstract-Genetic programming is an evolutionary algorithm, which allows performing symbolic regression -the important task of obtaining the analytical form of a model by the data, produced by the model. One of the known problems of genetic programming is expressions' bloating that results in ineffictevely long expressions. To prevent bloating, symbolic simplification of expression is used. We introduce a new approach to simplification in genetic programming, making it a uniform part of the evolutionary process. To do that, we develop a genetic programming on the basis of transofmation rules, similarly to computer algebra systems. We compare our approach with existed solution, and prove its adequacy and effectiviness.