$𝖒𝖘𝖞𝖚/𝖒𝖆𝖘𝖞𝖚-𝖗𝖚𝖑𝖊𝖘.𝖘𝖆𝖕𝖕𝖍𝖎𝖗𝖊 
    0----------------------------------| Masyu Rules in Sapphire |-----------------------------------
    1--|‹https://www.nikoli.co.jp/en/puzzles/masyu›and‹https://en.wikipedia.org/wiki/Masyu›      
    2                                                                                               
    3Idx={0n1}×{0m1}--|0basedindexingbypairs                                              
    4                                                                                               
    5x0{0n2}y0{0m2}idx0y0=0                                                         
    6                                                                                               
    7∀⟨xyIdx                                                                                     
    8solxy{04}                                                                              
    9idxy{0n·m}                                                                             
   10idxy=0⇐⇒x=x0y=y0                                                                    
   11solxy{03}y0<=y(y0=yx0<=x)                                                     
   12solxy=4⇐⇒idxy=n·m                                                                  
   13                                                                                               
   14x=0∙∙∙solxy{134}                                                                    
   15x=n1solxy{024}                                                                    
   16y=0∙∙∙solxy{034}                                                                    
   17y=m1solxy∈{124}                                                                    
   18                                                                                               
   19--|ifonpath,herepointssomewhereelseonthepath                                       
   20solxy=0y<m1solxy+1{023}idxy+1=idxy+1                            
   21solxy=1y>0∙∙∙solxy1{123}(idxy1=idxy+1idxy1=0)           
   22solxy=2x>0∙∙∙solx1y{012}idx1y=idxy+1                            
   23solxy=3x<n1solx+1y{013}idx+1y=idxy+1                            
   24                                                                                               
   25--|ifonpath,somethingpointshere                                                        
   26⦗solxy⦘¬=4                                                                               
   27∙∙∙∙y<m1solxy+1=1∙∙idxy=idxy+1+1                                         
   28∙∙∙∙y>0∙∙∙⦗solxy1=0∙∙⦗idxy=idxy1+1                                         
   29∙∙∙∙x>0∙∙∙⦗solx⨫1y=3∙∙⦗idxy=idx⨫1y+1                                         
   30∙∙∙∙x<n⨫1solx+1y=2∙∙⦗idxy=idx+1y+1                                         
   31∙∙∙∙x=x0y=y0y<m⨫1solxy⦘=3solxy+1=1idxy⦘=0                           
   32                                                                                               
   33--|ifnotonpath,nothingpointshere                                                      
   34⦗solxy=4                                                                                
   35y>0∙∙∙solxy1¬=0                                                                     
   36y<m1solxy+1¬=1                                                                     
   37x>0∙∙∙solx1y⦘¬=3                                                                     
   38x<n1solx+1y¬=2                                                                     
   39                                                                                               
   40⦗dotxy=1                                                                                
   41solxy{03}                                                                            
   42⦗solxy⦘=0y<m⨫2⦗solxy+1⦘=0                                                      
   43∙∙∙∙(x>=2solx1y=3solx2y=3x<n2solx+1y=2solx+2y=2)         
   44⦗solxy⦘=1y>=2⦗solxy⨫1⦘=1                                                       
   45∙∙∙∙(x>=2solx1y=3solx2y=3x<n2solx+1y=2solx+2y=2)         
   46⦗solxy⦘=2x>=2⦗solx⨫1y⦘=2                                                       
   47∙∙∙∙(y>=2solxy1=0solxy2=0y<m2solxy+1=1solxy+2=1)         
   48⦗solxy⦘=3x<n⨫2⦗solx+1y⦘=3                                                      
   49∙∙∙∙(y>=2solxy1=0solxy2=0y<m2solxy+1=1solxy+2=1)         
   50                                                                                               
   51⦗dotxy⦘=2                                                                                
   52∙∙∙∙x>0x<n1                                                                            
   53∙∙∙∙(⦗solxy=2⦗solx+1y=2                                                         
   54∙∙∙∙(⦗solx⨫1y{01}y>0⦗solx+1y1=0y<m1⦗solx+1y+1=1)                
   55∙∙∙∙                                                                                      
   56∙∙∙∙solxy⦘=3solx⨫1y=3                                                          
   57∙∙∙∙(⦗solx+1y{01}y>0solx1y1=0y<m⨫1solx⨫1y+1=1))               
   58∙∙∙∙                                                                                        
   59∙∙∙∙y>0y<m1                                                                            
   60∙∙∙∙(solxy⦘=1∧⦗solxy+1⦘=1                                                           
   61∙∙∙∙(solxy⨫1∈{23}x>0solx1y+1⦘=3x<n1⦗solx+1y+1⦘=2)                
   62∙∙∙∙                                                                                      
   63∙∙∙∙solxy⦘=0∧solxy1=0                                                            
   64∙∙∙∙(solxy+1⦘∈{23}x>0solx⨫1y⨫1⦘=3x<n1solx+1y⨫1⦘=2))               
   65                                                                                               
   66                                                                                               
   67--|addtohelpsolver(manyxspeedupinpureloop);wanttoautomatethisinfuture          
   68∀⟨xy{0n}×{0m}                                                                             
   69in?xy{01}                                                                              
   70x=0y=0x=ny=min?xy=0                                                          
   71x>0y>0y<m(in?xy=in?x1y⇐⇒solx1y1¬=0solx1y¬=1)                 
   72x>0x<ny>0(in?xy=in?xy1⇐⇒solx1y1¬=3solxy1¬=2)                 
   73                                                                                               
   74x>0y>0x<ny<m                                                                      
   75solx1y1=0in?xy=0                                                              
   76solx∙∙∙y1=0in?xy=1                                                              
   77solx1y∙∙=1in?xy=1                                                              
   78solx∙∙∙y∙∙=1in?xy=0                                                              
   79solx∙∙∙y1=2in?xy=0                                                              
   80solx∙∙∙y∙∙=2in?xy=1                                                              
   81solx1y1=3in?xy=1                                                              
   82solx1y∙∙=3in?xy=0