scholarly journals Deep Induction: Induction Rules for (Truly) Nested Types

Author(s):  
Patricia Johann ◽  
Andrew Polonsky

AbstractThis paper introduces deep induction, and shows that it is the notion of induction most appropriate to nested types and other data types defined over, or mutually recursively with, (other) such types. Standard induction rules induct over only the top-level structure of data, leaving any data internal to the top-level structure untouched. By contrast, deep induction rules induct over all of the structured data present. We give a grammar generating a robust class of nested types (and thus ADTs), and develop a fundamental theory of deep induction for them using their recently defined semantics as fixed points of accessible functors on locally presentable categories. We then use our theory to derive deep induction rules for some common ADTs and nested types, and show how these rules specialize to give the standard structural induction rules for these types. We also show how deep induction specializes to solve the long-standing problem of deriving principled and practically useful structural induction rules for bushes and other truly nested types. Overall, deep induction opens the way to making induction principles appropriate to richly structured data types available in programming languages and proof assistants. Agda implementations of our development and examples, including two extended case studies, are available.

Author(s):  
DAVID DARAIS ◽  
DAVID VAN HORN

AbstractGalois connections are a foundational tool for structuring abstraction in semantics, and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections using proof assistants remains limited to restricted modes of use, preventing their general application in mechanized metatheory and certified programming. This paper presents constructive Galois connections, a variant of Galois connections that is effective both on paper and in proof assistants; is complete with respect to a large subset of classical Galois connections; and enables more general reasoning principles, including the “calculational” style advocated by Cousot. To design constructive Galois connections, we identify a restricted mode of use of classical ones which is both general and amenable to mechanization in dependently typed functional programming languages. Crucial to our metatheory is the addition of monadic structure to Galois connections to control a “specification effect.” Effectful calculations may reason classically, while pure calculations have extractable computational content. Explicitly moving between the worlds of specification and implementation is enabled by our metatheory. To validate our approach, we provide two case studies in mechanizing existing proofs from the literature: the first uses calculational abstract interpretation to design a static analyzer, and the second forms a semantic basis for gradual typing. Both mechanized proofs closely follow their original paper-and-pencil counterparts, employ reasoning principles not captured by previous mechanization approaches, support the extraction of verified algorithms, and are novel.


2021 ◽  
Vol 4 ◽  
pp. 78-87
Author(s):  
Yury Yuschenko

In the Address Programming Language (1955), the concept of indirect addressing of higher ranks (Pointers) was introduced, which allows the arbitrary connection of the computer’s RAM cells. This connection is based on standard sequences of the cell addresses in RAM and addressing sequences, which is determined by the programmer with indirect addressing. Two types of sequences allow programmers to determine an arbitrary connection of RAM cells with the arbitrary content: data, addresses, subroutines, program labels, etc. Therefore, the formed connections of cells can relate to each other. The result of connecting cells with the arbitrary content and any structure is called tree-shaped formats. Tree-shaped formats allow programmers to combine data into complex data structures that are like abstract data types. For tree-shaped formats, the concept of “review scheme” is defined, which is like the concept of “bypassing” trees. Programmers can define multiple overview diagrams for the one tree-shaped format. Programmers can create tree-shaped formats over the connected cells to define the desired overview schemes for these connected cells. The work gives a modern interpretation of the concept of tree-shaped formats in Address Programming. Tree-shaped formats are based on “stroke-operation” (pointer dereference), which was hardware implemented in the command system of computer “Kyiv”. Group operations of modernization of computer “Kyiv” addresses accelerate the processing of tree-shaped formats and are designed as organized cycles, like those in high-level imperative programming languages. The commands of computer “Kyiv”, due to operations with indirect addressing, have more capabilities than the first high-level programming language – Plankalkül. Machine commands of the computer “Kyiv” allow direct access to the i-th element of the “list” by its serial number in the same way as such access is obtained to the i-th element of the array by its index. Given examples of singly linked lists show the features of tree-shaped formats and their differences from abstract data types. The article opens a new branch of theoretical research, the purpose of which is to analyze the expe- diency of partial inclusion of Address Programming in modern programming languages.


10.29007/jqtz ◽  
2018 ◽  
Author(s):  
Nada Habli ◽  
Amy P. Felty

