A. Abel & T. Altenkirch (2002):
A Predicative Analysis of Structural Recursion.
Journal of Functional Programming 12(1),
doi:10.1017/S0956796801004191.
Patrick Baillot & Kazushige Terui (2009):
Light types for polynomial time computation in lambda calculus.
Information and Computation 207(1),
pp. 41–62,
doi:10.1016/j.ic.2008.08.005.
S. Bellantoni & S. Cook (1992):
A new recursion-theoretic characterization of the poly-time functions.
Computational Complexity 2,
doi:10.1007/BF01201998.
A. Cobham (1962):
The intrinsic computational difficulty of functions.
In: Y. Bar-Hillel: CLMPS,
doi:10.2307/2270886.
John Cocke (1970):
Global Common Subexpression Elimination.
SIGPLAN Not. 5(7),
doi:10.1145/390013.808480.
M. Hofmann (1999):
Linear types and Non-Size Increasing polynomial time computation.
In: LICS,
pp. 464–473,
doi:10.1109/LICS.1999.782641.
Neil D. Jones & Lars Kristiansen (2009):
A flow calculus of mwp-bounds for complexity analysis.
Trans. Comp. Logic 10(4),
pp. 28:1–28:41,
doi:10.1145/1555746.1555752.
L. Kristiansen:
Notes on Code Motion.
Manuscript.
D. J. Kuck, R. H. Kuhn, D. A. Padua, B. Leasure & M. Wolfe (1981):
Dependence Graphs and Compiler Optimizations.
In: POPL,
doi:10.1145/567532.567555.
C. S. Lee, N. D. Jones & A. M. Ben-Amram (2001):
The Size-Change Principle for Program Termination.
In: POPL,
doi:10.1145/360204.360210.
Litong Song, Yoshihiko Futurama, Robert Glück & Zhenjiang Hu (2000):
A Loop Optimization Technique Based on Quasi-Invariance,
pp. 80–90,
doi:10.1.1.17.8939.