Lagrangian formulation of discrete conjugate nets in the projective gauge

•  Definition of the extended Q - 
      net map (eQnet)
•  Direct check of consistency
•  Prove eQnet ⇒ 
        rank of corner equations = 2
•  Prove eQnet ⇐ 
          rank of corner equations = 2

Notations
•  Subscripts denote shifts T[*,k]
•  T acts on all variables with subscripts
•  S denotes the action functional
•  eq[i] denotes the lhs of corner equation (∂_((Subscript[u, i])))S=0

\(T[f_, k__] := 
      f /. a_\_i__ :> a\_\(i, k\)\)
\(a_\_\(i___, m_, n_, k___\) := 
      a\_\(i, n, m, k\) /; Order[n, m] == 1\)
\(a_\_\(i___, m_, j___, n_, k___\) := 
      a\_\(0, i, j, k\) /; m + n == 0\)
\(a_\_\(i__, 0, j___\) := a\_\(i, j\)\)
\(a_\_\(i___, 0, j__\) := 
      a\_\(i, j\)
\)
eq[i__] := D[S, (Subscript[u, i])]

•  Definition of the eQnet
•  Direct check of consistency .  The additional variable s must be skew-symmetric

eQnet = {(Subscript[c, k])_[i_, 
              j_] :> (((Subscript[c, 0])[i, k] (Subscript[c, 0])[k, i] - (Subscript[c, 0])[i, j] (Subscript[c, 0])[k, i] - (Subscript[c, 0])[i, k] (Subscript[c, 0])[k, j])/(Subscript[c, 0]))[k, j] /; Not[k === 0], 
          (Subscript[s, k])_[i_, j_] :> 
            (Subscript[c, 0])[k, i] (Subscript[c, 0])[k, j] (Subscript[s, 0])[i, j] + 
                (Subscript[c, 0])[k, i] ((Subscript[c, 0])[i, j] - (Subscript[c, 0])[i, k]) (Subscript[s, 0])[j, k] + 
                (Subscript[c, 0])[k, j] ((Subscript[c, 0])[j, i] - (Subscript[c, 0])[j, k]) (Subscript[s, 0])[k, i] /; 
              Not[k === 0]};

odds = 
        (Subscript[s, i])_[j_, k_] :> -(Subscript[s, i])[k, j] /; 
            Order[k, j] == 
              1;

T[(Subscript[c, k])[i, j] /. eQnet, l] - 
      T[(Subscript[c, l])[i, j] /. eQnet, k]
Together[% /. eQnet]

T[(Subscript[s, k])[i, j] /. eQnet, l] - 
      T[(Subscript[s, l])[i, j] /. eQnet, k]
Together[% /. eQnet /. odds]

•  Lagrangian
•  Prove eQnet⇒rank of corner equations 2.A pair of variables u is eliminated by use of 2 equations .  The rest 6 equations must be satisfied identically.

L[i_, 
        j_] := (1/(2  (Subscript[s, 0])[i, j] (Subscript[c, 0])[i, j] 
              (Subscript[c, 0])[j, i])) ((((Subscript[u, i, j]) - (Subscript[c, 0])[j, i] (Subscript[u, i]) - (Subscript[c, 0])[i, j] (Subscript[u, j]) - (Subscript[c, 0])[i, j] (Subscript[c, 0])[j, i] (Subscript[u, 0])))^2)
\(\(S = 
        T[L[i, j], k] - L[i, j] + T[L[j, k], i] - L[j, k] + T[L[k, i], j] - 
          L[k, i];\)
\)
s1 = Solve[{eq[j, k], eq[k]} == 0, {(Subscript[u, i]), 
              (Subscript[u, i, j])}][[1]];
eqs = {eq[0], eq[i], eq[j], eq[i, j], eq[i, k], eq[i, j, k]} /. 
          s1;

Together[eqs /. eQnet]

•  Prove eQnet ⇐ 
          rank of corner equations=2.  Coefficients of eqs with respect to remaining u form a set of 36=(6^2) 
    equations from which  eQnet is derived.

Flatten[
        CoefficientList[
          eqs, {(Subscript[u, 0]), (Subscript[u, j]), (Subscript[u, k]), (Subscript[u, i, k]), (Subscript[u, j, k]), 
            (Subscript[u, i, j, k])}]];
Factor[Numerator[Together[%]]];
Complement[%, {0}];
z = 
        Sort[%, LeafCount[#1] < 
              LeafCount[#2] &];
Length[%]

First, we solve several equations with respect to the shifted s.

{z[[1]], z[[2]]}
s1 = 
      Solve[% == 0, {(Subscript[s, k])[i, j], 
          (Subscript[s, i])[j, k]}]
Factor[z[[9]] /. s1]
s2 = Solve[% == 0, (Subscript[s, j])[k, i]]

Next, we solve  with respect to the shifted  c

z1 = 
        Factor[z /. s1[[1]] /. 
            s2[[1]]];
Factor[Take[z1, 4]]
s3 = 
      Solve[% == 0, {(Subscript[c, k])[j, i], 
          (Subscript[c, i])[j, k]}]

Factor[Take[z1, 11] /. s3[[1]]]
s4 = 
      Solve[% == 0, {(Subscript[c, j])[i, k], 
          (Subscript[c, j])[k, i]}]

Factor[{z1[[17]], z1[[18]]} /. s3[[1]] /. 
        s4[[1]]]
s5 = 
      Solve[% == 0, {(Subscript[c, k])[i, j], 
          (Subscript[c, i])[k, j]}]
Factor[z1 /. s3[[1]] /. s4[[1]] /. 
        s5[[1]]]

The full map is given by rules s1, ... s5 .   We compare it with eQnet

s1
s2
s3
s4
s5

ss[f_] := 
      Factor[f /. s1[[1]] /. s2[[1]] /. s3[[1]] /. 
            s4[[1]] /. 
          s5[[1]]]

Factor[ss[#] - (# /. eQnet)] & /@ {
(Subscript[s, k])[i, 
          j], (Subscript[s, i])[j, k], (Subscript[s, j])[k, i], 
(Subscript[c, k])[i, j], 
        (Subscript[c, i])[j, k], (Subscript[c, j])[k, i], 
(Subscript[c, k])[j, i], (Subscript[c, i])[k, j], 
        (Subscript[c, j])[i, k]}