16 research outputs found

    Type theoretic semantics for semantic networks: an application to natural language engineering

    Get PDF
    Semantic Networks have long been recognised as an important tool for natural language processing. This research has been a formal analysis of a semantic network using constructive type theory. The particular net studied is SemNet, the internal knowledge representation for LOLITA(^1): a large scale natural language engineering system. SemNet has been designed with large scale, efficiency, integration and expressiveness in mind. It supports many different forms of plausible and valid reasoning, including: epistemic reasoning, causal reasoning and inheritance. The unified theory of types (UTT) integrates two well known type theories, Coquand-Huet's (impredicative) calculus of constructions and Martin-Lof's (predicative) type theory. The result is a strong and expressive language which has been used for formalization of mathematics, program specification and natural language. Motivated by the computational and richly expressive nature of UTT, this research has used it for formalization and semantic analysis of SemNet. Moreover, because of applications to software engineering, type checkers/proof assistants have been built. These tools are ideal for organising and managing the analysis of SemNet. The contribution of the work is twofold. First the semantic model built has led to improved and deeper understanding of SemNet. This is important as many researchers that work on different aspects of LOLITA, now have a clear and un- ambigious interpertation of the meaning of SemNet constructs. The model has also been used to show soundess of the valid reasoning and to give a reasonable semantic account of epistemic reasoning. Secondly the research contributes to NLE generally, both because it demonstrates that UTT is a useful formalization tool and that the good aspects of SemNet have been formally presented

    Inductive-inductive definitions.

    Get PDF

    Progress Report : 1991 - 1994

    Get PDF

    An improved method for the mechanisation of inductive proof

    Get PDF

    Using middle-out reasoning to guide inductive theorem proving

    Get PDF

    Practical implementation of a dependently typed functional programming language

    Get PDF
    Types express a program's meaning, and checking types ensures that a program has the intended meaning. In a dependently typed programming language types are predicated on values, leading to the possibility of expressing invariants of a program's behaviour in its type. Dependent types allow us to give more detailed meanings to programs, and hence be more confident of their correctness. This thesis considers the practical implementation of a dependently typed programming language, using the Epigram notation defined by McBride and McKinna. Epigram is a high level notation for dependently typed functional programming elaborating to a core type theory based on Lu๙s UTT, using Dybjer's inductive families and elimination rules to implement pattern matching. This gives us a rich framework for reasoning about programs. However, a naive implementation introduces several run-time overheads since the type system blurs the distinction between types and values; these overheads include the duplication of values, and the storage of redundant information and explicit proofs. A practical implementation of any programming language should be as efficient as possible; in this thesis we see how the apparent efficiency problems of dependently typed programming can be overcome and that in many cases the richer type information allows us to apply optimisations which are not directly available in traditional languages. I introduce three storage optimisations on inductive families; forcing, detagging and collapsing. I further introduce a compilation scheme from the core type theory to G-machine code, including a pattern matching compiler for elimination rules and a compilation scheme for efficient run-time implementation of Peano's natural numbers. We also see some low level optimisations for removal of identity functions, unused arguments and impossible case branches. As a result, we see that a dependent type theory is an effective base on which to build a feasible programming language

    Metalevel and reflexive extension in mechanical theorem proving

    Get PDF
    In spite of many years of research into mechanical assistance for mathematics it is still much more difficult to construct a proof on a machine than on paper. Of course this is partly because, unlike a proof on paper, a machine checked proof must be formal in the strictest sense of that word, but it is also because usually the ways of going about building proofs on a machine are limited compared to what a mathematician is used to. This thesis looks at some possible extensions to the range of tools available on a machine that might lend a user more flexibility in proving theorems, complementing whatever is already available.In particular, it examines what is possible in a framework theorem prover. Such a system, if it is configured to prove theorems in a particular logic T, must have a formal description of the proof theory of T written in the framework theory F of the system. So it should be possible to use whatever facilities are available in F not only to prove theorems of T, but also theorems about T that can then be used in their turn to aid the user in building theorems of T.The thesis is divided into three parts. The first describes the theory FSâ‚€, which has been suggested by Feferman as a candidate for a framework theory suitable for doing meta-theory. The second describes some experiments with FSâ‚€, proving meta-theorems. The third describes an experiment in extending the theory PRA, declared in FSâ‚€, with a reflection facility.More precisely, in the second section three theories are formalised: propositional logic, sorted predicate logic, and the lambda calculus (with a deBruijn style binding). For the first two the deduction theorem and the prenex normal form theorem are respectively proven. For the third, a relational definition of beta-reduction is replaced with an explicit function.In the third section, a method is proposed for avoiding the work involved in building a full Godel style proof predicate for a theory. It is suggested that the language be extended with quotation and substitution facilities directly, instead of providing them as definitional extensions. With this, it is possible to exploit an observation of Solovay's that the Lob derivability conditions are sufficient to capture the schematic behaviour of a proof predicate. Combining this with a reflection schema is enough to produce a non-conservative extension of PRA, and this is demonstrated by some experiments

    Semantics in a frege structure

    Get PDF

    Proof planning with logic presentations

    Get PDF
    corecore