| 11 | |
| 12 | More precisely. The kind of scenario in the coercion framework where I know that `UniqueRepresentation` is really required is to make this assertion hold: |
| 13 | {{{ |
| 14 | sage: Zxy.<x,y>=ZZ[] |
| 15 | sage: Qx.<x>=QQ[] |
| 16 | sage: Qy.<y>=QQ[] |
| 17 | sage: Qxy=QQ['x','y'] |
| 18 | sage: x=Qx.0 |
| 19 | sage: y=Zxy.1 |
| 20 | sage: (x+y).parent() is Qxy |
| 21 | True |
| 22 | sage: Qy.<y>=QQ[] |
| 23 | sage: (Qy.0+Zxy.0).parent() is Qxy |
| 24 | True |
| 25 | }}} |
| 26 | |
| 27 | Note that the coercion framework needs to construct a common covering parent for `Zxy` and `Qx` and one for `Zxy` and `Qy` itself. It would be very surprising if the results were not identical. |
| 28 | (the fact that the resulting parent is equal to `Qxy` constructed by the user is convenient but less important). I don't think people would be doing that with `QuaternionAlgebra` so I think you could safely leave off the `UniqueRep` for now. |