code: func (s constraintSolver) Solve(ctx sessionctx.Context, conditions []Expression) []Expression {
  	exprs := newExprSet(ctx, conditions)
  	s.fixPoint(ctx, exprs)
  	return exprs.Slice()
  }
docs: // Solve propagate constraint according to the rules in the constraintSolver.