• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
    • Macro-libraries
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
      • 100-theorems
      • Arithmetic
      • Bit-vectors
        • Sparseint
        • Bitops
        • Bv
        • Ihs
          • Logops-definitions
          • Math-lemmas
          • Ihs-theories
          • Ihs-init
          • Logops
            • Logops-lemmas
              • Logops-recursive-definitions-theory
                • Basic-logops-induction-schemes
                • Logops-recursive-helpers
                • Unsigned-byte-p*
                • Signed-byte-p*
                • Logxor*
                • Logtail*
                • Lognot*
                • Logmaskp*
                • Logior*
                • Loghead*
                • Logext*
                • Logbitp*
                • Logapp*
                • Logand*
                • Integer-length*
                • Ash*
              • Ihs/logbitp-lemmas
              • Ihs/loghead-lemmas
              • Ihs/logtail-lemmas
              • Ihs/logrpl-lemmas
              • Ihs/logand-lemmas
              • Ihs/logapp-lemmas
              • Ihs/logcar-lemmas
              • Ihs/integer-length-lemmas
              • Ihs/unsigned-byte-p-lemmas
              • Ihs/logext-lemmas
              • Ihs/logcons-lemmas
              • Signed-byte-p-logops
              • Ihs/logxor-lemmas
              • Ihs/logior-lemmas
              • Ihs/logextu-lemmas
              • Ihs/signed-byte-p-lemmas
              • Ihs/lognotu-lemmas
              • Ihs/lognot-lemmas
              • Ihs/logmaskp-lemmas
              • Ihs/ash-lemmas
              • Logops-lemmas-theory
              • Ihs/wrb-lemmas
              • Ihs/logite-lemmas
        • Rtl
      • Algebra
    • Testing-utilities
  • Logops-lemmas

Logops-recursive-definitions-theory

Recursive equivalents of logical operations.

The logical operations on numbers, e.g., loghead, logapp, etc., are defined in terms of modular arithmetic. It is often useful, however, to consider these functions as if they were recursive in terms of logcar and logcdr. This theory provides that alternate view of the functions. When this theory is enabled, lemmas are enabled that rewrite all of the logical operations listed above into an equivalent recursive form. It is then possible to do inductive proofs using these definitions. Note, however, that you will have to explicitly select an induction scheme.

Note that this theory is disabled by default. It should only be enabled during proofs about logical operations where their recursive counterparts are to be used.

Subtopics

Basic-logops-induction-schemes
Some typical ways to induct when proving theorems about logical operations.
Logops-recursive-helpers
Some additional lemmas that are included in logops-recursive-definitions-theory to help with inducting over the definitions of logical operations.
Unsigned-byte-p*
Recursive definition of unsigned-byte-p.
Signed-byte-p*
Recursive definition of signed-byte-p.
Logxor*
Recursive definition of logxor.
Logtail*
Recursive definition of logtail.
Lognot*
Recursive definition of lognot.
Logmaskp*
Recursive definition of logmaskp.
Logior*
Recursive definition of logior.
Loghead*
Recursive definition of loghead.
Logext*
Recursive definition of logext.
Logbitp*
Recursive definition of logbitp.
Logapp*
Recursive definition of logapp.
Logand*
Recursive definition of logand.
Integer-length*
Recursive definition of integer-length.
Ash*
Recursive definition of ash.