Programmers Open Letter to ICGA on Rybka/Fruit

General discussion about computer chess...
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: Programmers Open Letter to ICGA on Rybka/Fruit

Post by hyatt » Sat Mar 05, 2011 4:38 pm

Jeremy Bernstein wrote:
BB+ wrote:
Where can one get the binary?
The ICGA obtained a pre-Beta Rybka for the purposes of advancing the Rybka/Fruit investigations (of particular interest was whether the pre-Beta Rybka was similar to Rybka 1.0 Beta). It was given to Zach and myself to analyse and report back. Once the large amount of Crafty copying became clear, Bob chose to publicise various information (it is his code, after all -- we are much more tight-lipped about aspects which are not copying-related). I am not sure what the "Rules of Evidence" will be regarding this binary if/when the Panel proceeds. I suspect that Fabien/FSF will subpoena it for a civil case.

PS. It seems that MichaelIsGreat has migrated to the Rybka Forum, but has not yet discovered the annoying yellow highlighting.
Obviously, it would be good if non-panelists were in a position to verify your findings.

Jeremy

That will happen. BB and Zach are quoting chapter and verse in the binary, giving the instructions, and comparing them directly to the crafty source code, which shows not just close, but _exact_ matches... And then there are the known bugs in the old Crafty code (if ms == 99999) that caused El Chinito to be exposed as a clone). And then there is the superfluous code (today) that I can specifically explain when and why it was originally written, and why the code is worthless today. Which obviously raises the question "if it doesn't apply to today's programs, how would someone "invent" the same superfluous code that addresses a 1995 problem that did not exist by the time the first Rybka came along?

Right now, it is an issue of recognizing, then formatting, then doing a point-by-point write-up to make things as clear and airtight as possible. I edited my part a couple of dozen times yesterday working on the wording and adding additional information as it comes to mind...

This is actually a pretty amazing story now, having expanded dramatically over past claims..

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: Programmers Open Letter to ICGA on Rybka/Fruit

Post by hyatt » Sat Mar 05, 2011 4:42 pm

BB+ wrote:
Obviously, it would be good if non-panelists were in a position to verify your findings.
For that matter, it would also be good if I could indeed verify that the executable given to me by the ICGA is actually a pre-Beta Rybka as it is claimed to be. 8-)

It is not even clear to me that a pre-Beta Rybka executable would be made available to the Panel. Most likely there would just be a question put to Rajlich on whether he agreed that the evidence presented was correct (i.e., that the ASM dumps [ignoring my comments] really do come from a pre-Beta Rybka -- obviously he himself would be privy to the evidence, if he happens not to have a copy). I can imagine two ways he might dispute this: if he were to say "No, that is not a pre-Beta Rybka", then the question of chain of custody would arise; if he were to say "Yes, that is a pre-Beta Rybka, but I don't think the ASM dump is correct", then I suspect the ICGA could find an outside expert to mediate such a picayune dispute. :P In neither case would the pre-Beta Rybka executable in its entirety need to be made available to the Panel.

I think we've reached the point where something even more dramatic will have to happen for us to post too many more examples of copied code. Whether there's 5 copied functions or 20 copied functions can't matter that much. As before, I will state my opinion that much of the search and evaluation in the pre-Beta Rybka is not from Crafty (e.g., it uses MTD(f) rather than PVS).

Hmmm... I did a mtd(f) version of Crafty, and while I never released it as a "mainstream version" I did make it available to anyone that requested it. The question is, do I have that version, still? I am not sure. I lost many old versions when we had a disk crash in the late 90's and all backups were corrupt. Whether I have that or not I don't know. I'll ask Don when this was a hot topic as he suggested that I give it a try.

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: Programmers Open Letter to ICGA on Rybka/Fruit

Post by hyatt » Sat Mar 05, 2011 4:59 pm

kingliveson wrote:
BB+ wrote:
What are the chances, though, that Vasik is going to comment on this at all? I suppose that, if it reaches the point of a civil suit on the basis of the data obtained in the investigation, that will be the point where he is required to defend. Whether he'll comment on anything that occurs up until that point seems, in my assessment, very unlikely.
This opinion has been voiced, and there appear to be many in agreement. As has the idea that he will avoid the ICGA tribunal particularly on the fear that he might therein self-incriminate himself for a later civil suit.

If the process becomes in absentia, I suspect the ICGA will still be rather thorough in examining the evidence (to the extent possible w/o a proper dialogue) and deciding what penalties to apply [obviously his failing to show up should result in an indefinite ban -- the questions then would become: what titles (if any) to annul, how strongly to word a recommendation to other entities, and the proper means of publicising the findings].
It makes sense for him not publicly comment or respond to ICGA inquiries especially if there are improprieties that could result in legal matters. That said, does any foresee a scenario where a private and public apology and acknowledgment of misconduct revolves the long debate?

