30 research outputs found
An extended interval temporal logic and a framing technique for temporal logic programming
PhD ThesisTemporal logic programming is a paradigm for specification and verification of concurrent programs
in which a program can be written, and the properties of the program can be described
and verified in a same notation. However, there are many aspects of programming in temporal
logics that are not well-understood. One such an aspect is concurrent programming, another is
framing and the third is synchronous communication for parallel processes.
This thesis extends the original Interval Temporal Logic (ITL) to include infinite models,
past operators, and a new projection operator for dealing with concurrent computation, synchronous
communication, and framing in the context of temporal logic programming.
The thesis generalizes the original ITL to include past operators such as previous and past
chop, and extends the model to include infinite intervals. A considerable collection of logic laws
regarding both propositional and first order logics is formalized and proved within model theory.
After that, a subset of the extended ITL is formalized as a programming language, called
extended Tempura. These extensions, as in their logic basis, include infinite models, the previous
operator, projection and framing constructs. A normal form for programs within the extended
Tempura is demonstrated.
Next, a new projection operator is introduced. In the new construct, the sub-processes are
autonomous; each process has the right to specify its own interval over which it is executed.
The thesis presents a framing technique for temporal logic programming, which includes the
definitions of new assignments, the assignment flag and the framing operator, the formalization
of algebraic properties of the framing operator, the minimal model semantics of framed programs,
as well as an executable framed interpreter.
The synchronous communication operator await is based directly on the proposed framing
technique. It enables us to deal with concurrent computation. Based on EITL and await
operator, a framed concurrent temporal logic programming language, FTLL, is formally defined
within EITL.
Finally, the thesis describes a framed interpreter for the extended Tempura which has been
developed in SICSTUS prolog. In the new interpreter, the implementation of new assignments,
the frame operator, the await operator, and the new projection operator are all included
Summer faculty fellowship program, 1984
Since 1964, the National Aeronautics and Space Administration (NASA) has supported a program of summer faculty fellowships for engineering and science educators. In a series of collaborations between NASA research and development centers and nearby universities, engineering faculty members spend 10 or 11 weeks working with professional peers on research. The Summer Faculty Program Committee of the American Society of Engineering Education supervises the programs. Objectives: (1) to further the professional knowledge of a qualified between participants and NASA; (3) to enrich and refresh the research and teaching activities of participants institutions; and (4) to contribute to the research objectives of the NASA center. Program Description: College or university faculty members will be appointed as research fellows to spend 10 weeks in cooperative research and study at the NASA-Langley Research Center. The fellow will devote approximately 90 percent of the time to a research problem and the remaining time to a study program. The study program will consist of lectures and seminars on topics of general interest or that are directly relevant to the fellow's research project. The lecturers and seminar leaders will be distinguished scientists and engineers from NASA, education, or industry
Automated Validation of State-Based Client-Centric Isolation with TLA <sup>+</sup>
Clear consistency guarantees on data are paramount for the design and implementation of distributed systems. When implementing distributed applications, developers require approaches to verify the data consistency guarantees of an implementation choice. Crooks et al. define a state-based and client-centric model of database isolation. This paper formalizes this state-based model in, reproduces their examples and shows how to model check runtime traces and algorithms with this formalization. The formalized model in enables semi-automatic model checking for different implementation alternatives for transactional operations and allows checking of conformance to isolation levels. We reproduce examples of the original paper and confirm the isolation guarantees of the combination of the well-known 2-phase locking and 2-phase commit algorithms. Using model checking this formalization can also help finding bugs in incorrect specifications. This improves feasibility of automated checking of isolation guarantees in synthesized synchronization implementations and it provides an environment for experimenting with new designs.</p
Theory and tool support for the formal verification of cryptographic protocols
Cryptographic protocols are an essential component of network communications. Despite their relatively small size compared to other distributed algorithms, they are known to be error-prone. This is due to the obligation to behave robustly in the context of unknown hostile attackers who might want to act against the security objectives of the jointly interacting entities. The need for techniques to verify the correctness of cryptographic protocols has stimulated the development of new frameworks and tools during the last decades. Among the various models is the spi calculus: a process calculus which is an extension of the pi calculus that incorporates cryptographic primitives. Process calculi such as the spi calculus offer the possibility to describe in a precise and concise way distributed algorithms such as cryptographic protocols. Moreover, spi calculus offers an elegant way to formalise some security properties of cryptographic protocols via behavioural equivalences. At the time this thesis began, this approach lacked tool support. Inspired by the situation in the pi calculus, we propose a new notion of behavioural equivalence for the spi calculus that is close to an algorithm. Besides, we propose a "coq" formalisation of our results that not only validates our theoretical developments but also will eventually be the basis of a certified tool that would automate equivalence checking of spi calculus terms. To complete the toolchain, we propose a formal semantics for an informal notation to describe cryptographic protocols, so called protocol narrations. We give a rigorous procedure to translate protocol narrations into spi calculus terms; this constitutes the foundations of our automatic translation tool "spyer"
Programming with Specifications
This thesis explores the use of specifications for the construction of correct programs. We go beyond their standard use as run-time assertions, and present algorithms, techniques and implementations for the tasks of 1) program verification, 2) declarative programming and 3) software synthesis. These results are made possible by our advances in the domains of decision procedure design and implementation. In the first part of this thesis, we present a decidability result for a class of logics that support user-defined recursive function definitions. Constraints in this class can encode expressive properties of recursive data structures, such as sortedness of a list, or balancing of a search tree. As a result, complex verification conditions can be stated concisely and solved entirely automatically. We also present a new decision procedure for a logic to reason about sets and constraints over their cardinalities. The key insight lies in a technique to decompose con- straints according to mutual dependencies. Compared to previous techniques, our algorithm brings significant improvements in running times, and for the first time integrates reasoning about cardinalities within the popular DPLL(T ) setting. We integrated our algorithmic ad- vances into Leon, a static analyzer for functional programs. Leon can reason about constraints involving arbitrary recursive function definitions, and has the desirable theoretical property that it will always find counter-examples to assertions that do not hold. We illustrate the flexibility and efficiency of Leon through experimental evaluation, where we used it to prove detailed correctness properties of data structure implementations. We then illustrate how program specifications can be used as a high-level programming construct ; we present Kaplan, an extension of Scala with first-class logical constraints. Kaplan allows programmers to create, manipulate and combine constraints as they would any other data structure. Our implementation of Kaplan illustrates how declarative programming can be incorporated into an existing mainstream programming language. Moreover, we examine techniques to transform, at compile-time, program specifications into efficient executable code. This approach of software synthesis combines the correctness benefits of declarative programming with the efficiency of imperative or functional programming
Arquitectura multiagente para E/S de alto rendimiento en clusters
La E/S constituye en la actualidad uno de los principales cuellos de botella de los sistemas distribuidos
de propósito general, debido al desequilibrio existente entre el tiempo de cómputo y de E/S. Una de
las soluciones propuestas para este problema ha sido el uso de la E/S paralela. En esta área, se han
originado un gran número de bibliotecas de E/S paralela y sistemas de ficheros paralelos.
Este tipo de sistemas adolecen de algunos defectos y carencias. Muchos de ellos están concebidos
para máquinas paralelas y no se integran adecuadamente en entornos distribuidos y clusters. El uso
intensivo de clusters de estaciones de trabajo durante estos últimos años hace que este tipo de sistemas
no sean adecuados en el escenario de computación actual.
Otros sistemas, que se adaptan a este tipo de entornos, no incluyen capacidades de reconfiguración
dinámica, por lo que tienen una funcionalidad limitada.
Por último, la mayorÃa de los sistemas de E/S que utilizan diferentes optimizaciones de E/S, no
ofrecen flexibilidad a las aplicaciones para hacer uso de las mismas, intentando ocultar al usuario
este tipo de técnicas. No obstante, a fin de optimizar las operaciones de E/S, es importante que las
aplicaciones sean capaces de describir sus patrones de acceso, interactuando con el sistema de E/S.
En otro ámbito, dentro del área de los sistemas distribuidos se encuentra el paradigma de agentes,
que permite dotar a las aplicaciones de un conjunto de propiedades muy adecuadas para su adaptación
a entornos complejos y dinámicos. Las caracterÃsticas de este paradigma lo hacen a priori prometedor
para abordar algunos de los problemas existentes en el campo de la E/S paralela.
Esta tesis propone una solución a la problemática actual de E/S a través de tres lÃneas principales:
(i) el uso de la teorÃa de agentes en sistemas de E/S de alto rendimiento, (ii) la definición de un
formalismo que permita la reconfiguración dinámica de nodos de almacenamiento en un cluster y
(iii) el uso de técnicas de optimización de E/S configurables y orientadas a las aplicaciones
Cognitive assistance in intelligent environments
Tese de doutoramento em Engenharia BiomédicaCurrently society responds badly to some social issues. One of the problems lies on the society concept
itself. The common pyramid describing the social strata does not reflect the new social reality, given
that the elderly strata largely exceed the teenage strata. This fact also implies a change in terms of
social and medical needs. Thus, a great number of medical services should be adapted to respond to
the needs of the elderly people. In fact, any common family cannot take care of an elderly person and,
in many cases they cannot also afford the required medical care. Having less time, and often, less
money, a family cannot have their older relatives in their homes. In addition, the necessary support
required to overcome the elderly limitations, makes it even more difficult. One solution could be that
elderly people go to nursing homes or care centers. However, due to the overgrowth of the elderly
community, geriatric units are not enough to take care of all those people. As a solution, technology can
provide wellbeing and assistance in the elderly everyday life through personalized services at low cost.
This thesis presents a cognitive assistant platform, named iGenda. A cognitive assistant provides
numerous user oriented services, and it ubiquitously and transparently interacts directly with the user.
Therefore, this research work has as motto: impacting the user’s life without causing an impact. It
means that the platform aim is to influence the user’s life, by providing a greater quality of life, without
being too complex to use.
The answers to our society’s social and technological challenges are provided by the development of a
platform that is intuitive to the user, cheap and able to be integrated in an Ambient Assisted Living
ecosystem. Thus, this thesis presents a multi-agent, platform-independent architecture capable of
intelligent scheduling. Being the cognitive assistant implemented in four case studies, namely: a sensor
platform, a digital clinical guideline system, an orientation system based on augmented reality, and a
fall detection application. These case studies validate the social and technological challenges, therefore
the iGenda too. This is due to the complete integration with other systems, without major changes of
the architecture and archetype.Atualmente, a sociedade debate-se com um problema para o qual não há uma solução simples. O
problema reside na própria sociedade, mais especificamente no seu conceito. A pirâmide populacional
clássica não retrata a sociedade como é atualmente, sendo que o número de idosos ultrapassa o
número de jovens. Ora, este facto acarreta uma mudança nas necessidades sociais e cuidados
médicos. Deste modo, um grande número de serviços médicos têm que ser reajustados para as
necessidades das pessoas mais idosas. Com menos tempo e frequentemente sem dinheiro, a famÃlia
não é capaz de ter um idoso na sua casa. Tendo em conta as limitações das pessoas idosas em
termos de saúde, a incapacidade de assistir uma pessoa idosa é ainda maior. Uma possÃvel solução é
colocar os idosos em casas de repouso ou centros geriátricos. Contudo, devido ao crescimento da
comunidade idosa, não existem unidades geriátricas suficientes para todas as pessoas. A tecnologia
pode providenciar assistência e bem-estar na vida cotidiana de uma pessoa idosa, através de serviços
personalizados de baixo custo, servindo como uma possÃvel resposta aos problemas apresentados.
Nesta tese apresenta-se o iGenda, como uma plataforma de desenvolvimento de assistentes cognitivos.
Um assistente cognitivo que assegura vários serviços orientados ao utilizador, interagindo com o
utilizador de forma ubÃqua e transparente. Este trabalho de investigação tem como lema: mudar a vida
do utilizador sem o mudar. Isto significa que a plataforma tem como objetivo mudar a vida do
utilizador, ao proporcionar uma maior qualidade de vida, sem que o utilizador tenha dificuldade a
adaptar-se ou a utilizar a plataforma. As respostas para os desafios sociais e tecnológicos apresentados pela nossa sociedade são fornecidas
pelo desenvolvimento de uma plataforma intuitiva, barata e capaz de ser integrada num ecossistema
de Ambient Assisted Living. Deste modo, o processo de agendamento inteligente é assegurado por uma
arquitetura multiagente e independente de plataformas, apresentada nesta tese. Sendo que o
assistente cognitivo é implementado em quatro casos de estudo: uma plataforma de sensores, um
sistema digital de guias clÃnicos, um sistema de orientação baseado em realidade aumentada e um
sistema de deteção de quedas. Estes casos de estudo validam os desafios sociais e tecnológicos,
portanto validando também o iGenda. Isto verifica-se com a integração completa com outros sistemas,
sem muitas alterações à arquitetura ou ao arquétip