docs: function buildConstraints(ctx) {
      const res = [];
  
      function fillLC(dst, src) {
          if (src.type != "LINEARCOMBINATION") throw new Error("Constraint is not a LINEARCOMBINATION");
          for (let s in src.values) {
              const v = src.values[s].toString();
              const id = ctx.signalName2Idx[s];
              dst[id] = v;
          }
      }
  
      for (let i=0; i<ctx.constraints.length; i++) {
          const A = {};
          const B = {};
          const C = {};
  
          fillLC(A, ctx.constraints[i].a);
          fillLC(B, ctx.constraints[i].b);
          fillLC(C, lc.negate(ctx.constraints[i].c));
  
          res.push([A,B,C]);
      }
  
      return res;
  }