User blog comment:Nayuta Ito/Brainfuck challenge/@comment-24725252-20160814153710/@comment-25337554-20160814224634

Certainly, it does not halt. However, it does not diverge like that:

The numbers are the breakpoints, or just comment.

+<++++1[ -[ >[ 2[A->+<]3<[->>>+<<<]4>>>5[-<<+<+>>>]6<-7]<<-8 ]>9[-<++>]10<<11 ]>.

At breakpoint 1, the memory is >4,1

At breakpoint 2, 3,>0

Since it points zero, it skips to 3. (memory doesn't change)

And then at breakpoint 4, >0,0,0,3 //the bracket between 3 and 4 transfers a[-1] into a[2]

At 5, 0,0,0,>3

At 6, 3,3,0,>0 //the bracket between 5 and 6 duplicates a[2] to a[0] and a[-1]

At 7, 3,3,>-1,0

Since -1 is not zero, that will bring us back to 2.

At 2, 3,3,>-1,0

Since -1 is not zero, the program goes into A.

Then each time it gets to A,

3,3,>-2,1

3,3,>-3,2

.......

3,3,>-ω,ω (ω means to diverge)