public class Taylor
extends java.lang.Object
We are looking to see if there is some term t in this language of f
that is a Markovic-McKenzie-Siggers term. That is, an idempotent
term satisfying
t(y,x,x,x) = t(x,x,y,y) and
t(x,x,y,x) = t(x,y,x,x)
By idempotence every term in f can be assumed to have a balanced
term tree. For depth d such a tree has k^d leaves and the term
is determined by the vector of variables at the leaves. So terms
of depth d can be represented by a vector of variables of length
k^d and linearly ordered lexicographically.
We use the equations of f to effective rewrite this vector into the least equivalent one least in the lexicographic order. Using this we search all 4 variable terms for a MMS term.
Constructor and Description |
---|
Taylor(int arity,
java.util.List<java.util.List<IntArray>> inteqs) |
Taylor(OperationSymbol sym,
java.util.List<java.util.List<IntArray>> inteqs) |
Taylor(Term taylor,
java.util.List<Equation> eqs) |
Modifier and Type | Method and Description |
---|---|
int |
arity() |
IntArray |
canonicalForm(IntArray arr) |
Term |
canonicalForm(Term t)
Find the canonical form of a term t in the language of
f with variables x and y.
|
java.util.List<Equation> |
equations() |
java.util.List<java.util.List<IntArray>> |
inteqs() |
Term |
interprets(Taylor g,
int level)
Find a term which in the language of this which satisfies
the identities of g.
|
static int |
lexicographicallyCompare(int[] a,
int[] b) |
static int |
lexicographicallyCompare(IntArray a,
IntArray b) |
int |
lexicographicallyCompare(Term s,
Term t) |
static void |
main(java.lang.String[] args) |
Term |
makeBalancedTayorTerm(OperationSymbol f,
int depth,
java.util.List<Variable> varList)
Constructs a term with a balanced term tree.
|
static Taylor |
markovicMcKenzieTerm() |
static Taylor |
siggersTerm() |
Term |
termFromArray(int[] arr) |
Term |
termFromArray(int[] arr,
int start,
int len) |
public Taylor(OperationSymbol sym, java.util.List<java.util.List<IntArray>> inteqs)
public Taylor(int arity, java.util.List<java.util.List<IntArray>> inteqs)
public Term canonicalForm(Term t)
t
- public static Taylor markovicMcKenzieTerm()
public static Taylor siggersTerm()
public Term interprets(Taylor g, int level)
g
- public Term termFromArray(int[] arr)
public Term termFromArray(int[] arr, int start, int len)
public Term makeBalancedTayorTerm(OperationSymbol f, int depth, java.util.List<Variable> varList)
f
- depth
- the depth, at least 1varList
- public static int lexicographicallyCompare(int[] a, int[] b)
public int arity()
public java.util.List<java.util.List<IntArray>> inteqs()
public java.util.List<Equation> equations()
public static void main(java.lang.String[] args)
Copyright 2003 Ralph Freese. All Rights Reserved.