Next: , Previous: proof Output, Up: The proof class



6.1.6 How falseness is stored

When the proof class finds two or more rows that are the same, it stores the details in a private variable, where. This can be retrieved by the function failed. The variable is defined as:

     typedef list<linedetail> proof::failinfo;
     failinfo where;

linedetail is a struct defined as:

     struct linedetail {
      row _row;
      list<int> _lines;
     };

When a row is repeated more than once, a new linedetail item is added to where. In the linedetail data is stored a pointer, _row, to the first of the matching rows, and the row numbers are put into _lines. If the first row given to the class matches the 11th row, then 0 and 10 will be placed into _lines. If there are three or more rows that all match, then the relevant numbers will be placed into the _lines list without repeating any.