Thanks for the tips. I have just realized that what worked for me was 
evaluation instead of substitution. Anyway, I think that the best approach 
is to use homomorphisms as Dima suggested. The symbolic ring is not a good 
choice for me since algebraic rings have much more methods, e.g., Groebner 
bases.
El domingo, 21 de diciembre de 2025 a las 22:44:25 UTC+1, Nils Bruin 
escribió:

> If you look at the code, you'll see it's a one-liner:
>
>         return self.parent()([a.subs(in_dict, **kwds) for a in 
> self.list()])
>
> So it does the substitution on the elements and then forces the result 
> back into the parent, which is FreeModule(R,3). Your ring T has a 
> conversion back into R because both are polynomial rings in 3 variables 
> over QQ. If you change your codomain to `T.<t,t0,t1,t2>` you'll see an 
> error that shows what's going on.
>
> So the code is definitely doing what it is programmed to do. I think it's 
> more designed to work with modules over the Symbolic ring, though. You 
> could look into the revision history with "blame" to see if it ever did 
> anything else. I suspect you recall it working according to your intent 
> when used over SR (where it would work).
>
> The problem with giving the result back that you probably intend is that 
> `subs` would somehow have to figure out you want the answer to lie in 
> `FreeModule(T,3)` and construct that parent.
>
>
>
> On Sunday, 21 December 2025 at 08:14:42 UTC-8 Enrique Artal wrote:
>
>> Not really, but it may help. I do not see why it idoes not work.
>>
>> El domingo, 21 de diciembre de 2025 a las 14:53:44 UTC+1, 
>> [email protected] escribió:
>>
>>> On Sun, Dec 21, 2025 at 5:48 AM Enrique Artal <[email protected]> 
>>> wrote:
>>>
>>>> I think that this code has been successful once:
>>>> R.<x, y> = QQ[]
>>>> T.<t> = QQ[]
>>>> sb = {x: t, y: t^2}
>>>> X = vector(R.gens())
>>>> X.subs(sb)
>>>>
>>>> This one works:
>>>>
>>>> R.<x, y, z> = QQ[]
>>>> T.<t, t0, t1> = QQ[]
>>>> F = (y * z - x^2)^2 - x^3 * z
>>>> sb = {x:t^2, y:t^3 + t^4, z:1}
>>>> X = vector(R.gens())
>>>> X.subs(sb)
>>>>
>>>> But the result is (x^2, x^4 + x^3, 1)
>>>>
>>>> What am I doing wrong
>>>>
>>>
>>> Do you need the ring T?
>>>
>>>
>>> R.<x, y, z, t> = QQ[]
>>>
>>> sb = {x:t^2, y:t^3 + t^4, z:1}
>>>
>>> X = vector([x,y,z])
>>> X.subs(x=t^2, y=t^3 + t^4, z=1)
>>>
>>> works for me.
>>>  
>>>
>>>> -- 
>>>> 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 [email protected].
>>>> To view this discussion visit 
>>>> https://groups.google.com/d/msgid/sage-support/3820340c-b09a-45bb-958b-f8403f094269n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/sage-support/3820340c-b09a-45bb-958b-f8403f094269n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>

-- 
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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/sage-support/e57bc2bb-be57-4dbe-8df7-6cd2daa32cc2n%40googlegroups.com.

Reply via email to