3,544 research outputs found

    Complete and easy type Inference for first-class polymorphism

    Get PDF
    The Hindley-Milner (HM) typing discipline is remarkable in that it allows statically typing programs without requiring the programmer to annotate programs with types themselves. This is due to the HM system offering complete type inference, meaning that if a program is well typed, the inference algorithm is able to determine all the necessary typing information. Let bindings implicitly perform generalisation, allowing a let-bound variable to receive the most general possible type, which in turn may be instantiated appropriately at each of the variable’s use sites. As a result, the HM type system has since become the foundation for type inference in programming languages such as Haskell as well as the ML family of languages and has been extended in a multitude of ways. The original HM system only supports prenex polymorphism, where type variables are universally quantified only at the outermost level. This precludes many useful programs, such as passing a data structure to a function in the form of a fold function, which would need to be polymorphic in the type of the accumulator. However, this would require a nested quantifier in the type of the overall function. As a result, one direction of extending the HM system is to add support for first-class polymorphism, allowing arbitrarily nested quantifiers and instantiating type variables with polymorphic types. In such systems, restrictions are necessary to retain decidability of type inference. This work presents FreezeML, a novel approach for integrating first-class polymorphism into the HM system, focused on simplicity. It eschews sophisticated yet hard to grasp heuristics in the type systems or extending the language of types, while still requiring only modest amounts of annotations. In particular, FreezeML leverages the mechanisms for generalisation and instantiation that are already at the heart of ML. Generalisation and instantiation are performed by let bindings and variables, respectively, but extended to types beyond prenex polymorphism. The defining feature of FreezeML is the ability to freeze variables, which prevents the usual instantiation of their types, allowing them instead to keep their original, fully polymorphic types. We demonstrate that FreezeML is as expressive as System F by providing a translation from the latter to the former; the reverse direction is also shown. Further, we prove that FreezeML is indeed a conservative extension of ML: When considering only ML programs, FreezeML accepts exactly the same programs as ML itself. # We show that type inference for FreezeML can easily be integrated into HM-like type systems by presenting a sound and complete inference algorithm for FreezeML that extends Algorithm W, the original inference algorithm for the HM system. Since the inception of Algorithm W in the 1970s, type inference for the HM system and its descendants has been modernised by approaches that involve constraint solving, which proved to be more modular and extensible. In such systems, a term is translated to a logical constraint, whose solutions correspond to the types of the original term. A solver for such constraints may then be defined independently. To this end, we demonstrate such a constraint-based inference approach for FreezeML. We also discuss the effects of integrating the value restriction into FreezeML and provide detailed comparisons with other approaches towards first-class polymorphism in ML alongside a collection of examples found in the literature

    Formalizing, Verifying and Applying ISA Security Guarantees as Universal Contracts

    Full text link
    Progress has recently been made on specifying instruction set architectures (ISAs) in executable formalisms rather than through prose. However, to date, those formal specifications are limited to the functional aspects of the ISA and do not cover its security guarantees. We present a novel, general method for formally specifying an ISAs security guarantees to (1) balance the needs of ISA implementations (hardware) and clients (software), (2) can be semi-automatically verified to hold for the ISA operational semantics, producing a high-assurance mechanically-verifiable proof, and (3) support informal and formal reasoning about security-critical software in the presence of adversarial code. Our method leverages universal contracts: software contracts that express bounds on the authority of arbitrary untrusted code. Universal contracts can be kept agnostic of software abstractions, and strike the right balance between requiring sufficient detail for reasoning about software and preserving implementation freedom of ISA designers and CPU implementers. We semi-automatically verify universal contracts against Sail implementations of ISA semantics using our Katamaran tool; a semi-automatic separation logic verifier for Sail which produces machine-checked proofs for successfully verified contracts. We demonstrate the generality of our method by applying it to two ISAs that offer very different security primitives: (1) MinimalCaps: a custom-built capability machine ISA and (2) a (somewhat simplified) version of RISC-V with PMP. We verify a femtokernel using the security guarantee we have formalized for RISC-V with PMP

    The Maker - A Multi-Media Opera in Two Acts

    Get PDF
    The Maker is an electro-acoustic and multi-media opera in two acts that seeks to expand upon the use of pre-recorded audio and video in the operatic genre as well as explores musical representations of classical Greek dramatic elements in the context of a re-imagining of Mary Shelley’s Frankenstein. Based on a libretto by Dr. Monika Lee, The Maker utilizes a harmonic system focused on managing common-tones to reinforce and augment dramatic tension. Additionally, The Maker uses concepts from classical Greek tragedies as the foundation of musical materials. In particular, it explores how the use of recurring musical motifs can be tied to narrative devices, such as the concept of hamartia, which in turn can be used to reinforce the opera’s narrative. The Maker also explores the relationship between diegetic and non-diegetic narrative elements and how this relationship can be accentuated through the use of pre-recorded video and audio. A non-diegetic Greek chorus is placed in contrast to the main cast by being presented to the audience via pre-recorded video and audio. Additionally, pre-recorded soundtrack parts help to blur the line between acoustic and electronic, reflecting the ambiguous humanity of some of the opera’s primary characters

    Dreaming the Ancestors: An Investigation into Contemporary British Druidry and the Ritualisation of Death.

    Get PDF
    This thesis is an investigation into the various ways in which Druids in the opening decades of the 21st Century think about and ritualise death. Section A begins with a detailed discussion of the nature of modern British Spiritual Druidry; tracing it from its origins at the end of the 18th Century to the diverse ways in which it manifests in modernity. It will attempt to reach some conclusions about how Druidry is best understood through a consideration of Druids’ own understandings of their identity and their place in the modern world. In particular, it will consider the extent to which Druidry in Britain can be categorised as indigenous religion in Britain. Section B consists of a broad overview of the ways in which modern Druids approach death. Particular consideration is given to the concept of Ancestors in Druidry, and the role they play in the spiritual lives and practices of Druids, as well as in funeral and other rituals concerned with the dead. The section concludes with an investigation into the phenomenon of ‘new barrows’ that are currently being built in various locations in the south of England. These are built in deliberate imitation of the chambered burial mounds of the Neolithic and Bronze Ages and are designed to take human cremated remains interred in niches in the walls. The significance of these barrows as funeral venues, both to Druids and in wider society will be discussed at length. The thesis will conclude that there are several aspects of the way that death is understood and ritualised in Druidry that are highly distinctive in contemporary Western society. It will further suggest that much can be learnt from both Druidry and the new barrows as models for the construction of meaningful and useful funerals

    Major Questions About Agency Authority: A Practical Discussion on the Impact of Limiting Administrative Authority

    Get PDF
    The Administrative Law Review’s Fall 2022 Symposium humanized administrative law while tackling substantive administrative law issues. With the human impact of administrative law as the touchpoint, the panels explored the practical implications of deregulation, nondelegation, and major questions. Resultant discussion transcribed below allowed for a thoughtful conversation, but one that was at the same time accessible to those who do not routinely practice in the space. We thank Professors Gillian Metzger, William Buzbee, Aram Gavoor, Kimberly Wehle, Jonas Monast, and Administrative Law Judge Doug Rawald for their contributions

    Automated and foundational verification of low-level programs

    Get PDF
    Formal verification is a promising technique to ensure the reliability of low-level programs like operating systems and hypervisors, since it can show the absence of whole classes of bugs and prevent critical vulnerabilities. However, to realize the full potential of formal verification for real-world low-level programs one has to overcome several challenges, including: (1) dealing with the complexities of realistic models of real-world programming languages; (2) ensuring the trustworthiness of the verification, ideally by providing foundational proofs (i.e., proofs that can be checked by a general-purpose proof assistant); and (3) minimizing the manual effort required for verification by providing a high degree of automation. This dissertation presents multiple projects that advance formal verification along these three axes: RefinedC provides the first approach for verifying C code that combines foundational proofs with a high degree of automation via a novel refinement and ownership type system. Islaris shows how to scale verification of assembly code to realistic models of modern instruction set architectures-in particular, Armv8-A and RISC-V. DimSum develops a decentralized approach for reasoning about programs that consist of components written in multiple different languages (e.g., assembly and C), as is common for low-level programs. RefinedC and Islaris rest on Lithium, a novel proof engine for separation logic that combines automation with foundational proofs.Formale Verifikation ist eine vielversprechende Technik, um die Verlässlichkeit von grundlegenden Programmen wie Betriebssystemen sicherzustellen. Um das volle Potenzial formaler Verifikation zu realisieren, müssen jedoch mehrere Herausforderungen gemeistert werden: Erstens muss die Komplexität von realistischen Modellen von Programmiersprachen wie C oder Assembler gehandhabt werden. Zweitens muss die Vertrauenswürdigkeit der Verifikation sichergestellt werden, idealerweise durch maschinenüberprüfbare Beweise. Drittens muss die Verifikation automatisiert werden, um den manuellen Aufwand zu minimieren. Diese Dissertation präsentiert mehrere Projekte, die formale Verifikation entlang dieser Achsen weiterentwickeln: RefinedC ist der erste Ansatz für die Verifikation von C Code, der maschinenüberprüfbare Beweise mit einem hohen Grad an Automatisierung vereint. Islaris zeigt, wie die Verifikation von Assembler zu realistischen Modellen von modernen Befehlssatzarchitekturen wie Armv8-A oder RISC-V skaliert werden kann. DimSum entwickelt einen neuen Ansatz für die Verifizierung von Programmen, die aus Komponenten in mehreren Programmiersprachen bestehen (z.B., C und Assembler), wie es oft bei grundlegenden Programmen wie Betriebssystemen der Fall ist. RefinedC und Islaris basieren auf Lithium, eine neue Automatisierungstechnik für Separationslogik, die maschinenüberprüfbare Beweise und Automatisierung verbindet.This research was supported in part by a Google PhD Fellowship, in part by awards from Android Security's ASPIRE program and from Google Research, and in part by a European Research Council (ERC) Consolidator Grant for the project "RustBelt", funded under the European Union’s Horizon 2020 Framework Programme (grant agreement no. 683289)

    Writing Facts: Interdisciplinary Discussions of a Key Concept in Modernity

    Get PDF
    "Fact" is one of the most crucial inventions of modern times. Susanne Knaller discusses the functions of this powerful notion in the arts and the sciences, its impact on aesthetic models and systems of knowledge. The practice of writing provides an effective procedure to realize and to understand facts. This concerns preparatory procedures, formal choices, models of argumentation, and narrative patterns. By considering "writing facts" and "writing facts", the volume shows why and how "facts" are a result of knowledge, rules, and norms as well as of description, argumentation, and narration. This approach allows new perspectives on »fact« and its impact on modernity

    Tracing the idea in Schoenberg's Violin Concerto: an interpretation through performance practice, analysis and recording analysis

    Get PDF
    Schoenberg's twelve-tone music has attracted widespread musicological research and attention. The performance of his twelve-tone music, however, has not received the same prominence. The tension between these two opposing trends is the foundation of this thesis, which applies academic research to shaping an interpretation that leads to a performance of Schoenberg's Violin Concerto. In order to understand Schoenberg's musical thinking this study begins with the exploration of his concept of performance practice, identifying and organising the manifold issues around the concept of the Idea. In chapter two the Idea is traced in the material of the Violin Concerto, demonstrating how it can be associated with a specific group of notes, the tetrachord set-class 4-3. The appearance of this tetrachord in key moments, and the intention to project large-scale sections of the movements, influence the performer-oriented analysis at the end of chapter two. The performer-oriented analysis includes graphs that combine information about dynamics, tempo and a score reduction in order to assist the performer in his task of shaping each section. Chapter three explores the extent to which the projection of these large-scale sections occurs successfully in other recordings. The recording analysis program Sonic Visualiser has been employed in order to assist this research. The research focuses mainly on a contemporary recording, which at the time of the research was the most recent, and a recording that was in close proximity to Schoenberg and his circle: the 2000 recording with Rolf Schulte and Robert Craft (Philhannonia Orchestra) and the 1967 recording of Rudolf Kolisch and Rene Leibowitz (Wisconsin Festival Orchestra). Louis Krasner's 1954 recording with Dimitri Mitropoulos (Cologne Radio Orchestra) is also briefly examined, in order to make a comparison with another violinist that premiered the Concerto and was close to Schoenberg's circle. Chapter four amalgamates the previous research findings in order to produce three graphs, one for each movement, that outline a personal interpretation of the Concerto. The emphasis of these graphs focuses on the handling of tempo and how it influences the projection of large-scale sections that " organically connect to each other. At the end of the chapter the discussion returns to the performance practice issues outlined in chapter one, in order to demonstrate how they fit within the proposed interpretation of the piece
    • …
    corecore