This page describes how we used Jython and the UACalc together to find a counterexample for a project involving universal algebra and CSP research.
Bergman: varieties generated by finite algebras
Here we describe how to read in a bunch of algebras and test whether the varieties they generate have certain properties. (This example was used for joint work with Cliff Bergman.)
We have some files in the UACalc/Algebra directory called
Alg9.ua each one containing a finite idempotent algebra, and we want to check whether the varieties generated by these algebras are congruence distributive or congruence permutable.
Freese and Valeriote  discovered polynomial time algorithms to test for these properties, and implemented them in the UACalc.
Here's how one could use Jython to call the UACalc methods that perform these tests:
from org.uacalc.alg.Malcev import isCongruenceDistIdempotent from org.uacalc.alg.Malcev import cpIdempotent from org.uacalc.io import AlgebraIO homedir = "/home/williamdemeo/git/UACalc/" outfile1 = open(homedir+"isCD.txt", 'w') outfile2 = open(homedir+"isCP.txt", 'w') for k in range(1,10): algname = "Alg"+str(k) algfile = homedir+"Algebras/"+algname+".ua" A = AlgebraIO.readAlgebraFile(algfile) outfile1.write(algname+" "+str(isCongruenceDistIdempotent(A, None))+"\n") outfile2.write(algname+" "+str((cpIdempotent(A, None)==None))+"\n") outfile1.close() outfile2.close()
The output will be stored in the isCD.txt and isCP.txt files, and will look something like this:
Alg1 True Alg2 True Alg3 False Alg4 True...
with True in the isCD.txt (resp, isCP.txt) file meaning the algebra generates a variety that is congruence distributive (resp, permutable).
 Ralph Freese and Matthew Valeriote, On the complexity of some Maltsev conditions, Intern. J. Algebra & Computation, 19(2009), 41-77.