\(\(\( (*\ \(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(\(JDTLRQ[]\ --\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)--\)\(-\)\ *) \)\(
\)\(
\)\( (*\ 
      Checks\ to\ see\ if\ psst\ has\ the\ JDT\ property\ and\ the\ LR\ \(\(property\)\(.\)\)\ *) \)\(
\)\(
\)\( (*\ 
      Utils\ \(Needed : \ AntiChnsIdls[]\), \ 
      Ideel[], \ \(\(InvStdTblx[]\)\(.\)\)\ *) \)\(
\)\( (*\ 
      Function\ \(Needed : \ \(\(InvExtsWRI[]\)\(.\)\)\)\ *) \)\(
\)\( (*\ 
      Must\ be\ run\ within\ JDTLRscan . 
          nb\ for\ the\ variables\ invrsex[*]\ and\ szord, 
	
      and\ for\ the\ equations\ from\ stdisos*\ 
        and\ lookups* . \ *) \)\(
\)\(
\)\(JDTLRQ[psst_]\  := \ 
        Module[{Slde, Migrt, nb = Length[psst], 
	nbset, idbysz, 
            jdt = True, lr = True, colmn}, 

	
          nbset\  = \ Range[nb]; 
	
	
          Slde[redss_, bubbl_]\  := \ \(Slde[redss, bubbl]\  = \ 
              Module[
		{rds = redss, bub = bubbl, temp, 
                  mvup}, 
		While[\ 
                  Intersection[psst[\([bub]\)], 
                      rds]\  ≠ \ {}, 
			temp\  = \ 
                    bub; 
			mvup\  = \ 
                    Max[Flatten[
				Position[rds, \ 
                          x_\  /; \ MemberQ[psst[\([bub]\)], 
                              x], \ {1}]
			]]; 
			bub\  = \ 
                    rds[\([mvup]\)]; 
			rds\  = \ 
                    ReplacePart[rds, temp, mvup]
		]; 
		{bub, 
                  rds}
	]\); 
	
          Migrt[lwgrs_, rrdds_, 
              upgrs_\  /; \ upgrs == {}]\  := \ {lwgrs, rrdds}; 
	
          Migrt[lwgrs_, rrdds_, upgrs_]\  := \ 
            Migrt[
		Append[
                lwgrs, \(Slde[rrdds, 
                    upgrs[\([1]\)]]\)[\([1]\)]], 
		\(Slde[rrdds, 
                  upgrs[\([1]\)]]\)[\([2]\)], 
		Drop[upgrs, 
                1]
	]; 

	
          idbysz\  = \ 
            Table[
		Select[\ \(AntiChnsIdls[
                    psst]\)[\([2]\)], \ \((Length[#] == 
                      iw)\) &\ ], 
		{iw, 2, nb - 2}
	]; 

	
          Do[\ \  (*\ 
              Runs\ through\ sizes\ of\ ideals\ in\ the\ order\ determined\ by\ \(\(szord\)\(.\)\)\ *) 
		siz\  = \ 
              szord[\([szindx]\)]; 
	
		Do[\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ Runs\ through\ all\ ideals\ of\ the\ current\ \(\(size\)\(.\)\)\ *) 
			ideal\  = \ idbysz[\([siz - 1, jid]\)]; 
			filter\  = \ 
                Complement[nbset, ideal]; 
	\ \ 		 (*\ 
                Compute\ inverse\ extensions\ of\ the\ current\ ideal\ and\ \(\(filter\)\(.\)\)\ *) 
			redies\  = \ 
                InvStdTblx[psst, ideal, InvExtsWRI]; 
			grnies\  = \ 
                InvStdTblx[psst, filter, InvExtsWRI]; 
			
			 (*\ 
                Compute\ all\ resulting\ labelings\ of\ psst\ when\ the\ elements\ of\ the
				filter\ are\ slid\ past\ the\ elements\ of\ the\ \(\(ideal\)\(.\)\)\ *) 
			rslts\  = \ 
                Outer[\ Migrt[{}, #1, #2] &, \ redies, \ grnies, \ 
                  1\ ]; 

			Do[
				If[\ \(! jdt\), \ 
                  Break[]\ ]; 
				 (*\ 
                  Determine\ whether\ for\ a\ given\ red\ labeling\ of\ the\ ideal, \ all\ 
					green\ labelings\ of\ the\ filter\ lead\ to\ the\ same\ final\ red\ 
					\(\(labeling\)\(.\)\)\ *) 
				jdt\  = \ 
                  Apply[\ Equal, \ 
                    Map[#[\([2]\)] &, rslts[\([rw]\)]]\ ]
			, {rw, 
                  Length[redies]}]; 

			If[\ 
                lr, 
				Do[
				 (*\ 
                    Compare\ the\ results\ for\ cl - 
                      th\ green\ labeling\ of\ the\ filter
					to\ the\ list\ of\ ordered\ pairs\ of\ distinct\ lower\ green\ 
					outputs\ and\ the\ red\ labelings\ of\ the\ complementary\ \(\(filter\)\(.\)\)\ *) \ 
					lr\  = \ Equal[\ \ 
					\ \ \ \ \ \ \ \  (*\ 
                        Output\ green/
                            red\ pairs\ for\ this\ green\ \(\(labeling\)\(.\)\)\ *) 
						Sort[\ 
                        colmn\  = \ 
                          Map[#[\([cl]\)] &, 
                            rslts]\ ], \ 
						Sort[
							Flatten[
						 (*\ Creates\ all\ green/
                                red\ pairs\ for\ given\ green\ \(\(output\)\(.\)\)\ *) 
								Map[
									Function[
                              x, 
										Map[
											{x, #} &, 
											InvStdTblx[\ 
												psst, 
												Complement[nbset, 
                                    x], 
												InvExtsWRI
											]
										]
									], \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ 
                              End\ of\ \(\(Function\)\([\)\(x\)\(\ \)\)*) 
									\ \ \ \ \ \  (*\ 
                              Distinct\ lower\ green\ output\ \(\(tableaux\)\(.\)\)\ *) 
									Union[
                              Map[#[\([1]\)] &, 
                                colmn]]\ 
								], \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ 
                            End\ of\ Outer\ \(\(Map\)\([\)\(\ \)\)*) 
							1]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ End\ of\ \(\(Flatten\)\([\)\(\ \)\)*) 
						]\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ 
                        End\ of\ \(\(Sort\)\([\)\(\ \)\)*) 
					]; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ End\ of\ \(\(Equal\)\([\)\(\ \)\)*) 	
	
					If[\ lr, \ 
                    Break[]\ ]\ 
				, {cl, 
                    Length[grnies]}]; \ \ \ \ \ \ \ \ \ \ \  (*\ 
                  End\ of\ loop\ thru\ \(\(columns\)\(.\)\)\ *) 
			]; 

			If[\ \(! jdt\) && \(! lr\), \ Break[]\ ]\ \ \ \ \  (*\ 
                Exit\ jid\ loop\ if\ both\ are\ \(\(false\)\(.\)\)\ *) 

		, {jid, Length[idbysz[\([siz - 1]\)]]}]; \ \ \  (*\ 
              End\ of\ ideals - this - 
                size\ \(\(loop\)\(.\)\)\ *) 

		If[\ \(! jdt\) && \(! lr\), \ Break[]\ ]\ \ \ \ \ \  (*\ 
              Exit\ outer\ loop\ if\ both\ are\ \(\(false\)\(.\)\)\ *) 

	, {szindx, nb - 3}]; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ 
            End\ of\ loop\ for\ ideal\ \(\(sizes\)\(.\)\)\ *) 

	{jdt, 
            lr}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  (*\ 
            Return\ ordered\ pair\ of\ test\ \(\(results\)\(.\)\)\ *) 
];\)\)\)