TY - GEN
T1 - What is a pure functional?
AU - Hofmann, Martin
AU - Karbyshev, Aleksandr
AU - Seidl, Helmut
PY - 2010
Y1 - 2010
N2 - Given an ML function f : (int->int)->int how can we rigorously specify that f is pure, i.e., produces no side-effects other than those arising from calling its functional argument? We show that existing methods based on preservation of invariants and relational parametricity are insufficient for this purpose and thus define a new notion that captures purity in the sense that for any functional F that is pure in this sense there exists a corresponding question-answer strategy. This research is motivated by an attempt to prove algorithms correct that take such supposedly pure functionals as input and apply them to stateful arguments in order to inspect intensional aspects of their behaviour.
AB - Given an ML function f : (int->int)->int how can we rigorously specify that f is pure, i.e., produces no side-effects other than those arising from calling its functional argument? We show that existing methods based on preservation of invariants and relational parametricity are insufficient for this purpose and thus define a new notion that captures purity in the sense that for any functional F that is pure in this sense there exists a corresponding question-answer strategy. This research is motivated by an attempt to prove algorithms correct that take such supposedly pure functionals as input and apply them to stateful arguments in order to inspect intensional aspects of their behaviour.
UR - https://www.scopus.com/pages/publications/77955326743
U2 - 10.1007/978-3-642-14162-1_17
DO - 10.1007/978-3-642-14162-1_17
M3 - Conference contribution
AN - SCOPUS:77955326743
SN - 3642141617
SN - 9783642141614
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 199
EP - 210
BT - Automata, Languages and Programming - 37th International Colloquium, ICALP 2010, Proceedings
T2 - 37th International Colloquium on Automata, Languages and Programming, ICALP 2010
Y2 - 6 July 2010 through 10 July 2010
ER -