Documentation

Cvc.Logic

SMT-LIB logics #

A Logic names the fragment a solver should expect, as Solver.setLogic takes it: QF_LIA, UFBV, ALL… Start from a named logic and extend it, or build one from nothing with Logic.mk:

s.setLogic Logic.qf_lia.uf                        -- QF_UFLIA
s.setLogic (Logic.mk.uf.arith .lia).toLogic.qf    -- QF_UFLIA

Logic.ofSmtLib parses a logic's name, and Logic.toSmtLib prints one.

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, such as QF_LIA.

                      Instances For

                        Whether the logic is ALL or enables at least one theory.

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

                          Whether the logic is ALL or enables at least one theory.

                          Equations
                          Instances For
                            structure Cvc.Logic.Builderextends Cvc.Logic :

                            A logic built from nothing, started by Logic.mk and finished by toLogic.

                            Instances For

                              The empty logic, to add theories to.

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

                                Adds higher-order reasoning, HO_.

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

                                  Makes the logic quantifier-free, QF_.

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

                                    Adds separation logic, SEP_.

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

                                      Adds arrays, A or AX.

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

                                        Adds uninterpreted functions, UF.

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

                                          Adds cardinality constraints, C.

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

                                            Adds bit-vectors, BV.

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

                                              Adds finite fields, FF.

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

                                                Adds floating-point arithmetic, FP.

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

                                                  Adds datatypes, DT.

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

                                                    Adds strings, S.

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

                                                      Sets the arithmetic part, such as Arith.lia.

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

                                                        Makes the arithmetic linear rather than difference logic.

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

                                                          Makes the arithmetic non-linear.

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

                                                            Adds transcendental functions to the arithmetic.

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

                                                              Adds integers to the arithmetic.

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

                                                                Adds reals to the arithmetic.

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

                                                                  ALL: every theory cvc5 supports.

                                                                  Equations
                                                                  Instances For

                                                                    Starts building a logic from nothing.

                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      def Cvc.Logic.ho (self : Logic) :

                                                                      Adds higher-order reasoning, HO_.

                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        def Cvc.Logic.qf (self : Logic) :

                                                                        Makes the logic quantifier-free, QF_.

                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          def Cvc.Logic.sep (self : Logic) :

                                                                          Adds separation logic, SEP_.

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

                                                                            Adds arrays, A or AX.

                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            Instances For
                                                                              def Cvc.Logic.uf (self : Logic) :

                                                                              Adds uninterpreted functions, UF.

                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                def Cvc.Logic.card (self : Logic) :

                                                                                Adds cardinality constraints, C.

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

                                                                                  Adds bit-vectors, BV.

                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    def Cvc.Logic.ff (self : Logic) :

                                                                                    Adds finite fields, FF.

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

                                                                                      Adds floating-point arithmetic, FP.

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

                                                                                        Adds datatypes, DT.

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

                                                                                          Adds strings, S.

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

                                                                                            Sets the arithmetic part, such as Arith.lia.

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

                                                                                              Pure arithmetic logics #

                                                                                              Each is the logic of its name: Logic.lira is LIRA, Logic.qf_nia is QF_NIA.

                                                                                              Conversion from/to strings #

                                                                                              SMT-LIB string representation.

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

                                                                                                SMT-LIB string representation.

                                                                                                Equations
                                                                                                Instances For
                                                                                                  @[instance_reducible]
                                                                                                  Equations

                                                                                                  Parses an SMT-LIB logic name, such as QF_UFLIA.

                                                                                                  Equations
                                                                                                  Instances For