On Dalke

Code, algorithms, languages, construction...
User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 21, 2012 8:23 pm

You do realize that algorithms are not protected? So the blueprint for the sailboat is free for anyone to use, it is only the individually constructed sailboat that is protected.
So Joe can make a carbon fiber pumpkinseed boat using the plan and Fred can make one out of ferro-cement and Larry can make one out of laminated wood.

There are two ways that highly similar code can come about. First, someone can copy code and then edit it. Second, someone can understand the code and then write his own version. The first method is against the rules and the second method is not. The problem is that in looking at the finished product is seems to me it is nearly impossible to tell how we got there.

You have assumed that he took the bad path.

However, the claims of code copying (which is what I read in those documents) cannot be substantiated via reverse engineering of the assembly language. It is possible, of course that Vas has done something wrong or even committed a crime. It is certain, however, that the team that convicted Vas has committed a crime. It is legal to reverse engineer a binary for many purposes. However, to publicly publish the results of the reverse engineering is almost always illegal. Though I am not a lawyer, I guess that the publishing of the information obtained by reverse engineering of Rybka in this case was also illegal.

I see that Vas has definitely used many algorithms from Fruit. But so has everyone else. The use of LMR is one example. Not only that, but everyone is also using techniques that were peculuar to Rybka and which were obtained by reverse engineering. For instance, the savage razoring of Strelka is now widely copied. The use of material imbalance tables obtained by reverse engineering of Rybka is now widely copied.

If others have taken the ideas from Fruit to make their programs stronger, and even taken the ideas from Rybka to make their programs stronger, what exactly is it that Vas has done that is different from what every one else is doing? Because reverse engineering of assembly into C code is not one to one and onto you simply cannot claim that he has copied code because every code patch is an invention. If there were a 100% match for large patches of code then I think that the claim would be reasonable. But because Rybka is a bitboard program and Fruit is not this sort of matching is clearly going to be impossible.

As I have said before, Vas may have done something wrong. I also believe that the team that convicted Vas, though they had no malice in their hearts, may also have done something wrong. All in all, I see no good whatsoever as the outcome of the process. It is really the process itself that I have a real problem with.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Tue Feb 21, 2012 8:47 pm

This "cannot compare" has been a frequent argument from the Rybka side. However, there is strong precedent based on two concepts:

(1) semantic equivalence between a binary (asm) and a C source is easy to prove or disprove. One doesn't need to do a clean-room reverse-engineering of the asm to produce "some C source" and then compare the two C sources for matches. One needs to compare at the semantic level. There are lots of software packages that compare C to C just fine. Change the variables. Change anything that doesn't change the semantics and these software packages will detect the equivalence. So, by examination, we can accurately determine exactly what parts of Rybka are semantically equivalent to the Fruit source.

(2) now the pro-Rybka camp will try to argue "but that is just one of many possible source programs that could produce that binary." And that is true. But it is not even remotely plausible. I've been teaching computer science for 43 years now. I give the same assignment to a class, I don't get semantically-equivalent programs turned in. The programming languages I deal with (such as C and X86 asm) offer such a rich diversity of alternatives to implement algorithms, "accidental semantic equivalence" just does not happen. And those programs are far smaller than a chess program. For two programs to match in so many different ways, defies "simultaneous serendipitous development" as an excuse. There is only one plausible explanation for all the similarities between these two programs that are not found in any other "pair" of programs that were examined...

If you study my chess engine, and then write your own, your code will look NOTHING like mine, unless you kept it up on a second monitor and translated page by page into your program... And THAT is not original programming... That is copying.

The only "good" from this process is as a potential deterrent to prevent future problems. Whether that will work or not is, of course, unknown.

And let me point out again, Rybka 1.6.1 was not "similar" to Crafty. It was a total copy. And then Vas claimed it was original. And entered it into tournaments requiring original entries. And he has continued, to this day, to maintain that all versions of rybka, even the versions prior to fruit, were 100% original. And that continues, to this day, to be 100% false.

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 21, 2012 9:06 pm

