3 | | Small demo: |

4 | | {{{ |

5 | | sage: R = Zp(2, 10, print_mode='digits') |

6 | | sage: A.<x,y> = TateAlgebra(R) |

7 | | sage: f = x^2 + 2*x + x*y^3 + 4*y + y |

8 | | sage: g = y^2*x^3 + 2*x + x^2 + 2*x^4*y |

9 | | sage: I = A.ideal([f,2*g]) |

10 | | sage: J = A.ideal([f,g]) |

11 | | sage: I.groebner_basis() |

12 | | [(...0000000001)*x*y^3 + (...0000000001)*x^2 + (...0000000101)*y + (...00000000010)*x, |

13 | | (...1110001010)*x^2 + (...1010000100)*y^3 + (...1100010100)*x + (...1001101000)*x^2*y^2 + (...0011101000)*y + (...1111110000)*y^2 + (...0000100000)*x^2*y + (...1100100000)*x*y^2 + (...0010100000)*x*y + O(2^10), |

14 | | (...1111000010)*y + (...1010110100)*y^8 + (...1110011100)*y^3 + (...0100001000)*y^6 + (...0001110000)*y^7 + (...0111010000)*y^5 + (...0011100000)*y^2 + (...1001000000)*y^4 + O(2^10)] |

15 | | sage: J.groebner_basis() |

16 | | [(...0111000101)*x^2 + (...1101000010)*y^3 + (...1110001010)*x + (...0100110100)*x^2*y^2 + (...0001110100)*y + (...0111111000)*y^2 + (...0000010000)*x^2*y + (...1110010000)*x*y^2 + (...0001010000)*x*y + O(2^10), |

17 | | (...0111100001)*y + (...0101011010)*y^8 + (...0111001110)*y^3 + (...1010000100)*y^6 + (...0000111000)*y^7 + (...0011101000)*y^5 + (...1001110000)*y^2 + (...0100100000)*y^4 + O(2^10)] |

18 | | sage: I.is_saturated() |

19 | | False |

20 | | sage: Io = I.saturate() |

21 | | sage: J.is_saturated() |

22 | | True |

23 | | sage: Io == J |

24 | | True |

25 | | }}} |

| 3 | See the documentation of `sage.rings.tate_algebra` for details. |