An AIC is a sequence of logical inferences commencing with the proposition that a starting candidate must be either true or false. If it were true,
then any other instance of this number that can see it must be false. On the other hand, if it were false then we try and propagate a chain which
terminates with the same number being inferred true at the other end on the chain. This gives us the situation that either the starting number is
true, or if it is false, then the same number at the end of the chain must be true. Since one or other must be true, any other instance of this number
which sees both ends of the chain can be eliminated.

### A. Simple AICs

The links in a chain alternate between strong or weak links. The links can occur between cells or within cells.

**A strong link** is possible if when one number is false, then another must be true. This occurs when there are only two instances of a number
in a unit (row, column or box), or if a number is in a cell with only two candidates. A strong link is represented as "=".

**A weak link** occurs when a number is true, and any same number it sees must be false, or a different number in the same cell must be false. A
weak link is represented as "-".

In this first example (Top95, #29, after basics and 3 simple chains), the above results. The chain starts at r5c5 with 9 false and therefore the 7 true. Because 7 is true in r5c5, 7 is false in r5c2. Because 7 is
false in r5c2, 7 must be true in r9c2 (only two 7s in column). Because 7 is true in r9c2, 5 is false in r9c2. Because 5 is false in r9c2, 5 is true
in r7c3 (only two 5s in box). Because 5 is true in r7c3, 6 is false in r7c3. Because 6 is false in r7c3, 6 is true in r7c6 (only two 6s in row). Because
6 is true in r7c6, 9 is false in r7c6. Because 9 is false in r7c6, 9 is true in r7c4 (only two 9s in row). Therefore, either the 9 in r5c5 is true, or
if it isn't, then the 9 in r7c4 is true. Either way, the 9s at r456c4 see both 9s and can be eliminated.

The chain can be represented as: (9=7)r5c5 - r5c2 = (7-5)r9c2 = (5-6)r7c3 = (6-9)r7c6 = (9)r7c4

Further on in the same puzzle, the above chain is found, starting with the assertion that the 3 at r3c5 is false and therefore the 9 in the cell is
true. Then the 9 at r5c5 is false and the 7 true. Because 7 at r5c5 is true, 7 at r5c2 is false. Now the 7 at r9c2 is true (only two 7s in column), and
hence the 7 at r8c1 is false. This causes the 3 at r8c1 to be true. Therefore the 3 at r3c5 or the 3 at r8c1 is true, and the 3 at r3c1 can be eliminated.

The chain is: (3=9)r3c5 - (9=7)r5c5 - r5c2 = r9c2 - (7=3)r8c1

The simplest chain is a 3 cell XY chain, AKA XY-wing:

71.9.46..2...571......13.878.416.7.....7.8.1.571.9.86..9.4...5.1..82...6..85.6..1

### B. Continuous Loops

When the last digit of an AIC is the same as the starting digit, and can 'see' the starting digit (ie in the same row, column or box), then the last
digit, being true, forms a weak link to the starting digit to complete a loop. Such loops are called continuous loops and have special properties:

- They are bi-directional
- The number occurring in a weak link can be eliminated from any cell that sees both ends of the weak link
- Any cell in the loop flanked by two strong links can be assigned the two numbers occurring in the strong links.

An example of a typical continuous loop is shown below: (orange cells are cells in the loop with 2 strong links)

(3)r7c3 = r6c3 - r5c2 = (3-1)r5c5 = r2c5 - r2c8 = (1-3)r3c7 = r7c7 - *loop*

Eliminations: -3 r6c2, -7 r5c5, -1 r2c6, -289 r3c7, -3 r7c9

The following puzzles contain simple continuous loops:

.....87....2.....335..4...6.....5.19..1..92.7.......4...9..........37...1..9.4.8.
5819........132.6............96...7.23.....49.7...91............1.753........6534
..59....3.7.14....9.3......23...5.4...8...6...1.7...92......9.8....29.7.4....13..
...1.8.2.47..2.8.9.2.4.............5....4...6..9....3..8...9...5..3...9..6...5..3
4..8.3..92.5.............3156..9.........27.8...7.......63...4.75...6.8.8..4.....
...6...8.7....9....56.............499...786.1.....3...6.2.1...4..1..58.33......1.
.9.8..5..6..3..2..4..5...76..9.2..8..6.9.8.3..3..4.9..35...1..7..6..5..9..7..6.5.
..2..7..14.69....3..1..8....4.1.6...29.....67...5...4....7..3..8....17.66..8..2..
.156.........35..2.6....758.2.4.......7...9.......3.8.278....1.4..56.........184. (a short chain then 2 loops)
..14..2...8..12..45...7...9..3......26..3..97......1..8...6...14..15..6...5..84.. (2 loops)
3.1.6.8...8...21....58...9.6.2.....7...5.9...1.....5.2.1...47....71...8...6.9.4.1
..73.5...653.....48.1..2.6...89.....1...4...2.....16...1.8..4.74.....856...6.41..
.....85..49...68.....24...3......3.1.5.....8...39....432..........5.769...9..2...
2.......184...7.5..7.45.6......2.....5.....8.1...3......6.8542..2.1...795........

These three have grouped continuous loops

..1...7...5.9.7.8.6.......5.1.4.6.9...........6.3.9.2.4.......8.9.5.4.3...3...6.. (1=4)r3c8 - (4=6)r1c8 - r2c9 = (6-1)r2c5 = r3c456 - (1=4)r3c8
..243.9...3.7...1519.....2.2.......694.............74.3.9......6...1.....8.5..69.
...3.9.7.8..4.....1........2..5..6...3.....4.....1....5.....8......2.1.....7....9

### C. Discontinuous Loops

In this case a chain starts with a digit "a" being false, and ending with the same digit being false. If the ending digit can see the starting digit then this
completes a loop. The digit "a" at the end of the chain can then be eliminated, since whether the starting digit is true or false, in each case the ending digit is false
and can be eliminated.

In the example, it starts with 6 being false at r4c1 making the 2 true. This makes the 3 at r4c3 true. The 3 at r5c2 is therefore false. The 3 at r9c2 is true (only
3s in column) making the 8 at r9c2 false, this making the 8 at r6c2 true (only 2 in column). This makes the 6 at r6c2 false. However if the 6 at r4c1 is true,
the the 6 at r6c2 is also false. Either way it is false.

(6=2)r4c1 - (2=3)r4c3 - r5c2 = (3-8)r9c2 = (8-6)r6c2 => -6 r6c2

### D. Complex AICs

Chains can be made a lot more powerful, by putting to work every true number in the growing chain. As each true number renders the other numbers in
the same cell false, and the same numbers elsewhere in its unit false, one doesn't have to have only two numbers to make a strong link, as there could
be three with two of them false. Similarly, a cell with 3 or more candidates could propagate a weak link if all but one is false. The best way to illustrate
this concept is by example:

The chain begins with a strong link on 5 from r1c4 to r3c5 (only two 5s in box), followed by a weak link to the 5 in r3c2, and then another simple
weak link on 3s from r3c2 to r5c2. This is followed by a weak link on 7 from r5c2 to r56c1. Now there is a strong link on 7 from r56c1 to r8c1. Although
there are three 7s in column 1, the 7s at r5c1 and r6c1 are both false due to 7 at r5c2 being true, and hence the 7 at r8c1 is the only one that is
true in column 1. There is then a weak link to r8c5. Thus the 7 is false in r8c5, but also the 5 is false, since it can see the 5 which is true in r3c5.
Therefore the 3 in r8c5 is true and it makes a weak link to r9c4. The 3 in r9c4 can make a strong link to r9c9 since the 3rd 3 in row 8 at r9c2 is false
due to the 3 in r3c2 being true. The 3 in r9c9 makes a weak link to the ALS r7c78 causing the 5 to be true. Consequently either the 5 at r1c4 or at r7c8
is true, and hence the 5 at r7c4 which sees both ends can be removed. the chain is:

(5)r1c4 = r3c5* - (5=3^)r3c2 - (3=7)r5c2 - r9c2 = r8c1 - (7|*5=3)r8c5 - r9c4^2 = r9c9 - (3=15)r7c78 => -5 r7c4

Most complex chains are not bi-directional, and therefore they do not yield nice loops when the ends see eachother.
### E. Other chains

Other chains are available, utilizing ALSs, URs, almost hidden pairs, almost xy-wings, almost x-wings (kracken chains), and empty rectangles, usually just one instance
at the chain's end.