350,807 research outputs found
Call Pattern Analysis for Functional Logic Programs
This paper presents a new program analysis framework to approximate call patterns and their results in functional logic computations. We consider programs containing non-strict, nondeterministic operations in order to make the analysis applicable to modern functional logic languages like Curry or TOY. For this purpose, we present a new fixpoint characterization of functional logic computations w.r.t. a set of initial calls. We show how programs can be analyzed by approximating this fixpoint. The results of such an approximation have various applications, e.g., program optimization as well as verifying safety properties of programs
HMC: Verifying Functional Programs Using Abstract Interpreters
We present Hindley-Milner-Cousots (HMC), an algorithm that allows any
interprocedural analysis for first-order imperative programs to be used to
verify safety properties of typed higher-order functional programs. HMC works
as follows. First, it uses the type structure of the functional program to
generate a set of logical refinement constraints whose satisfaction implies the
safety of the source program. Next, it transforms the logical refinement
constraints into a simple first-order imperative program that is safe iff the
constraints are satisfiable. Thus, in one swoop, HMC makes tools for invariant
generation, e.g., based on abstract domains, predicate abstraction,
counterexample-guided refinement, and Craig interpolation be directly
applicable to verify safety properties of modern functional languages in a
fully automatic manner. We have implemented HMC and describe preliminary
experimental results using two imperative checkers -- ARMC and InterProc -- to
verify OCaml programs. Thus, by composing type-based reasoning grounded in
program syntax and state-based reasoning grounded in abstract interpretation,
HMC opens the door to automatic verification of programs written in modern
programming languages.Comment: 12 page
Reachability Analysis of Innermost Rewriting
We consider the problem of inferring a grammar describing the output of a functional program given a grammar describing its input. Solutions to this problem are helpful for detecting bugs or proving safety properties of functional programs and, several rewriting tools exist for solving this problem. However, known grammar inference techniques are not able to take evaluation strategies of the program into account. This yields very imprecise results when the evaluation strategy matters. In this work, we adapt the Tree Automata Completion algorithm to approximate accurately the set of
terms reachable by rewriting under the innermost strategy. We prove that the proposed technique is sound and precise w.r.t. innermost rewriting. The proposed algorithm has been implemented in the Timbuk reachability tool. Experiments show that it noticeably improves the accuracy of static analysis for functional programs using the call-by-value evaluation strategy
Assessing Cultural Drivers of Safety Resilience in a Collegiate Aviation Program
Organizational safety resilience is a key factor in sustaining an effective safety management system (SMS) in high-reliability organizations (HROs) such as aviation. Extant research advocates for monitoring, assessing and continuously improving safety in an organization that has a fully-functional SMS. Safety resilience provides a buffer against vulnerabilities. Extant research also suggests a paucity in terms of a measurement framework for organizational safety resilience in collegiate aviation operations. A quantitative approach using Reason’s safety resilience concept (Reason, 2011) is used to assess organizational safety resilience in a collegiate aviation program with an active conformance SMS accepted by the FAA. A sample of 516research participants responded to an online survey instrument derived from Reason (2011). Structural Equation Model (SEM)/Path Analysis (PA) techniques are used to assess models that measure the strength of relationships between three cultural drivers (Commitment, Cognizance, Competence)of safety and safety resilience. There were strong significant relationships between these cultural drivers and safety resilience. Path analysis suggests that Commitment significantly mediates the path between Cognizance and Competence and highlights its important role in sustaining safety competencies. There were significant differences in the perceptions of safety resilience among top-level leadership, flight operations and ground operations. Flight operations and ground operations had higher mean scores on safety resilience than top-level leadership. Study provides a validated model of safety resilience that is essential for SMS improvements in collegiate aviation programs. Future studies will utilize this safety resilience model to assess other collegiate aviation programs in various phases of SMS implementation, airlines, and air traffic control operations
Credible Autocoding of Convex Optimization Algorithms
The efficiency of modern optimization methods, coupled with increasing
computational resources, has led to the possibility of real-time optimization
algorithms acting in safety critical roles. There is a considerable body of
mathematical proofs on on-line optimization programs which can be leveraged to
assist in the development and verification of their implementation. In this
paper, we demonstrate how theoretical proofs of real-time optimization
algorithms can be used to describe functional properties at the level of the
code, thereby making it accessible for the formal methods community. The
running example used in this paper is a generic semi-definite programming (SDP)
solver. Semi-definite programs can encode a wide variety of optimization
problems and can be solved in polynomial time at a given accuracy. We describe
a top-to-down approach that transforms a high-level analysis of the algorithm
into useful code annotations. We formulate some general remarks about how such
a task can be incorporated into a convex programming autocoder. We then take a
first step towards the automatic verification of the optimization program by
identifying key issues to be adressed in future work
Automated Specification Inference in a Combined Domain via User-Defined Predicates
Discovering program specifications automatically for heap-manipulating programs is a challenging task due\ud
to the complexity of aliasing and mutability of data structures. This task is further complicated by an\ud
expressive domain that combines shape, numerical and bag information. In this paper, we propose a compositional analysis framework that would derive the summary for each method in the expressive abstract\ud
domain, independently from its callers. We propose a novel abstraction method with a bi-abduction technique in the combined domain to discover pre-/post-conditions that could not be automatically inferred\ud
before. The analysis does not only infer memory safety properties, but also finds relationships between pure\ud
and shape domains towards full functional correctness of programs. A prototype of the framework has been\ud
implemented and initial experiments have shown that our approach can discover interesting properties for\ud
non-trivial programs
Program Analysis in A Combined Abstract Domain
Automated verification of heap-manipulating programs is a challenging task due to the complexity of aliasing and mutability of data structures used in these programs. The properties of a number of important data structures do not only relate to one domain, but to combined multiple domains, such as sorted list, priority queues, height-balanced trees and so on. The safety and sometimes efficiency of programs do rely on the properties of those data structures. This
thesis focuses on developing a verification system for both functional correctness and memory safety of such programs which involve heap-based data structures.
Two automated inference mechanisms are presented for heap-manipulating programs in this thesis. Firstly, an abstract interpretation based approach is proposed to synthesise program invariants in a combined pure and shape domain. Newly designed abstraction, join and widening
operators have been defined for the combined domain. Furthermore, a compositional analysis approach is described to discover both pre-/post-conditions of programs with a bi-abduction technique in the combined domain.
As results of my thesis, both inference approaches have been
implemented and the obtained results validate the feasibility and precision of proposed approaches. The outcomes of the thesis confirm that it is possible and practical to analyse heap-manipulating programs automatically and precisely by using abstract interpretation
in a sophisticated combined domain
Cell morphing: from array programs to array-free Horn clauses
International audienceAutomatically verifying safety properties of programs is hard.Many approaches exist for verifying programs operating on Boolean and integer values (e.g. abstract interpretation, counterexample-guided abstraction refinement using interpolants), but transposing them to array properties has been fraught with difficulties.Our work addresses that issue with a powerful and flexible abstractionthat morphes concrete array cells into a finite set of abstractones. This abstraction is parametric both in precision and in theback-end analysis used.From our programs with arrays, we generate nonlinear Horn clauses overscalar variables only, in a common format with clear and unambiguouslogical semantics, for which there exist several solvers. We thusavoid the use of solvers operating over arrays, which are still veryimmature.Experiments with our prototype VAPHOR show that this approach can proveautomatically and without user annotationsthe functional correctness of several classical examples, including \emph{selection sort}, \emph{bubble sort}, \emph{insertion sort}, as well as examples from literature on array analysis
Assessing the relationship between organizational management factors and a resilient safety culture in a collegiate aviation program with Safety Management Systems (SMS)
Extant research advocates for assessing and continuously improving resilient safety culture in high-reliability organizations (HROs) such as aviation that has a fully functional Safety Management Systems (SMS). Perceptions on the relationship between four (4) organizational management factors (Principles, Policy, Procedures, Practices) and resilient safety culture in a collegiate aviation program was assessed using an online survey instrument drafted using Reason (2011) concept on safety resilience. Sample was drawn from aviation students, flight instructors, faculty and administrators. Structural Equation Model (SEM) and Causal Path Analysis (CPA) techniques were used to assess conceptual models. Results suggest good reliability and construct validity for survey instrument. All the measurement models had acceptable fit based on various goodness-of-fit indices. The results suggest all four management factors had significant predictive relationship with resilient safety culture. Practices had the weakest predictive relationship and Policy had the highest. Procedures strongly mediated path between Policies and Practices and there was no significant causal relationship between Principles and Practices. Results suggest that more focus should be placed on resilient safety practices in the collegiate aviation program. Significant benefit of this study is the validation of an instrument that explores the relationship between resilient safety culture and organizational management factors and adds to literature on resilient safety culture in collegiate aviation programs. Future studies using this survey instrument and models in other collegiate aviation programs, airlines and airports are highly recommended
- …