摘要:We consider lambda-Y-calculus as a non-interpreted functional programminglanguage: the result of the execution of a program is its normal form that canbe seen as the tree of calls to built-in operations. Weak monadic second-orderlogic (wMSOL) is well suited to express properties of such trees. We give atype system for ensuring that the result of the execution of a lambda-Y-programsatisfies a given wMSOL property. In order to prove soundness and completenessof the system we construct a denotational semantics of lambda-Y-calculus thatis capable of computing properties expressed in wMSOL.