210,392 research outputs found
Logical Reasoning for Higher-Order Functions with Local State
We introduce an extension of Hoare logic for call-by-value higher-order
functions with ML-like local reference generation. Local references may be
generated dynamically and exported outside their scope, may store higher-order
functions and may be used to construct complex mutable data structures. This
primitive is captured logically using a predicate asserting reachability of a
reference name from a possibly higher-order datum and quantifiers over hidden
references. We explore the logic's descriptive and reasoning power with
non-trivial programming examples combining higher-order procedures and
dynamically generated local state. Axioms for reachability and local invariant
play a central role for reasoning about the examples.Comment: 68 page
Recommended from our members
Names and higher-order functions.
Many functional programming languages rely on the elimination of 'impure' features: assignment to variables, exceptions and even input/output. But some of these are genuinely useful, and it is of real interest to establish how they can be reintroducted in a controlled way. This dissertation looks in detail at one example of this: the addition to a functional language of dynamically generated names. Names are created fresh, they can be compared with each other and passed around, but that is all. As a very basic example of state, they capture the graduation between private and public, local and global, by their interaction with higher-order functions. The vehicle for this study is the nu-calculus, an extension of the simply-typed lambdacalculus. The nu-calculus is equivalent to a certain fragment of Standard ML, omitting side-effects, exceptions, datatypes and recursion. Even without all these features, the interaction of name creation with higher-order functions can be complex and subtle. Various operational and denotational methods for reasoning about the nu-calculus are developed. These include a computational metalanguage in the style of Moggi, which distinguishes in the type system between values and computations. This leads to categorical models that use a strong monad, and examples are devised based on functor categories. The idea of logical relations is used to derive powerful reasoning methods that capture some of the distinction between private and public names. These techniques are shown to be complete for establishing contextual equivalence between first-order expressions; they are also used to construct a correspondingly abstract categorical model. All the work with the nu-calculus extends cleanly to Reduced ML, a larger language that introduces integer references: mutable storage cells that are dynamically allocated. It turns out that the step up is quite simple, and both the computational metalanguage and the sample categorical models can be reused
The VEX-93 environment as a hybrid tool for developing knowledge systems with different problem solving techniques
The paper describes VEX-93 as a hybrid environment for developing
knowledge-based and problem solver systems. It integrates methods and
techniques from artificial intelligence, image and signal processing and
data analysis, which can be mixed. Two hierarchical levels of reasoning
contains an intelligent toolbox with one upper strategic inference engine
and four lower ones containing specific reasoning models: truth-functional
(rule-based), probabilistic (causal networks), fuzzy (rule-based) and
case-based (frames). There are image/signal processing-analysis capabilities
in the form of programming languages with more than one hundred primitive
functions.
User-made programs are embeddable within knowledge basis, allowing the
combination of perception and reasoning. The data analyzer toolbox contains
a collection of numerical classification, pattern recognition and ordination
methods, with neural network tools and a data base query language at
inference engines's disposal.
VEX-93 is an open system able to communicate with external computer programs
relevant to a particular application. Metaknowledge can be used for
elaborate conclusions, and man-machine interaction includes, besides windows
and graphical interfaces, acceptance of voice commands and production of
speech output.
The system was conceived for real-world applications in general domains, but
an example of a concrete medical diagnostic support system at present under
completion as a cuban-spanish project is mentioned.
Present version of VEX-93 is a huge system composed by about one and half
millions of lines of C code and runs in microcomputers under Windows 3.1.Postprint (published version
Platonic model of mind as an approximation to neurodynamics
Hierarchy of approximations involved in simplification of microscopic theories, from sub-cellural to the whole brain level, is presented. A new approximation to neural dynamics is described, leading to a Platonic-like model of mind based on psychological spaces. Objects and events in these spaces correspond to quasi-stable states of brain dynamics and may be interpreted from psychological point of view. Platonic model bridges the gap between neurosciences and psychological sciences. Static and dynamic versions of this model are outlined and Feature Space Mapping, a neurofuzzy realization of the static version of Platonic model, described. Categorization experiments with human subjects are analyzed from the neurodynamical and Platonic model points of view
Step-Indexed Logical Relations for Probability (long version)
It is well-known that constructing models of higher-order probabilistic
programming languages is challenging. We show how to construct step-indexed
logical relations for a probabilistic extension of a higher-order programming
language with impredicative polymorphism and recursive types. We show that the
resulting logical relation is sound and complete with respect to the contextual
preorder and, moreover, that it is convenient for reasoning about concrete
program equivalences. Finally, we extend the language with dynamically
allocated first-order references and show how to extend the logical relation to
this language. We show that the resulting relation remains useful for reasoning
about examples involving both state and probabilistic choice.Comment: Extended version with appendix of a FoSSaCS'15 pape
- …