Documentation

Cvc.Untyped.Theory.Float

Generated Float constructors, sort-erased #

Whether the value is not-a-number.

Equations
Instances For

    Whether the value is normal.

    Equations
    Instances For

      Whether the value is subnormal.

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

        Multiplication.

        Equations
        Instances For

          Whether the value is either zero.

          Equations
          Instances For
            def Cvc.Untyped.Term.fpOfBits [Ω] (sign exponent significand : Term) :

            A floating point assembled from its sign, exponent and significand bits.

            The significand bit-vector holds the significand minus its hidden bit, hence the s + 1.

            Equations
            Instances For

              Maximum.

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

                Addition.

                Equations
                Instances For
                  def Cvc.Untyped.Term.mkFloat [Ω] (exp sig : Nat) (bv : Term) :

                  A floating-point literal read from bv, a bit-vector literal of exp + sig bits.

                  Equations
                  Instances For

                    Reinterpretation of an IEEE 754 bit pattern of e + s bits as a floating point.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Cvc.Untyped.Term.fpLt [Ω] (lft rgt : Term) :

                      Less-than.

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

                        Greater-than.

                        Equations
                        Instances For
                          def Cvc.Untyped.Term.fpOfReal [Ω] (e s : Nat) (rm arg : Term) :

                          Conversion of a real to a floating point.

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

                            Whether the value is positive.

                            Equations
                            Instances For

                              Not-a-number.

                              Equations
                              Instances For

                                IEEE 754 remainder, lft - rgt * q for q the integer nearest lft / rgt.

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

                                  Subtraction.

                                  Equations
                                  Instances For

                                    Conversion to a real; unspecified for NaN and the infinities.

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

                                      Less-than-or-equal-to.

                                      Equations
                                      Instances For

                                        Rounding to an integral value.

                                        Equations
                                        Instances For

                                          Negative infinity.

                                          Equations
                                          Instances For
                                            def Cvc.Untyped.Term.fpFma [Ω] (rm a b c : Term) :

                                            Fused multiply-add, computing a * b + c with a single rounding.

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

                                              Division.

                                              Equations
                                              Instances For

                                                Square root.

                                                Equations
                                                Instances For
                                                  def Cvc.Untyped.Term.fpOfSbv [Ω] (e s : Nat) (rm bv : Term) :

                                                  Conversion of a signed bit-vector to a floating point.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    def Cvc.Untyped.Term.fpOfUbv [Ω] (e s : Nat) (rm bv : Term) :

                                                    Conversion of an unsigned bit-vector to a floating point.

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

                                                      Positive infinity.

                                                      Equations
                                                      Instances For

                                                        Minimum.

                                                        Equations
                                                        Instances For

                                                          Absolute value.

                                                          Equations
                                                          Instances For
                                                            def Cvc.Untyped.Term.fpOfFp [Ω] (e s : Nat) (rm fp : Term) :

                                                            Conversion between floating-point formats.

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

                                                              Negation.

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

                                                                Floating-point equality, for which NaN is not equal to itself and the zeroes are equal.

                                                                Equations
                                                                Instances For
                                                                  def Cvc.Untyped.Term.fpToUbv [Ω] (size : Nat) (rm fp : Term) :

                                                                  Conversion of a floating point to an unsigned bit-vector of the given size.

                                                                  Unspecified for NaN, an infinity, or a value out of range.

                                                                  Equations
                                                                  • One or more equations did not get rendered due to their size.
                                                                  Instances For
                                                                    def Cvc.Untyped.Term.fpToSbv [Ω] (size : Nat) (rm fp : Term) :

                                                                    Conversion of a floating point to a signed bit-vector of the given size.

                                                                    Unspecified for NaN, an infinity, or a value out of range.

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

                                                                      Whether the value is either infinity.

                                                                      Equations
                                                                      Instances For

                                                                        Whether the value is negative.

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

                                                                          Greater-than-or-equal-to.

                                                                          Equations
                                                                          Instances For

                                                                            Takes a term apart one level, if Float owns its operator.

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

                                                                              Float's operators, taken apart one level, sort-erased.

                                                                              • fpEq [Ω] (lft rgt : Term) : View.Float

                                                                                Floating-point equality, for which NaN is not equal to itself and the zeroes are equal.

                                                                              • fpLt [Ω] (lft rgt : Term) : View.Float

                                                                                Less-than.

                                                                              • fpLe [Ω] (lft rgt : Term) : View.Float

                                                                                Less-than-or-equal-to.

                                                                              • fpGt [Ω] (lft rgt : Term) : View.Float

                                                                                Greater-than.

                                                                              • fpGe [Ω] (lft rgt : Term) : View.Float

                                                                                Greater-than-or-equal-to.

                                                                              • fpIsNormal [Ω] (fp : Term) : View.Float

                                                                                Whether the value is normal.

                                                                              • fpIsSubnormal [Ω] (fp : Term) : View.Float

                                                                                Whether the value is subnormal.

                                                                              • fpIsZero [Ω] (fp : Term) : View.Float

                                                                                Whether the value is either zero.

                                                                              • fpIsInf [Ω] (fp : Term) : View.Float

                                                                                Whether the value is either infinity.

                                                                              • fpIsNan [Ω] (fp : Term) : View.Float

                                                                                Whether the value is not-a-number.

                                                                              • fpIsNeg [Ω] (fp : Term) : View.Float

                                                                                Whether the value is negative.

                                                                              • fpIsPos [Ω] (fp : Term) : View.Float

                                                                                Whether the value is positive.

                                                                              • fpAbs [Ω] (fp : Term) : View.Float

                                                                                Absolute value.

                                                                              • fpNeg [Ω] (fp : Term) : View.Float

                                                                                Negation.

                                                                              • fpAdd [Ω] (rm lft rgt : Term) : View.Float

                                                                                Addition.

                                                                              • fpSub [Ω] (rm lft rgt : Term) : View.Float

                                                                                Subtraction.

                                                                              • fpMul [Ω] (rm lft rgt : Term) : View.Float

                                                                                Multiplication.

                                                                              • fpDiv [Ω] (rm lft rgt : Term) : View.Float

                                                                                Division.

                                                                              • fpFma [Ω] (rm a b c : Term) : View.Float

                                                                                Fused multiply-add, computing a * b + c with a single rounding.

                                                                              • fpSqrt [Ω] (rm fp : Term) : View.Float

                                                                                Square root.

                                                                              • fpRti [Ω] (rm fp : Term) : View.Float

                                                                                Rounding to an integral value.

                                                                              • fpRem [Ω] (lft rgt : Term) : View.Float

                                                                                IEEE 754 remainder, lft - rgt * q for q the integer nearest lft / rgt.

                                                                              • fpMin [Ω] (lft rgt : Term) : View.Float

                                                                                Minimum.

                                                                              • fpMax [Ω] (lft rgt : Term) : View.Float

                                                                                Maximum.

                                                                              • fpToReal [Ω] (fp : Term) : View.Float

                                                                                Conversion to a real; unspecified for NaN and the infinities.

                                                                              • fpOfBits [Ω] (sign exponent significand : Term) : View.Float

                                                                                A floating point assembled from its sign, exponent and significand bits.

                                                                                The significand bit-vector holds the significand minus its hidden bit, hence the s + 1.

                                                                              • fpOfIeeeBv [Ω] (e s : Nat) (bv : Term) : View.Float

                                                                                Reinterpretation of an IEEE 754 bit pattern of e + s bits as a floating point.

                                                                              • fpOfFp [Ω] (e s : Nat) (rm fp : Term) : View.Float

                                                                                Conversion between floating-point formats.

                                                                              • fpOfReal [Ω] (e s : Nat) (rm arg : Term) : View.Float

                                                                                Conversion of a real to a floating point.

                                                                              • fpOfSbv [Ω] (e s : Nat) (rm bv : Term) : View.Float

                                                                                Conversion of a signed bit-vector to a floating point.

                                                                              • fpOfUbv [Ω] (e s : Nat) (rm bv : Term) : View.Float

                                                                                Conversion of an unsigned bit-vector to a floating point.

                                                                              • fpToSbv [Ω] (size : Nat) (rm fp : Term) : View.Float

                                                                                Conversion of a floating point to a signed bit-vector of the given size.

                                                                                Unspecified for NaN, an infinity, or a value out of range.

                                                                              • fpToUbv [Ω] (size : Nat) (rm fp : Term) : View.Float

                                                                                Conversion of a floating point to an unsigned bit-vector of the given size.

                                                                                Unspecified for NaN, an infinity, or a value out of range.

                                                                              Instances For

                                                                                Values #

                                                                                A rounding mode is an enum, so it goes to a term directly. A floating-point value is either one of the five distinguished constants or a bit pattern, and reading one back needs the sort to recover the exponent and significand sizes.

                                                                                Determine if this term is a floating-point rounding mode value.

                                                                                Equations
                                                                                Instances For

                                                                                  The rounding mode a term denotes, failing if it denotes none.

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

                                                                                    Floating-point values #

                                                                                    isFloatValue holds of a constant, which cvc5 always canonicalises into a bit pattern — so the five predicates below classify a pattern rather than a distinct representation.

                                                                                    Determine if this term is a floating-point value.

                                                                                    Equations
                                                                                    Instances For

                                                                                      Determine if this term is a floating-point NaN.

                                                                                      Equations
                                                                                      Instances For

                                                                                        Determine if this term is a floating-point positive infinity value (+oo).

                                                                                        Equations
                                                                                        Instances For

                                                                                          Determine if this term is a floating-point negative infinity value (-oo).

                                                                                          Equations
                                                                                          Instances For

                                                                                            Determine if this term is a floating-point positive zero value (+zero).

                                                                                            Equations
                                                                                            Instances For

                                                                                              Determine if this term is a floating-point negative zero value (-zero).

                                                                                              Equations
                                                                                              Instances For

                                                                                                The exponent size, significand size and bit pattern of a constant floating-point term.

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

                                                                                                  The exponent size, significand size and bit pattern of a constant floating-point term.

                                                                                                  Equations
                                                                                                  Instances For

                                                                                                    The floating-point value a constant term denotes, at whatever sizes it turns out to have.

                                                                                                    Equations
                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                    Instances For
                                                                                                      def Cvc.Untyped.Term.Float.ofTerm [Ω] {exp sig : Nat} (term : Term) :
                                                                                                      Env (Float exp sig)

                                                                                                      The floating-point value a constant term denotes, failing unless the sizes are the expected.

                                                                                                      Equations
                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                      Instances For
                                                                                                        @[instance_reducible]
                                                                                                        instance Cvc.Untyped.Term.instSrtLikeFloat {exp sig : Nat} :
                                                                                                        SrtLike (Float exp sig)
                                                                                                        Equations