- Code: Select all
- +--------------------+-------------------+------------------------+
 | 56(7)  2456  24(7) | 1     8     46(7) | 456(-7)  9      3      |
 | 1678   468   3     | 5     2479  4679  | 1468     26(7)  48(7)  |
 | 15678  9     147   | 3     247   467   | 14568    26(7)  458(7) |
 +--------------------+-------------------+------------------------+
 | 138    238   12    | 6     47    38    | 47       5      9      |
 | 4      7     5     | 89    39    2     | 68       36     1      |
 | 368    368   9     | 4(7)  1     5     | 2        3(7)   48     |
 +--------------------+-------------------+------------------------+
 | 39     34    8     | 2     4579  479   | 57       1      6      |
 | 2      1     6     | 8(7)  35    38    | 9        4      5(7)   |
 | 579    45    47    | 49    6     1     | 3        8      2      |
 +--------------------+-------------------+------------------------+
 
it doesn't list it as a fish under its engine, but it can find the elimination 
which is very clear & makes it easy for Fish catching programs to miss/skip this creature.
 i mentioned earlier a fish engine that uses actual pencil marks the "cover sector that doesn't include a vertex" would skip these creatures as the vertex's are missing. {and not having this rule generates loads of odd errors} 
however when i swap my code back to theoretical: 
in pseudo  pencil mark {where all the cells are active for the base & cover set intersections } 
 then the creature is found, and its not "headless" {nothings missing} 
the problem arises when you start extrapolating the  "not all " x's need to be present mentioned in UFG for the fish to function 
 then you end up with degenerative fish that appears to break the 'cover sector that doesn't include a vertex'  rule when the fish was valid in the pseudo stage.  
personally I use 
nxn+k fish as it does away with all the " endo,exo fins cells"  and uses K sectors where any of the "n+k"  sectors used acts as the "fin sector"  
            the math for it makes eliminations easily including the ones the "headless fish" seems to have a difficult time explaining.   
- Code: Select all
-  N = # of sectors to use
 N = sector selected from [ 1..27 ] sectors representing Row 1 - 9, Col 1 - 9, Box 1-9]
 K = addition N sectors:  {at max 2 additional cover sectors}
 no selected sector can be used twice. .
 
 Base = all occupied cells in each N sector selected
 
 BI = all occupied overlapping cells in each N sector * the previous sectors used.
 BI = (base[1] * base[2]) + (base[1] * base[3]) + ....+ (base[n-1] * base[n])
 
 Pbi =  common peer cells of each BI cell
 PBi = Peer[1] * Peer[2] * ... *  Peer[N]
 
 Cover = all occupied cells in each  N + K sector selected
 Row_Cover = all occupied cells in each N+K sector: where N+K in [1..9] sector
 Col_Cover = all occupied cells in each N+K sector: where N+K in [10..18] sector
 Box_Cover = all occupied cells in each N+K sector: where N+K in [19..27] sector
 
Type I:
- Code: Select all
-           IF (bI = [ empty ]) and  ((cover * base) = base)
 then
 if K = 0 then exclude: (cover - base )
 if K = (0 or 1) then exclude: ( ( (Row_Cover * Box_cover) + (Row_Cover * Col_Cover) + (Box_cover * Col_Cover) )  - base )
 if K  > 1 then  exclude: ( ( Row_Cover *Box_cover * Col_Cover) - base )
Type 2:
- Code: Select all
-           IF (bI = [ Cells ]) and  ((cover * base) + bi = base)
 then
 if K = 0 then exclude: (Pbi * (cover - base ))
 if K = (0 or 1) then exclude: (  (Pbi * ( (Row_Cover * Box_cover) + (Row_Cover * Col_Cover) + (Box_cover * Col_Cover) ) )  - base )
 if K  > 1 then  exclude: ( (Pbi * ( Row_Cover *Box_cover * Col_Cover)) - base )
  nxn  uses peers of "fin cells" to see the elimination"  
- Code: Select all
-         Sets:
 Bn = units of the base set
 Base (size N):   B  = B1 + B2 ... + BN
 Base Intersect:  BI = B1*B2 + B1*B3 ... + B1*BN + B2*B3 ... + (BN-1)*BN
 
 Cn = units of the cover set
 Cover (size N):  C  = C1 + C2 ... + CN
 Cover Intersect: CI = C1*C2 + C1*C3 ... + C1*CN + C2*C3 ... + (CN-1)*CN
 
 Hidden Pattern:  H  = (B \ C) + BI
 Exclusion:       E  = (C \ B) + CI
 
 
 Symbol Key:
 '+'   <=> union         ('|'       in C++)
 '*'   <=> intersection  ('&'       in C++)
 '\'   <=> substraction  ('X & ~Y'  in C++)
 
 Conjecture:
 
 If the "hidden set" is empty,
 then the "exclusion set" is empty also.
 
 
 1. exclusions in C\B
 
 B will supply the digit N times (not less since none in BI);
 all N will be in C (since none in B\C);
 this supplies the full quota of the digit for the N units of C,
 therefore, exclude it elsewhere in C (i.e. in C\B).
 
 2. exclusions in CI
 
 placing the digit in CI would satisfy 2 (or more) units of C,
 so C could only take N-1 of the total N supplied by B.
