Results 1 
6 of
6
Decision procedures for algebraic data types with abstractions
 IN 37TH ACM SIGACTSIGPLAN SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES (POPL), 2010. DECISION PROCEDURES FOR ORDERED COLLECTIONS 15 SHE75. SAHARON SHELAH. THE MONADIC THEORY OF ORDER. THA ANNALS OF MATHEMATICS OF MATHEMATICS
, 2010
"... We describe a family of decision procedures that extend the decision procedure for quantifierfree constraints on recursive algebraic data types (term algebras) to support recursive abstraction functions. Our abstraction functions are catamorphisms (term algebra homomorphisms) mapping algebraic data ..."
Abstract

Cited by 23 (11 self)
 Add to MetaCart
We describe a family of decision procedures that extend the decision procedure for quantifierfree constraints on recursive algebraic data types (term algebras) to support recursive abstraction functions. Our abstraction functions are catamorphisms (term algebra homomorphisms) mapping algebraic data type values into values in other decidable theories (e.g. sets, multisets, lists, integers, booleans). Each instance of our decision procedure family is sound; we identify a widely applicable manytoone condition on abstraction functions that implies the completeness. Complete instances of our decision procedure include the following correctness statements: 1) a functional data structure implementation satisfies a recursively specified invariant, 2) such data structure conforms to a contract given in terms of sets, multisets, lists, sizes, or heights, 3) a transformation of a formula (or lambda term) abstract syntax tree changes the set of free variables in the specified way.
Fusion and Simultaneous Execution in the Refinement Calculus
 Acta Informatica
, 1997
"... In the refinement calculus, program statements are modelled as predicate transformers. A product operator for predicate transformers was introduced by Martin [18] and Naumann [25] using category theoretic considerations. ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
In the refinement calculus, program statements are modelled as predicate transformers. A product operator for predicate transformers was introduced by Martin [18] and Naumann [25] using category theoretic considerations.
Universal regular path queries
 HigherOrder and Symbolic Computation
, 2003
"... Given are a directed edgelabelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this proble ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
Given are a directed edgelabelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this problem using relational algebra, and show how it may be implemented in Prolog. The motivation for the problem derives from a declarative framework for specifying compiler optimisations. 1 Bob Paige and IFIP WG 2.1 Bob Paige was a longstanding member of IFIP Working Group 2.1 on Algorithmic Languages and Calculi. In recent years, the main aim of this group has been to investigate the derivation of algorithms from specifications by program transformation. Already in the mideighties, Bob was way ahead of the pack: instead of applying transformational techniques to wellworn examples, he was applying his theories of program transformation to new problems, and discovering new algorithms [16, 48, 52]. The secret of his success lay partly in his insistence on the study of general algorithm design strategies (in particular
Inductive Datatypes with Laws and Subtyping – A Relational Model
 Faculty of Mathematics and Computing
"... ..."
Mapping Adl to the BirdMeertens Formalism
, 1994
"... Bulk data operations such as map and reduce are an elegant medium for expressing repetitive computation over aggregate data structures. They also serve as a tool for abstraction: not all details of the computation, such as the exact ordering of the constituent operations, need to be specified by the ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Bulk data operations such as map and reduce are an elegant medium for expressing repetitive computation over aggregate data structures. They also serve as a tool for abstraction: not all details of the computation, such as the exact ordering of the constituent operations, need to be specified by the programmer. A precise description of the behaviour of the bulk data operator is the preserve of the language implementor. If the implementation of these operators is parallel then they become a medium for expressing implicit data parallelism. There is a large body of work formally the relating bulk data operators to each other and to their underlying data types. Much of this research stems from Category Theory where a number of general properties of types and operators have been established. One theoretical framework in particular, the BirdMeertens Formalism (BMF), has proved to be extremely useful. The BMF theory of a type provides a set of operators on that type and a set of algebraic id...
Bag Equivalence via a ProofRelevant Membership Relation
"... Abstract. Two lists are bag equivalent if they are permutations of each other, i.e. if they contain the same elements, with the same multiplicity, but perhaps not in the same order. This paper describes how one can define bag equivalence as the presence of bijections between sets of membership proof ..."
Abstract
 Add to MetaCart
Abstract. Two lists are bag equivalent if they are permutations of each other, i.e. if they contain the same elements, with the same multiplicity, but perhaps not in the same order. This paper describes how one can define bag equivalence as the presence of bijections between sets of membership proofs. This definition has some desirable properties: – Many bag equivalences can be proved using a flexible form of equational reasoning. – The definition generalises easily to arbitrary unary containers, including types with infinite values, such as streams. – By using a slight variation of the definition one gets set equivalence instead, i.e. equality up to order and multiplicity. Other variations give the subset and subbag preorders. – The definition works well in mechanised proofs. 1