evitaicossa
packageAn algebra is a vector space equipped with a bilinear product: the vectors may be multiplied. Algebras may be defined over any field but here we use the real numbers. An antiassociative algebra is an algebra in which the usual associativity relation
The evitaicossa
package provides some R-centric
functionality for working with antiassociative algebras. In an R
session, you can install the released version of the package from CRAN with:
# install.packages("evitaicossa") # uncomment to install the package
library("evitaicossa") # loads the package
The package includes a single S4 class aaa
[for
“antiassociative
algebra”] and a range of functions to create objects of
this class. A good place to start is function raaa()
, which
creates a random object of class aaa
:
<- raaa())
(evita #> free antiassociative algebra element:
#> +5a +2d +2a.b +1b.d +3c.c +1(a.d)c +3(b.b)c +2(c.a)c
<- raaa())
(icossa #> free antiassociative algebra element:
#> +7c +2d +3a.d +4c.a +3d.a +3(a.b)b +2(c.a)a +2(d.a)b
<- raaa())
(itna #> free antiassociative algebra element:
#> +3b +2c +2a.d +1d.b +2d.d +1(b.b)a +4(b.d)d +3(c.c)a
Above, we see objects evita
, icossa
and
itna
are random antiassociative algebra elements, with
indeterminates a
, b
, c
,
d
. These objects may be combined with standard arithmetic
operations:
+icossa
evita#> free antiassociative algebra element:
#> +5a +7c +4d +2a.b +3a.d +1b.d +4c.a +3c.c +3d.a +3(a.b)b +1(a.d)c +3(b.b)c
#> +2(c.a)a +2(c.a)c +2(d.a)b
*icossa
evita#> free antiassociative algebra element:
#> +35a.c +10a.d +14d.c +4d.d -15(a.a)d +14(a.b)c +4(a.b)d -20(a.c)a -15(a.d)a
#> +7(b.d)c +2(b.d)d +21(c.c)c +6(c.c)d -6(d.a)d -8(d.c)a -6(d.d)a
It is possible to verify some of the axioms as follows:
c(
left_distributive = evita*(icossa + itna) == evita*icossa + evita*itna,
right_distributive = (evita + icossa)*itna == evita*itna + icossa*itna,
antiassociative = evita*(icossa*itna) == -(evita*icossa)*itna
)#> left_distributive right_distributive antiassociative
#> TRUE TRUE TRUE
For further details, see the package vignette
vignette("evitaicossa")