Documentation

Cvc.Typed.Theory.Nullable.Arith

Arithmetic over nullables, typed #

Each lifted operator has its plain counterpart's signature with an Option around every argument and around the result, so add? : Term (Option α) → Term (Option α) → Env (Term (Option α)) under the same IsArith α. Everything the plain operator checks is checked here.

The lift is strict: none unless every argument is some.

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

Equations
Instances For
    def Cvc.Typed.Term.geN? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) (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.Typed.Term.gt? [Ω] {α : Type} [ToTyp α] [IsArith α] (lft rgt : Term (Option α)) :

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

      Equations
      Instances For
        def Cvc.Typed.Term.toReal? [Ω] {α : Type} [ToTyp α] [IsArith α] (arithTerm : Term (Option α)) :

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

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

          mul? over two or more terms.

          Equations
          Instances For

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

            Equations
            Instances For
              def Cvc.Typed.Term.mulN'? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) :
              Env (Term (Option α))

              mul? over any number of terms: none gives some 1, one gives that term.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Cvc.Typed.Term.intDivTotalN? [Ω] (terms : Terms (Option Int)) (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
                  def Cvc.Typed.Term.abs? [Ω] {α : Type} [ToTyp α] [IsArith α] (arithTerm : Term (Option α)) :
                  Env (Term (Option α))

                  abs 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

                      arcsecant 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

                          intDivTotal 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.Typed.Term.pow? [Ω] {α : Type} [ToTyp α] [IsArith α] (base exponent : Term (Option α)) :
                              Env (Term (Option α))

                              pow 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

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

                                  Equations
                                  Instances For
                                    def Cvc.Typed.Term.gtN? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) (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.Typed.Term.ge? [Ω] {α : Type} [ToTyp α] [IsArith α] (lft rgt : Term (Option α)) :

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

                                      Equations
                                      Instances For
                                        def Cvc.Typed.Term.lt? [Ω] {α : Type} [ToTyp α] [IsArith α] (lft rgt : Term (Option α)) :

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

                                        Equations
                                        Instances For
                                          def Cvc.Typed.Term.intDivN? [Ω] (terms : Terms (Option Int)) (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.Typed.Term.sub? [Ω] {α : Type} [ToTyp α] [IsArith α] (lft rgt : Term (Option α)) :
                                            Env (Term (Option α))

                                            sub 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
                                                def Cvc.Typed.Term.realDivTotalN? [Ω] (terms : Terms (Option Rat)) (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.Typed.Term.mul? [Ω] {α : Type} [ToTyp α] [IsArith α] (lft rgt : Term (Option α)) :
                                                  Env (Term (Option α))

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

                                                  Equations
                                                  Instances For
                                                    def Cvc.Typed.Term.ltN? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) (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

                                                      sqrt 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.Typed.Term.piand? [Ω] (size lft rgt : Term (Option Int)) :

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

                                                          Equations
                                                          Instances For

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

                                                            Equations
                                                            Instances For
                                                              def Cvc.Typed.Term.add? [Ω] {α : Type} [ToTyp α] [IsArith α] (lft rgt : Term (Option α)) :
                                                              Env (Term (Option α))

                                                              add 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.Typed.Term.le? [Ω] {α : Type} [ToTyp α] [IsArith α] (lft rgt : Term (Option α)) :

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

                                                                  Equations
                                                                  Instances For
                                                                    def Cvc.Typed.Term.neg? [Ω] {α : Type} [ToTyp α] [IsArith α] (arithTerm : Term (Option α)) :
                                                                    Env (Term (Option α))

                                                                    neg 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
                                                                        def Cvc.Typed.Term.subN? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) (atLeastTwoElements : 2 ≤ Array.size terms := by (try grind) <;> fail "failed to prove term array has at least two elements") :
                                                                        Env (Term (Option α))

                                                                        sub? over two or more terms.

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

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

                                                                          Equations
                                                                          Instances For
                                                                            def Cvc.Typed.Term.isInt? [Ω] {α : Type} [ToTyp α] [IsArith α] (arithTerm : Term (Option α)) :

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

                                                                            Equations
                                                                            Instances For

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

                                                                              Equations
                                                                              Instances For
                                                                                def Cvc.Typed.Term.realDivN? [Ω] (terms : Terms (Option Rat)) (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

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

                                                                                  Equations
                                                                                  Instances For
                                                                                    def Cvc.Typed.Term.leN? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) (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

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

                                                                                      Equations
                                                                                      Instances For
                                                                                        def Cvc.Typed.Term.toInt? [Ω] {α : Type} [ToTyp α] [IsArith α] (arithTerm : Term (Option α)) :

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

                                                                                        Equations
                                                                                        Instances For

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

                                                                                          Equations
                                                                                          Instances For
                                                                                            def Cvc.Typed.Term.addN'? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) :
                                                                                            Env (Term (Option α))

                                                                                            add? over any number of terms: none gives some 0, one gives that term.

                                                                                            Equations
                                                                                            • One or more equations did not get rendered due to their size.
                                                                                            Instances For
                                                                                              def Cvc.Typed.Term.addN? [Ω] {α : Type} [ToTyp α] [IsArith α] (terms : Terms (Option α)) (atLeastTwoElements : 2 ≤ Array.size terms := by (try grind) <;> fail "failed to prove term array has at least two elements") :
                                                                                              Env (Term (Option α))

                                                                                              add? over two or more terms.

                                                                                              Equations
                                                                                              Instances For

                                                                                                cosecant 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