Posts tagged ‘Haskell’
I wrote a small package to compute Gröbner bases in Haskell with the Buchberger algorithm (with applications to variable elimination). Performance is quite bad compared to specialised software like Macaulay, but it seems to work ! I put a Cabal package here. Maybe I’ll add several functions afterwards.
A testcase :
type R = Polynom QQ VarXYZ
[x,y,z,t,u,v] = map returnp [X,Y,Z,T,U,V] :: [R]
-- projection from a point on the intersection of quadrics
main = do
print $ step_eliminate [T] $ MakeIdeal
[x^2 - 3*y*z + z*t + 2*x*t,
z^2 + 5*y^2 + z*x - 2*t*z]
The output should be :
The adjunction property between two functors, and , says that there is a natural bijection between morphisms (in the first category) and (in the second category). Here natural means that these bijection is compatible with composition with morphisms , or and .
Adjunctions are naturally created by the use of monads or operads. For example, the functor mapping a set X to the free vector space with basis X, has a adjoint, , mapping a vector space to the set of its elements. The meaning of the adjunction is that a morphism is equivalent to the choice of images of basis vectors where W is considered as as set. Similar adjunctions exist for other free objects (free algebras, free groups, free modules).
Laver tables are combinatorial objets whose definition is surprisingly simple. However, they do have somewhat weird properties, which come from their relationship with questions of set theorists (namely, how do elementary embeddings of models of set theory behave). It also have connections with braid group theory, which I do not know. The Wikipedia article gives the basic facts, a survey by Patrick Dehornoy will give relevant bibliography, and friends of mine wrote an undergraduate thesis on the subject (in French).
The most basic definition of Laver tables is the Cayley table of a self-distributive binary operation. This means we define an exotic operation on a set of numbers, and fill a square table with the outcomes of this operation. The required property of this operation is . This operation does not share properties with our usual operations, which are often associative of commutative. Suppose the set of numbers is and that 1 acts on the right by shifts : and . (more…)