1 | initial version |
h.lift(I)
should do the job. See documentation for details.
2 | No.2 Revision |
h.lift(I)
should do the job. See documentation for details.
Since lift
is not implemented for BooleanPolynomialRing, we can workaround by considering the ideal generated by $f,g$ and $x_i^2+x_i$ in $GF(2)[x_1,\dots,x_n]$. Here is a sample code:
B.<x,y> = BooleanPolynomialRing()
I = ideal(x+1,y+1)
pol = x+y
#print( pol.lift(I) ) # this is not implemented
#workaround:
nvars = len(B.gens())
F = PolynomialRing(GF(2),nvars,'z')
I2 = [F(g) for g in I.gens()] + [g^2+g for g in F.gens()]
print( F(pol).lift(I2)[:len(I.gens())] )
3 | No.3 Revision |
h.lift(I)
should do the job. See documentation for details.
Since lift
is not implemented for BooleanPolynomialRing, we can workaround by considering the ideal generated by $f,g$ and $x_i^2+x_i$ in $GF(2)[x_1,\dots,x_n]$. Here is a sample code:
B.<x,y> = BooleanPolynomialRing()
I = ideal(x+1,y+1)
pol = x+y
#print( pol.lift(I) ) # this is not implemented
#workaround:
nvars = len(B.gens())
F = PolynomialRing(GF(2),nvars,'z')
I2 = ideal( [F(g) for g in I.gens()] + [g^2+g for g in F.gens()]
F.gens()] )
print( F(pol).lift(I2)[:len(I.gens())] )
4 | No.4 Revision |
h.lift(I)
should do the job. See documentation for details.
Since lift
is not implemented for BooleanPolynomialRing, we can workaround by considering the ideal generated by $f,g$ and $x_i^2+x_i$ in $GF(2)[x_1,\dots,x_n]$. Here is a sample code:
B.<x,y> = BooleanPolynomialRing()
I = ideal(x+1,y+1)
pol = x+y
#print( pol.lift(I) ) # this is not implemented
#workaround:
nvars = len(B.gens())
F = PolynomialRing(GF(2),nvars,'z')
I2 = ideal( [F(g) for g in I.gens()] + [g^2+g for g in F.gens()] )
coefs = [c.substitute(dict(zip(F.gens(),B.gens()))) for c in F(pol).lift(I2)[:len(I.gens())]]
print( F(pol).lift(I2)[:len(I.gens())] coefs )
5 | No.5 Revision |
h.lift(I)
should do the job. See documentation for details.
Since lift
is not implemented for BooleanPolynomialRing, we can workaround by considering the ideal generated by $f,g$ and $x_i^2+x_i$ in $GF(2)[x_1,\dots,x_n]$. Here is a sample code:
B.<x,y> = BooleanPolynomialRing()
I = ideal(x+1,y+1)
pol = x+y
x*y + 1
#print( pol.lift(I) ) # this is not implemented
#workaround:
nvars = len(B.gens())
F = PolynomialRing(GF(2),nvars,'z')
I2 = ideal( [F(g) for g in I.gens()] + [g^2+g for g in F.gens()] )
coefs = [c.substitute(dict(zip(F.gens(),B.gens()))) for c in F(pol).lift(I2)[:len(I.gens())]]
print( coefs )
6 | No.6 Revision |
h.lift(I)
should do the job. See documentation for details.
Since lift
is not implemented for BooleanPolynomialRing, we can workaround by considering the ideal generated by $f,g$ and $x_i^2+x_i$ in $GF(2)[x_1,\dots,x_n]$. Here is a sample code:
B.<x,y> = BooleanPolynomialRing()
I = ideal(x+1,y+1)
pol = x*y + 1
#print( pol.lift(I) ) # this is not implemented
#workaround:
nvars = len(B.gens())
F = PolynomialRing(GF(2),nvars,'z')
GF(2)[B.gens()]
I2 = ideal( [F(g) for g in I.gens()] + [g^2+g for g in F.gens()] )
coefs = [c.substitute(dict(zip(F.gens(),B.gens()))) [B(c) for c in F(pol).lift(I2)[:len(I.gens())]]
F(pol).lift(I2)[:len(I.gens())]]
print( coefs )