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]];

functsinit=Join[{I212,#}&/@argsinit3,{I32,#}&/@argsinit2];

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

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

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

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

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

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

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

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

id10step1[a_,b_,c_,d__,e_,f_] := I212[a,b,c,d,e,f] + I212[a,b,c,d,f,e]
id10str[a_,b_,c_,d_,e_,f_] := id10step1[a,b,c,d,e,f]+id10step1[c,b,d,e,f,a]+id10step1[d,b,e,f,a,c]+id10step1[e,b,f,a,c,d]+id10step1[f,b,a,c,d,e]

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

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

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

id2ctbl = id2c@@@Permutations[{a,b,c,d,e,f}]/.I212->lookupI212//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

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

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

id10strtbl = id10str@@@Permutations[{a,b,c,d,e,f}]/.I212->lookupI212//Union//RowReduce//DeleteCases[#,el_/;VectorQ[el,#==0&]]&;

Length/@{id2tbl, id2btbl,id2ctbl, id4strtbl,id8strtbl,id10strtbl}

Join[gpns,id2tbl, id2btbl,id2ctbl, id4strtbl,id8strtbl,id10strtbl]//MatrixRank

Join[id2tbl, id2btbl, id2ctbl,id4strtbl, id8strtbl,id10strtbl]//MatrixRank

(* ------- *)

subsets=Subsets[Hold[id2tbl, id2btbl,id2ctbl, id4strtbl,id8strtbl,id10strtbl],{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