Confundido sobre el subtipo de funciones.

Estoy tomando un curso sobre lenguajes de programación y la respuesta a "cuándo es una función un subtipo de otra función" es muy poco intuitiva para mí.

Para aclarar: supongamos que tenemos la siguiente relación de tipo:

bool<int<real

Por que es la funcion(real->bool) un subtipo de(int->bool)? ¿No debería ser al revés?

Espero que los criterios para las funciones de sub escritura sean: f1 es un subtipo de f2 si f2 puede tomar cualquier argumento que f1 pueda tomar, y f1 solo devuelve los valores que f2 devuelve. Claramente hay valores que f1 puede tomar, pero f2 no ​​puede.

Respuestas a la pregunta(3)

Su respuesta a la pregunta