{'fraction_non_alphanumeric': 0.031067961165048542, 'fraction_numerical': 0.0006472491909385113, 'mean_word_length': 5.426195426195426, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 1, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Theorem Proving with the Inverse Method for Linear Logic

Linear logic presents a unified framework for describing and reasoning about stateful systems. Because of its view of hypotheses as resources, it supports such phenomena as concurrency, external and internal choice, and state transitions that are common in such domains as protocol verification, concurrent computation, process calculi and games. It accomplishes this unifying view by providing logical connectives whose behaviour is closely tied to the collection of resources, which is free of structural phenomena such as weakening (allowing more resources than necessary) or contraction (using a resource more than once). The usual (non-linear) logic is embedded in this substructural framework by means of an exponential modal operator. The interaction of the rules for multiplicative, additive and exponential connectives gives rise to a wide and expressive array of behaviours. Various approaches have been taken to produce automated reasoning systems for fragments of linear logic, usually in the form of logic programming engines; but, due to the lack of the full complement of linear connectives, uses of such systems have an idiomatic commitment, for example as serializations or in continuation-passing-style. This thesis addresses the need for automated reasoning for the complete set of operators for first order intuitionistic linear logic (i.e., ⊗, 1, , &, >, ⊕, 0, !, ∀, ∃), which removes the need for such idiomatic constructions and allows direct logical expression. The particular theorem proving technique used is the inverse method, which performs forward reasoning by starting from initial facts, and iteratively increasing the collection of known facts by applying inference rules in the forward direction – from premisses to conclusion. Rather than unconstrained search, the inverse method uses the eventual goal as a guide for rule applications; this bi-directional nature makes it different from purely bottomup goal-refining search, as is the case in logic programming. The goal of this thesis is to establish the inverse method as an excellent candidate for automated reasoning in linear logic. Preliminary work has tackled the resource management problem in forward reasoning for the propositional fragment, which is already undecidable, and has developed a framework for an inverse method prover. An extension of this framework with first order quantifiers is currently underway, together with an exploration of a number of examples from various applications of linear logic. A defining characteristic of this framework has been the exposition of strategic features such as resource management directly in the forward proof-theory. The eventual goal is to incorporate other elements of forward search as focused derivations, linear indexing strategies, and constraint domains in a similar fashion, and to account the effect of such extensions on examples.  : Frank Pfenning, CMU (chair) Jeremy Avigad, CMU Stephen Brookes, CMU Tanel Tammet, Tallin Technical University (external member)