The semantic level is the algorithm level. What exactly do you think it means that algorithms are not protected? Everyone is free to use that exact outline to produce exactly the same result. The ideas are not protected at all, except for a particlar implementation. It is NOT like a book where the details of the plot are protected. You can write exactly the same story. It is only the exact wording that you cannot use. You may claim that the exact wording has been used but I have examined it for myself and I would find this claim to be false.

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 21, 2012 9:41 pm

As to the similarity of Rybka 1.6.1 with Crafty, I cannot say because I have not studied those claims in great detail. It may well be that Vas has done something wrong such as violation of the Crafty source code agreement. However, those claims have absolutely nothing to do with the ICGA contests, because Rybka 1.6.1 never entered those contests. According to my understanding it was a private beta sent only to a few individuals and I do not have a copy of it.

If there is wrongdoing in this instance, then you (as the author of crafty) may have a legal right to pursue damages of some sort. However, there is no connection that I can see to the ICGA contests.

I suppose that he was using crafty ideas as a framework to test out ideas of his own. He may even have used crafty code. If this is what he did and then falsely represented the code as original to testers, then he may have wronged the testers and he may have wronged you. But this has no connection at all to the ICGA contests that I can see.

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 21, 2012 9:53 pm

I should also mention that what was demonstrate in the documentation that I read was a few tiny patches of algorithmic similarity (which were nonetheless different because of bitboard verses 0x88).
The Rybka binary is 2.5 MB for even the 1.0 beta with binaries as large as 8 MB for later versions of Rybka. Obviously, to claim a 1 to 1 binary match in these cases is utterly ludicrous.
Of course, due to similar algorithms, small patches of code have very similar structure. But the vast majority of the code is extremely different.

As I have said, Vas could indeed have done something wrong. But the arguments put forward have been entirely unconvincing. And those convicting Vas have turned themselves into wrongdoers in the actions that they performed (e.g. the illegal reproduction and display of reverse engineered data to the public).

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Tue Feb 21, 2012 10:03 pm

User923005 wrote:The semantic level is the algorithm level. What exactly do you think it means that algorithms are not protected? Everyone is free to use that exact outline to produce exactly the same result. The ideas are not protected at all, except for a particlar implementation. It is NOT like a book where the details of the plot are protected. You can write exactly the same story. It is only the exact wording that you cannot use. You may claim that the exact wording has been used but I have examined it for myself and I would find this claim to be false.
No it isn't. It CAN be at the algorithmic level. It does NOT have to be, however. That is a common statement made, knowing it is false, in an attempt to derail the discussions. We are talking "implementation" as opposed to "idea" at this point. I mean, asm IS an implementation. An implementation derived from compiling a source, which was also an implementation.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Tue Feb 21, 2012 10:06 pm

User923005 wrote:I should also mention that what was demonstrate in the documentation that I read was a few tiny patches of algorithmic similarity (which were nonetheless different because of bitboard verses 0x88).
The Rybka binary is 2.5 MB for even the 1.0 beta with binaries as large as 8 MB for later versions of Rybka. Obviously, to claim a 1 to 1 binary match in these cases is utterly ludicrous.
Of course, due to similar algorithms, small patches of code have very similar structure. But the vast majority of the code is extremely different.

As I have said, Vas could indeed have done something wrong. But the arguments put forward have been entirely unconvincing. And those convicting Vas have turned themselves into wrongdoers in the actions that they performed (e.g. the illegal reproduction and display of reverse engineered data to the public).
no one is claiming a 1-to-1 binary match, unless you look at rybka 1.6.1 and crafty 19.x. For Rybka 1.0 beta vs Fruit, we are talking about semantic matches instead. Of course Rybka would be larger. It has the big rotated bitboard arrays. Fruit does not. From your comment, I presume that assembly language / compilers / etc are not that familiar to you...

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 21, 2012 10:17 pm

