|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.uacalc.alg.conlat.CongruenceLattice
public class CongruenceLattice
A class to represent the congruence lattice of a SmallAlgebra; this is, an algebra with universe the integers from 0 to n-1. This uses the very fast algorithms from my unpublished paper Computing Congruences Efficiently which is available at http://www.math.hawaii.edu/~ralph/papers.html.
| Field Summary | |
|---|---|
static int |
MAX_DRAWABLE_INPUT_SIZE
|
static int |
MAX_DRAWABLE_SIZE
|
static ProgressReport |
monitor
|
| Fields inherited from interface org.uacalc.alg.Algebra |
|---|
CARDINALITY_COUNTABLE, CARDINALITY_COUNTABLY_INFINITE, CARDINALITY_FINITE, CARDINALITY_INFINITE, CARDINALITY_UNKNOWN |
| Constructor Summary | |
|---|---|
CongruenceLattice(SmallAlgebra alg)
|
|
| Method Summary | |
|---|---|
java.util.List<Partition> |
atoms()
|
int |
cardinality()
|
Partition |
Cg(int a,
int b)
|
Partition |
Cg(java.lang.Object a,
java.lang.Object b)
|
java.util.List<Partition> |
coatoms()
|
java.util.List |
constantOperations()
This gives a list of the operations of arity 0, which is a little different from the constants. |
Partition |
findJoinIrred(Partition a,
Partition b)
This finds a join irreducible congruence which is minimal with respect to being below b and not below a. |
Partition |
findMeetIrred(Partition a,
Partition b)
This finds a meet irreducible congruence which is maximal with respect to being above a and not above b. |
IntArray |
generatingPair(Partition part)
Find a pair [a, b] (as an IntArray) which generates part. |
SmallAlgebra |
getAlgebra()
|
BasicLattice |
getBasicLattice()
|
BasicLattice |
getBasicLattice(boolean makeIfNull)
Get the BasicLattice used primarily for drawing. |
java.lang.String |
getDescription()
|
org.latdraw.diagram.Diagram |
getDiagram()
|
java.util.Map<Partition,Subtrace> |
getJoinIrredToSubtraceMap()
|
int |
getMakeUniverseK()
|
ProgressReport |
getMonitor()
|
java.lang.String |
getName()
|
Operation |
getOperation(OperationSymbol sym)
Get the operation correspond to a symbol or null if the symbol is not part of the similarityType. |
java.util.Map<OperationSymbol,Operation> |
getOperationsMap()
|
int |
getSizeComputed()
|
TypeFinder |
getTypeFinder()
|
int |
inputSize()
The sum of the cardinality of the algebra raised to the arity of the operations. |
java.util.List<Partition> |
irredundantMeetDecomposition()
Find a set of meet irreducible irredundantly meeting to zero. |
java.util.List<Partition> |
irredundantMeetDecompositionOld()
|
boolean |
isDistributive()
|
boolean |
isDrawable()
|
boolean |
isIdempotent()
Test if all of the operations are idempotent. |
boolean |
isSimilarTo(Algebra alg)
|
boolean |
isSmallerThan(int size)
|
boolean |
isTotal()
This will fail only if there are some OperationWithDefaultValue's which are not total. |
boolean |
isUnary()
|
java.util.Iterator |
iterator()
returns the iterator of the universe. |
java.lang.Object |
join(java.util.List args)
|
java.lang.Object |
join(java.lang.Object a,
java.lang.Object b)
|
boolean |
joinIrreducible(Partition part)
|
java.util.List<Partition> |
joinIrreducibles()
An optional operation returning the list of join irreducible elements. |
java.util.List<Partition> |
joinIrreducibles(ProgressReport report)
A list of the join irreducibles; constructed if necessary. |
boolean |
joinIrreduciblesFound()
|
boolean |
joinPrime(Partition beta)
Test if beta is join prime. |
boolean |
leq(java.lang.Object a,
java.lang.Object b)
The order relation. |
Partition |
lowerStar(Partition beta)
If beta is join irreducible, this gives its lower
cover; otherwise null. |
void |
makeAtoms()
|
java.util.List<Partition> |
makeIrredundantMeet(java.util.List<Partition> list)
|
void |
makeJoinIrreducibles(ProgressReport report)
|
void |
makeOperationTables()
Make operation tables to speed up the evaluation of operations at the cost using more space. |
void |
makePrincipals(ProgressReport report)
|
void |
makeUniverse()
|
void |
makeUniverse(int size)
|
void |
makeUniverse(int maxSize,
ProgressReport report)
Construct the universe. |
void |
makeUniverse(ProgressReport report)
|
java.lang.Object |
meet(java.util.List args)
|
java.lang.Object |
meet(java.lang.Object a,
java.lang.Object b)
|
java.util.List<Partition> |
meetIrreducibles()
An optional operation returning the list of meet irreducible elements. |
boolean |
monitoring()
|
Partition |
one()
|
java.util.List |
operations()
|
java.util.List<Partition> |
principals()
|
java.util.List<Partition> |
principals(ProgressReport report)
|
void |
setDescription(java.lang.String desc)
|
void |
setMonitor(ProgressReport m)
|
void |
setName(java.lang.String v)
|
SimilarityType |
similarityType()
|
void |
sortByRank(java.util.List<Partition> lst)
Sort by rank. |
void |
stopMakeUniverse()
|
Subtrace |
subtrace(Partition beta)
Find a subtrace for beta over its lower cover. |
Subtrace |
subtrace(Partition beta,
Partition alpha)
Find a subtrace for beta over alpha. |
int |
type(Partition beta)
|
int |
type(Partition beta,
Partition alpha)
|
int |
type(Partition beta,
Partition alpha,
ProgressReport report)
Find the type for beta over alpha. |
int |
typeJI(Partition beta,
ProgressReport report)
Find the type of beta over its lower cover. |
java.util.Set |
typeSet()
|
java.util.Set |
typeSet(ProgressReport report)
|
java.util.Set<Partition> |
universe()
We use java.util.Set to hold the universe of the algebra. |
java.util.Set<Partition> |
universe(ProgressReport report)
|
boolean |
universeFound()
|
java.util.Map<Partition,java.util.List<Partition>> |
upperCoversMap()
|
Partition |
zero()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static ProgressReport monitor
public static final int MAX_DRAWABLE_SIZE
public static final int MAX_DRAWABLE_INPUT_SIZE
| Constructor Detail |
|---|
public CongruenceLattice(SmallAlgebra alg)
| Method Detail |
|---|
public void setMonitor(ProgressReport m)
setMonitor in interface Algebrapublic ProgressReport getMonitor()
getMonitor in interface Algebrapublic final boolean monitoring()
monitoring in interface Algebrapublic boolean isTotal()
Algebra
isTotal in interface Algebrapublic SmallAlgebra getAlgebra()
public boolean isUnary()
isUnary in interface Algebrapublic java.lang.String getDescription()
getDescription in interface Algebrapublic void setDescription(java.lang.String desc)
setDescription in interface Algebrapublic boolean isSmallerThan(int size)
public boolean isDrawable()
public BasicLattice getBasicLattice()
public BasicLattice getBasicLattice(boolean makeIfNull)
public org.latdraw.diagram.Diagram getDiagram()
public java.util.List<Partition> principals()
public java.util.List<Partition> principals(ProgressReport report)
public int cardinality()
cardinality in interface Algebrapublic int inputSize()
Algebra
inputSize in interface Algebrapublic java.util.Set<Partition> universe()
Algebra
universe in interface Algebrapublic java.util.Set<Partition> universe(ProgressReport report)
public boolean isSimilarTo(Algebra alg)
isSimilarTo in interface Algebrapublic SimilarityType similarityType()
similarityType in interface Algebrapublic java.util.Iterator iterator()
Algebra
iterator in interface Algebrapublic java.lang.String getName()
getName in interface Algebrapublic void setName(java.lang.String v)
setName in interface Algebrapublic boolean joinIrreduciblesFound()
public java.util.List<Partition> joinIrreducibles()
Lattice
joinIrreducibles in interface Latticepublic java.util.List<Partition> joinIrreducibles(ProgressReport report)
public boolean joinIrreducible(Partition part)
public java.util.List<Partition> meetIrreducibles()
Lattice
meetIrreducibles in interface Latticepublic java.util.List<Partition> atoms()
atoms in interface Latticepublic void makeAtoms()
public java.util.List<Partition> coatoms()
coatoms in interface Lattice
public java.lang.Object join(java.lang.Object a,
java.lang.Object b)
join in interface Latticepublic java.lang.Object join(java.util.List args)
join in interface Lattice
public java.lang.Object meet(java.lang.Object a,
java.lang.Object b)
meet in interface Latticepublic java.lang.Object meet(java.util.List args)
meet in interface Lattice
public boolean leq(java.lang.Object a,
java.lang.Object b)
Order
leq in interface Orderpublic java.util.List constantOperations()
Algebra
constantOperations in interface Algebrapublic java.util.List operations()
operations in interface Algebrapublic Operation getOperation(OperationSymbol sym)
Algebra
getOperation in interface Algebrapublic java.util.Map<OperationSymbol,Operation> getOperationsMap()
getOperationsMap in interface Algebrapublic void makePrincipals(ProgressReport report)
public boolean universeFound()
public void stopMakeUniverse()
public int getMakeUniverseK()
public int getSizeComputed()
public void makeUniverse(ProgressReport report)
public void makeUniverse(int size)
public void makeUniverse()
public void makeUniverse(int maxSize,
ProgressReport report)
public boolean joinPrime(Partition beta)
public boolean isDistributive()
public void makeJoinIrreducibles(ProgressReport report)
public void sortByRank(java.util.List<Partition> lst)
lst - public Partition lowerStar(Partition beta)
beta is join irreducible, this gives its lower
cover; otherwise null.
public java.util.Map<Partition,java.util.List<Partition>> upperCoversMap()
public Partition Cg(java.lang.Object a,
java.lang.Object b)
public Partition Cg(int a,
int b)
public java.util.Set typeSet()
public java.util.Set typeSet(ProgressReport report)
public int type(Partition beta)
public int typeJI(Partition beta,
ProgressReport report)
public int type(Partition beta,
Partition alpha)
public int type(Partition beta,
Partition alpha,
ProgressReport report)
public Subtrace subtrace(Partition beta)
public Subtrace subtrace(Partition beta,
Partition alpha)
public java.util.Map<Partition,Subtrace> getJoinIrredToSubtraceMap()
public TypeFinder getTypeFinder()
public IntArray generatingPair(Partition part)
public Partition findMeetIrred(Partition a,
Partition b)
a and not above b.
Note if a is covered by b then
[a,b] transposes up to [m,m*].
public Partition findJoinIrred(Partition a,
Partition b)
b and not below a.
Note if a is covered by b then
[a,b] transposes down to [j,j_*].
public final Partition zero()
public final Partition one()
public java.util.List<Partition> irredundantMeetDecomposition()
public java.util.List<Partition> irredundantMeetDecompositionOld()
public java.util.List<Partition> makeIrredundantMeet(java.util.List<Partition> list)
public void makeOperationTables()
Algebra
makeOperationTables in interface AlgebraOperation.makeTablepublic boolean isIdempotent()
Algebra
isIdempotent in interface Algebra
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||