-
Notifications
You must be signed in to change notification settings - Fork 69
Conversation
This looks great. Could you add support for (at least) In theory we could support all the other variants (e.g. the commutative versions, |
…es, and fix needless comparison in order instances
implicit val band = new Band[(Int, Int)] { | ||
def combine(a: (Int, Int), b: (Int, Int)) = (a._1, b._2) | ||
} | ||
checkAll("(Int, Int) Band", GroupLaws[(Int, Int)].band) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why did you delete this band test? If nothing else it was exercising GroupLaws.band.
@non you steered him wrong on Field, my friend. |
Of course, it would be cool to have a Galois fields for tuples of Boolean. :) (which is the one exception that pops to mind for standard scala types, but it does not compose this way). |
@johnynek Thanks for your feedback, will address them soon! I'm out of town for the weekend so most likely won't be able to do anything until next week. |
- def negate(x: ${`(A..N)`}): ${`(A..N)`} = ${unaryTuple("negate")} | ||
- def one: ${`(A..N)`} = ${nullaryTuple("one")} | ||
- def plus(x: ${`(A..N)`}, y: ${`(A..N)`}): ${`(A..N)`} = ${binTuple("plus")} | ||
- def quot(x: ${`(A..N)`}, y: ${`(A..N)`}): ${`(A..N)`} = ${binTuple("quot")} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm skeptical of this one as well. Can you add a test that checks that (Int, Int)
forms a EuclideanRing? I don't know as much about the theory of euclidean rings, so I don't know off hand the answer.
👍 |
@johnynek I encouraged @adelbertc to add the euclidean ring instance (as well as the erroneous field instance). I'm pretty sure it's OK (although I haven't written a proof yet) but if you are nervous I would be willing to remove it (and obviously apologize to @adelbertc for suggesting the work). |
Yeah, I guess it works for a Euclidean Ring, but I noticed that we don't actually have a test for Euclidean Rings. It is currently a TODO and actually just checking the Ring laws. +1 from me. Added #85 |
No description provided.