SUMMARY / RELATED TOPICS

The Copa del Rey de Baloncesto is an annual cup competition for Spanish basketball teams organized by Spain's top professional league, the Liga ACB. Known as the Copa de España de Baloncesto, was first played in 1933 and contested in its first editions only by teams from the provinces of Madrid and Barcelona, it was the first nationwide basketball competition played in Spain. During the Francoism, it was referred to as the Copa del Generalísimo, before becoming the Copa del Rey in 1977; until the establishment of the ACB in 1983, the Cup was played in its latest rounds with double-legged series and its final as a single game in a neutral venue. In several seasons, there was a group stage as first round. From 1983 and 1986, a Final Four format was adopted; the two best qualified teams from the two groups of the Liga ACB at the end of the first stage qualified for the tournament. Since 1987, the tournament was expanded to a Final Eight format. Since the league is played with a round-robin single group, the top seven teams at the end of the first half of the regular season from the Spanish League and the host one, if it is not between these teams, qualify for the tournament.

The eight teams play a knockout tournament at one venue, over four days producing a winner. The Copa del Rey is one of the highlights of the Spanish sporting calendar. Source: Anécdotas en blanco y negro. ACB.com Winners by year Search for historical results and statistics

In computer science, a loop invariant is a property of a program loop, true before each iteration. It is a logical assertion, sometimes checked within the code by an assertion call. Knowing its invariant is essential in understanding the effect of a loop. In formal program verification the Floyd-Hoare approach, loop invariants are expressed by formal predicate logic and used to prove properties of loops and by extension algorithms that employ loops; the loop invariants will be true on entry into a loop and following each iteration, so that on exit from the loop both the loop invariants and the loop termination condition can be guaranteed. From a programming methodology viewpoint, the loop invariant can be viewed as a more abstract specification of the loop, which characterizes the deeper purpose of the loop beyond the details of this implementation. A survey article covers fundamental algorithms from many areas of computer science, characterizing each of them from the viewpoint of its invariant.

Because of the similarity of loops and recursive programs, proving partial correctness of loops with invariants is similar to proving correctness of recursive programs via induction. In fact, the loop invariant is the same as the inductive hypothesis to be proved for a recursive program equivalent to a given loop; the following C subroutine max returns the maximum value in its argument array a, provided its length n is at least 1. Comments are provided at lines 3, 6, 9, 11, 13; each comment makes an assertion about the values of one or more variables at that stage of the function. The highlighted assertions within the loop body, at the beginning and end of the loop, are the same, they thus describe an invariant property of the loop. When line 13 is reached, this invariant still holds, it is known that the loop condition i!=n from line 5 has become false. Both properties together imply that m equals the maximum value in a, that is, that the correct value is returned from line 14. Following a defensive programming paradigm, the loop condition i!=n in line 5 should better be modified to i<n, in order to avoid endless looping for illegitimate negative values of n.

While this change in code intuitively shouldn't make a difference, the reasoning leading to its correctness becomes somewhat more complicated, since only i>=n is known in line 13. In order to obtain that i<=n holds, that condition has to be included into the loop invariant. It is easy to see that i<=n, too, is an invariant of the loop, since i<n in line 6 can be obtained from the loop condition in line 5, hence i<=n holds in line 11 after i has been incremented in line 10. However, when loop invariants have to be manually provided for formal program verification, such intuitively too obvious properties like i<=n are overlooked. In Floyd–Hoare logic, the partial correctness of a while loop is governed by the following rule of inference: b o d y w h i l e b o d y This means: If some property I is preserved by the code b o d y —more if I holds after the execution of b o d y whenever both C and I held beforehand— C and I are guaranteed to be false and true after the execution of the whole loop w h i l e b o d y, provided I was true before the loop.

In other words: The rule above is a deductive step that has as its premise the Hoare triple b o d y. This triple is a relation on machine states, it holds whenever starting from a state in which the boolean expression C ∧ I is true and executing some code called b o d y, the machine ends up in a state in which I is true. If this relation can be proven, the rule allows us to conclude that successful execution of the program w h i l e b o d y will lead from a state in which I is true to a state in which ¬ C ∧ I holds; the boolean formula I {\displays

Robby Garner is an American natural language programmer and software developer. He won the 1999 Loebner Prize contests with the program called Albert One, he is listed in the 2001 Guinness Book of World Records as having written the "most human" computer program. A native of Cedartown, Robby attended Cedartown High School, he worked in his father's television repair shop and began programming for his family's business at age 15. He was commander of his AFJROTC squadron as a junior in high school, while attending joint-enrollment college classes at the local community college. Forming a software company called Robitron Software Research, Inc. in 1987 with his father, Robert J. Garner, his sister Pam, he worked as a software developer until 1997 when his father retired and the company was disbanded. One of the first web chatterbots, named Max Headcold, was written by Garner in 1995. Max served two purposes, to collect data about web chat behavior and to entertain customers of the FringeWare online bookstore.

This program was implemented as a Java package called JFRED, written by Paco Nathan based on the C++ FRED CGI program, his own influences from Stanford and various corporations. Garner and Nathan took part in the world's largest online Turing test in 1998, their JFRED program was perceived as human by 17% of the participants. A computational behaviorist after the term coined by Dr. Thomas Whalen in 1995, Garner's first attempts at simulating conversation involved collections of internet chat viewed as a sequence of stimuli and responses. Kevin Copple of Ellaz Systems has collaborated with Garner on several projects, including Copple's Ella, for which, Garner contributed voice recordings and music. Garner and Copple believe that intelligence may be built one facet at a time, rather than depending on some general purpose theory to emerge. Competing in six Loebner Prize contests, he used the competition as a way to test his prototypes on the judges each year. After winning the contest twice in 1998 and 1999 with his program called Albert One, he began collaborating with other software developers in a variety of conversational systems.

Garner created the Robitron Yahoo Group in 2002 as a forum and virtual watering hole for Loebner Prize contest participants and discussion of related topics. The multifaceted approach, presented at a colloquium on conversational systems in November 2005, involves multiple chat bots working under the control of a master control program. Using this technique, the strengths of various web agents may be united under the control of a Java applet or servlet; the control program categorizes delegates responses to other programs in a hierarchy. A spin-off of this technique is the Turing Hub, an automated Turing test featuring four of the top Loebner Prize contest competitors. Rollo Carpenter Richard Wallace JFred Chatterbots at SimonLaven.com