Jeśli masz dwie funkcje implementujące inny algorytm sortowania, to czy można na podstawie kodu źródłowego wnioskować, że obie mają takie same właściwości zewnętrzne? Czy to znaczy, że oboje będą mieć możliwą nieposortowaną sekwencję jako dane wejściowe i posortowaną sekwencję jako dane wyjściowe? W jaki sposób te właściwości zewnętrzne mogą być określone przez kod źródłowy? A jak opisałbyś te właściwości zewnętrzne? Jaka notacja zostanie zastosowana?
Zewnętrzne właściwości można podać, definiując je jawnie, na przykład w systemie typów, ale zastanawiam się, czy można to zrobić niejawnie. Czy też teoretycznie niemożliwe jest wnioskowanie o tego rodzaju semantyce? Interesuje mnie, czy jest to możliwe w przypadku dowolnych funkcji, a nie tylko algorytmów sortowania, zakładając, że takie funkcje jak zawsze będą się zatrzymywać i nie będą miały żadnych skutków ubocznych.
Czy powinienem patrzeć na semantykę denotacyjną, czy też nie jest ze sobą powiązany?
Interesują mnie wskaźniki do badań w tej dziedzinie oraz różne terminy używane do opisania tematu, które mogą pomóc w wyszukiwaniu literatury.