11,449 research outputs found
Converting Natural Language Phrases in Lambda Calculus to Generalized Constraint Language
This study explores one aspect of bridging Computing with Words with Natural Language Processing, to connect the extraction capabilities of Natural Language Processing with the inference capabilities of Computing with Words. Computing with Words uses Generalized Constraint Language to show the logical proposition of a given expression. A program was written to convert a logic-based lambda calculus representation of any English natural language expression into Generalized Constraint Language. The scope of this project is set to tagging parts of speech in simplistic expressions and is a foundation for expanding upon more complex lambda calculus expressions into Generalized Constraint Language. This program tags the parts of speech from the lambda calculus expression and outputs the Generalized Constraint Language of the expression, showing the constraint on an idea in the original sentence. This project establishes an entry point and is designed with further improvements and modifications in mind. The output from this project is useful in providing an understanding of bridging Natural Language Processing and Computing with Words, as the program creates a baseline of extracting parts of speech from a sentence to highlighting significant meaning of the given sentence.https://openriver.winona.edu/urc2019/1030/thumbnail.jp
Physics, Topology, Logic and Computation: A Rosetta Stone
In physics, Feynman diagrams are used to reason about quantum processes. In
the 1980s, it became clear that underlying these diagrams is a powerful analogy
between quantum physics and topology: namely, a linear operator behaves very
much like a "cobordism". Similar diagrams can be used to reason about logic,
where they represent proofs, and computation, where they represent programs.
With the rise of interest in quantum cryptography and quantum computation, it
became clear that there is extensive network of analogies between physics,
topology, logic and computation. In this expository paper, we make some of
these analogies precise using the concept of "closed symmetric monoidal
category". We assume no prior knowledge of category theory, proof theory or
computer science.Comment: 73 pages, 8 encapsulated postscript figure
Lazy Evaluation and Delimited Control
The call-by-need lambda calculus provides an equational framework for
reasoning syntactically about lazy evaluation. This paper examines its
operational characteristics. By a series of reasoning steps, we systematically
unpack the standard-order reduction relation of the calculus and discover a
novel abstract machine definition which, like the calculus, goes "under
lambdas." We prove that machine evaluation is equivalent to standard-order
evaluation. Unlike traditional abstract machines, delimited control plays a
significant role in the machine's behavior. In particular, the machine replaces
the manipulation of a heap using store-based effects with disciplined
management of the evaluation stack using control-based effects. In short, state
is replaced with control. To further articulate this observation, we present a
simulation of call-by-need in a call-by-value language using delimited control
operations
Control Flow Analysis for SF Combinator Calculus
Programs that transform other programs often require access to the internal
structure of the program to be transformed. This is at odds with the usual
extensional view of functional programming, as embodied by the lambda calculus
and SK combinator calculus. The recently-developed SF combinator calculus
offers an alternative, intensional model of computation that may serve as a
foundation for developing principled languages in which to express intensional
computation, including program transformation. Until now there have been no
static analyses for reasoning about or verifying programs written in
SF-calculus. We take the first step towards remedying this by developing a
formulation of the popular control flow analysis 0CFA for SK-calculus and
extending it to support SF-calculus. We prove its correctness and demonstrate
that the analysis is invariant under the usual translation from SK-calculus
into SF-calculus.Comment: In Proceedings VPT 2015, arXiv:1512.0221
The exp-log normal form of types
Lambda calculi with algebraic data types lie at the core of functional
programming languages and proof assistants, but conceal at least two
fundamental theoretical problems already in the presence of the simplest
non-trivial data type, the sum type. First, we do not know of an explicit and
implemented algorithm for deciding the beta-eta-equality of terms---and this in
spite of the first decidability results proven two decades ago. Second, it is
not clear how to decide when two types are essentially the same, i.e.
isomorphic, in spite of the meta-theoretic results on decidability of the
isomorphism.
In this paper, we present the exp-log normal form of types---derived from the
representation of exponential polynomials via the unary exponential and
logarithmic functions---that any type built from arrows, products, and sums,
can be isomorphically mapped to. The type normal form can be used as a simple
heuristic for deciding type isomorphism, thanks to the fact that it is a
systematic application of the high-school identities.
We then show that the type normal form allows to reduce the standard beta-eta
equational theory of the lambda calculus to a specialized version of itself,
while preserving the completeness of equality on terms. We end by describing an
alternative representation of normal terms of the lambda calculus with sums,
together with a Coq-implemented converter into/from our new term calculus. The
difference with the only other previously implemented heuristic for deciding
interesting instances of eta-equality by Balat, Di Cosmo, and Fiore, is that we
exploit the type information of terms substantially and this often allows us to
obtain a canonical representation of terms without performing sophisticated
term analyses
Chemical concrete machine
The chemical concrete machine is a graph rewriting system which uses only
local moves (rewrites), seen as chemical reactions involving molecules which
are graphs made up by 4 trivalent nodes. It is Turing complete, therefore it
might be used as a model of computation in algorithmic chemistry
- …