I pointed out the limitations of this setup 
here: 
and suggested updating the elimination rules to include those limitations. {how not sure}
anyway long winded post that may have strayed.....I wouldn't include the degenerate "headless fish" example in the UFG as its missing the cover vertex rule 
 the pseudo fish that it derived from is usable in the ufg as it includes the rule.
- Code: Select all
- Fraken sword.  C489 / R68B3
 +------------------+-----------------+----------------+
 | 1     1     1    | .    1     1    | -1    (1)  (1) |
 | 1     1     1    | .    1     1    | -1    (1)  (1) |
 | 1     1     1    | .    1     1    | -1    (1)  (1) |
 +------------------+-----------------+----------------+
 | 1     1     1    | .    1     1    | 1     .    .   |
 | 1     1     1    | .    1     1    | 1     .    .   |
 | (-1)  (-1)  (-1) | (1)  (-1)  (-1) | (-1)  (1)  (1) |
 +------------------+-----------------+----------------+
 | 1     1     1    | .    1     1    | 1     .    .   |
 | (-1)  (-1)  (-1) | (1)  (-1)  (-1) | (-1)  (1)  (1) |
 | 1     1     1    | .    1     1    | 1     .    .   |
 +------------------+-----------------+----------------+
- Code: Select all
-  C489 / R168 + Box 3 (indicates that r1 is superfluous} 
 +------------------+-----------------+----------------+
 | (1)   (1)   (1)  | .    (1)   (1)  | (-1)  (1)  (1) |
 | 1     1     1    | .    1     1    | (-1)  (1)  (1) |
 | 1     1     1    | .    1     1    | (-1)  (1)  (1) |
 +------------------+-----------------+----------------+
 | 1     1     1    | .    1     1    | 1     .    .   |
 | 1     1     1    | .    1     1    | 1     .    .   |
 | (-1)  (-1)  (-1) | (1)  (-1)  (-1) | (-1)  (1)  (1) |
 +------------------+-----------------+----------------+
 | 1     1     1    | .    1     1    | 1     .    .   |
 | (-1)  (-1)  (-1) | (1)  (-1)  (-1) | (-1)  (1)  (1) |
 | 1     1     1    | .    1     1    | 1     .    .   |
 +------------------+-----------------+----------------+
- Code: Select all
- C478/ R12368  {this one wont work under nxn+k or nxn  but works in link-sets seen in xsudoku} {R123 coverts to box 1,2,3} box 3 being the key as the other 2 cant be used. 
 +------------------+-----------------+----------------+
 | (1)   (1)   (1)  | .    (1)   (1)  | (-1)  (1)  (1) |
 | (1)   (1)   (1)  | .    (1)   (1)  | (-1)  (1)  (1) |
 | (1)   (1)   (1)  | .    (1)   (1)  | (-1)  (1)  (1) |
 +------------------+-----------------+----------------+
 | 1     1     1    | .    1     1    | 1     .    .   |
 | 1     1     1    | .    1     1    | 1     .    .   |
 | (-1)  (-1)  (-1) | (1)  (-1)  (-1) | (-1)  (1)  (1) |
 +------------------+-----------------+----------------+
 | 1     1     1    | .    1     1    | 1     .    .   |
 | (-1)  (-1)  (-1) | (1)  (-1)  (-1) | (-1)  (1)  (1) |
 | 1     1     1    | .    1     1    | 1     .    .   |
 +------------------+-----------------+----------------+
in all honesty this is a degenerative case from this starting point.
- Code: Select all
- Finned Sword fish. 
 R1C489 are all missing from the "headless"  fish.
 
- Code: Select all
- C489/R168B3
 +---------+-----------+--------------+
 | 1  1  1 | (1)  1  1 | -1  (1)  (1) |
 | 1  1  1 | .    1  1 | 1   (1)  (1) |
 | 1  1  1 | .    1  1 | 1   (1)  (1) |
 +---------+-----------+--------------+
 | 1  1  1 | .    1  1 | 1   .    .   |
 | 1  1  1 | .    1  1 | 1   .    .   |
 | 1  1  1 | (1)  1  1 | 1   (1)  (1) |
 +---------+-----------+--------------+
 | 1  1  1 | .    1  1 | 1   .    .   |
 | 1  1  1 | (1)  1  1 | 1   (1)  (1) |
 | 1  1  1 | .    1  1 | 1   .    .   |
 +---------+-----------+--------------+
 when R1C4 is missing this turns into the fraken sword as r1 is dropped for box 3 exclusively.