Se hai due funzioni che implementano un diverso algoritmo di ordinamento, è possibile dedurre dal codice sorgente che entrambe hanno le stesse proprietà esterne? Significa che entrambi avranno una possibile sequenza non ordinata come input e avranno una sequenza ordinata come output? In che modo queste proprietà esterne possono essere determinate dal codice sorgente? E come descriveresti queste proprietà esterne? Quale notazione verrebbe usata?
Le proprietà esterne potrebbero essere rese note definendole esplicitamente, ad esempio all'interno di un sistema di tipi, ma mi chiedo se ciò possa essere fatto in modo implicito. O è in qualche modo teoricamente impossibile dedurre questo tipo di semantica? Mi interessa sapere se ciò è possibile per funzioni arbitrarie, non solo per gli algoritmi di ordinamento, supponendo che cose come le funzioni si fermino sempre e non abbiano effetti collaterali.
Dovrei guardare la semantica denotazionale o non è correlata?
Sono interessato ai suggerimenti per la ricerca in questo settore e ai diversi termini usati per descrivere l'argomento che potrebbe aiutare la mia ricerca letteraria.