520,170 research outputs found

    Automating Deductive Verification for Weak-Memory Programs

    Full text link
    Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been proposed, but their usage has been limited thus far to manual proofs. Automating proofs in these logics via first-order solvers is non-trivial, due to reasoning features such as higher-order assertions, modalities and rich permission resources. In this paper, we provide the first implementation of a weak memory program logic using existing deductive verification tools. We tackle three recent program logics: Relaxed Separation Logic and two forms of Fenced Separation Logic, and show how these can be encoded using the Viper verification infrastructure. In doing so, we illustrate several novel encoding techniques which could be employed for other logics. Our work is implemented, and has been evaluated on examples from existing papers as well as the Facebook open-source Folly library.Comment: Extended version of TACAS 2018 publicatio

    Normal forms for Answer Sets Programming

    Full text link
    Normal forms for logic programs under stable/answer set semantics are introduced. We argue that these forms can simplify the study of program properties, mainly consistency. The first normal form, called the {\em kernel} of the program, is useful for studying existence and number of answer sets. A kernel program is composed of the atoms which are undefined in the Well-founded semantics, which are those that directly affect the existence of answer sets. The body of rules is composed of negative literals only. Thus, the kernel form tends to be significantly more compact than other formulations. Also, it is possible to check consistency of kernel programs in terms of colorings of the Extended Dependency Graph program representation which we previously developed. The second normal form is called {\em 3-kernel.} A 3-kernel program is composed of the atoms which are undefined in the Well-founded semantics. Rules in 3-kernel programs have at most two conditions, and each rule either belongs to a cycle, or defines a connection between cycles. 3-kernel programs may have positive conditions. The 3-kernel normal form is very useful for the static analysis of program consistency, i.e., the syntactic characterization of existence of answer sets. This result can be obtained thanks to a novel graph-like representation of programs, called Cycle Graph which presented in the companion article \cite{Cos04b}.Comment: 15 pages, To appear in Theory and Practice of Logic Programming (TPLP

    Typed Norms for Typed Logic Programs

    Get PDF
    As typed logic programming becomes more mainstream, system building tools like partial deduction systems will need to be mapped from untyped languages to typed ones. It is important, however, when mapping techniques across that the new techniques should exploit the type system as much as possible. in this paper, we show how norms which play a crucial role in termination analysis, can be generated from the prescribed types of a logic program. Interestingly, the types highlight restrictions of earlier norms and suggest how these norms can be extended to obtain some very general and powerful notions of norm which can be used to measure any term in an almost arbitrary way. We see our work on norm derivation as a contribution to the termination analysis of typed logic programs which, in particular, forms an essential part of offline partial deduction systems

    Logic-Based Analogical Reasoning and Learning

    Full text link
    Analogy-making is at the core of human intelligence and creativity with applications to such diverse tasks as commonsense reasoning, learning, language acquisition, and story telling. This paper contributes to the foundations of artificial general intelligence by developing an abstract algebraic framework for logic-based analogical reasoning and learning in the setting of logic programming. The main idea is to define analogy in terms of modularity and to derive abstract forms of concrete programs from a `known' source domain which can then be instantiated in an `unknown' target domain to obtain analogous programs. To this end, we introduce algebraic operations for syntactic program composition and concatenation and illustrate, by giving numerous examples, that programs have nice decompositions. Moreover, we show how composition gives rise to a qualitative notion of syntactic program similarity. We then argue that reasoning and learning by analogy is the task of solving analogical proportions between logic programs. Interestingly, our work suggests a close relationship between modularity, generalization, and analogy which we believe should be explored further in the future. In a broader sense, this paper is a first step towards an algebraic and mainly syntactic theory of logic-based analogical reasoning and learning in knowledge representation and reasoning systems, with potential applications to fundamental AI-problems like commonsense reasoning and computational learning and creativity

    First steps in synthetic guarded domain theory: step-indexing in the topos of trees

    Get PDF
    We present the topos S of trees as a model of guarded recursion. We study the internal dependently-typed higher-order logic of S and show that S models two modal operators, on predicates and types, which serve as guards in recursive definitions of terms, predicates, and types. In particular, we show how to solve recursive type equations involving dependent types. We propose that the internal logic of S provides the right setting for the synthetic construction of abstract versions of step-indexed models of programming languages and program logics. As an example, we show how to construct a model of a programming language with higher-order store and recursive types entirely inside the internal logic of S. Moreover, we give an axiomatic categorical treatment of models of synthetic guarded domain theory and prove that, for any complete Heyting algebra A with a well-founded basis, the topos of sheaves over A forms a model of synthetic guarded domain theory, generalizing the results for S

    Proving termination of logic programs with delay declarations

    Get PDF
    In this paper we propose a method for proving termination of logic programs with delay declarations. The method is based on the notion of recurrent logic program, which is used to prove programs terminating wrt an arbitrary selection rule. Most importantly, we use the notion of bound query (as proposed by M. Bezem) in the definition of cover, a new notion which forms the kernel of our approach. We introduce the class of delay recurrent programs and prove that programs in this class terminate for all local delay selection rules, provided that the delay conditions imply boundedness. The corresponding method can be also used to transform a logic program into a terminating logic program with delay declarations

    Leading Through Logic Modeling: Capturing the Complexity

    Get PDF
    Logic modeling supports project and program development and implementation through specific design, planning, communication, evaluation and learning considerations and are typically used for the purposes of explanation, resolutions and assessment. Logic modeling was used in one teacher training program in the U.S. experiencing substantial leadership change. Leading change requires the facets of both leadership and management. This paper will discuss leading change through strategic management; logic modeling as a way of supporting program development and evaluation; share two forms of logic modeling (Theory of Change and Program) used to put into focus one teacher preparation program; discuss the methodology used in the development of both models employing participation from impacted stakeholders; and share the results as it relates to the logic models developed, how they are currently being used to communicate with stakeholders, and how the models will be used in program evaluation. Finally, the impact of this process will be discussed for future educator preparation programs as they navigate current challenges in pre-service educator preparation, program development, and evaluation
    • …
    corecore