10 research outputs found

    Termination, correctness and relative correctness

    Get PDF
    Over the last decade, research in verification and formal methods has been the subject of increased interest with the need of more secure and dependable software. At the heart of software dependability is the concept of software fault, defined in the literature as the adjudged or hypothesized cause of an error. This definition, which lacks precision, presents at least two challenges with regard to using formal methods: (1) Adjudging and hypothesizing are highly subjective human endeavors; (2) The concept of error is itself insufficiently defined, since it depends on a detailed characterization of correct system states at each stage of a computation (which is usually unavailable). In the process of defining what a software fault is, the concept of relative correctness, the property of a program to be more-correct than another with respect to a given specification, is discussed. Subsequently, a feature of a program is a fault (for a given specification) only because there exists an alternative to it that would make the program more-correct with respect to the specification. Furthermore, the implications and applications of relative correctness in various software engineering activities are explored. It is then illustrated that in many situations of software testing, fault removal and program repair, testing for relative correctness rather than absolute correctness leads to clearer conclusions and better outcomes. In particular, debugging without testing, a technique whereby, a fault can be removed from a program and the new program proven to be more-correct than the original, all without any testing (and its associated uncertainties/imperfections) is introduced. Given that there are orders of magnitude more incorrect programs than correct programs in use nowadays, this has the potential to expand the scope of proving methods significantly. Another technique, programming without refining, is also introduced. The most important advantage of program derivation by correctness enhancement is that it captures not only program construction from scratch, but also virtually all activities of software evolution. Given that nowadays most software is developed by evolving existing assets rather than producing new assets from scratch, the paradigm of software evolution by correctness enhancements stands to yield significant gains, if we can make it practical

    Program Repair by Stepwise Correctness Enhancement

    Full text link
    Relative correctness is the property of a program to be more-correct than another with respect to a given specification. Whereas the traditional definition of (absolute) correctness divides candidate program into two classes (correct, and incorrect), relative correctness arranges candidate programs on the richer structure of a partial ordering. In other venues we discuss the impact of relative correctness on program derivation, and on program verification. In this paper, we discuss the impact of relative correctness on program testing; specifically, we argue that when we remove a fault from a program, we ought to test the new program for relative correctness over the old program, rather than for absolute correctness. We present analytical arguments to support our position, as well as an empirical argument in the form of a small program whose faults are removed in a stepwise manner as its relative correctness rises with each fault removal until we obtain a correct program.Comment: In Proceedings PrePost 2016, arXiv:1605.0809

    Program Derivation by Correctness Enhacements

    Full text link
    Relative correctness is the property of a program to be more-correct than another program with respect to a given specification. Among the many properties of relative correctness, that which we found most intriguing is the property that program P' refines program P if and only if P' is more-correct than P with respect to any specification. This inspires us to reconsider program derivation by successive refinements: each step of this process mandates that we transform a program P into a program P' that refines P, i.e. P' is more-correct than P with respect to any specification. This raises the question: why should we want to make P' more-correct than P with respect to any specification, when we only have to satisfy specification R? In this paper, we discuss a process of program derivation that replaces traditional sequence of refinement-based correctness-preserving transformations starting from specification R by a sequence of relative correctness-based correctness-enhancing transformations starting from abort.Comment: In Proceedings Refine'15, arXiv:1606.0134

    Détermination De La Dose Optimale D'engrais Minéral 15-15-15 Sur Cinq (05) Variétés De Maïs Doux (Zea Mays L. ssp. saccharata) Au Sénégal

    Get PDF
    The objective of this study is to assess the response of five varieties of sweet maize namely, Prime plus (V1), Shy 1036 (V2), Colombus (V3), GSS (V4), and JKMH-45 (V5) to three different doses of NPK (15-15-15) fertilizer: F1 (normal dose), F2 (75% of the normal dose) and F3 (125% of the normal dose). An experimental design in Fisher blocs with 15 treatments was established at the ISRA/CRA experimental station in Saint Louis (Senegal). The results have shown that 30 days after sowing (DAS), the varieties Colombus, GSS and JKMH-45 have had the highest heights with 32.75 cm, 31.85 cm and 31.46 cm, respectively with the F2 dose. The variety JKMH-45 has a greater height of the upper ear (89.39 cm) at 60 DAS and valorizes better the F2 dose (75% of the normal dose). The F3 dose increases less the plant’s height. A non-significant difference was observed among the 5 varieties used regarding the precocity. The variety V2 or Shy 1036 developed ears at first, but is not precocious compared to the variety V1 that not only shows earlier anthesis but also an appearance of darker hairs. The variety JKMH-45, although presenting darker hairs after the variety Prime plus, is the latest variety, earing at 57 DAS and with male and female anthesis appearing at 59 DAS and 63 DAS. This study can constitute a basic criterion in differentiating the sweet maize varieties in Senegal. It would also allow more financial saving on inputs and contribute to the maximization ofproduction if the choice of the variety is well done

    The Valuation of Credit Default Swaps

    Get PDF
    The credit derivatives market has known an incredible development since its advent in the 1990’s. Today there is a plethora of credit derivatives going from the simplest ones, credit default swaps (CDS), to more complex ones such as synthetic single-tranche collateralized debt obligations. Valuing this rich panel of products involves modeling credit risk. For this purpose, two main approaches have been explored and proposed since 1976. The first approach is the Structural approach, first proposed by Merton in 1976, following the work of Black-Scholes for pricing stock options. This approach relies in the capital structure of a firm to model its probability of default. The other approach is called the Reduced-form approach or the hazard rate approach. It is pioneered by Duffie, Lando, Jarrow among others. The main thesis in this approach is that default should be modeled as a jump process. The objective of this work is to value Asset-backed Credit default swaps using the hazard rate approach

    What is a fault? and why does it matter?

    No full text
    Faults are an important concept in the study of system dependability, and most approaches to dependability can be characterized by the way in which they deal with faults (e.g., fault avoidance, fault removal, fault tolerance, fault forecasting). In their seminal work on modeling dependable computing, Laprie et al. define a fault as the adjudged or hypothesized cause of an error. In this paper, we propose a more formal definition of a fault in the context of software products and discuss some of its implications. 2017, Springer-Verlag London Ltd.Scopu

    Relational mathematics for relative correctness

    No full text
    In earlier work, we had presented a definition of software fault as being any feature of a program that admits a substitution that would make the program more-correct. This definition requires, in turn, that we define the concept of relative correctness, i.e., what it means for a program to be more-correct than another with respect to a given specification. In this paper we broaden our earlier definition to encompass non-deterministic programs, or non-deterministic representations of programs; also, we study the mathematical properties of the new definition, most notably its relation to the refinement ordering, as well as its algebraic properties with respect to the refinement lattice.Fil: Desharnais, Jules. Laval University; CanadáFil: Diallo, Nafi. New Jersey Institute of Technology; Estados UnidosFil: Ghardallou, Wided. University of Tunis El Manar; TúnezFil: Frias, Marcelo Fabian. Consejo Nacional de Investigaciones Científicas y Técnicas; Argentina. Instituto Tecnológico de Buenos Aires; ArgentinaFil: Jaoua, Ali. Qatar University; QatarFil: Mili, Ali. New Jersey Institute of Technology; Estados Unido
    corecore