Abstract

We establish a tight correspondence between three major complexity classes and simple syntactic restrictions on applicative programs in the simply type lambda calculus with a recurrence operator. The syntactic retrictions considered are: recurrence arguments cannot be passed as computed values (input-driven terms), abstracted higher-order variables can appear at most once (solitary terms), and abstracted variables cannot be eventually nested (separated terms). We show that the functions over word algebras represented by input-driven terms are precisely the poly-time functions (a result akin to [8] (Chapter 24.2)). When input-driven recurrence is permitted over all finite type, the elementary functions are obtained (a result akin to [1]). When terme are further restricted to solitary ones, even recurrence in all finite type yields only the poly-time functions. Finally, separated terms generate exactly the poly-space functions. The interest in the approach discussed here lies in its simplicity: the complexity charaxcterizations are based on restricted use of standard applicative constructs, rather than a syntactic overlay as in ramified recurrence [3,12,15,7,21]. However, approaches based on ramified recurrence are more powerful than simple syntactic control, as well as more conceptually and methodologically coherent. Thus, the two approaches are complementary and of independent interest.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.