Hard to speculate. We already know what happened from the evidence compiled. And the body of evidence continues to grow. I had not paid much attention to the arguments in light of what has previously been exposed. I became involved again when David asked me to help with the ICGA investigation. For me, it was only about "the search for the truth." We've had rumors and innuendos since the first Rybka came along. The rumors have continued until today. Once I convinced myself what had happened (with respect to fruit/rybka) I had stopped looking. Then along came David, and I joined the secretariat, and then along comes Zach with the pre-fruit rybka based on Crafty revelation, and here we are again.

Personally, I am not going to sue anyone. Clearly Vas violated the Crafty license agreement since it is quite explicit in that any program using any of the Crafty code cannot then participate in any chess event, period. However, with no "physical damages" a legal action is just a way of giving a lot of money to lawyers with no possible remuneration. Not to mention the time involved. I'd as soon make a donation to an attorney and avoid losing the time.

The FSF might look at this differently. And that might be an issue that leads to significant "pain" since one can make a case for financial loss/gain. What will happen there, if anything, is only idle speculation at the moment.

As far as the ICGA goes, again this can only be speculated. The evidence is quite compelling. Two times (two different versions of Rybka) for the same behavior is damning. But what penalty might be imposed? Vacate old wins? Messy as do the titles remain open, or do the other participants move up a slot giving new winners? Lots of paperwork already exists, how would all of that get updated, or would it? Etc. Does this help computer chess? Actually we are doing more damage to computer chess than anything. Or at least the copying and then discovery of same is doing that. What about future competition? How similar is R4 to R1 beta and R3/ip*/etc???

I think the ICGA's decisions are going to be incredibly difficult and far-reaching. One has to balance justice against practicality. I wouldn't venture a guess on what will happen there if they believe the evidence shows guilt substantial enough to warrant some sort of penalty. And I certainly would not want to be charged with defining that penalty, as it won't be an easy thing to deal with...

Fortunately, all we (the secretariat and panel members) have to do is present the evidence clearly and concisely to the ICGA, and then that worry falls on David. I will say that if he contacts me again wanting me to serve on a group to deal with the punitive phase of this, I might be much harder to locate on planet earth. :)

If you remember the "Apollo 13" movie, when the astronauts are demanding a re-entry plan that does not yet exist, Tom Hanks said something like "you are worrying about step #560 while we are now only on step #17. There's a long way to go.

benstoker
Posts: 110
Joined: Thu Jun 10, 2010 7:32 pm
Real Name: Ben Stoker

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by benstoker » Sat Mar 05, 2011 5:23 pm

hyatt wrote: Personally, I am not going to sue anyone. Clearly Vas violated the Crafty license agreement since it is quite explicit in that any program using any of the Crafty code cannot then participate in any chess event, period. However, with no "physical damages" a legal action is just a way of giving a lot of money to lawyers with no possible remuneration. Not to mention the time involved. I'd as soon make a donation to an attorney and avoid losing the time.
Wait a minute there. IF someone takes your property and makes money with it, that person is unjustly enriched. The damages correlate to the extent of the enrichment, i.e., the thief's profits. (not to mention separate statutory damages for copyright infringement) [Legal blah blah: this is not legal advice]

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: Programmers Open Letter to ICGA on Rybka/Fruit

Post by hyatt » Sat Mar 05, 2011 6:05 pm

benstoker wrote:
hyatt wrote: Personally, I am not going to sue anyone. Clearly Vas violated the Crafty license agreement since it is quite explicit in that any program using any of the Crafty code cannot then participate in any chess event, period. However, with no "physical damages" a legal action is just a way of giving a lot of money to lawyers with no possible remuneration. Not to mention the time involved. I'd as soon make a donation to an attorney and avoid losing the time.
Wait a minute there. IF someone takes your property and makes money with it, that person is unjustly enriched. The damages correlate to the extent of the enrichment, i.e., the thief's profits. (not to mention separate statutory damages for copyright infringement) [Legal blah blah: this is not legal advice]
I am not sure it is that simple. I never sold a single copy of Crafty, and have no future plans to do so. Someone else making money from my work doesn't really "damage" me unless it prevents me from making money...

In any case, I don't consider it worth the time, trouble and expense. The truth is enough, here. At least for me. Fabien may feel differently since he did sell something, and the FSF might feel differently due to their interest in protecting the GPL.

