The Evidence against Rybka

Code, algorithms, languages, construction...
veritas
Posts: 111
Joined: Thu Jun 16, 2011 2:35 pm

Re: The Evidence against Rybka

Post by veritas » Mon Oct 03, 2011 1:16 am

http://ippolit.wikispaces.com/message/v ... D/43523866

rolfs latest trolling is worthy of a read

veritas
Posts: 111
Joined: Thu Jun 16, 2011 2:35 pm

Re: The Evidence against Rybka

Post by veritas » Mon Oct 03, 2011 3:22 am

veritas wrote:http://ippolit.wikispaces.com/message/v ... D/43523866

rolfs latest trolling is worthy of a read

Destroyed by open source campaigns
1 - 4
Rolf_Chess Rolf_Chess Today 12:15 am
I'm observing all this as a lay, I'm just a chessplayer. When this all started (it wasnt yesterday!) years ago, I contacted Bob (because he's for me the expert number one) and begged him to consider the consequences in case that this would develop into a yearlong campaign. Bob disagreed. So this is no natural hurricane, but it's man-made.

Often peers claimed that Vas remained silent which would send bad signals. I disagreed and contradicted because Vas has spoken with a very clear statement. He felt singled-out and confirmed that he didnt do anything what all did per usual, probably he meant all the commercial guys with their closed sources. Again I contacted Bob but he disagreed again. It would be outlandish to investigate others if someone did something wrong. So, IMO this is the circle of argumentation that you observed, Julien. Because it's trivially clear that if others did the same like Vas, then what could legal justice do? The ICGA and its supporters however made unfair moves. I cant jusge if that is justified. If others did the same in a similar way like Vas, IMO the movess of the ICGA were wrong.

I agree that Vas must take legal steps if he thinks he was treated unfairly.

But as I could foresee it, the problems and mistrust in our scene came from the suspicion what others might have done but still they remained intact. Only Vas was singled out. That could be repaired if the peers would agree that the wrong should and could be healed.

The disadvantage of a declared silence is the idea who could possibly be next as being singled out in computerchess where almost all details are basied on common knowledge.

If however new controls are proposed so that the demands of the ICGA could be better met, the whole situation will quickly change back towards friendship. It's the best for creative minds.

I beg you to find better protection against stolen code which then is published for free. RE code is a private learning tool, but we should not tolerate that such contructed code is being published. If we dont solve these two problems at best with new ethical rules and social control, it is evident that commercial closed source programmers will lose their motivation to compete anylonger. Although they are traditionally the top guys who produced progress. It would be counterproductive to enforce all players to become open source, so that they dont even get a minimal recompensation for their ideas. Academic players with their open source get their living elsewhere so that their wishes should be politely ignored. Good players who could make money with their commercial engines shouldnt be handicapped or destroyed by open source campaigns.

With Ed Schroeder I ask all of you, do we really want to influence the standards of living of our best programmers after they could make a living with their talents? For what is our legal justice system there if we in such hobby areas begin to practice self-justice? IMO this is the reason for the actual situation in our community, the lack of legal justice, not that a singular member did something irregular. Again, it has not been examined if Vas is correct with his defense that he did nothing what isnt common practice.

Last but not least I beg you all for your understanding that as a lay I am not the one who could discuss all this. Let's have our experts into this. I could give you my observations from the outside. I wish you all a nice weekend. In Germany we will have our Unification Day on Oct the 3rd.

orgfert
Posts: 183
Joined: Fri Jun 11, 2010 5:35 pm
Real Name: Mark Tapley

Re: The Evidence against Rybka

Post by orgfert » Mon Oct 03, 2011 3:28 pm

Damir Desevac wrote:How old are these individuals ? 20/25 ? You tend to believe some brats, compared to Ed and Chris, who have over 30 years of programming experience..
The Devil is older than all of them and could program circles around them. Go and believe him.

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: The Evidence against Rybka

Post by hyatt » Mon Oct 03, 2011 3:41 pm

They are trying most anything. Could not discredit the panel. Could not discredit the process. Can't discredit the data, so discredit the people as being too young to be able to RE correctly? BTW I am apparently too old to be able to do this correctly, as well. I suppose there is a very narrow window where one is capable of completing this task?

Grasping at straws, as always.

mjlef
Posts: 43
Joined: Thu Jun 10, 2010 6:51 pm
Real Name: Mark Lefler

Re: The Evidence against Rybka

Post by mjlef » Mon Oct 03, 2011 3:59 pm

I grow tired of unfounded claims. Has anyone shown any errors in the Reverse Engineering that was done? I have seen none. Just innuendo. Attacks not backed up with data. So many words but so little meaning.

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: The Evidence against Rybka

Post by hyatt » Mon Oct 03, 2011 4:38 pm

mjlef wrote:I grow tired of unfounded claims. Has anyone shown any errors in the Reverse Engineering that was done? I have seen none. Just innuendo. Attacks not backed up with data. So many words but so little meaning.
I am not sure these discussions can be "won." The RE discussion with Ed is a classic example. I chose, just because of proximity, the rook scoring for open/half-open files. And discuss the asm, constant folding and such.

Ed chimes in with "nobody on the panel checked Zach/Mark with respect to accuracy."

I replied "I spot-checked quite a few places, but not all, as it made no sense to repeat Zach's efforts when I found not a single error in the places I checked."

Ed replied "you can't do RE."

He then decided to 'test" me. "Here is the backward pawn code from Zach's paper. Give me the offset (address) in the rybka binary.

Took me about 20-30 minutes to find it because of a small quirk dealing with a poorly formatted if-statement in Zach's paper (looks like a formatting issue because most code samples are indented correctly, this one is not.)

I then decided to rewrite Zach's C to get rid of the compound conditional test and convert that to simple-C which only has "if (c) goto xxx" which matches with asm nicely. I then interlaced that C with the backward pawn asm in the Rybka binary (Ed did not ask for this) and showed line-by-line what matched up with which assembly language statements. It took 2x longer to format this mess so that it was readable than it did to just "find the offset" which was all Ed wanted.

He replied "you cheated, you just guessed by looking for 4 test instructions since there were 4 if conditions." Of course, nothing says that all 4 if statements would turn into test asm instructions, there are other things the optimizer does from time to time. And, of course, the fact that I matched up the C with the ASM showed that I was "guessing" and didn't understand the asm, even though I teach x86 asm and a course on writing a compiler, not to mention having debugged gcc many times during the early development of the "long long" data type I used in 1994 when I started on Crafty. I was just "lucky".

He then gave some assembly language code and wanted me to explain what it did, and seemed surprised that I did not recognize that the 10 lines of code he provided came from Crafty, which binary only has 160,000 lines of asm code. I just bailed out of that argument then as it was obvious that it was not about whether the RE was done correctly, it was only about trying to discredit the process and the people with innuendo and intentionally deceptive arguments they hope some will accept as reasonable...

To date, not one bit of asm or other data has been discredited. They don't even bother to read Zach's report to see which blocks of code actually exist in Rybka, and which blocks were "reconstructed" from clever table-driven optimizations Rybka uses. And when they run into such code, they cry foul, saying this is imaginary code. And I point out "doh, if you had read the report, page xxx, lines yyy-zzz, Zach explained that clearly." But by then they are on to the next bit of deception...

User avatar
Uly
Posts: 838
Joined: Thu Jun 10, 2010 5:33 am

Re: The Evidence against Rybka

Post by Uly » Mon Oct 03, 2011 8:03 pm

hyatt wrote:They don't even bother to read Zach's report to see which blocks of code actually exist in Rybka
Like, none? Otherwise you'd be capable of posting some Rybka code that actually exists in Rybka and matches Fruit in this thread. Please, no fantasy code.

And you just claimed in Rybka Forum that this is not about code copying but about semantic equivalence, can you please decide which one is it? Code copying or semantic equivalence?

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: The Evidence against Rybka

Post by Jeremy Bernstein » Mon Oct 03, 2011 9:56 pm

Uly wrote:
hyatt wrote:They don't even bother to read Zach's report to see which blocks of code actually exist in Rybka
Like, none? Otherwise you'd be capable of posting some Rybka code that actually exists in Rybka and matches Fruit in this thread. Please, no fantasy code.

And you just claimed in Rybka Forum that this is not about code copying but about semantic equivalence, can you please decide which one is it? Code copying or semantic equivalence?
Given that no source code was supplied, the best one can do is reconstruct it from the assembly language, as you well know. Will you just call that "fantasy code"? That's ingenuous -- obviously, semantically equivalent code, as reconstructed from assembly language, is fully adequate.

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

Re: The Evidence against Rybka

Post by BB+ » Tue Oct 04, 2011 12:46 am

Uly wrote:Like, none? Otherwise you'd be capable of posting some Rybka code that actually exists in Rybka and matches Fruit in this thread. Please, no fantasy code.

Code: Select all

0x000000000040702e:     test   %r15b,%r15b
0x0000000000407031:     mov    0x50(%rsp),%r14
0x0000000000407036:     mov    0x60(%rsp),%r12
0x000000000040703b:     mov    0x88(%rsp),%rdi
0x0000000000407043:     mov    0x78(%rsp),%rbp
0x0000000000407048:     mov    0x70(%rsp),%rbx
0x000000000040704d:     jne    0x407054
0x000000000040704f:     test   %r13b,%r13b
0x0000000000407052:     je     0x40705b
0x0000000000407054:     movb   $0x1,0x2652d1(%rip)        # 0x66c32c
0x000000000040705b:     test   %r15b,%r15b
0x000000000040705e:     mov    0x48(%rsp),%r15
0x0000000000407063:     movb   $0x1,0x262677(%rip)        # 0x6696e1
0x000000000040706a:     jne    0x40707a
0x000000000040706c:     test   %r13b,%r13b
0x000000000040706f:     jne    0x40707a
0x0000000000407071:     mov    %r13b,0x26266a(%rip)        # 0x6696e2
0x0000000000407078:     jmp    0x407081
0x000000000040707a:     movb   $0x1,0x262661(%rip)        # 0x6696e2
0x0000000000407081:     movb   $0x0,0x26265b(%rip)        # 0x6696e3
0x0000000000407088:     callq  0x408f90
0x000000000040708d:     movzbl 0x26264e(%rip),%eax        # 0x6696e2
0x0000000000407094:     test   %al,%al
0x0000000000407096:     mov    0x58(%rsp),%r13
0x000000000040709b:     movb   $0x0,0x26263f(%rip)        # 0x6696e1
0x00000000004070a2:     mov    %al,0x26263b(%rip)        # 0x6696e3
0x00000000004070a8:     jne    0x4070af
0x00000000004070aa:     callq  0x406aa0
This code exists in the Rybka 1.0 Beta executable, 64-bit version. It "matches" Fruit 2.1, at least by my understanding of that word. I have removed my comments from it.
Uly wrote:And you (Bob) just claimed in Rybka Forum that this is not about code copying but about semantic equivalence, can you please decide which one is it? Code copying or semantic equivalence?
The principal issue is the "origins" of Rybka, and the ICGA verdict concluded (in part) that there was sufficient substantial similarity of various Rybka versions with Fruit 2.1 (in particular) so as to transgress their originality requirement.

It also depends on whether "code copying" means literal code copying. As has been indicated by those at Rybka Forum, the ICGA didn't even investigate a "literal" Rybka entrant. Compilers produce semantically equivalent code. This is sufficient for showing "substantial similarity" in many cases. Literal source code copying is impossible to prove when given only an executable, as presumably one could just simply change the variable names in the source code, or run it through a different compiler, etc.

But copyright law is not mocked, and indeed, literality is an inapropos measure, and furthermore, copyright infringement is typically inferred (from substantial similarity) rather than proven strictu sensu from observation. The most relevant case law quotation in this regard appears is from Nichols v. Universal Pictures Corp and is quoted in the software case Whelan v. Jaslow: It is of course essential to any protection of literary property, whether at common-law or under the statute, that the right cannot be limited literally to the text, else a plagiarist would escape by immaterial variations.

In this regard, I could have listed (say) the Rybka 2.3.2a evaluation function in response to the first query, as it "matches" Fruit 2.1 to my mind, in that it is much closer than could be expected from something which had different "origins". This is what EVAL_COMP attempted to quantify.

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: The Evidence against Rybka

Post by hyatt » Tue Oct 04, 2011 1:05 am

Uly wrote:
hyatt wrote:They don't even bother to read Zach's report to see which blocks of code actually exist in Rybka
Like, none? Otherwise you'd be capable of posting some Rybka code that actually exists in Rybka and matches Fruit in this thread. Please, no fantasy code.

And you just claimed in Rybka Forum that this is not about code copying but about semantic equivalence, can you please decide which one is it? Code copying or semantic equivalence?

Would you please grow up a bit. I posted code from the report on RF. Did you not see the discussion about pawn evaluation code? Rooks on open/half-open file code??? Not only don't you read the report, you don't read the discussions, and then have the chutzpa to say those discussions never took place. Hint: First open eyes. Second, read what is going on. THEN, and only THEN, post something.

Do you realize that if I have code block A, and code block B, and show semantic equivalence between them, one came from the other???

You should go back and look at my post in response to Ed's "challenge" to find the backward pawn code in the R1beta binary. I took Zach's source, rewrote it to simple C since asm doesn't have compound conditionals, blocks ( {block} ) and such. I then took the asm from the rybka binary and matched the instructions up with the C EXACTLY. Typically 2 asm instructions per if (test / jmp (jz/jnz), etc. It shows that the ASM for backward pawns (and for the rest if you care to look) matches the source code zach shows side-by-side with the fruit code that was copied...

It is amazing you'd keep saying "none has been shown" in light of the above post (and others I have made where code WAS given...

Post Reply