Documentation

Cvc.Untyped.Theory.Nullable.Arith

Arithmetic over nullables, sort-erased #

One lifted constructor per liftable arithmetic operator, <id>?. Each answers none unless every argument is some.

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

gt? over two or more terms.

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

    mul? over two or more terms.

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

      realDivTotal? over two or more terms.

      Equations
      Instances For
        def Cvc.Untyped.Term.ge? [Ω] (lft rgt : Term) :

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

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

          ge? over two or more terms.

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

            lt? over two or more terms.

            Equations
            Instances For

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

              Equations
              Instances For

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

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

                  intDiv? over two or more terms.

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

                    realDiv? over two or more terms.

                    Equations
                    Instances For

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

                      Equations
                      Instances For
                        def Cvc.Untyped.Term.toReal? [Ω] (arithTerm : Term) :

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

                        Equations
                        Instances For
                          def Cvc.Untyped.Term.sub? [Ω] (lft rgt : Term) :

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

                          Equations
                          Instances For

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

                            Equations
                            Instances For

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

                              Equations
                              Instances For

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

                                Equations
                                Instances For
                                  def Cvc.Untyped.Term.mul? [Ω] (lft rgt : Term) :

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

                                  Equations
                                  Instances For

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

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

                                      sub? over two or more terms.

                                      Equations
                                      Instances For
                                        def Cvc.Untyped.Term.piand? [Ω] (size lft rgt : Term) :

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

                                        Equations
                                        Instances For

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

                                          Equations
                                          Instances For

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

                                            Equations
                                            Instances For

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

                                              Equations
                                              Instances For
                                                def Cvc.Untyped.Term.pow? [Ω] (base exponent : Term) :

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

                                                Equations
                                                Instances For

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

                                                  Equations
                                                  Instances For
                                                    def Cvc.Untyped.Term.lt? [Ω] (lft rgt : Term) :

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

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

                                                      add? over two or more terms.

                                                      Equations
                                                      Instances For

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

                                                        Equations
                                                        Instances For

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

                                                          Equations
                                                          Instances For

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

                                                            Equations
                                                            Instances For
                                                              def Cvc.Untyped.Term.add? [Ω] (lft rgt : Term) :

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

                                                              Equations
                                                              Instances For

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

                                                                Equations
                                                                Instances For
                                                                  def Cvc.Untyped.Term.neg? [Ω] (arithTerm : Term) :

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

                                                                  Equations
                                                                  Instances For

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

                                                                    Equations
                                                                    Instances For
                                                                      def Cvc.Untyped.Term.toInt? [Ω] (arithTerm : Term) :

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

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

                                                                        le? over two or more terms.

                                                                        Equations
                                                                        Instances For
                                                                          def Cvc.Untyped.Term.abs? [Ω] (arithTerm : Term) :

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

                                                                          Equations
                                                                          Instances For
                                                                            def Cvc.Untyped.Term.addN'? [Ω] (terms : Terms) (on0 : Env Term := mkInt 0 >>= nullableSome) (on1 : Term → Env Term := pure) :

                                                                            add? over any number of terms: none gives some 0, one gives that term. on0 and on1 override these.

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

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

                                                                              Equations
                                                                              Instances For

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

                                                                                Equations
                                                                                Instances For
                                                                                  def Cvc.Untyped.Term.isInt? [Ω] (arithTerm : Term) :

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

                                                                                  Equations
                                                                                  Instances For
                                                                                    def Cvc.Untyped.Term.gt? [Ω] (lft rgt : Term) :

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

                                                                                    Equations
                                                                                    Instances For
                                                                                      def Cvc.Untyped.Term.mulN'? [Ω] (terms : Terms) (on0 : Env Term := mkInt 1 >>= nullableSome) (on1 : Term → Env Term := pure) :

                                                                                      mul? over any number of terms: none gives some 1, one gives that term. on0 and on1 override these.

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

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

                                                                                        Equations
                                                                                        Instances For
                                                                                          def Cvc.Untyped.Term.pow2? [Ω] (exponent : Term) :

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

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

                                                                                            intDivTotal? over two or more terms.

                                                                                            Equations
                                                                                            Instances For

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

                                                                                              Equations
                                                                                              Instances For

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

                                                                                                Equations
                                                                                                Instances For
                                                                                                  def Cvc.Untyped.Term.le? [Ω] (lft rgt : Term) :

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

                                                                                                  Equations
                                                                                                  Instances For