Pythagoras number
In mathematics, the Pythagoras number or reduced height of a field describes the structure of the set of squares in the field. The Pythagoras number p(K) of a field K is the smallest positive integer p such that every sum of squares in K is a sum of p squares.
A Pythagorean field is a field with Pythagoras number 1: that is, every sum of squares is already a square.
Examples
- Every positive real is a square, so p(R) = 1.
- For a finite field of odd characteristic, not every element is a square, but all are the sum of two squares,[1] so p = 2.
- By Lagrange's four-square theorem, every positive rational number is a sum of four squares, and not all are sums of three squares, so p(Q) = 4.
Properties
- Every positive integer occurs as the Pythagoras number of some formally real field.[2]
- The Pythagoras number is related to the Stufe by p(F) ≤ s(F) + 1.[3] If F is not formally real then s(F) ≤ p(F) ≤ s(F) + 1,[4] and both cases are possible: for F = C we have s = p = 1, whereas for F = F5 we have s = 1, p = 2.[5]
- The Pythagoras number is related to the height of a field F: if F is formally real then h(F) is the smallest power of 2 which is not less than p(F); if F is not formally real then h(F) = 2s(F).[6] As a consequence, the Pythagoras number of a non formally real field, if finite, is either a power of 2 or 1 less than a power of 2, and all cases occur.[7]
Notes
- Lam (2005) p. 36
- Lam (2005) p. 398
- Rajwade (1993) p. 44
- Rajwade (1993) p. 228
- Rajwade (1993) p. 261
- Lam (2005) p. 395
- Lam (2005) p. 396
gollark: My "fix" is this:```lua--[["Fix" for bug PS#E9DCC81BSummary: `pcall(getfenv, -1)` seemingly returned the environment outside the sandbox.Based on some testing, this seems like some bizarre optimization-type feature gone wrong.It seems that something is simplifying `pcall(getfenv)` to just directly calling `getfenv` and ignoring the environment... as well as, *somehow*, `function() return getfenv() end` and such.The initial attempt at making this work did `return (fn(...))` instead of `return fn(...)` in an attempt to make it not do this, but of course that somehow broke horribly. I don't know what's going on at this point.This is probably a bit of a performance hit, and more problematically liable to go away if this is actually some bizarre interpreter feature and the fix gets optimized away.Unfortunately I don't have any better ideas. Also, I haven't tried this with xpcall, but it's probably possible, so I'm attempting to fix that too.]]local real_pcall = pcallfunction _G.pcall(fn, ...) return real_pcall(function(...) local ret = {fn(...)} return unpack(ret) end, ...)end local real_xpcall = xpcallfunction _G.xpcall(fn, handler) return real_xpcall(function() local ret = {fn()} return unpack(ret) end, handler)end```which appears to work at least?
gollark: Fixed, but I don't really know how or why.
gollark: ... should I create a bug report?
gollark: It returns two, actually. The second one. I don't know *what* the first one is doing.
gollark: Is this some weird implementation thing or is Lua actually defined/specified to work like this?!
References
- Lam, Tsit-Yuen (2005). Introduction to Quadratic Forms over Fields. Graduate Studies in Mathematics. 67. American Mathematical Society. ISBN 0-8218-1095-2. MR 2104929. Zbl 1068.11023.
- Rajwade, A. R. (1993). Squares. London Mathematical Society Lecture Note Series. 171. Cambridge University Press. ISBN 0-521-42668-5. Zbl 0785.11022.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.