Multiplicative inverses of symbols in the free algebra

all_pos(x)
keep_pos(x)

Arguments

x

Freealg object

Details

Function all_pos() tests for its argument having only positive powers (that is, no inverse symbols present); function keep_pos() discards any term with a negative power.

At various points in the package, it is assumed that upper-case letters are the multiplicative inverses of the lower-case equivalents; so for example as.freealg("aA") and as.freealg("aBcCbA") evaluate to one. This can be confusing with the default print method.

Even though individual symbols have multiplicative inverses, a general element of the free algebra will not have a multiplicative inverse. For example, 1+x does not have an inverse. The free algebra is not a division algebra, in general.

Author

Robin K. S. Hankin

Examples


all_pos(rfalg(include.negative = TRUE))
#> [1] FALSE
all_pos(rfalg(include.negative = FALSE))
#> [1] TRUE


as.freealg("1+xaX")^5
#> free algebra element algebraically equal to
#> + 1 + 5xaX + 10xaaX + 10xaaaX + 5xaaaaX + xaaaaaX