Documentation

Cvc.Logic

Logic #

Specification for the arithmetic (Int/Real) part of the logic #

Difference logic / linearity / transcendental numbers.

  • diff : Kind

    Only permits difference logic (implies linear).

  • nonDiff (linear transcendental : Bool) : Kind

    Arithmetic.

    • linear: only allows linear terms if true, allows non-linear terms if false.
    • transcendental: (dis)allows non-algebraic numbers (wikipedia).
Instances For

    Int, Real, or both.

    Instances For

      Gives the I, R, or IR part of the logic, e.g. IR in LIRA.

      Equations
      Instances For

        Full arithmetic (Int/Real) specification.

        • kind : Kind

          Difference logic / linearity / transcendental numbers.

        • intReal : IntReal

          Int, Real, or both.

        Instances For
          Equations
          Instances For
            Equations
            Instances For
              Equations
              Instances For
                Equations
                Instances For
                  Equations
                  Instances For

                    Generates the arithmetic part of an SMT-LIB logic, e.g. NIRA.

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

                      An SMT-LIB logic.

                      Based on [cvc5's logic_info.cpp][cpp].

                      [cpp] https://github.com/cvc5/cvc5/blob/7ee7051df025e6db566fc67086a7aa4e1023c8f2/src/theory/logic_info.cpp#L270-L367

                      • mkRaw :: (
                        • all? : Bool

                          Trumps the rest of the specification and turns everything on.

                          You should probably not use this, tailoring the logic to the terms you actually use allows the solver to use the best approach available and is crucial for performance.

                        • ho? : Bool

                          Higher-order, for reasoning about functions that take functions as arguments.

                        • qf? : Bool

                          Quantifier-free, terms cannot use quantifiers.

                        • sep? : Bool

                          [Separation logic], typically to reason about program memory.

                          Separation logic

                        • array? : Bool

                          For reasoning about arrays.

                        • uf? : Bool

                          Uninterpreted functions, terms can use symbols of a function-sort.

                        • card? : Bool

                          Cardinality constraints, a.k.a pseudo-boolean constraints.

                          A cardinality constraint, as a term, is an Int-arithmetic relation with Bool-sorted symbols. These symbols are coerced into Int as false ↦ 0, true ↦ 1. So, assuming a b : Bool we can write a + b ≥ 1 for a ∨ b, or a * b = 1 for a ∧ b.

                        • bitvec? : Bool

                          Bit-vectors.

                        • ff? : Bool
                        • float? : Bool

                          Floating point numbers.

                        • datatype? : Bool

                          User-defined potentially-recursive datatypes.

                        • string? : Bool

                          Theory of strings.

                        • Specification of the Int/Real arithmetic theory.

                      • )
                      Instances For

                        SMT-LIB string representation.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        • self.toSmtLib = "ALL"
                        Instances For

                          Either Logic.all? or at least one actual fragment is active.

                          Equations
                          Instances For
                            def Cvc.Logic.valid (self : Logic) :

                            Either Logic.all? or at least one actual fragment is active.

                            Equations
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                Equations
                                                                Instances For
                                                                  Equations
                                                                  Instances For
                                                                    def Cvc.Logic.ho (self : Logic) :
                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      def Cvc.Logic.qf (self : Logic) :
                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        def Cvc.Logic.sep (self : Logic) :
                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          Equations
                                                                          • One or more equations did not get rendered due to their size.
                                                                          Instances For
                                                                            def Cvc.Logic.uf (self : Logic) :
                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            Instances For
                                                                              def Cvc.Logic.card (self : Logic) :
                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                Equations
                                                                                • One or more equations did not get rendered due to their size.
                                                                                Instances For
                                                                                  def Cvc.Logic.ff (self : Logic) :
                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      Equations
                                                                                      • One or more equations did not get rendered due to their size.
                                                                                      Instances For
                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For
                                                                                          def Cvc.Logic.arith (self : Logic) (arith : Arith) :
                                                                                          Equations
                                                                                          • One or more equations did not get rendered due to their size.
                                                                                          Instances For

                                                                                            Convenient Logic constructors for Arith #

                                                                                            Ubiquitous logics #