Documentation

Cvc.Untyped.Theory.Nullable.FiniteField

Finite fields over nullables, sort-erased #

One lifted constructor per liftable operator, <id>?, each answering none unless every argument is some.

The field's size is an index on the sort, not an operator index, so every operator here lifts.

ffAdd lifted over nullables, strictly: none unless every argument is some.

Equations
Instances For
    def Cvc.Untyped.Term.ffAddN? [Ω] (terms : Terms) (atLeastTwoElements : 2 ≤ Array.size terms := by (try grind) <;> fail "failed to prove term array has at least two elements") :

    ffAdd? over two or more terms.

    Equations
    Instances For

      ffMul lifted over nullables, strictly: none unless every argument is some.

      Equations
      Instances For
        def Cvc.Untyped.Term.ffBitsumN? [Ω] (terms : Terms) (atLeastTwoElements : 2 ≤ Array.size terms := by (try grind) <;> fail "failed to prove term array has at least two elements") :

        ffBitsum? over two or more terms.

        Equations
        Instances For
          def Cvc.Untyped.Term.ffMulN? [Ω] (terms : Terms) (atLeastTwoElements : 2 ≤ Array.size terms := by (try grind) <;> fail "failed to prove term array has at least two elements") :

          ffMul? over two or more terms.

          Equations
          Instances For

            ffNeg lifted over nullables, strictly: none unless every argument is some.

            Equations
            Instances For

              ffBitsum lifted over nullables, strictly: none unless every argument is some.

              Equations
              Instances For