Documentation

HexBareiss.Kernel

A kernel-checkable determinant certificate. See the module docstring.

  • triangular (swaps : List (Nat × Nat)) (transform : List (List Int)) (value : Int) : DetWitness

    A triangularization: the row swaps in application order, the rows of the lower triangular transform (row i holds its i + 1 leading entries), and the value.

  • singular (vec : List Int) : DetWitness

    A nonzero left kernel vector: the value is 0.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The certified value.

      Equations
      Instances For

        Row i of a row list, [] past the end.

        Equations
        Instances For

          Entry j of a row, 0 past the end.

          Equations
          Instances For

            Row i replaced by r; unchanged past the end.

            Equations
            Instances For

              Every swap exchanges two distinct rows below n.

              Equations
              Instances For

                The sign of the arrangement: (-1)^(number of swaps).

                Equations
                Instances For

                  The dot product of two integer lists, stopping at the shorter.

                  Equations
                  Instances For

                    The m columns of a row list.

                    Equations
                    Instances For

                      The row is orthogonal to every column in the list.

                      Equations
                      Instances For

                        Walk the transform rows against the columns of the arranged matrix. Row i (with done the i columns already passed, in any order) must have length i + 1, a nonzero last entry lᵢ, and zero products with the earlier columns; its product with column i is the diagonal entry uᵢ of the triangular product. pl and pu accumulate ∏ lᵢ and sign · ∏ uᵢ, and at the end pl · d = pu is required.

                        Equations
                        Instances For

                          Every row of A scaled by its positive scale is the row of B.

                          Equations
                          Instances For

                            The kernel checker. A is the matrix as a list of n rows of length n. Checks the shape, and then either the triangularization or the left kernel vector; see the module docstring.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Hex.Matrix.checkDetRat (n : Nat) (A : List (List Rat)) (s : List Nat) (B : List (List Int)) (c : DetWitness) (v : Rat) :

                              The kernel checker for a rational matrix A given as n rows: the scales s take the rows of A to the rows of the integer matrix B, which c certifies, and the value v satisfies v · ∏ s = value c.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                def Hex.Matrix.rowLists {n : Nat} (A : Matrix Int n n) :

                                The rows of a square matrix as lists.

                                Equations
                                Instances For

                                  The kernel witness of a square integer matrix given as n rows of length n, by fraction-free elimination on [A | I], or the reason its own check fails.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    The kernel witness of a square integer matrix.

                                    Equations
                                    Instances For