First, I would like to suggest a change of the subject heading. What
we are really talking about now is something different than what was
meant by Marduk's initial question about coefficients and "support".

I would really like to continue this discuss with a focus on adding
the noncommutative polynomial code written by Conrad to FriCAS.  I
think this code is almost ready for wider distribution but we need a
more integrated set of tests (based on examples from the papers) and
maybe some brief documentation to be added to hyperdoc.

On Tue, Jun 5, 2018 at 9:40 AM, Raymond Rogers
<[email protected]> wrote:
> If anybody is interested:
> In
>  A Standard Form in (some) Free Fields: How to construct
> Minimal Linear Representations
> Konrad Schrempf
> 1803.10627.pdf
>

Note that this paper is about Free Fields - something a little more
general and bit more ambitious than the algebra.

> 1) On page 7 "Scalar Multiplication" (first line) my original question is
> defined/stated.  I will follow up on checking how to access it in the
> nc_ini03.input environment.
>

Page 7 describes how the elementary field operations are implemented
in the ALS representation.

>
> On Fri, Jun 1, 2018, 1:07 PM Raymond Rogers <[email protected]>
> wrote:
>>
>> Question: is there some way to introduce a commutating
>> variable/parameter/undefined "a" into the the equations?
>> i.e. (1+3*x^2)*(2+a*x*y)
>> x,y NCP
>> "a" being a parameter, a member of K the base field.
>>
>> Making it a part of the alphabet {x,y,a} works, produces some reasonable
>> outputs, but I have a feeling that it's unnecessarily restrictive. I
>> hope this is not an _extremely_ silly question.

No, your question is about parameters, i.e. symbols that are
interpreted as coefficients rather than polynomials.  The scalar
operation in page 7 only provides the recipe for scalar multiplication
- something that is required in order to be an Algebra. This is
orthogonal to the issue of symbolic coefficients.

What you want is something like this:

ALPHABET := ['x, 'y, 'z, 'w];
PARAMETERS := ['a,'b,'c, 'd];
OVL ==> OrderedVariableList(ALPHABET)
OFM ==> FreeMonoid(OVL)
MP ==> MPOLY(PARAMETERS,Integer)
F ==> Fraction(MP)
XDP ==> XDPOLY(OVL, F)
NCP ==> NCPOLY(OVL, F)
x := 'x::OFM::XDP;
y := 'y::OFM::XDP;
z := 'z::OFM::XDP;
w := 'w::OFM::XDP;
a := 'a::F;
b := 'b::F;
c := 'c::F;
d := 'd::F;

--

NCPOLY expects the scalar coefficients F to be a Field. To answer you
question you want F to be symbolic. For example:

p_01 : NCP := a - b*x*y
p_02 := p_01 + 2*p_01
rank(p_02)
p_03 := addSTD(p_01, p_01)
size(p_03)
p_11 : NCP := x*y*x*y+a
p_14: NCP := a*x*y+b*z
representation(p_14)
pencil(p_14)
multiplyRow!(p_14, 3, 7);
p_14

p_02 :: XDP
p_12 := p_02*p_02+p_02
p_12 :: XDP
fct_12 := factorization(p_12)
test(p_12 :: XDP = fct_12(1)::XDP * fct_12(2)::XDP)


> 2) Example 3.4 doesn't work on my system.  Is this just not implemented or
> do I need more included functions?
> --------
> The command and answer is:
>  -> pp_02 : NCP :=(y^(-1)-x)^(-1)
>
>    >> Error detected within library code:
>    NCPOLY: inverse(f) - polynomial not invertible.
> -------------

In an algebra where the coefficients form a Field, only the scalar
polynomials are invertible. NCPOLY implements

    inverse (f:%) : % ==
      not(scalar?(f)) =>
        error "NCPOLY: inverse(f) - polynomial not invertible."
      zero?(qeltv(f.lmmp, 1, POS_1)) =>
        error "NCPOLY: inverse(f) - zero element is not invertible."
      return(copy(1, 1/qeltv(f.lmmp, 1, POS_1)))

--

Something more general is required (as discussed in the paper) if we
want a Free Field rather than just an algebra.

> Is there a large gap between nc_ini03.input  and 1803.10627.pdf; did I
> misunderstand the relationship?
>
>

Keep in mind that "1803.10627.pdf" is describing something more
general. From offline discussions with Konrad I gather that the FriCAS
coding for the latter is still somewhat of a work-in-progress but he
is willing to discuss it if there is some interest in such a
generalization.

Bill Page.

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to