10,875 research outputs found

    On Role Logic

    Full text link
    We present role logic, a notation for describing properties of relational structures in shape analysis, databases, and knowledge bases. We construct role logic using the ideas of de Bruijn's notation for lambda calculus, an encoding of first-order logic in lambda calculus, and a simple rule for implicit arguments of unary and binary predicates. The unrestricted version of role logic has the expressive power of first-order logic with transitive closure. Using a syntactic restriction on role logic formulas, we identify a natural fragment RL^2 of role logic. We show that the RL^2 fragment has the same expressive power as two-variable logic with counting C^2 and is therefore decidable. We present a translation of an imperative language into the decidable fragment RL^2, which allows compositional verification of programs that manipulate relational structures. In addition, we show how RL^2 encodes boolean shape analysis constraints and an expressive description logic.Comment: 20 pages. Our later SAS 2004 result builds on this wor

    From Logical Calculus to Logical Formalityā€”What Kant Did with Eulerā€™s Circles

    Get PDF
    John Venn has the ā€œuneasy suspicionā€ that the stagnation in mathematical logic between J. H. Lambert and George Boole was due to Kantā€™s ā€œdisastrous effect on logical method,ā€ namely the ā€œstrictest preservation [of logic] from mathematical encroachment.ā€ Kantā€™s actual position is more nuanced, however. In this chapter, I tease out the nuances by examining his use of Leonhard Eulerā€™s circles and comparing it with Eulerā€™s own use. I do so in light of the developments in logical calculus from G. W. Leibniz to Lambert and Gottfried Ploucquet. While Kant is evidently open to using mathematical tools in logic, his main concern is to clarify what mathematical tools can be used to achieve. For without such clarification, all efforts at introducing mathematical tools into logic would be blind if not complete waste of time. In the end, Kant would stress, the means provided by formal logic at best help us to express and order what we already know in some sense. No matter how much mathematical notations may enhance the precision of this function of formal logic, it does not change the fact that no truths can, strictly speaking, be revealed or established by means of those notations

    Lambda Calculus for Engineers

    Get PDF
    In pure functional programming it is awkward to use a stateful sub-computation in a predominantly stateless computation. The problem is that the state of the subcomputation has to be passed around using ugly plumbing. Classical examples of the plumbing problem are: providing a supply of fresh names, and providing a supply of random numbers. We propose to use (deterministic) inductive definitions rather than recursion equations as a basic paradigm and show how this makes it easier to add the plumbing
    • ā€¦
    corecore