The current formula(roughly) for calculating the CP for a pokemon is as follows
CP = MAX(10, FLOOR(Stamina^0.5 * Attack * Def^0.5 / 10))
I think that the current cp formula is too harmfull to pokemon with high defense and even high hp because they are both square rooted. This basically makes all the pokemon with high attacks have the greatest CP, meaning they can get into gyms higher.
I think they should modify the CP formula to allow for more defensive pokemon to trive and be placed higher in gyms