cr[a_,b_,c_,Inf]:=(a-c)/(b-c);
cr[a_,b_,Inf,d_]:=(b-d)/(a-d);
cr[a_,Inf,c_,d_]:=(a-c)/(a-d);
cr[Inf,b_,c_,d_]:=(b-d)/(b-c);

cr[a_,b_,c_,d_]:=(a-c) (b-d)/((a-d) (b-c));
cr[a_,b_,c_,d_,e_]:={cr[a,b,c,d],cr[a,b,c,e]};
cr[a_,b_,c_,d_,e_,f_]:={cr[a,b,c,d],cr[a,b,c,e],cr[a,b,c,f]};

argsinit3 = Permutations[{a,b,c,d,e,f}];
argsinit2 = Permutations[{a,b,c,d,e,f}][[All,1;;5]];

(* --------- *)

gpns = Get[NotebookDirectory[]<> "depth3ns/i122mod32ns.txt"];

basgen[i_,n_] := Table[If[k==i,1,0],{k,1,n}];

lookupI122[l___]:=basgen[Position[argsinit3,{l}][[1,1]],Length[argsinit3]];

(* ---------- *)

id2[a_,b_,c_,d_,e_,f_] := I122[a,b,c,d,e,f]-I122[a,b,e,d,c,f];

id2b[a_,b_,c_,d_,e_,f_] :=  I122[a,b,c,d,e,f] - I122[b,a,c,d,e,f];

id4step1[a_,b_,c_,d_,e_,f_] := I122[a,b,c,d,e,f] - I122[a,b,c,f,e,d];
id4str[a_,b_,c_,d_,e_,f_] := id4step1[a,b,c,d,e,f] + id4step1[c,e,a,d,b,f];

id6step1[a_,b_,c_,d_,e_,f_] := I122[a,b,c,d,e,f] +  I122[a,b,d,e,c,f] +  I122[a,b,e,c,d,f]
id6str[a_,b_,c_,d_,e_,f_ ] :=id6step1[a,b,c,d,e,f] - id6step1[a,b,c,d,f,e];

id8step1[a_,b_,c_,d_,e_,f_] := I122[a,b,c,d,e,f] - I122[f,b,c,d,e,a]
id8step2[a_,b_,c_,d_,e_,f_] := id8step1[a,b,c,d,e,f]  + id8step1[a,d,e,b,c,f]
id8str[a_,b_,c_,d_,e_,f_] := id8step2[a,b,c,d,e,f]  + id8step2[a,c,b,e,d,f]

id8bstep1[a_,b_,c_,d_,e_,f_] := I122[a,b,c,d,e,f] + I122[a,c,b,d,f,e]
id8bstep2[a_,b_,c_,d_,e_,f_] := id8bstep1[a,b,c,d,e,f] + id8bstep1[a,f,e,d,c,b]
id8bstr[a_,b_,c_,d_,e_,f_] := id8bstep2[a,b,c,d,e,f] - id8bstep2[d,b,c,a,e,f]

id15str[a_,b_,c_,d_,e_,f_] := id6step1[a,b,c,d,e,f]  +id6step1[a,c,d,e,f,b] + id6step1[a,d,e,f,b,c] + id6step1[a,e,f,b,c,d ]+ id6step1[a,f,b,c,d ,e]

(* --------- *)

id2tbl = id2@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id2btbl = id2b@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id4strtbl = id4str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id6strtbl = id6str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id8strtbl = id8str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id8bstrtbl = id8bstr@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id15strtbl = id15str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

(* ---------- *)

id12[a_,b_,c_,d_,e_,f_] := I122[a,b,e,d,f,c]-I122[a,b,f,d,c,e]-I122[a,d,c,b,e,f]+I122[a,d,e,c,f,b]+I122[a,d,f,b,e,c]-I122[f,c,e,a,b,d]+I122[f,c,e,a,d,b]-I122[f,c,e,b,a,d]+I122[f,c,e,d,a,b]-I122[f,e,d,b,a,c]-I122[f,e,d,c,a,b]+I122[f,e,d,c,b,a];

id14[a_,b_,c_,d_,e_,f_] := I122[a,b,c,d,f,e]-I122[a,b,e,d,f,c]+I122[a,c,e,b,f,d]-I122[a,c,f,d,e,b]-I122[a,d,c,b,e,f]+I122[a,d,c,b,f,e]+I122[a,d,c,e,f,b]-I122[f,c,d,b,a,e]+I122[f,c,e,a,d,b]-I122[f,c,e,b,d,a]+I122[f,c,e,d,a,b]-I122[f,c,e,d,b,a]-I122[f,e,c,a,b,d]+I122[f,e,d,a,c,b];

id12tbl =id12@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id14tbl =id14@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

id14tbl//Length

Length/@{id2tbl,id2btbl,id4strtbl,id6strtbl,id8strtbl, id8bstrtbl,id15strtbl}

Join[id2tbl, id2btbl, id4strtbl, id6strtbl, id8strtbl, id8bstrtbl, id15strtbl]//MatrixRank

Join[id2tbl, id2btbl, id4strtbl, id6strtbl, id8strtbl, id8bstrtbl, id15strtbl, id12tbl]//MatrixRank

id12tbl//Length

id2tbl = id2@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122;

id2btbl = id2b@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122;

id4strtbl = id4str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122;

id6strtbl = id6str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122;

id8strtbl = id8str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122;

id8bstrtbl = id8bstr@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122;

id15strtbl = id15str@@@Permutations[{a,b,c,d,e,f}]/.I122->lookupI122;

Join[gpns,id2tbl,id2btbl,id4strtbl,id6strtbl, id8strtbl, id8bstrtbl,id15strtbl]//MatrixRank

Join[id2tbl,id2btbl,id4strtbl,id6strtbl, id8bstrtbl,id8strtbl, id15strtbl,id14tbl]//MatrixRank

out = Join[id2tbl,id2btbl,id4strtbl,id6strtbl, id8strtbl, id8bstrtbl,id15strtbl,gpns]//LatticeReduce;

MatrixRank[Join[id2tbl,id2btbl,id4strtbl,id6strtbl, id8bstrtbl,id8strtbl, id15strtbl, {#}]]&/@out;

Norm[#,1]&/@out

pos = Position[%79, Max[%79]]

Norm[#,1]&/@out[[pos//Flatten]]

Position[%72, 20]

pos[[16]]

NotebookSave[];

out[[82]].(I122@@@argsinit3)

out[[pos[[60]]]].(I122@@@argsinit3)

(* ------------- *)

subsets=Subsets[Hold[id2tbl, id2btbl, id4strtbl, id6strtbl, id8strtbl, id8bstrtbl, id15strtbl, id12tbl],{1,Infinity}];

ranks=MatrixRank[Join[Release[#]]]&/@subsets

pos=Position[ranks,687]//Flatten

subsets[[pos]]

basis={subsets[[pos[[1]]]]};
For[i=1,i≤Length[pos],i++,If[VectorQ[basis,Intersection[#,subsets[[pos[[i]]]]]=!=Union[#]&],AppendTo[basis,subsets[[pos[[i]]]]]]];

basis//ColumnForm

NotebookSave[];

NotebookClose[];