22,550 research outputs found

    Step-Indexed Normalization for a Language with General Recursion

    Get PDF
    The Trellys project has produced several designs for practical dependently typed languages. These languages are broken into two fragments-a_logical_fragment where every term normalizes and which is consistent when interpreted as a logic, and a_programmatic_fragment with general recursion and other convenient but unsound features. In this paper, we present a small example language in this style. Our design allows the programmer to explicitly mention and pass information between the two fragments. We show that this feature substantially complicates the metatheory and present a new technique, combining the traditional Girard-Tait method with step-indexed logical relations, which we use to show normalization for the logical fragment.Comment: In Proceedings MSFP 2012, arXiv:1202.240

    Total Haskell is Reasonable Coq

    Full text link
    We would like to use the Coq proof assistant to mechanically verify properties of Haskell programs. To that end, we present a tool, named hs-to-coq, that translates total Haskell programs into Coq programs via a shallow embedding. We apply our tool in three case studies -- a lawful Monad instance, "Hutton's razor", and an existing data structure library -- and prove their correctness. These examples show that this approach is viable: both that hs-to-coq applies to existing Haskell code, and that the output it produces is amenable to verification.Comment: 13 pages plus references. Published at CPP'18, In Proceedings of 7th ACM SIGPLAN International Conference on Certified Programs and Proofs (CPP'18). ACM, New York, NY, USA, 201

    Computable decision making on the reals and other spaces via partiality and nondeterminism

    Full text link
    Though many safety-critical software systems use floating point to represent real-world input and output, programmers usually have idealized versions in mind that compute with real numbers. Significant deviations from the ideal can cause errors and jeopardize safety. Some programming systems implement exact real arithmetic, which resolves this matter but complicates others, such as decision making. In these systems, it is impossible to compute (total and deterministic) discrete decisions based on connected spaces such as R\mathbb{R}. We present programming-language semantics based on constructive topology with variants allowing nondeterminism and/or partiality. Either nondeterminism or partiality suffices to allow computable decision making on connected spaces such as R\mathbb{R}. We then introduce pattern matching on spaces, a language construct for creating programs on spaces, generalizing pattern matching in functional programming, where patterns need not represent decidable predicates and also may overlap or be inexhaustive, giving rise to nondeterminism or partiality, respectively. Nondeterminism and/or partiality also yield formal logics for constructing approximate decision procedures. We implemented these constructs in the Marshall language for exact real arithmetic.Comment: This is an extended version of a paper due to appear in the proceedings of the ACM/IEEE Symposium on Logic in Computer Science (LICS) in July 201

    Anaphora and the Logic of Change

    Get PDF
    This paper shows how the dynamic interpretation of natural language introduced in work by Hans Kamp and Irene Heim can be modeled in classical type logic. This provides a synthesis between Richard Montague's theory of natural language semantics and the work by Kamp and Heim

    Comparative capitalisms, ideational political economy and French post-dirigiste responses to the global financial crisis

    Get PDF
    This article advances the case for the more systematic incorporation of ideational factors into comparative capitalisms analysis as a corrective to the rational choice proclivities of the Varieties of Capitalism approach. It demonstrates the pay-off of such an ideationally attuned approach through analysis of French capitalist restructuring over the last 25 years, placing it in comparative context. A modus operandi for such ideational explanation is elaborated through delineating different national conceptions of the market, and setting out their impacts on practices of market-making. The claim made in this article is that understanding the evolution of French capitalism requires recognition of the ongoing market-making role of the French State, in combination with the French conception of the market and its embedding within a social context characterised by the inter-penetration of public and private elitist networks of France's ‘financial network economy’ which remains substantially intact. The ideational dimension is crucial because French understandings of the market and competition, the ideational building blocks of market-making, inform French state interventions and leave footprints on French institutions and market structures, and the evolutionary trajectory of French capitalism. In charting this trajectory, this article deploys the concept of post-dirigisme. We map out the parameters and causes of the post-dirigiste condition in France through examination of French bond market development, privatisation, the shift from a government- to a market- dominated financial system, and French capitalism's internationalisation. It then uses post-dirigisme to explain French state responses to the financial crisis and the banking bailout, noting how state actors, in concert with the banking elites, actively facilitated dominant market positions of French international champions
    • …
    corecore