hyatt wrote:
User923005 wrote:The semantic level is the algorithm level. What exactly do you think it means that algorithms are not protected? Everyone is free to use that exact outline to produce exactly the same result. The ideas are not protected at all, except for a particlar implementation. It is NOT like a book where the details of the plot are protected. You can write exactly the same story. It is only the exact wording that you cannot use. You may claim that the exact wording has been used but I have examined it for myself and I would find this claim to be false.
No it isn't. It CAN be at the algorithmic level. It does NOT have to be, however. That is a common statement made, knowing it is false, in an attempt to derail the discussions. We are talking "implementation" as opposed to "idea" at this point. I mean, asm IS an implementation. An implementation derived from compiling a source, which was also an implementation.
If there were a perfect match, then your statement would be accurate.
Since you know your remarks are not true, at this point I call them a lie.
There are no giant patches of perfect match. There are a few small areas of algorithmic agreement. Exactly like those we would find, for instance in examination of LMR in crafty verses some other program.

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Tue Feb 21, 2012 10:19 pm

hyatt wrote:
User923005 wrote:I should also mention that what was demonstrate in the documentation that I read was a few tiny patches of algorithmic similarity (which were nonetheless different because of bitboard verses 0x88).
The Rybka binary is 2.5 MB for even the 1.0 beta with binaries as large as 8 MB for later versions of Rybka. Obviously, to claim a 1 to 1 binary match in these cases is utterly ludicrous.
Of course, due to similar algorithms, small patches of code have very similar structure. But the vast majority of the code is extremely different.

As I have said, Vas could indeed have done something wrong. But the arguments put forward have been entirely unconvincing. And those convicting Vas have turned themselves into wrongdoers in the actions that they performed (e.g. the illegal reproduction and display of reverse engineered data to the public).
no one is claiming a 1-to-1 binary match, unless you look at rybka 1.6.1 and crafty 19.x. For Rybka 1.0 beta vs Fruit, we are talking about semantic matches instead. Of course Rybka would be larger. It has the big rotated bitboard arrays. Fruit does not. From your comment, I presume that assembly language / compilers / etc are not that familiar to you...
I have been programming since 1976.
If you are not claiming an exact match, and if (indeed) most of the code is different, then you are claiming that Vas does the same thing as everyone else, including you.
Your semantic matches are nothing but algorithm matches, and tiny little patches at that. You should be ashamed to call yourself a computer scientist.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Tue Feb 21, 2012 11:48 pm

User923005 wrote:
hyatt wrote:
User923005 wrote:The semantic level is the algorithm level. What exactly do you think it means that algorithms are not protected? Everyone is free to use that exact outline to produce exactly the same result. The ideas are not protected at all, except for a particlar implementation. It is NOT like a book where the details of the plot are protected. You can write exactly the same story. It is only the exact wording that you cannot use. You may claim that the exact wording has been used but I have examined it for myself and I would find this claim to be false.
No it isn't. It CAN be at the algorithmic level. It does NOT have to be, however. That is a common statement made, knowing it is false, in an attempt to derail the discussions. We are talking "implementation" as opposed to "idea" at this point. I mean, asm IS an implementation. An implementation derived from compiling a source, which was also an implementation.
If there were a perfect match, then your statement would be accurate.
Since you know your remarks are not true, at this point I call them a lie.
There are no giant patches of perfect match. There are a few small areas of algorithmic agreement. Exactly like those we would find, for instance in examination of LMR in crafty verses some other program.

Call them whatever you want. But your calling these statements lies does NOT make them lies. Just means you either don't understand the discussion, or else you do and are just trying to be deceptive. Apparently you have not read the icga report, nor looked at the evidence very closely. That would be a good first step, rather than entering the debate with an unloaded gun.

Post Reply