We describe ongoing work on building an environment to support reasoning in proof assistants that represent formal systems using higher-order abstract syntax (HOAS). We use a simple and general specification language whose syntax supports HOAS. Using this language, we can encode the syntax and inference rules of a variety of formal systems, such as programming languages and logics. We describe our tool, implemented in OCaml, which parses this syntax, and translates it to a Coq library that includes definitions and hints for aiding automated proof in the Hybrid system. Hybrid itself is implemented in Coq, and designed specifically to reason about such formal systems. Given an input specification, the library that is automatically generated by our tool imports the general Hybrid library and adds definitions and hints for aiding automated proof in Hybrid about the specific programming language or logic defined in the specification. This work is part of a larger project to compare reasoning in systems supporting HOAS. Our current work focuses on Hybrid, Abella, Twelf, and Beluga, and the specification language is designed to be general enough to allow the automatic generation of libraries for all of these systems from a single specification.


Author(s):  
Mark Donohue

<p>Studies of contact have revealed that all kinds of language material can, in the right circumstances, be borrowed from one language to another. Detecting, describing, and analyzing such situations typically involve the detailed study of at least two languages. An alternative involves detecting contact situations through database analysis. This cannot supplant the detailed work that requires detailed descriptive work in particular fields, but can allow us to examine large enough samples of languages that we can start to better understand, through calibration against known histories and other non-linguistic data types, likelihoods of different ‘social contact’ scenarios resulting in different kinds of linguistic traces, and also allow for the more targeted investigation of specific areas and language-to-language interactions. I shall describe the method, and illustrate its application in a number of case studies in regions for which we have good samples of language data.</p>


2017 ◽  
Vol 13 (3) ◽  
pp. 1-24 ◽  
Author(s):  
Lingxiao Li ◽  
David Taniar

Join operation is one of the most used operations in database management systems, including spatial databases. Hence, spatial join queries are very important in spatial database processing. There are many different kinds of spatial join queries, due to the richness in spatial data types and spatial operations. Therefore, it is important to understand the full spectrum of spatial join queries. The aim of this paper is to give a classification to one family type of spatial join, called the Distance-based Spatial Join. In the taxonomy, the authors divide this spatial join into three categories: (i) AllRange, (ii) All-kNN, and (iii) All-RNN. Each of these categories has its own variants. In this taxonomy, the authors confine the discussions to join queries on fixed points.


Author(s):  
Norman Y. Foo ◽  
Roslyn B. Riley

AbstractThe calculus for equational implication languages given by Selman is generalized to handle the logical equivalent if the if…then…else… construct of high level programming languages. The relevance of these results to current investigations in the algebraic specifications of data types is discussed.


Author(s):  
Yangjun Chen

In computer engineering, a number of programming tasks involve a special problem, the so-called tree matching problem (Cole & Hariharan, 1997), as a crucial step, such as the design of interpreters for nonprocedural programming languages, automatic implementation of abstract data types, code optimization in compilers, symbolic computation, context searching in structure editors and automatic theorem proving. Recently, it has been shown that this problem can be transformed in linear time to another problem, the so called subset matching problem (Cole & Hariharan, 2002, 2003), which is to find all occurrences of a pattern string p of length m in a text string t of length n, where each pattern and text position is a set of characters drawn from some alphabet S. The pattern is said to occur at text position i if the set p[j] is a subset of the set t[i + j - 1], for all j (1 = j = m). This is a generalization of the ordinary string matching and is of interest since an efficient algorithm for this problem implies an efficient solution to the tree matching problem. In addition, as shown in (Indyk, 1997), this problem can also be used to solve general string matching and counting matching (Muthukrishan, 1997; Muthukrishan & Palem, 1994), and enables us to design efficient algorithms for several geometric pattern matching problems. In this article, we propose a new algorithm on this issue, which needs only O(n + m) time in the case that the size of S is small and O(n + m·n0.5) time on average in general cases.


2015 ◽  
Vol 3 (3) ◽  
pp. SX29-SX39 ◽  
Author(s):  
Carl Byers ◽  
Andrew Woo

The ability to integrate diverse data types from multiple live and simulated sources, manipulate them dynamically, and deploy them in integrated, visual formats and in mobile settings provides significant advantages. We have reviewed some of the benefits of volume graphics and the use of big data in the context of 3D visualization case studies, in which inherent features, such as representation efficiencies, dynamic modifications, cross sectioning, and others, could improve interpretation processes and workflows.


1984 ◽  
Vol 36 (3) ◽  
pp. 495-519
Author(s):  
Jiří Adámek ◽  
Wolfgang Merzenich

In the literature about the definition of data types there exist many approaches using some concept of fixed point. Wand [13] and Lehmann, Smyth [9] e.g. constructed data types as least fixed points of functors F:K → K. Arbib and Manes [3] showed that some data types turn out to be the greatest fixed points of such endofunctors. In this paper we regard least and greatest fixed points that have a given property.


Sign in / Sign up

Export Citation Format

Share Document