This paper explores two topics at once: the use of denotational semantics to bound the evaluation length of functional programs, and the semantics of strong (that is, possibly under abstractions) call-by-value evaluation.About the first, we analyze de Carvalho's seminal use of relational semantics for bounding the evaluation length of λ-terms, starting from the presentation of the semantics as an intersection types system. We focus on the part of his work which is usually neglected in its many recent adaptations, despite being probably the conceptually deeper one: how to transfer the bounding power from the type system to the relational semantics itself. We dissect this result and re-understand it via the isolation of a simpler size representation property.About the second, we use relational semantics to develop a semantical study of strong call-by-value evaluation, which is both a delicate and neglected topic. We give a semantic characterization of terms normalizable with respect to strong evaluation, providing in particular the first result of adequacy with respect to strong call-by-value. Moreover, we extract bounds about strong evaluation from both the type systems and the relational semantics.Essentially, we use strong call-by-value to revisit de Carvalho's semantic bounds, and de Carvalho's technique to provide semantical foundations for strong call-by-value.
B. The Semantics of Strong Call-by-ValuePlotkin's call-by-value λ-calculus [44] is at the heart of programming languages such as OCaml and proof assistants such as Coq. In the study of programming languages, call-by-value (CbV) evaluation is usually weak, that is, it does not reduce under abstractions, and terms are assumed to be closed, i.e., without free variables. These constraints give rise to an elegant framework-we call it Closed CbV, following [8].It often happens, however, that one needs to go beyond Closed CbV by considering Strong CbV, which is the extended setting where reduction under abstractions is allowed and terms may be open, or the intermediate framework of Open CbV, where evaluation is weak but terms are not necessarily closed. The need arises, most notably, when describing the implementation model of Coq, as done by Grégoire and Leroy [28], to realize the essential conversion test for dependent types. Other motivations lie in the study of bisimulations by Lassen [37], partial evaluation [34], or various topics of a semantical or logical nature, recalled below.Naïve Extension of CbV. In call-by-name (CbN) turning to open terms or strong evaluation is harmless because CbN does not impose any special form to the arguments of β-redexes. On the contrary, turning to Open or Strong CbV is delicate. While some fundamental properties such as confluence and standardization hold also in such cases, as showed by Plotkin's himself [44], others-typically of a semantical nature-break as soon as one considers open terms.The problems of Strong CbV can be traced back to Plotkin's seminal paper, where he points out the incompleteness of CbV with respe...