Explicit representation of terms defined by counter examples
Journal of Automated Reasoning
Complexity of matching problems
Journal of Symbolic Computation
Combining matching algorithms: The regular case
Journal of Symbolic Computation
A new method for undecidability proofs of first order theories
Journal of Symbolic Computation
A feature constraint system for logic programming with entailment
FGCS'921 Selected papers of the conference on Fifth generation computer systems
Decidability of systems of set constraints with negative constraints
Information and Computation
A complete and recursive feature theory
Theoretical Computer Science
Combining decision algorithms for matching in the union of disjoint equational theories
Information and Computation
The complexity of counting problems in equational matching
Journal of Symbolic Computation
Normalized rewriting: an alternative to rewriting modulo a set of equations
Journal of Symbolic Computation
Term rewriting and all that
Associative matching for linear terms
Associative matching for linear terms
TQL: a query language for semistructured data based on the ambient logic
Mathematical Structures in Computer Science
Solving equations with sequence variables and sequence functions
Journal of Symbolic Computation
Journal of Symbolic Computation
Associative-commutative rewriting on large terms
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
ESOP'07 Proceedings of the 16th European conference on Programming
A pattern matching compiler for multiple target languages
CC'03 Proceedings of the 12th international conference on Compiler construction
Tom: piggybacking rewriting on java
RTA'07 Proceedings of the 18th international conference on Term rewriting and applications
XDO2: a deductive object-oriented query language for XML
DASFAA'05 Proceedings of the 10th international conference on Database Systems for Advanced Applications
Anti-unification for Unranked Terms and Hedges
Journal of Automated Reasoning
Hi-index | 0.00 |
Negation is intrinsic to human thinking and most of the time when searching for something, we base our patterns on both positive and negative conditions. This should be naturally reflected in software that provide pattern-based searches. We would like for example to specify that we search for white cars that are not station wagons, or that we search for a list of objects that does not contain two identical elements. In this paper we extend the notion of pattern to the one of anti-pattern, i.e. patterns that may contain complement symbols. This concept is appropriate to design powerful extensions to pattern-based programming languages like Ml, Asf+Sdf, Stratego, Maude, Elan or Tom and we show how this is used to extend the expressiveness and usability of the Tom language. We further define formally the semantics of anti-patterns both in the syntactic case, i.e. when the symbols have no specific theory associated, and modulo an arbitrary equational theory E. We then extend the classical notion of matching between patterns and ground terms to matching between anti-patterns and ground terms. Solving such problems can be performed either using general techniques as disunification, which we exemplify in the syntactical case, or more tailored and efficient approaches, which we chose to illustrate on the specific and very useful case of associativity, possibly with a unity. This allows us to be generic enough to give in this framework a very simple and natural expression of, for instance, the AllDiff standard predicate of constraint programming.