I'm sure its omission is just an oversight. For fractional ideals in number 
fields it is defined:

sage: K.<r>=QuadraticField(7)
sage: I=K.fractional_ideal(5)
sage: J=K.fractional_ideal(3)
sage: I.intersection(J)
Fractional ideal (15)

I doubt that just knowing a ring is a PID makes computing intersections of 
ideals easy. So the omission may be because there doesn't seem to be 
ZZ-specific (or euclidean ring-specific) ideal code. And with lcm around, 
the need for it has been low, I expect.

On Saturday, 28 October 2023 at 02:36:51 UTC-7 G. M.-S. wrote:

>
> I wonder why SageMath cannot compute the intersection of 2 ideals in ZZ.
>
> Is this due to the fact that ZZ would "only" be a PID?
>
> Guillermo
>
> ┌────────────────────────────────────────────────────────────────────┐
>
> │ SageMath version 10.1, Release Date: 2023-08-20                    │
>
> │ Using Python 3.11.1. Type "help()" for help.                       │
>
> └────────────────────────────────────────────────────────────────────┘
>
> sage: n1,n2=720,756
>
> sage: d,m=gcd(n1,n2),lcm(n1,n2)
>
> sage: n1,n2,d,m
>
> (720, 756, 36, 15120)
>
> sage: I1,I2=ZZ.ideal(n1),ZZ.ideal(n2)
>
> sage: I1,I2
>
> (Principal ideal (720) of Integer Ring, Principal ideal (756) of Integer 
> Ring)
>
> sage: I1+I2
>
> Principal ideal (36) of Integer Ring
>
> sage: I1.intersection(I2)
>
> ---------------------------------------------------------------------------
>
> AttributeError                            Traceback (most recent call 
> last)
>
> Cell In [7], line 1
>
> ----> 1 I1.intersection(I2)
>
>
> File 
> /private/var/tmp/sage-10.1-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:488,
>  
> in sage.structure.element.Element.__getattr__ 
> (build/cythonized/sage/structure/element.c:4846)()
>
> *    486*         AttributeError: 
> 'LeftZeroSemigroup_with_category.element_class' object has no attribute 
> 'blah_blah'
>
> *    487*     """
>
> --> 488     return self.getattr_from_category(name)
>
> *    489* 
>
> *    490* cdef getattr_from_category(self, name):
>
>
> File 
> /private/var/tmp/sage-10.1-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/structure/element.pyx:501,
>  
> in sage.structure.element.Element.getattr_from_category 
> (build/cythonized/sage/structure/element.c:4958)()
>
> *    499*     else:
>
> *    500*         cls = P._abstract_element_class
>
> --> 501     return getattr_from_other_class(self, cls, name)
>
> *    502* 
>
> *    503* def __dir__(self):
>
>
> File 
> /private/var/tmp/sage-10.1-current/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/sage/cpython/getattr.pyx:362,
>  
> in sage.cpython.getattr.getattr_from_other_class 
> (build/cythonized/sage/cpython/getattr.c:2773)()
>
> *    360*     dummy_error_message.cls = type(self)
>
> *    361*     dummy_error_message.name = name
>
> --> 362     raise AttributeError(dummy_error_message)
>
> *    363* attribute = <object>attr
>
> *    364* # Check for a descriptor (__get__ in Python)
>
>
> AttributeError: 'Ideal_pid' object has no attribute 'intersection'
>
> sage: 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/f54544d4-93f5-4411-99c9-335a67de25f3n%40googlegroups.com.

Reply via email to