Прежде всего, терминология: это «Ада», а не «АДА» - она названа в честь «Ада Лавлейс»; это не аббревиатура.
Подтип совместим с его базовым типом, поэтому вы можете смешивать операнды базового типа с операндами базового типа. Например:
subtype Week_Days is Integer range 1..7;
Поскольку это подтип, вы можете (например) добавить 1
к рабочему дню, чтобы получить следующий рабочий день.
Производный тип - это совершенно отдельный тип, имеющий те же характеристики, что и его базовый тип. Вы не можете смешивать операнды производного типа с операндами базового типа. Если, например, вы использовали:
type Week_Day is new Integer range 1..7;
Тогда вы бы не смогли бы добавить целое число в день недели, чтобы получить другой день недели. Чтобы делать манипуляции с производным типом, вы обычно определяете эти манипуляции самостоятельно (например, создаете пакет). В то же время, производный тип «наследует» все операции своего базового типа (даже те, которые могут не иметь смысла), поэтому вы все равно получаете дополнение.