User avatar
Olivier Deville
Posts: 128
Joined: Mon Jun 14, 2010 6:49 pm
Real Name: Olivier Deville
Location: France
Contact:

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by Olivier Deville » Sat Mar 05, 2011 6:53 pm

BB+ wrote:
Where can one get the binary?
The ICGA obtained a pre-Beta Rybka for the purpose of advancing the Rybka/Fruit investigation (of particular interest was whether the pre-Beta Rybka was similar to Rybka 1.0 Beta). It was given to Zach and myself [and possibly others -- I'm not omniscient] to analyse and report back. Once the large amount of Crafty copying became clear, Bob chose to publicise various information (it is his code, after all -- we are much more tight-lipped about aspects which are not copying-related). I am not sure what the "Rules of Evidence" will be regarding this binary if/when the Panel proceeds. The Rybka Forum has already mentioned that the PDFs of Zach and myself might be completely fabricated, so I guess you can't discount that possibility here too. I suspect that Fabien/FSF will subpoena a copy for their civil case.

PS. It seems that MichaelIsGreat has migrated to the Rybka Forum, but has not yet discovered the annoying yellow highlighting.
I have provided the ICGA secretariat with the pre-Fruit versions of Rybka I have here.

These versions were meant to remain private, but I feel I have been cheated, and truth must be known.

I am not going to send them to anyone else, though.

Olivier

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by kingliveson » Sat Mar 05, 2011 6:57 pm

Olivier Deville wrote:
BB+ wrote:
Where can one get the binary?
The ICGA obtained a pre-Beta Rybka for the purpose of advancing the Rybka/Fruit investigation (of particular interest was whether the pre-Beta Rybka was similar to Rybka 1.0 Beta). It was given to Zach and myself [and possibly others -- I'm not omniscient] to analyse and report back. Once the large amount of Crafty copying became clear, Bob chose to publicise various information (it is his code, after all -- we are much more tight-lipped about aspects which are not copying-related). I am not sure what the "Rules of Evidence" will be regarding this binary if/when the Panel proceeds. The Rybka Forum has already mentioned that the PDFs of Zach and myself might be completely fabricated, so I guess you can't discount that possibility here too. I suspect that Fabien/FSF will subpoena a copy for their civil case.

PS. It seems that MichaelIsGreat has migrated to the Rybka Forum, but has not yet discovered the annoying yellow highlighting.
I have provided the ICGA secretariat with the pre-Fruit versions of Rybka I have here.

These versions were meant to remain private, but I feel I have been cheated, and truth must be known.

I am not going to send them to anyone else, though.

Olivier
This might be a stretch, but perhaps the reason request to send Zach a copy was denied is now coming to light.
PAWN : Knight >> Bishop >> Rook >>Queen

JM_UK
Posts: 3
Joined: Wed Feb 16, 2011 3:21 pm

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by JM_UK » Sun Mar 06, 2011 2:02 pm

hyatt wrote:
benstoker wrote:
hyatt wrote: Personally, I am not going to sue anyone. Clearly Vas violated the Crafty license agreement since it is quite explicit in that any program using any of the Crafty code cannot then participate in any chess event, period. However, with no "physical damages" a legal action is just a way of giving a lot of money to lawyers with no possible remuneration. Not to mention the time involved. I'd as soon make a donation to an attorney and avoid losing the time.
Wait a minute there. IF someone takes your property and makes money with it, that person is unjustly enriched. The damages correlate to the extent of the enrichment, i.e., the thief's profits. (not to mention separate statutory damages for copyright infringement) [Legal blah blah: this is not legal advice]
I am not sure it is that simple. I never sold a single copy of Crafty, and have no future plans to do so. Someone else making money from my work doesn't really "damage" me unless it prevents me from making money...

In any case, I don't consider it worth the time, trouble and expense. The truth is enough, here. At least for me. Fabien may feel differently since he did sell something, and the FSF might feel differently due to their interest in protecting the GPL.
Here's a summary of the UK law position on damages for copyright infringement:

- The normal measure of damage is the amount by which the copyright is depreciated by the infringement.

- Damages may also include a substantial sum for injury to trade by reason of the fact that the defendant's prices were lower than those usually charged by the claimant.

- Where the claimant cannot show that he has lost sales to the defendant, the court may assess the damages on the basis of a reasonable royalty.

- Other relevant considerations in the assessment of damages are the profit which the claimant would have made and the licence fee which he would have charged.

- Where the defendant knew, or had reasonable grounds to know, that he engaged in infringing activity, the damages awarded to the claimant must be proportionate to the actual prejudice he suffered as a result of the infringement. When awarding such damages, all appropriate aspects must be taken into account, in particular: (i) the negative economic consequences, including any lost profits, which the claimant has suffered, and any unfair profits made by the defendant; (ii) non-economic factors including e.g. moral prejudice caused to the claimant; or (iii) where appropriate, they may be awarded on the basis of the royalties or fees which would have been due had the defendant obtained a licence.

- The court may also award such additional damages as the justice of the case may require, taking into account all the circumstances and in particular the flagrancy of the infringement and any benefit accuring to the defendant by reason of it.

- Finally, as an alternative to damages a claimant may have an account of the profits made by the defendant by the use of his work and the claimant must elect which remedy he will have.

If any claim were governed by UK law, and a court found that copyright infringement had occurred, there is a possibility that a share of the Rybka profits could be awarded. Not being an IP lawyer, I don't have any feel for what the likely award would be in a UK court, let alone in (for example) a Polish court. Clearly, the question of how much plagiarised material is contained in R3 and R4 is likely to be a relevant consideration.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by BB+ » Sun Mar 06, 2011 10:07 pm

Just to attempt to clarify the relation of the Crafty/pre-Beta-Rybka and Rybka/Fruit situations:
*) From the standpoint of the ICGA process, the alleged Crafty copying and subsequent improper entry into [non-ICGA] tournaments could make Rajlich a "repeat offender" -- for instance, if they previously would have banned him for one year, now they might ban him for two.
*) From the standpoint of the FSF lawsuit, the alleged "prior history" of cloning might make a jury more likely to decide against Rajlich, based upon the balance of probabilities (e.g., before knowing about the alleged Crafty copying someone might have judged it 75% likely that the Fruit copyright was infringed, but now it would be 95%). OTOH, it would have much less impact in a penalty phase (e.g., Letouzey doesn't get twice as much compensation simply because Rajlich had previously violated the Crafty license).

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Programmers Open Letter to ICGA on Rybka/Fruit

Post by BB+ » Sun Mar 06, 2011 11:40 pm

I placed some detailed info about pre-Beta Rybka's copying of Crafty's EvaluateWinner() in a thread in the technical subforum.

It seems that the NextMove() logic in pre-Beta Rybka is also the same as in Crafty. For instance, the value -999999 is re-used in sorting, the NextEvasion routine uses phases 1, 7, and 10 (HASH_MOVE, SORT_ALL_MOVES, REMAINING_MOVES), etc.
To exemplify the copying in NextMove(), here is an example:

Code: Select all

  case HISTORY_MOVES_2:
    bestval=0;
    bestp=0;
    for (movep=tree->last[ply-1];movep<tree->last[ply];movep++)
      if (*movep) {
        index=*movep&4095;
        history_value= (wtm) ? history_w[index] : history_b[index];
        if (history_value > bestval) {
          bestval=history_value;
          bestp=movep;
        }
      }
    if (bestval) {
      tree->current_move[ply]=*bestp;
      *bestp=0;
      tree->next_status[ply].remaining++;
      if (tree->next_status[ply].remaining > 3) {
        tree->next_status[ply].phase=REMAINING_MOVES;
        tree->next_status[ply].last=tree->last[ply-1];
      }
      return(HISTORY_MOVES_2);
    }
Note that the "#remaining > 3" comparison in the second segment is not exactly typical, and doesn't appear in HISTORY_MOVES_1. Ditto for the pre-Beta Rybka. Here is the second segment.

Code: Select all

[...]
0x0044bbd4:     test   %ebp,%ebp                    # if (bestval)
0x0044bbd6:     je     0x44bc22
0x0044bbd8:     mov    (%edx),%eax
0x0044bbda:     lea    0x2c7(%edi,%edi,2),%ecx
0x0044bbe1:     mov    %eax,0x1060(%esi,%edi,4)
0x0044bbe8:     lea    (%esi,%ecx,4),%eax
0x0044bbeb:     movl   $0x0,(%edx)                   # *bestp = 0
0x0044bbf1:     mov    (%eax),%edx
0x0044bbf3:     inc    %edx                          # increment #remaining
0x0044bbf4:     mov    %edx,%ecx
0x0044bbf6:     cmp    $0x3,%ecx                     # compare #remaining to 3
0x0044bbf9:     mov    %edx,(%eax)
0x0044bbfb:     jle    0x44bc14
0x0044bbfd:     mov    0x137c(%esi,%edi,4),%edx
0x0044bc04:     movl   $0xa,0xb20(%ebx)
0x0044bc0e:     mov    %edx,0xb18(%ebx)
0x0044bc14:     mov    0x80(%esp),%ebp
0x0044bc1b:     mov    $0x9,%eax                     # phase 9 is HISTORY_MOVES_2
0x0044bc20:     jmp    0x44bc71

Post Reply