Confuso sobre a subtipagem de funções

Estou fazendo um curso sobre linguagens de programação e a resposta para "quando uma função é um sub-tipo de outra função" é muito contra-intuitiva para mim.

Para esclarecer: suponha que temos a seguinte relação de tipos:

bool<int<real

Por que a função(real->bool) um subtipo de(int->bool) Não deveria ser o contrário?

Eu esperaria que os critérios para as funções de sub-digitação fossem: f1 é um subtipo de f2 se f2 puder pegar qualquer argumento que f1 possa tomar, e f1 retorne apenas valores que f2 retorne. Existem claramente valores que f1 pode aceitar, mas f2 não pode.

questionAnswers(3)

yourAnswerToTheQuestion