3,229 research outputs found
A Refinement Calculus for Logic Programs
Existing refinement calculi provide frameworks for the stepwise development
of imperative programs from specifications. This paper presents a refinement
calculus for deriving logic programs. The calculus contains a wide-spectrum
logic programming language, including executable constructs such as sequential
conjunction, disjunction, and existential quantification, as well as
specification constructs such as general predicates, assumptions and universal
quantification. A declarative semantics is defined for this wide-spectrum
language based on executions. Executions are partial functions from states to
states, where a state is represented as a set of bindings. The semantics is
used to define the meaning of programs and specifications, including parameters
and recursion. To complete the calculus, a notion of correctness-preserving
refinement over programs in the wide-spectrum language is defined and
refinement laws for developing programs are introduced. The refinement calculus
is illustrated using example derivations and prototype tool support is
discussed.Comment: 36 pages, 3 figures. To be published in Theory and Practice of Logic
Programming (TPLP
Parkin interacts with Ambra1 to induce mitophagy
Mutations in the gene encoding Parkin are a major cause of recessive Parkinson's disease. Recent work has shown that Parkin translocates from the cytosol to depolarized mitochondria and induces their autophagic removal (mitophagy). However, the molecular mechanisms underlying Parkin-mediated mitophagy are poorly understood. Here, we investigated whether Parkin interacts with autophagy-regulating proteins. We purified Parkin and associated proteins from HEK293 cells using tandem affinity purification and identified the Parkin interactors using mass spectrometry. We identified the autophagy-promoting protein Ambra1 (activating molecule in Beclin1-regulated autophagy) as a Parkin interactor. Ambra1 activates autophagy in the CNS by stimulating the activity of the class III phosphatidylinositol 3-kinase (PI3K) complex that is essential for the formation of new phagophores. We found Ambra1, like Parkin, to be widely expressed in adult mouse brain, including midbrain dopaminergic neurons. Endogenous Parkin and Ambra1 coimmunoprecipitated from HEK293 cells, SH-SY5Y cells, and adult mouse brain. We found no evidence for ubiquitination of Ambra1 by Parkin. The interaction of endogenous Parkin and Ambra1 strongly increased during prolonged mitochondrial depolarization. Ambra1 was not required for Parkin translocation to depolarized mitochondria but was critically important for subsequent mitochondrial clearance. In particular, Ambra1 was recruited to perinuclear clusters of depolarized mitochondria and activated class III PI3K in their immediate vicinity. These data identify interaction of Parkin with Ambra1 as a key mechanism for induction of the final clearance step of Parkin-mediated mitophagy
Tool Support for Testing Java Monitors
The Java programming language supports monitors. Monitor implementations, like other concurrent programs, are hard to test due to the inherent non-determinism. This paper presents the ConAn (Concurrency Analyser) tool for generating drivers for the testing of Java monitors. To obtain adequate controllability over the interactions between Java threads, the generated driver contains processes that are synchronized by a clock. The driver automatically executes the calls in the test sequence in the prescribed order and compares the outputs against the expected outputs specified in the test sequence. The method and tool are illustrated in detail on an asymmetric producer-consumer monitor, and their application to two other monitors is discussed
Exploring model-based development for the verification of real-time Java code
Many safety- and security-critical systems are real-time systems and, as a result, tools and techniques for verifying real-time systems are extremely important. Simulation and testing such systems can be exceedingly time-consuming and these techniques provide only probabilistic measures of correctness. There are a number of model-checking tools for real-time systems. However, they provide formal verification for models, not programs. To increase the confidence in real-time programs written in real-time Java, this paper takes a modelling approach to the design of such programs. First, models can be mechanically verified, to check whether they satisfy particular properties, by using current real-time model-checking tools. Then, programs are derived from the model by following a systematic approach. To illustrate the approach we use a nontrivial example: a gear controller
Neurodegeneration: From cellular concepts to clinical applications
Developing therapies for neurodegenerative diseases will require new scientific approaches that take into account the detrimental effects of altered protein and RNA homeostasis on brain cells, the vulnerabilities of various organelles in certain diseases and aging neurons, and the complex multicellular interactions of the nervous system
A Case Study in Testing Distributed Systems
This paper describes a case study in the testing of distributed systems. The software under test is a middleware system developed in Java. The full test lifecycle is examined including unit testing, integration testing, and system testing. Where possible, traditional tools and techniques are used to carry out the testing. One aspect where this is not possible is the testing of the low-level concurrency, which is often overlooked when testing commercial distributed systems, since the middleware or application server is already developed by a third-party and is assumed to operate correctly. This paper examines testing the middleware system itself, and therefore, a method for testing the concurrency properties of the system is used. The testing revealed a number of faults and design weaknesses, and showed that, with some adaptation, traditional tools and techniques go a long way in the testing of distributed applications
A Declarative Semantics for Logic Program Refinement
The refinement calculus provides a framework for the stepwise development of imperative programs from specifications. This paper presents a semantics for a refinement calculus for deriving logic programs. The calculus contains a wide-spectrum logic programming language, including executable constructs such as sequential conjunction, disjunction, and existential quantification, as well as specifications constructs (general predicates and assumptions) and universal quantification. A semantics is defined for this wide-spectrum language based on {\em executions}, which are partial functions from states to states, where a state is represented as a set of bindings. This execution semantics is used to define the meaning of programs and specifications, including parameters and recursion. To complete the calculus, a notion of correctness-preserving refinement over programs in the wide-spectrum language is defined and a refinement law for introducing recursive procedures is presented
Tool support for statistical testing of software components
We describe the "STSC" prototype tool that supports the statistical testing of software components. The tool supports a wide range of operational profiles and test oracles for test case generation and output evaluation. The tool also generates appropriate values for different types of input parameters of operations. STSC automatically generates a test driver from an operational profile. This test driver invokes a test oracle that is implemented as a behaviour-checking version of the implementation. To evaluate the flexibility and usability of the tool, it has been applied to several case studies using different types of operational profiles and test oracles
Systematic Operational Profile Development for Software Components
An operational profile is a quantification of the expected use of a system. Determining an operational profile for software is a crucial and difficult part of software reliability assessment in general and it can be even more difficult for software components. This paper presents a systematic method for deriving an operational profile for software components. The method uses both actual usage data and intended usage assumptions to derive a usage structure, usage distribution and characteristics of parameters (including relationships between parameters). A usage structure represents the flow and interaction of operation calls. Statecharts are used to model the usage structures. A usage distribution represents probabilities of the operations. The method is illustrated on two Java classes but can be applied to any software component that is accessed through an Application Program Interface (API)
Familial Alzheimer's Disease Mutations in Presenilin Generate Amyloidogenic Ab Peptide Seeds
Recently it was proposed that the familial Alzheimer’s disease (FAD) causing presenilin (PSEN) mutations PSEN1-L435F and PSEN1-C410Y do not support the generation of Aβ-peptides from the amyloid precursor protein (APP). This challenges the amyloid hypothesis and disagrees with previous work showing that PSEN1 FAD causing mutations generate invariably long Aβ and seed amyloid. We contrast here the proteolytic activities of these mutant PSEN alleles with the complete loss-of-function PSEN1-D257A allele. We find residual carboxy- and endo-peptidase γ-secretase activities, similar to the formerly characterized PSEN1-R278I. We conclude that the PSEN1-L435F and -C410Y mutations are extreme examples of the previously proposed “dysfunction” of γ-secretase that characterizes FAD-associated PSEN. This Matters Arising paper is in response to Xia et al. (2015), published in Neuron. See also the response by Xia et al. (2016), published in this issue
- …
