On Sun, Oct 20, 2019 at 11:38 AM Simon Brandhorst <sbrandho...@web.de> wrote:
>
> Dear Ignat Soroko,
>
> the quadratic forms code was written with quadratic forms over QQ and over ZZ 
> in mind. So I would be very sceptic about any functionality over number 
> fields.
> For instance the signature vector you mention does not make sense of the 
> F.<a> =CyclotomicField(8). Instead of a single signature vector, over a 
> number field you should
> obtain a signature for each real embedding F.
CyclotomicField(8) has no real embedding.

Cyclotomic fields come with a default embedding:

   The default embedding sends the generator to the complex primitive
   n^{th} root of unity of least argument.

      sage: CC(k.gen())
      0.623489801858734 + 0.781831482468030*I

which is not real (and in general cyclotomic fields have no real embedding)

However, having a real embedding seems to be an unnecessary restriction, as
a symmetric matrix of real cyclotomics will have real eigenvalues, and
it has a signature.
(I don't  know whether the signature will stay invariant if the
embedding changes - it should be either
easy  to prove or easy to give a counterexample...)


Thanks,
Dima

> Since F has no real places it does not really have signatures. All infinite 
> places are complex and all regular quadratic forms over CC are equivalent. So 
> basically
>
> sage: 
> Q=QuadraticForm(K,8,[1/2,-a/2,0,0,0,0,0,0,1/2,-a/2,0,0,0,0,0,1/2,-1/2,0,0,
> ....: 0,0,1/2,-1/2,0,0,0,1/2,-1/2,0,0,1/2,-a/2,0,1/2,-a/2,1/2])
> sage: Q.signature_vector()
>
> should either raise a value error, or
> be called signature_vectors() and return a dictionary of real places and 
> signature vectors.
>
> Best,
> Simon
>
> On Friday, October 18, 2019 at 2:12:02 AM UTC+2, Ignat Soroko wrote:
>>
>> I am computing the signature of a quadratic form having entries 0, 1, -1/2, 
>> -sqrt(2)/2. I noticed that the result of signature_vector() is different if 
>> we treat the number sqrt(2) as a cyclotomic or as a real number. Please look 
>> at the example:
>>
>> sage: K.<z>=CyclotomicField(8)
>> sage: a=z-z^3  # a is a square root of 2
>> sage: a-sqrt(2)
>> 0
>> sage: 
>> Q=QuadraticForm(K,8,[1/2,-a/2,0,0,0,0,0,0,1/2,-a/2,0,0,0,0,0,1/2,-1/2,0,0,
>> ....: 0,0,1/2,-1/2,0,0,0,1/2,-1/2,0,0,1/2,-a/2,0,1/2,-a/2,1/2])
>> sage: Q.signature_vector()
>> (8, 0, 0)
>>
>> this cannot be true since there exists an isotropic vector:
>>
>> sage: v=vector([1,a,1,0,0,0,0,0])
>> sage: v*Q.matrix()*v
>> 0
>>
>> Let's try it over reals:
>>
>> sage: a=sqrt(2)
>> sage: 
>> Q=QuadraticForm(RR,8,[1/2,-a/2,0,0,0,0,0,0,1/2,-a/2,0,0,0,0,0,1/2,-1/2,0,0
>> ....: ,0,0,1/2,-1/2,0,0,0,1/2,-1/2,0,0,1/2,-a/2,0,1/2,-a/2,1/2])
>> sage: Q.signature_vector()
>> (6, 2, 0)
>>
>> however, the isotropic vector above is not isotropic anymore:
>>
>> sage: v=vector([1,a,1,0,0,0,0,0])
>> sage: v*Q.matrix()*v
>> sqrt(2)*(1.00000000000000*sqrt(2) - 1.41421356237310) - 
>> 1.41421356237310*sqrt(2) + 2.00000000000000
>>
>> I also tried to define
>>
>> sage: a=sqrt(AA(2))
>> sage: 
>> Q=QuadraticForm(AA,8,[1/2,-a/2,0,0,0,0,0,0,1/2,-a/2,0,0,0,0,0,1/2,-1/2,0,0
>> ....: ,0,0,1/2,-1/2,0,0,0,1/2,-1/2,0,0,1/2,-a/2,0,1/2,-a/2,1/2])
>>
>> but Q.signature_vector() gives a runtime error with many lines of code 
>> ending in:
>>
>> RuntimeError: maximum recursion depth exceeded
>>
>>
>> Questions:
>> 1) is Q.signature_vector() over cyclotomic field is interpreted in some 
>> other way than for reals, thus making the result (8,0,0) somehow correct?
>>
>> 2) Which setting would guarantee both the correct result for 
>> signature_vector() using the exact arithmetic and at the same time show that 
>> v is actually an isotropic vector?
>>
>> Thank you!
>>
>>
>>
> --
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-devel+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/edce4769-1ca3-4400-bd50-ef01f0a11d5c%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/CAAWYfq28m_DsEoNwWo9d5TDo-LEzjqkQ2iLDafJxvE_kNhCcjg%40mail.gmail.com.

Reply via email to