Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BooleanPolynomialRings are finite but don't know it. #23310

Open
sagetrac-msaaltink mannequin opened this issue Jun 22, 2017 · 3 comments
Open

BooleanPolynomialRings are finite but don't know it. #23310

sagetrac-msaaltink mannequin opened this issue Jun 22, 2017 · 3 comments

Comments

@sagetrac-msaaltink
Copy link
Mannequin

sagetrac-msaaltink mannequin commented Jun 22, 2017

sage: B.<a> = BooleanPolynomialRing()
sage: B.is_finite()
False

Yet B only has four elements: 0, 1, a, and 1+a.

Component: algebra

Issue created by migration from https://trac.sagemath.org/ticket/23310

@sagetrac-msaaltink sagetrac-msaaltink mannequin added this to the sage-8.0 milestone Jun 22, 2017
@sagetrac-msaaltink
Copy link
Mannequin Author

sagetrac-msaaltink mannequin commented Jun 22, 2017

comment:1

We also have

sage: B.cardinality()
+Infinity

@tscrim
Copy link
Collaborator

tscrim commented Jun 22, 2017

comment:2

I suspect a large number of the problems come from the fact that BooleanPolynomialRing inherits from MPolynomialRing_generic, which makes (natural) assumptions that each variable is free. I'd guess there are probably a number of other methods that suffer from similar fates.

@sagetrac-msaaltink
Copy link
Mannequin Author

sagetrac-msaaltink mannequin commented Jul 24, 2017

comment:3

There are a few more problems due to the inheritance. construction looks wrong

sage: B.<a> = BooleanPolynomialRing()
sage: F, Q = B.construction()
sage: F(Q)
Univariate Polynomial Ring in a over Finite Field of size 2 (using NTL)
sage: _ is B
False

as is the Krull dimension, which should be 0

sage: B.krull_dimension()
1

but other methods look OK.

There some errors in the categories B is placed in. For example

sage: B in IntegralDomains
True
sage: a * (1+a)
0

There are zero divisors, so B is certainly not an Integral Domain.

sage: B in PrincipalIdealDomains
True

It is true that all ideals of B are principal, but as it is not a domain it is not a PID.

@mkoeppe mkoeppe removed this from the sage-8.0 milestone Dec 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants