• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • C
          • Syntax-for-tools
          • Atc
          • Transformation-tools
          • Language
          • Representation
            • Representation-of-integer-operations
              • Def-integer-operations-2
                • Def-integer-operations-1
                • Defun-integer
                • Sint-from-boolean
                • Def-integer-operations-2-loop-inner
                • Def-integer-operations-2-loop-outer
                • Add-sint-sint
                • Rem-sllong-sllong-okp
                • Mul-sllong-sllong-okp
                • Div-sllong-sllong-okp
                • Boolean-from-sint
                • Bitand-sint-sint
                • Sub-ushort-ushort-okp
                • Sub-ushort-uchar-okp
                • Sub-ushort-sshort-okp
                • Sub-ushort-slong-okp
                • Sub-ushort-sllong-okp
                • Sub-ushort-schar-okp
                • Sub-uint-sllong-okp
                • Sub-uchar-ushort-okp
                • Sub-uchar-uchar-okp
                • Sub-uchar-sshort-okp
                • Sub-uchar-sllong-okp
                • Sub-sshort-ushort-okp
                • Sub-sshort-uchar-okp
                • Sub-sshort-sshort-okp
                • Sub-sshort-slong-okp
                • Sub-sshort-sllong-okp
                • Sub-sshort-schar-okp
                • Sub-slong-ushort-okp
                • Sub-slong-sshort-okp
                • Sub-slong-sllong-okp
                • Sub-sllong-ushort-okp
                • Sub-sllong-uchar-okp
                • Sub-sllong-sshort-okp
                • Sub-sllong-slong-okp
                • Sub-sllong-sllong-okp
                • Sub-sllong-sllong
                • Sub-sllong-schar-okp
                • Sub-sint-sint-okp
                • Sub-sint-sint
                • Sub-schar-ushort-okp
                • Sub-schar-sshort-okp
                • Sub-schar-sllong-okp
                • Shr-ushort-ushort-okp
                • Shr-ushort-ulong-okp
                • Shr-ushort-ullong-okp
                • Shr-ushort-uchar-okp
                • Shr-ushort-sshort-okp
                • Shr-ushort-slong-okp
                • Shr-ushort-sllong-okp
                • Shr-ushort-schar-okp
                • Shr-ulong-ushort-okp
                • Shr-ulong-ullong-okp
                • Shr-ulong-sshort-okp
                • Shr-ulong-sllong-okp
                • Shr-ullong-ushort-okp
                • Shr-ullong-ulong-okp
                • Shr-ullong-ullong-okp
                • Shr-ullong-uchar-okp
                • Shr-ullong-sshort-okp
                • Shr-ullong-slong-okp
                • Shr-ullong-sllong-okp
                • Shr-ullong-schar-okp
                • Shr-uchar-ushort-okp
                • Shr-uchar-ullong-okp
                • Shr-uchar-sshort-okp
                • Shr-uchar-sllong-okp
                • Shr-sshort-ushort-okp
                • Shr-sshort-ulong-okp
                • Shr-sshort-ullong-okp
                • Shr-sshort-uchar-okp
                • Shr-sshort-sshort-okp
                • Shr-sshort-slong-okp
                • Shr-sshort-sllong-okp
                • Shr-sshort-schar-okp
                • Shr-slong-ushort-okp
                • Shr-slong-ullong-okp
                • Shr-slong-sshort-okp
                • Shr-slong-sllong-okp
                • Shr-sllong-ushort-okp
                • Shr-sllong-ulong-okp
                • Shr-sllong-ullong-okp
                • Shr-sllong-uchar-okp
                • Shr-sllong-sshort-okp
                • Shr-sllong-slong-okp
                • Shr-sllong-sllong-okp
                • Shr-sllong-schar-okp
                • Shr-sint-sint-okp
                • Shr-schar-ushort-okp
                • Shr-schar-ullong-okp
                • Shr-schar-sshort-okp
                • Shr-schar-sllong-okp
                • Shl-ushort-ushort-okp
                • Shl-ushort-ulong-okp
                • Shl-ushort-ullong-okp
                • Shl-ushort-uchar-okp
                • Shl-ushort-sshort-okp
                • Shl-ushort-slong-okp
                • Shl-ushort-sllong-okp
                • Shl-ushort-schar-okp
                • Shl-ulong-ushort-okp
                • Shl-ulong-ullong-okp
                • Shl-ulong-sshort-okp
                • Shl-ulong-sllong-okp
                • Shl-ullong-ushort-okp
                • Shl-ullong-ulong-okp
                • Shl-ullong-ullong-okp
                • Shl-ullong-uchar-okp
                • Shl-ullong-sshort-okp
                • Shl-ullong-slong-okp
                • Shl-ullong-sllong-okp
                • Shl-ullong-schar-okp
                • Shl-uchar-ushort-okp
                • Shl-uchar-ullong-okp
                • Shl-uchar-sshort-okp
                • Shl-uchar-sllong-okp
                • Shl-sshort-ushort-okp
                • Shl-sshort-ulong-okp
                • Shl-sshort-ullong-okp
                • Shl-sshort-uchar-okp
                • Shl-sshort-sshort-okp
                • Shl-sshort-slong-okp
                • Shl-sshort-sllong-okp
                • Shl-sshort-schar-okp
                • Shl-slong-ushort-okp
                • Shl-slong-ullong-okp
                • Shl-slong-sshort-okp
                • Shl-slong-sllong-okp
                • Shl-sllong-ushort-okp
                • Shl-sllong-ulong-okp
                • Shl-sllong-ullong-okp
                • Shl-sllong-uchar-okp
                • Shl-sllong-sshort-okp
                • Shl-sllong-slong-okp
                • Shl-sllong-sllong-okp
                • Shl-sllong-schar-okp
                • Shl-sint-sint-okp
                • Shl-schar-ushort-okp
                • Shl-schar-ullong-okp
                • Shl-schar-sshort-okp
                • Shl-schar-sllong-okp
                • Rem-ushort-ushort-okp
                • Rem-ushort-ulong-okp
                • Rem-ushort-ullong-okp
                • Rem-ushort-uchar-okp
                • Rem-ushort-sshort-okp
                • Rem-ushort-slong-okp
                • Rem-ushort-sllong-okp
                • Rem-ushort-schar-okp
                • Rem-ulong-ushort-okp
                • Rem-ulong-ullong-okp
                • Rem-ulong-sshort-okp
                • Rem-ulong-sllong-okp
                • Rem-ullong-ushort-okp
                • Rem-ullong-ulong-okp
                • Rem-ullong-ullong-okp
                • Rem-ullong-ullong
                • Rem-ullong-uchar-okp
                • Rem-ullong-sshort-okp
                • Rem-ullong-slong-okp
                • Rem-ullong-sllong-okp
                • Rem-ullong-schar-okp
                • Rem-uint-ullong-okp
                • Rem-uchar-ushort-okp
                • Rem-uchar-ullong-okp
                • Rem-uchar-sshort-okp
                • Rem-uchar-sllong-okp
                • Rem-sshort-ushort-okp
                • Rem-sshort-ulong-okp
                • Rem-sshort-ullong-okp
                • Rem-sshort-uchar-okp
                • Rem-sshort-sshort-okp
                • Rem-sshort-slong-okp
                • Rem-sshort-sllong-okp
                • Rem-sshort-schar-okp
                • Rem-slong-ushort-okp
                • Rem-slong-ullong-okp
                • Rem-slong-sshort-okp
                • Rem-slong-slong-okp
                • Rem-slong-sllong-okp
                • Rem-sllong-ushort-okp
                • Rem-sllong-ulong-okp
                • Rem-sllong-ullong-okp
                • Rem-sllong-uchar-okp
                • Rem-sllong-sshort-okp
                • Rem-sllong-slong-okp
                • Rem-sllong-sllong
                • Rem-sllong-schar-okp
                • Rem-sint-sint-okp
                • Rem-schar-ushort-okp
                • Rem-schar-ullong-okp
                • Rem-schar-sshort-okp
                • Rem-schar-sllong-okp
                • Mul-ushort-ushort-okp
                • Mul-ushort-uchar-okp
                • Mul-ushort-sshort-okp
                • Mul-ushort-slong-okp
                • Mul-ushort-sllong-okp
                • Mul-ushort-schar-okp
                • Mul-uint-sllong-okp
                • Mul-uchar-ushort-okp
                • Mul-uchar-uchar-okp
                • Mul-uchar-sshort-okp
                • Mul-uchar-sllong-okp
                • Mul-uchar-schar-okp
                • Mul-sshort-ushort-okp
                • Mul-sshort-uchar-okp
                • Mul-sshort-sshort-okp
                • Mul-sshort-slong-okp
                • Mul-sshort-sllong-okp
                • Mul-sshort-schar-okp
                • Mul-slong-ushort-okp
                • Mul-slong-sshort-okp
                • Mul-slong-slong-okp
                • Mul-slong-sllong-okp
                • Mul-sllong-ushort-okp
                • Mul-sllong-uchar-okp
                • Mul-sllong-sshort-okp
                • Mul-sllong-slong-okp
                • Mul-sllong-sllong
                • Mul-sllong-schar-okp
                • Mul-sint-sllong-okp
                • Mul-sint-sint-okp
                • Mul-sint-sint
                • Mul-schar-ushort-okp
                • Mul-schar-uchar-okp
                • Mul-schar-sshort-okp
                • Mul-schar-sllong-okp
                • Le-ullong-ullong
                • Le-sllong-sllong
                • Ge-ullong-ullong
                • Ge-sllong-sllong
                • Div-ushort-ushort-okp
                • Div-ushort-ulong-okp
                • Div-ushort-ullong-okp
                • Div-ushort-uchar-okp
                • Div-ushort-sshort-okp
                • Div-ushort-slong-okp
                • Div-ushort-sllong-okp
                • Div-ushort-schar-okp
                • Div-ulong-ushort-okp
                • Div-ulong-ullong-okp
                • Div-ulong-sshort-okp
                • Div-ulong-sllong-okp
                • Div-ullong-ushort-okp
                • Div-ullong-ulong-okp
                • Div-ullong-ullong-okp
                • Div-ullong-ullong
                • Div-ullong-uchar-okp
                • Div-ullong-sshort-okp
                • Div-ullong-slong-okp
                • Div-ullong-sllong-okp
                • Div-ullong-schar-okp
                • Div-uchar-ushort-okp
                • Div-uchar-ullong-okp
                • Div-uchar-sshort-okp
                • Div-uchar-sllong-okp
                • Div-sshort-ushort-okp
                • Div-sshort-ulong-okp
                • Div-sshort-ullong-okp
                • Div-sshort-uchar-okp
                • Div-sshort-sshort-okp
                • Div-sshort-slong-okp
                • Div-sshort-sllong-okp
                • Div-sshort-schar-okp
                • Div-slong-ushort-okp
                • Div-slong-ullong-okp
                • Div-slong-sshort-okp
                • Div-slong-slong-okp
                • Div-slong-sllong-okp
                • Div-sllong-ushort-okp
                • Div-sllong-ulong-okp
                • Div-sllong-ullong-okp
                • Div-sllong-uchar-okp
                • Div-sllong-sshort-okp
                • Div-sllong-slong-okp
                • Div-sllong-sllong
                • Div-sllong-schar-okp
                • Div-sint-sint-okp
                • Div-schar-ushort-okp
                • Div-schar-ullong-okp
                • Div-schar-sshort-okp
                • Div-schar-sllong-okp
                • Bitxor-ushort-ushort
                • Bitxor-ushort-ullong
                • Bitxor-ushort-uchar
                • Bitxor-ushort-sshort
                • Bitxor-ushort-sllong
                • Bitxor-ushort-schar
                • Bitxor-ulong-ullong
                • Bitxor-ulong-sllong
                • Bitxor-ullong-ushort
                • Bitxor-ullong-ulong
                • Bitxor-ullong-ullong
                • Bitxor-ullong-uchar
                • Bitxor-ullong-sshort
                • Bitxor-ullong-sllong
                • Bitxor-uchar-ushort
                • Bitxor-uchar-ullong
                • Bitxor-uchar-sshort
                • Bitxor-uchar-sllong
                • Bitxor-sshort-ushort
                • Bitxor-sshort-ullong
                • Bitxor-sshort-uchar
                • Bitxor-sshort-sshort
                • Bitxor-sshort-sllong
                • Bitxor-slong-ullong
                • Bitxor-slong-sllong
                • Bitxor-sllong-ushort
                • Bitxor-sllong-ulong
                • Bitxor-sllong-ullong
                • Bitxor-sllong-sshort
                • Bitxor-sllong-sllong
                • Bitxor-sint-sint
                • Bitxor-schar-ushort
                • Bitxor-schar-ullong
                • Bitxor-schar-sllong
                • Bitior-ushort-ushort
                • Bitior-ushort-ullong
                • Bitior-ushort-uchar
                • Bitior-ushort-sshort
                • Bitior-ushort-sllong
                • Bitior-ushort-schar
                • Bitior-ulong-ullong
                • Bitior-ulong-sllong
                • Bitior-ullong-ushort
                • Bitior-ullong-ulong
                • Bitior-ullong-ullong
                • Bitior-ullong-uchar
                • Bitior-ullong-sshort
                • Bitior-ullong-sllong
                • Bitior-uchar-ushort
                • Bitior-uchar-ullong
                • Bitior-uchar-sshort
                • Bitior-uchar-sllong
                • Bitior-sshort-ushort
                • Bitior-sshort-ullong
                • Bitior-sshort-uchar
                • Bitior-sshort-sshort
                • Bitior-sshort-sllong
                • Bitior-slong-ullong
                • Bitior-slong-sllong
                • Bitior-sllong-ushort
                • Bitior-sllong-ulong
                • Bitior-sllong-ullong
                • Bitior-sllong-sshort
                • Bitior-sllong-sllong
                • Bitior-sint-sint
                • Bitior-schar-ushort
                • Bitior-schar-ullong
                • Bitior-schar-sllong
                • Bitand-ushort-ushort
                • Bitand-ushort-ullong
                • Bitand-ushort-sshort
                • Bitand-ushort-sllong
                • Bitand-ullong-ushort
                • Bitand-ullong-ullong
                • Bitand-ullong-sshort
                • Bitand-ullong-sllong
                • Bitand-sshort-ushort
                • Bitand-sshort-ullong
                • Bitand-sshort-sshort
                • Bitand-sshort-sllong
                • Bitand-sllong-ushort
                • Bitand-sllong-ullong
                • Bitand-sllong-sshort
                • Bitand-sllong-sllong
                • Add-ushort-ushort-okp
                • Add-ushort-uchar-okp
                • Add-ushort-sshort-okp
                • Add-ushort-slong-okp
                • Add-ushort-sllong-okp
                • Add-ushort-schar-okp
                • Add-uchar-ushort-okp
                • Add-uchar-sshort-okp
                • Add-uchar-sllong-okp
                • Add-sshort-ushort-okp
                • Add-sshort-uchar-okp
                • Add-sshort-sshort-okp
                • Add-sshort-slong-okp
                • Add-sshort-sllong-okp
                • Add-sshort-schar-okp
                • Add-slong-ushort-okp
                • Add-slong-sshort-okp
                • Add-slong-sllong-okp
                • Add-sllong-ushort-okp
                • Add-sllong-uchar-okp
                • Add-sllong-sshort-okp
                • Add-sllong-slong-okp
                • Add-sllong-sllong-okp
                • Add-sllong-schar-okp
                • Add-sint-sint-okp
                • Add-schar-ushort-okp
                • Add-schar-sshort-okp
                • Add-schar-sllong-okp
                • Sub-ushort-ushort
                • Sub-ushort-ullong
                • Sub-ushort-uchar
                • Sub-ushort-sshort
                • Sub-ushort-slong
                • Sub-ushort-sllong
                • Sub-ushort-sint-okp
                • Sub-ushort-schar
                • Sub-ulong-ullong
                • Sub-ulong-sllong
                • Sub-ullong-ushort
                • Sub-ullong-ullong
                • Sub-ullong-sshort
                • Sub-ullong-sllong
                • Sub-uint-slong-okp
                • Sub-uint-sllong
                • Sub-uchar-ushort
                • Sub-uchar-ullong
                • Sub-uchar-uchar
                • Sub-uchar-sshort
                • Sub-uchar-slong-okp
                • Sub-uchar-slong
                • Sub-uchar-sllong
                • Sub-uchar-sint-okp
                • Sub-uchar-schar-okp
                • Sub-uchar-schar
                • Sub-sshort-ushort
                • Sub-sshort-ullong
                • Sub-sshort-uchar
                • Sub-sshort-sshort
                • Sub-sshort-slong
                • Sub-sshort-sllong
                • Sub-sshort-sint-okp
                • Sub-sshort-schar
                • Sub-slong-ushort
                • Sub-slong-ullong
                • Sub-slong-uint-okp
                • Sub-slong-uchar-okp
                • Sub-slong-sshort
                • Sub-slong-slong-okp
                • Sub-slong-slong
                • Sub-slong-sllong
                • Sub-slong-sint-okp
                • Sub-slong-schar-okp
                • Sub-sllong-ushort
                • Sub-sllong-ulong
                • Sub-sllong-ullong
                • Sub-sllong-uint-okp
                • Sub-sllong-uint
                • Sub-sllong-uchar
                • Sub-sllong-sshort
                • Sub-sllong-slong
                • Sub-sllong-sint-okp
                • Sub-sllong-sint
                • Sub-sllong-schar
                • Sub-sint-ushort-okp
                • Sub-sint-uchar-okp
                • Sub-sint-sshort-okp
                • Sub-sint-slong-okp
                • Sub-sint-sllong-okp
                • Sub-sint-sllong
                • Sub-sint-schar-okp
                • Sub-schar-ushort
                • Sub-schar-ullong
                • Sub-schar-uchar-okp
                • Sub-schar-uchar
                • Sub-schar-sshort
                • Sub-schar-slong-okp
                • Sub-schar-slong
                • Sub-schar-sllong
                • Sub-schar-sint-okp
                • Sub-schar-schar-okp
                • Sub-schar-schar
                • Shr-ushort-ushort
                • Shr-ushort-ulong
                • Shr-ushort-ullong
                • Shr-ushort-uint-okp
                • Shr-ushort-uchar
                • Shr-ushort-sshort
                • Shr-ushort-slong
                • Shr-ushort-sllong
                • Shr-ushort-sint-okp
                • Shr-ushort-schar
                • Shr-ulong-ushort
                • Shr-ulong-ulong-okp
                • Shr-ulong-ullong
                • Shr-ulong-uint-okp
                • Shr-ulong-uchar-okp
                • Shr-ulong-sshort
                • Shr-ulong-slong-okp
                • Shr-ulong-sllong
                • Shr-ulong-sint-okp
                • Shr-ulong-schar-okp
                • Shr-ullong-ushort
                • Shr-ullong-ulong
                • Shr-ullong-ullong
                • Shr-ullong-uint-okp
                • Shr-ullong-uint
                • Shr-ullong-uchar
                • Shr-ullong-sshort
                • Shr-ullong-slong
                • Shr-ullong-sllong
                • Shr-ullong-sint-okp
                • Shr-ullong-sint
                • Shr-ullong-schar
                • Shr-uint-ushort-okp
                • Shr-uint-ulong-okp
                • Shr-uint-ullong-okp
                • Shr-uint-ullong
                • Shr-uint-uint-okp
                • Shr-uint-uchar-okp
                • Shr-uint-sshort-okp
                • Shr-uint-slong-okp
                • Shr-uint-sllong-okp
                • Shr-uint-sint-okp
                • Shr-uint-schar-okp
                • Shr-uchar-ushort
                • Shr-uchar-ulong-okp
                • Shr-uchar-ullong
                • Shr-uchar-uint-okp
                • Shr-uchar-uchar-okp
                • Shr-uchar-sshort
                • Shr-uchar-slong-okp
                • Shr-uchar-sllong
                • Shr-uchar-sint-okp
                • Shr-uchar-schar-okp
                • Shr-sshort-ushort
                • Shr-sshort-ulong
                • Shr-sshort-ullong
                • Shr-sshort-uint-okp
                • Shr-sshort-uchar
                • Shr-sshort-sshort
                • Shr-sshort-slong
                • Shr-sshort-sllong
                • Shr-sshort-sint-okp
                • Shr-sshort-schar
                • Shr-slong-ushort
                • Shr-slong-ulong-okp
                • Shr-slong-ullong
                • Shr-slong-uint-okp
                • Shr-slong-uchar-okp
                • Shr-slong-sshort
                • Shr-slong-slong-okp
                • Shr-slong-sllong
                • Shr-slong-sint-okp
                • Shr-slong-schar-okp
                • Shr-sllong-ushort
                • Shr-sllong-ulong
                • Shr-sllong-ullong
                • Shr-sllong-uint-okp
                • Shr-sllong-uint
                • Shr-sllong-uchar
                • Shr-sllong-sshort
                • Shr-sllong-slong
                • Shr-sllong-sllong
                • Shr-sllong-sint-okp
                • Shr-sllong-sint
                • Shr-sllong-schar
                • Shr-sint-ushort-okp
                • Shr-sint-ulong-okp
                • Shr-sint-ullong-okp
                • Shr-sint-uint-okp
                • Shr-sint-uchar-okp
                • Shr-sint-sshort-okp
                • Shr-sint-slong-okp
                • Shr-sint-sllong-okp
                • Shr-sint-sint
                • Shr-sint-schar-okp
                • Shr-schar-ushort
                • Shr-schar-ulong-okp
                • Shr-schar-ullong
                • Shr-schar-uint-okp
                • Shr-schar-uchar-okp
                • Shr-schar-sshort
                • Shr-schar-slong-okp
                • Shr-schar-sllong
                • Shr-schar-sint-okp
                • Shr-schar-schar-okp
                • Shl-ushort-ushort
                • Shl-ushort-ulong
                • Shl-ushort-ullong
                • Shl-ushort-uint-okp
                • Shl-ushort-uchar
                • Shl-ushort-sshort
                • Shl-ushort-slong
                • Shl-ushort-sllong
                • Shl-ushort-sint-okp
                • Shl-ushort-schar
                • Shl-ulong-ushort
                • Shl-ulong-ulong-okp
                • Shl-ulong-ullong
                • Shl-ulong-uint-okp
                • Shl-ulong-uchar-okp
                • Shl-ulong-sshort
                • Shl-ulong-slong-okp
                • Shl-ulong-sllong
                • Shl-ulong-sint-okp
                • Shl-ulong-schar-okp
                • Shl-ullong-ushort
                • Shl-ullong-ulong
                • Shl-ullong-ullong
                • Shl-ullong-uint-okp
                • Shl-ullong-uint
                • Shl-ullong-uchar
                • Shl-ullong-sshort
                • Shl-ullong-slong
                • Shl-ullong-sllong
                • Shl-ullong-sint-okp
                • Shl-ullong-sint
                • Shl-ullong-schar
                • Shl-uint-ushort-okp
                • Shl-uint-ulong-okp
                • Shl-uint-ullong-okp
                • Shl-uint-ullong
                • Shl-uint-uint-okp
                • Shl-uint-uchar-okp
                • Shl-uint-sshort-okp
                • Shl-uint-slong-okp
                • Shl-uint-sllong-okp
                • Shl-uint-sint-okp
                • Shl-uint-schar-okp
                • Shl-uchar-ushort
                • Shl-uchar-ulong-okp
                • Shl-uchar-ullong
                • Shl-uchar-uint-okp
                • Shl-uchar-uchar-okp
                • Shl-uchar-sshort
                • Shl-uchar-slong-okp
                • Shl-uchar-sllong
                • Shl-uchar-sint-okp
                • Shl-uchar-schar-okp
                • Shl-sshort-ushort
                • Shl-sshort-ulong
                • Shl-sshort-ullong
                • Shl-sshort-uint-okp
                • Shl-sshort-uchar
                • Shl-sshort-sshort
                • Shl-sshort-slong
                • Shl-sshort-sllong
                • Shl-sshort-sint-okp
                • Shl-sshort-schar
                • Shl-slong-ushort
                • Shl-slong-ulong-okp
                • Shl-slong-ullong
                • Shl-slong-uint-okp
                • Shl-slong-uchar-okp
                • Shl-slong-sshort
                • Shl-slong-slong-okp
                • Shl-slong-sllong
                • Shl-slong-sint-okp
                • Shl-slong-schar-okp
                • Shl-sllong-ushort
                • Shl-sllong-ulong
                • Shl-sllong-ullong
                • Shl-sllong-uint-okp
                • Shl-sllong-uint
                • Shl-sllong-uchar
                • Shl-sllong-sshort
                • Shl-sllong-slong
                • Shl-sllong-sllong
                • Shl-sllong-sint-okp
                • Shl-sllong-sint
                • Shl-sllong-schar
                • Shl-sllong-okp
                • Shl-sint-ushort-okp
                • Shl-sint-ulong-okp
                • Shl-sint-ullong-okp
                • Shl-sint-uint-okp
                • Shl-sint-uchar-okp
                • Shl-sint-sshort-okp
                • Shl-sint-slong-okp
                • Shl-sint-sllong-okp
                • Shl-sint-sint
                • Shl-sint-schar-okp
                • Shl-schar-ushort
                • Shl-schar-ulong-okp
                • Shl-schar-ullong
                • Shl-schar-uint-okp
                • Shl-schar-uchar-okp
                • Shl-schar-sshort
                • Shl-schar-slong-okp
                • Shl-schar-sllong
                • Shl-schar-sint-okp
                • Shl-schar-schar-okp
                • Rem-ushort-ushort
                • Rem-ushort-ulong
                • Rem-ushort-ullong
                • Rem-ushort-uint-okp
                • Rem-ushort-uchar
                • Rem-ushort-sshort
                • Rem-ushort-slong
                • Rem-ushort-sllong
                • Rem-ushort-sint-okp
                • Rem-ushort-schar
                • Rem-ulong-ushort
                • Rem-ulong-ulong-okp
                • Rem-ulong-ulong
                • Rem-ulong-ullong
                • Rem-ulong-uint-okp
                • Rem-ulong-uchar-okp
                • Rem-ulong-sshort
                • Rem-ulong-slong-okp
                • Rem-ulong-sllong
                • Rem-ulong-sint-okp
                • Rem-ulong-schar-okp
                • Rem-ullong-ushort
                • Rem-ullong-ulong
                • Rem-ullong-uint-okp
                • Rem-ullong-uint
                • Rem-ullong-uchar
                • Rem-ullong-sshort
                • Rem-ullong-slong
                • Rem-ullong-sllong
                • Rem-ullong-sint-okp
                • Rem-ullong-sint
                • Rem-ullong-schar
                • Rem-uint-ushort-okp
                • Rem-uint-ulong-okp
                • Rem-uint-ullong
                • Rem-uint-uint-okp
                • Rem-uint-uchar-okp
                • Rem-uint-sshort-okp
                • Rem-uint-slong-okp
                • Rem-uint-sllong-okp
                • Rem-uint-sllong
                • Rem-uint-sint-okp
                • Rem-uint-schar-okp
                • Rem-uchar-ushort
                • Rem-uchar-ulong-okp
                • Rem-uchar-ulong
                • Rem-uchar-ullong
                • Rem-uchar-uint-okp
                • Rem-uchar-uchar-okp
                • Rem-uchar-uchar
                • Rem-uchar-sshort
                • Rem-uchar-slong-okp
                • Rem-uchar-slong
                • Rem-uchar-sllong
                • Rem-uchar-sint-okp
                • Rem-uchar-schar-okp
                • Rem-uchar-schar
                • Rem-sshort-ushort
                • Rem-sshort-ulong
                • Rem-sshort-ullong
                • Rem-sshort-uint-okp
                • Rem-sshort-uchar
                • Rem-sshort-sshort
                • Rem-sshort-slong
                • Rem-sshort-sllong
                • Rem-sshort-sint-okp
                • Rem-sshort-schar
                • Rem-slong-ushort
                • Rem-slong-ulong-okp
                • Rem-slong-ulong
                • Rem-slong-ullong
                • Rem-slong-uint-okp
                • Rem-slong-uchar-okp
                • Rem-slong-sshort
                • Rem-slong-slong
                • Rem-slong-sllong
                • Rem-slong-sint-okp
                • Rem-slong-schar-okp
                • Rem-sllong-ushort
                • Rem-sllong-ulong
                • Rem-sllong-ullong
                • Rem-sllong-uint-okp
                • Rem-sllong-uint
                • Rem-sllong-uchar
                • Rem-sllong-sshort
                • Rem-sllong-slong
                • Rem-sllong-sint-okp
                • Rem-sllong-sint
                • Rem-sllong-schar
                • Rem-sint-ushort-okp
                • Rem-sint-ulong-okp
                • Rem-sint-ullong-okp
                • Rem-sint-ullong
                • Rem-sint-uint-okp
                • Rem-sint-uchar-okp
                • Rem-sint-sshort-okp
                • Rem-sint-slong-okp
                • Rem-sint-sllong-okp
                • Rem-sint-sllong
                • Rem-sint-sint
                • Rem-sint-schar-okp
                • Rem-schar-ushort
                • Rem-schar-ulong-okp
                • Rem-schar-ulong
                • Rem-schar-ullong
                • Rem-schar-uint-okp
                • Rem-schar-uchar-okp
                • Rem-schar-uchar
                • Rem-schar-sshort
                • Rem-schar-slong-okp
                • Rem-schar-sllong
                • Rem-schar-sint-okp
                • Rem-schar-schar-okp
                • Rem-schar-schar
                • Ne-ushort-ushort
                • Ne-ushort-ullong
                • Ne-ushort-sshort
                • Ne-ushort-sllong
                • Ne-ullong-ushort
                • Ne-ullong-ullong
                • Ne-ullong-sshort
                • Ne-ullong-sllong
                • Ne-sshort-ushort
                • Ne-sshort-ullong
                • Ne-sshort-sshort
                • Ne-sshort-sllong
                • Ne-sllong-ushort
                • Ne-sllong-ullong
                • Ne-sllong-sllong
                • Ne-sint-sint
                • Mul-ushort-ushort
                • Mul-ushort-ulong
                • Mul-ushort-ullong
                • Mul-ushort-uchar
                • Mul-ushort-sshort
                • Mul-ushort-slong
                • Mul-ushort-sllong
                • Mul-ushort-sint-okp
                • Mul-ushort-schar
                • Mul-ulong-ulong
                • Mul-ulong-ullong
                • Mul-ulong-sllong
                • Mul-ullong-ushort
                • Mul-ullong-ulong
                • Mul-ullong-ullong
                • Mul-ullong-uchar
                • Mul-ullong-sshort
                • Mul-ullong-slong
                • Mul-ullong-sllong
                • Mul-ullong-schar
                • Mul-uint-slong-okp
                • Mul-uint-sllong
                • Mul-uchar-ushort
                • Mul-uchar-ullong
                • Mul-uchar-uchar
                • Mul-uchar-sshort
                • Mul-uchar-slong-okp
                • Mul-uchar-slong
                • Mul-uchar-sllong
                • Mul-uchar-sint-okp
                • Mul-uchar-schar
                • Mul-sshort-ushort
                • Mul-sshort-ullong
                • Mul-sshort-uchar
                • Mul-sshort-sshort
                • Mul-sshort-slong
                • Mul-sshort-sllong
                • Mul-sshort-sint-okp
                • Mul-sshort-schar
                • Mul-slong-ushort
                • Mul-slong-ullong
                • Mul-slong-uint-okp
                • Mul-slong-uchar-okp
                • Mul-slong-uchar
                • Mul-slong-sshort
                • Mul-slong-slong
                • Mul-slong-sllong
                • Mul-slong-sint-okp
                • Mul-slong-schar-okp
                • Mul-slong-schar
                • Mul-sllong-ushort
                • Mul-sllong-ulong
                • Mul-sllong-ullong
                • Mul-sllong-uint-okp
                • Mul-sllong-uint
                • Mul-sllong-uchar
                • Mul-sllong-sshort
                • Mul-sllong-slong
                • Mul-sllong-sint-okp
                • Mul-sllong-sint
                • Mul-sllong-schar
                • Mul-sint-ushort-okp
                • Mul-sint-uchar-okp
                • Mul-sint-sshort-okp
                • Mul-sint-slong-okp
                • Mul-sint-sllong
                • Mul-sint-schar-okp
                • Mul-schar-ushort
                • Mul-schar-ullong
                • Mul-schar-uchar
                • Mul-schar-sshort
                • Mul-schar-slong-okp
                • Mul-schar-slong
                • Mul-schar-sllong
                • Mul-schar-sint-okp
                • Mul-schar-schar-okp
                • Mul-schar-schar
                • Lt-ushort-ushort
                • Lt-ushort-ullong
                • Lt-ushort-uchar
                • Lt-ushort-sshort
                • Lt-ushort-sllong
                • Lt-ulong-ullong
                • Lt-ulong-sllong
                • Lt-ullong-ushort
                • Lt-ullong-ullong
                • Lt-ullong-sshort
                • Lt-ullong-sllong
                • Lt-uchar-ushort
                • Lt-uchar-ullong
                • Lt-sshort-ushort
                • Lt-sshort-ullong
                • Lt-sshort-sshort
                • Lt-sshort-sllong
                • Lt-sllong-ushort
                • Lt-sllong-ulong
                • Lt-sllong-ullong
                • Lt-sllong-sshort
                • Lt-sllong-sllong
                • Lt-sint-sint
                • Le-ushort-ushort
                • Le-ushort-ulong
                • Le-ushort-ullong
                • Le-ushort-uchar
                • Le-ushort-sshort
                • Le-ushort-slong
                • Le-ushort-sllong
                • Le-ushort-schar
                • Le-ulong-ushort
                • Le-ulong-ulong
                • Le-ulong-ullong
                • Le-ulong-sshort
                • Le-ulong-sllong
                • Le-ullong-ushort
                • Le-ullong-ulong
                • Le-ullong-uchar
                • Le-ullong-sshort
                • Le-ullong-slong
                • Le-ullong-sllong
                • Le-ullong-schar
                • Le-uchar-ushort
                • Le-uchar-ullong
                • Le-uchar-sshort
                • Le-uchar-sllong
                • Le-sshort-ushort
                • Le-sshort-ulong
                • Le-sshort-ullong
                • Le-sshort-uchar
                • Le-sshort-sshort
                • Le-sshort-slong
                • Le-sshort-sllong
                • Le-sshort-schar
                • Le-slong-ushort
                • Le-slong-ullong
                • Le-slong-sllong
                • Le-sllong-ushort
                • Le-sllong-ulong
                • Le-sllong-ullong
                • Le-sllong-uchar
                • Le-sllong-sshort
                • Le-sllong-slong
                • Le-sllong-schar
                • Le-sint-sint
                • Le-schar-ushort
                • Le-schar-ullong
                • Le-schar-sshort
                • Le-schar-sllong
                • Gt-ushort-ushort
                • Gt-ushort-ullong
                • Gt-ushort-uchar
                • Gt-ushort-sshort
                • Gt-ushort-sllong
                • Gt-ushort-schar
                • Gt-ulong-ullong
                • Gt-ulong-sllong
                • Gt-ullong-ushort
                • Gt-ullong-ullong
                • Gt-ullong-sshort
                • Gt-ullong-sllong
                • Gt-uchar-ushort
                • Gt-uchar-ullong
                • Gt-uchar-sshort
                • Gt-uchar-sllong
                • Gt-sshort-ushort
                • Gt-sshort-ullong
                • Gt-sshort-uchar
                • Gt-sshort-sshort
                • Gt-sshort-sllong
                • Gt-slong-ullong
                • Gt-sllong-ushort
                • Gt-sllong-ulong
                • Gt-sllong-ullong
                • Gt-sllong-sshort
                • Gt-sllong-sllong
                • Gt-sint-sint
                • Gt-schar-ushort
                • Gt-schar-ullong
                • Ge-ushort-ushort
                • Ge-ushort-ulong
                • Ge-ushort-ullong
                • Ge-ushort-uchar
                • Ge-ushort-sshort
                • Ge-ushort-slong
                • Ge-ushort-sllong
                • Ge-ushort-schar
                • Ge-ulong-ushort
                • Ge-ulong-ulong
                • Ge-ulong-ullong
                • Ge-ulong-sshort
                • Ge-ulong-sllong
                • Ge-ullong-ushort
                • Ge-ullong-ulong
                • Ge-ullong-uchar
                • Ge-ullong-sshort
                • Ge-ullong-slong
                • Ge-ullong-sllong
                • Ge-ullong-schar
                • Ge-uchar-ushort
                • Ge-uchar-ullong
                • Ge-uchar-sshort
                • Ge-uchar-sllong
                • Ge-sshort-ushort
                • Ge-sshort-ulong
                • Ge-sshort-ullong
                • Ge-sshort-uchar
                • Ge-sshort-sshort
                • Ge-sshort-slong
                • Ge-sshort-sllong
                • Ge-sshort-schar
                • Ge-slong-ushort
                • Ge-slong-ullong
                • Ge-slong-sshort
                • Ge-slong-slong
                • Ge-slong-sllong
                • Ge-sllong-ushort
                • Ge-sllong-ulong
                • Ge-sllong-ullong
                • Ge-sllong-uchar
                • Ge-sllong-sshort
                • Ge-sllong-slong
                • Ge-sllong-schar
                • Ge-sint-sint
                • Ge-schar-ushort
                • Ge-schar-ullong
                • Ge-schar-sshort
                • Ge-schar-sllong
                • Eq-ushort-ushort
                • Eq-ushort-ullong
                • Eq-ushort-sshort
                • Eq-ushort-sllong
                • Eq-ullong-ullong
                • Eq-ullong-sllong
                • Eq-sshort-ushort
                • Eq-sshort-ullong
                • Eq-sllong-ullong
                • Eq-sllong-sllong
                • Div-ushort-ushort
                • Div-ushort-ulong
                • Div-ushort-ullong
                • Div-ushort-uint-okp
                • Div-ushort-uchar
                • Div-ushort-sshort
                • Div-ushort-slong
                • Div-ushort-sllong
                • Div-ushort-sint-okp
                • Div-ushort-schar
                • Div-ulong-ushort
                • Div-ulong-ulong-okp
                • Div-ulong-ulong
                • Div-ulong-ullong
                • Div-ulong-uint-okp
                • Div-ulong-uchar-okp
                • Div-ulong-sshort
                • Div-ulong-slong-okp
                • Div-ulong-sllong
                • Div-ulong-sint-okp
                • Div-ulong-schar-okp
                • Div-ullong-ushort
                • Div-ullong-ulong
                • Div-ullong-uint-okp
                • Div-ullong-uint
                • Div-ullong-uchar
                • Div-ullong-sshort
                • Div-ullong-slong
                • Div-ullong-sllong
                • Div-ullong-sint-okp
                • Div-ullong-sint
                • Div-ullong-schar
                • Div-uint-ushort-okp
                • Div-uint-ulong-okp
                • Div-uint-ullong-okp
                • Div-uint-ullong
                • Div-uint-uint-okp
                • Div-uint-uchar-okp
                • Div-uint-sshort-okp
                • Div-uint-slong-okp
                • Div-uint-sllong-okp
                • Div-uint-sllong
                • Div-uint-sint-okp
                • Div-uint-schar-okp
                • Div-uchar-ushort
                • Div-uchar-ulong-okp
                • Div-uchar-ulong
                • Div-uchar-ullong
                • Div-uchar-uint-okp
                • Div-uchar-uchar-okp
                • Div-uchar-uchar
                • Div-uchar-sshort
                • Div-uchar-slong-okp
                • Div-uchar-slong
                • Div-uchar-sllong
                • Div-uchar-sint-okp
                • Div-uchar-schar-okp
                • Div-uchar-schar
                • Div-sshort-ushort
                • Div-sshort-ulong
                • Div-sshort-ullong
                • Div-sshort-uint-okp
                • Div-sshort-uchar
                • Div-sshort-sshort
                • Div-sshort-slong
                • Div-sshort-sllong
                • Div-sshort-sint-okp
                • Div-sshort-schar
                • Div-slong-ushort
                • Div-slong-ulong-okp
                • Div-slong-ulong
                • Div-slong-ullong
                • Div-slong-uint-okp
                • Div-slong-uchar-okp
                • Div-slong-sshort
                • Div-slong-slong
                • Div-slong-sllong
                • Div-slong-sint-okp
                • Div-slong-schar-okp
                • Div-sllong-ushort
                • Div-sllong-ulong
                • Div-sllong-ullong
                • Div-sllong-uint-okp
                • Div-sllong-uint
                • Div-sllong-uchar
                • Div-sllong-sshort
                • Div-sllong-slong
                • Div-sllong-sint-okp
                • Div-sllong-schar
                • Div-sint-ushort-okp
                • Div-sint-ulong-okp
                • Div-sint-ullong-okp
                • Div-sint-ullong
                • Div-sint-uint-okp
                • Div-sint-uchar-okp
                • Div-sint-sshort-okp
                • Div-sint-slong-okp
                • Div-sint-sllong-okp
                • Div-sint-sllong
                • Div-sint-sint
                • Div-sint-schar-okp
                • Div-schar-ushort
                • Div-schar-ulong-okp
                • Div-schar-ulong
                • Div-schar-ullong
                • Div-schar-uint-okp
                • Div-schar-uchar-okp
                • Div-schar-uchar
                • Div-schar-sshort
                • Div-schar-slong-okp
                • Div-schar-sllong
                • Div-schar-sint-okp
                • Div-schar-schar-okp
                • Div-schar-schar
                • Def-integer-operations-2-loop-same
                • Bitxor-ushort-ulong
                • Bitxor-ushort-uint
                • Bitxor-ushort-slong
                • Bitxor-ushort-sint
                • Bitxor-ulong-ushort
                • Bitxor-ulong-ulong
                • Bitxor-ulong-uint
                • Bitxor-ulong-uchar
                • Bitxor-ulong-sshort
                • Bitxor-ulong-slong
                • Bitxor-ulong-sint
                • Bitxor-ulong-schar
                • Bitxor-ullong-uint
                • Bitxor-ullong-slong
                • Bitxor-ullong-sint
                • Bitxor-ullong-schar
                • Bitxor-uint-ushort
                • Bitxor-uint-ulong
                • Bitxor-uint-ullong
                • Bitxor-uint-uint
                • Bitxor-uint-uchar
                • Bitxor-uint-sshort
                • Bitxor-uint-slong
                • Bitxor-uint-sllong
                • Bitxor-uint-schar
                • Bitxor-uchar-ulong
                • Bitxor-uchar-uint
                • Bitxor-uchar-uchar
                • Bitxor-uchar-slong
                • Bitxor-uchar-sint
                • Bitxor-uchar-schar
                • Bitxor-sshort-ulong
                • Bitxor-sshort-uint
                • Bitxor-sshort-slong
                • Bitxor-sshort-sint
                • Bitxor-sshort-schar
                • Bitxor-slong-ushort
                • Bitxor-slong-ulong
                • Bitxor-slong-uint
                • Bitxor-slong-uchar
                • Bitxor-slong-sshort
                • Bitxor-slong-slong
                • Bitxor-slong-sint
                • Bitxor-slong-schar
                • Bitxor-sllong-uint
                • Bitxor-sllong-uchar
                • Bitxor-sllong-slong
                • Bitxor-sllong-sint
                • Bitxor-sllong-schar
                • Bitxor-sint-ushort
                • Bitxor-sint-ulong
                • Bitxor-sint-ullong
                • Bitxor-sint-uchar
                • Bitxor-sint-sshort
                • Bitxor-sint-slong
                • Bitxor-sint-sllong
                • Bitxor-sint-schar
                • Bitxor-schar-ulong
                • Bitxor-schar-uint
                • Bitxor-schar-uchar
                • Bitxor-schar-sshort
                • Bitxor-schar-slong
                • Bitxor-schar-sint
                • Bitxor-schar-schar
                • Bitior-ushort-ulong
                • Bitior-ushort-uint
                • Bitior-ushort-slong
                • Bitior-ushort-sint
                • Bitior-ulong-ushort
                • Bitior-ulong-ulong
                • Bitior-ulong-uint
                • Bitior-ulong-uchar
                • Bitior-ulong-sshort
                • Bitior-ulong-slong
                • Bitior-ulong-sint
                • Bitior-ulong-schar
                • Bitior-ullong-uint
                • Bitior-ullong-slong
                • Bitior-ullong-sint
                • Bitior-ullong-schar
                • Bitior-uint-ushort
                • Bitior-uint-ulong
                • Bitior-uint-ullong
                • Bitior-uint-uint
                • Bitior-uint-uchar
                • Bitior-uint-sshort
                • Bitior-uint-slong
                • Bitior-uint-sllong
                • Bitior-uint-schar
                • Bitior-uchar-ulong
                • Bitior-uchar-uint
                • Bitior-uchar-uchar
                • Bitior-uchar-slong
                • Bitior-uchar-sint
                • Bitior-uchar-schar
                • Bitior-sshort-ulong
                • Bitior-sshort-uint
                • Bitior-sshort-slong
                • Bitior-sshort-sint
                • Bitior-sshort-schar
                • Bitior-slong-ushort
                • Bitior-slong-ulong
                • Bitior-slong-uint
                • Bitior-slong-uchar
                • Bitior-slong-sshort
                • Bitior-slong-slong
                • Bitior-slong-sint
                • Bitior-slong-schar
                • Bitior-sllong-uint
                • Bitior-sllong-uchar
                • Bitior-sllong-slong
                • Bitior-sllong-sint
                • Bitior-sllong-schar
                • Bitior-sint-ushort
                • Bitior-sint-ulong
                • Bitior-sint-ullong
                • Bitior-sint-uchar
                • Bitior-sint-sshort
                • Bitior-sint-slong
                • Bitior-sint-sllong
                • Bitior-sint-schar
                • Bitior-schar-ulong
                • Bitior-schar-uint
                • Bitior-schar-uchar
                • Bitior-schar-sshort
                • Bitior-schar-slong
                • Bitior-schar-sint
                • Bitior-schar-schar
                • Bitand-ushort-ulong
                • Bitand-ushort-uint
                • Bitand-ushort-uchar
                • Bitand-ushort-slong
                • Bitand-ushort-sint
                • Bitand-ushort-schar
                • Bitand-ulong-ushort
                • Bitand-ulong-ulong
                • Bitand-ulong-ullong
                • Bitand-ulong-uint
                • Bitand-ulong-uchar
                • Bitand-ulong-sshort
                • Bitand-ulong-slong
                • Bitand-ulong-sllong
                • Bitand-ulong-sint
                • Bitand-ulong-schar
                • Bitand-ullong-ulong
                • Bitand-ullong-uint
                • Bitand-ullong-uchar
                • Bitand-ullong-slong
                • Bitand-ullong-sint
                • Bitand-ullong-schar
                • Bitand-uint-ushort
                • Bitand-uint-ulong
                • Bitand-uint-ullong
                • Bitand-uint-uint
                • Bitand-uint-uchar
                • Bitand-uint-sshort
                • Bitand-uint-slong
                • Bitand-uint-sllong
                • Bitand-uchar-ushort
                • Bitand-uchar-ulong
                • Bitand-uchar-ullong
                • Bitand-uchar-uint
                • Bitand-uchar-uchar
                • Bitand-uchar-sshort
                • Bitand-uchar-slong
                • Bitand-uchar-sllong
                • Bitand-uchar-sint
                • Bitand-uchar-schar
                • Bitand-sshort-ulong
                • Bitand-sshort-uint
                • Bitand-sshort-uchar
                • Bitand-sshort-slong
                • Bitand-sshort-sint
                • Bitand-sshort-schar
                • Bitand-slong-ushort
                • Bitand-slong-ulong
                • Bitand-slong-ullong
                • Bitand-slong-uint
                • Bitand-slong-uchar
                • Bitand-slong-sshort
                • Bitand-slong-slong
                • Bitand-slong-sllong
                • Bitand-slong-schar
                • Bitand-sllong-ulong
                • Bitand-sllong-uint
                • Bitand-sllong-uchar
                • Bitand-sllong-slong
                • Bitand-sllong-sint
                • Bitand-sllong-schar
                • Bitand-sint-ushort
                • Bitand-sint-ulong
                • Bitand-sint-ullong
                • Bitand-sint-sshort
                • Bitand-sint-slong
                • Bitand-sint-sllong
                • Bitand-schar-ushort
                • Bitand-schar-ulong
                • Bitand-schar-ullong
                • Bitand-schar-uint
                • Bitand-schar-uchar
                • Bitand-schar-sshort
                • Bitand-schar-slong
                • Bitand-schar-sllong
                • Bitand-schar-sint
                • Bitand-schar-schar
                • Add-ushort-ushort
                • Add-ushort-ullong
                • Add-ushort-uchar
                • Add-ushort-sshort
                • Add-ushort-slong
                • Add-ushort-sllong
                • Add-ushort-sint-okp
                • Add-ushort-schar
                • Add-ulong-ullong
                • Add-ulong-sllong
                • Add-ullong-ushort
                • Add-ullong-ullong
                • Add-ullong-sshort
                • Add-ullong-sllong
                • Add-uint-slong-okp
                • Add-uint-sllong-okp
                • Add-uint-sllong
                • Add-uchar-ushort
                • Add-uchar-ullong
                • Add-uchar-uchar-okp
                • Add-uchar-uchar
                • Add-uchar-sshort
                • Add-uchar-slong-okp
                • Add-uchar-slong
                • Add-uchar-sllong
                • Add-uchar-sint-okp
                • Add-uchar-schar-okp
                • Add-uchar-schar
                • Add-sshort-ushort
                • Add-sshort-ullong
                • Add-sshort-uchar
                • Add-sshort-sshort
                • Add-sshort-slong
                • Add-sshort-sllong
                • Add-sshort-sint-okp
                • Add-sshort-schar
                • Add-slong-ushort
                • Add-slong-uint-okp
                • Add-slong-uchar-okp
                • Add-slong-sshort
                • Add-slong-slong-okp
                • Add-slong-slong
                • Add-slong-sllong
                • Add-slong-sint-okp
                • Add-slong-schar-okp
                • Add-sllong-ushort
                • Add-sllong-ulong
                • Add-sllong-ullong
                • Add-sllong-uint-okp
                • Add-sllong-uint
                • Add-sllong-uchar
                • Add-sllong-sshort
                • Add-sllong-slong
                • Add-sllong-sllong
                • Add-sllong-sint-okp
                • Add-sllong-schar
                • Add-sint-ushort-okp
                • Add-sint-uchar-okp
                • Add-sint-sshort-okp
                • Add-sint-slong-okp
                • Add-sint-sllong-okp
                • Add-sint-sllong
                • Add-sint-schar-okp
                • Add-schar-ushort
                • Add-schar-uchar-okp
                • Add-schar-uchar
                • Add-schar-sshort
                • Add-schar-slong-okp
                • Add-schar-sllong
                • Add-schar-sint-okp
                • Add-schar-schar-okp
                • Add-schar-schar
                • Sub-ushort-ulong
                • Sub-ushort-uint
                • Sub-ushort-sint
                • Sub-ulong-ushort
                • Sub-ulong-ulong
                • Sub-ulong-uint
                • Sub-ulong-uchar
                • Sub-ulong-sshort
                • Sub-ulong-slong
                • Sub-ulong-sint
                • Sub-ulong-schar
                • Sub-ullong-ulong
                • Sub-ullong-uint
                • Sub-ullong-uchar
                • Sub-ullong-slong
                • Sub-ullong-sint
                • Sub-ullong-schar
                • Sub-uint-ushort
                • Sub-uint-ulong
                • Sub-uint-ullong
                • Sub-uint-uint
                • Sub-uint-uchar
                • Sub-uint-sshort
                • Sub-uint-slong
                • Sub-uchar-ulong
                • Sub-uchar-uint
                • Sub-uchar-sint
                • Sub-sshort-ulong
                • Sub-sshort-uint
                • Sub-sshort-sint
                • Sub-slong-ulong
                • Sub-slong-uint
                • Sub-slong-uchar
                • Sub-slong-sint
                • Sub-slong-schar
                • Sub-sint-ushort
                • Sub-sint-ulong
                • Sub-sint-ullong
                • Sub-sint-uchar
                • Sub-sint-sshort
                • Sub-sint-slong
                • Sub-sint-schar
                • Sub-schar-ulong
                • Sub-schar-sint
                • Shr-ushort-uint
                • Shr-ushort-sint
                • Shr-ushort-okp
                • Shr-ulong-ulong
                • Shr-ulong-uint
                • Shr-ulong-uchar
                • Shr-ulong-slong
                • Shr-ulong-sint
                • Shr-ulong-schar
                • Shr-ullong-okp
                • Shr-uint-ushort
                • Shr-uint-ulong
                • Shr-uint-uint
                • Shr-uint-uchar
                • Shr-uint-sshort
                • Shr-uint-slong
                • Shr-uint-sllong
                • Shr-uint-sint
                • Shr-uint-schar
                • Shr-uchar-ulong
                • Shr-uchar-uint
                • Shr-uchar-uchar
                • Shr-uchar-slong
                • Shr-uchar-sint
                • Shr-uchar-schar
                • Shr-sshort-uint
                • Shr-sshort-sint
                • Shr-sshort-okp
                • Shr-slong-ulong
                • Shr-slong-uint
                • Shr-slong-uchar
                • Shr-slong-slong
                • Shr-slong-sint
                • Shr-slong-schar
                • Shr-sllong-okp
                • Shr-sint-ushort
                • Shr-sint-ulong
                • Shr-sint-ullong
                • Shr-sint-uint
                • Shr-sint-uchar
                • Shr-sint-sshort
                • Shr-sint-slong
                • Shr-sint-sllong
                • Shr-sint-schar
                • Shr-schar-ulong
                • Shr-schar-uint
                • Shr-schar-uchar
                • Shr-schar-slong
                • Shr-schar-sint
                • Shr-schar-schar
                • Shl-ushort-uint
                • Shl-ushort-sint
                • Shl-ushort-okp
                • Shl-ulong-ulong
                • Shl-ulong-uint
                • Shl-ulong-uchar
                • Shl-ulong-slong
                • Shl-ulong-sint
                • Shl-ulong-schar
                • Shl-ullong-okp
                • Shl-uint-ushort
                • Shl-uint-ulong
                • Shl-uint-uint
                • Shl-uint-uchar
                • Shl-uint-sshort
                • Shl-uint-slong
                • Shl-uint-sllong
                • Shl-uint-sint
                • Shl-uint-schar
                • Shl-uchar-ulong
                • Shl-uchar-uint
                • Shl-uchar-uchar
                • Shl-uchar-slong
                • Shl-uchar-sint
                • Shl-uchar-schar
                • Shl-sshort-uint
                • Shl-sshort-sint
                • Shl-sshort-okp
                • Shl-slong-ulong
                • Shl-slong-uint
                • Shl-slong-uchar
                • Shl-slong-slong
                • Shl-slong-sint
                • Shl-slong-schar
                • Shl-slong-okp
                • Shl-sint-ushort
                • Shl-sint-ulong
                • Shl-sint-ullong
                • Shl-sint-uint
                • Shl-sint-uchar
                • Shl-sint-sshort
                • Shl-sint-slong
                • Shl-sint-sllong
                • Shl-sint-schar
                • Shl-sint-okp
                • Shl-schar-ulong
                • Shl-schar-uint
                • Shl-schar-uchar
                • Shl-schar-slong
                • Shl-schar-sint
                • Shl-schar-schar
                • Rem-ushort-uint
                • Rem-ushort-sint
                • Rem-ulong-uint
                • Rem-ulong-uchar
                • Rem-ulong-slong
                • Rem-ulong-sint
                • Rem-ulong-schar
                • Rem-uint-ushort
                • Rem-uint-ulong
                • Rem-uint-uint
                • Rem-uint-uchar
                • Rem-uint-sshort
                • Rem-uint-slong
                • Rem-uint-sint
                • Rem-uint-schar
                • Rem-uchar-uint
                • Rem-uchar-sint
                • Rem-sshort-uint
                • Rem-sshort-sint
                • Rem-slong-uint
                • Rem-slong-uchar
                • Rem-slong-sint
                • Rem-slong-schar
                • Rem-sint-ushort
                • Rem-sint-ulong
                • Rem-sint-uint
                • Rem-sint-uchar
                • Rem-sint-sshort
                • Rem-sint-slong
                • Rem-sint-schar
                • Rem-schar-uint
                • Rem-schar-slong
                • Rem-schar-sint
                • Ne-ushort-ulong
                • Ne-ushort-uint
                • Ne-ushort-uchar
                • Ne-ushort-slong
                • Ne-ushort-sint
                • Ne-ushort-schar
                • Ne-ulong-ushort
                • Ne-ulong-ulong
                • Ne-ulong-ullong
                • Ne-ulong-uchar
                • Ne-ulong-sshort
                • Ne-ulong-slong
                • Ne-ulong-sllong
                • Ne-ulong-schar
                • Ne-ullong-ulong
                • Ne-ullong-uint
                • Ne-ullong-uchar
                • Ne-ullong-slong
                • Ne-ullong-sint
                • Ne-ullong-schar
                • Ne-uint-ushort
                • Ne-uint-ullong
                • Ne-uint-uint
                • Ne-uint-sshort
                • Ne-uint-sllong
                • Ne-uchar-ushort
                • Ne-uchar-ulong
                • Ne-uchar-ullong
                • Ne-uchar-uchar
                • Ne-uchar-sshort
                • Ne-uchar-slong
                • Ne-uchar-sllong
                • Ne-uchar-schar
                • Ne-sshort-ulong
                • Ne-sshort-uint
                • Ne-sshort-uchar
                • Ne-sshort-slong
                • Ne-sshort-sint
                • Ne-sshort-schar
                • Ne-slong-ushort
                • Ne-slong-ulong
                • Ne-slong-ullong
                • Ne-slong-uchar
                • Ne-slong-sshort
                • Ne-slong-slong
                • Ne-slong-sllong
                • Ne-slong-schar
                • Ne-sllong-ulong
                • Ne-sllong-uint
                • Ne-sllong-uchar
                • Ne-sllong-sshort
                • Ne-sllong-slong
                • Ne-sllong-sint
                • Ne-sllong-schar
                • Ne-sint-ushort
                • Ne-sint-ullong
                • Ne-sint-sshort
                • Ne-sint-sllong
                • Ne-schar-ushort
                • Ne-schar-ulong
                • Ne-schar-ullong
                • Ne-schar-uchar
                • Ne-schar-sshort
                • Ne-schar-slong
                • Ne-schar-sllong
                • Ne-schar-schar
                • Mul-ushort-uint
                • Mul-ushort-sint
                • Mul-ulong-ushort
                • Mul-ulong-uint
                • Mul-ulong-uchar
                • Mul-ulong-sshort
                • Mul-ulong-slong
                • Mul-ulong-sint
                • Mul-ulong-schar
                • Mul-ullong-uint
                • Mul-ullong-sint
                • Mul-uint-ushort
                • Mul-uint-ulong
                • Mul-uint-ullong
                • Mul-uint-uint
                • Mul-uint-uchar
                • Mul-uint-sshort
                • Mul-uint-slong
                • Mul-uint-schar
                • Mul-uchar-ulong
                • Mul-uchar-uint
                • Mul-uchar-sint
                • Mul-sshort-ulong
                • Mul-sshort-uint
                • Mul-sshort-sint
                • Mul-slong-ulong
                • Mul-slong-uint
                • Mul-slong-sint
                • Mul-sint-ushort
                • Mul-sint-ulong
                • Mul-sint-ullong
                • Mul-sint-uchar
                • Mul-sint-sshort
                • Mul-sint-slong
                • Mul-sint-schar
                • Mul-schar-ulong
                • Mul-schar-uint
                • Mul-schar-sint
                • Lt-ushort-ulong
                • Lt-ushort-uint
                • Lt-ushort-slong
                • Lt-ushort-sint
                • Lt-ushort-schar
                • Lt-ulong-ushort
                • Lt-ulong-ulong
                • Lt-ulong-uint
                • Lt-ulong-uchar
                • Lt-ulong-sshort
                • Lt-ulong-slong
                • Lt-ulong-schar
                • Lt-ullong-ulong
                • Lt-ullong-uint
                • Lt-ullong-uchar
                • Lt-ullong-slong
                • Lt-ullong-sint
                • Lt-ullong-schar
                • Lt-uint-ushort
                • Lt-uint-ulong
                • Lt-uint-ullong
                • Lt-uint-uint
                • Lt-uint-uchar
                • Lt-uint-sshort
                • Lt-uint-sllong
                • Lt-uchar-ulong
                • Lt-uchar-uint
                • Lt-uchar-uchar
                • Lt-uchar-sshort
                • Lt-uchar-slong
                • Lt-uchar-sllong
                • Lt-uchar-schar
                • Lt-sshort-ulong
                • Lt-sshort-uint
                • Lt-sshort-uchar
                • Lt-sshort-slong
                • Lt-sshort-sint
                • Lt-sshort-schar
                • Lt-slong-ushort
                • Lt-slong-ulong
                • Lt-slong-ullong
                • Lt-slong-uchar
                • Lt-slong-sshort
                • Lt-slong-slong
                • Lt-slong-sllong
                • Lt-slong-schar
                • Lt-sllong-uint
                • Lt-sllong-uchar
                • Lt-sllong-slong
                • Lt-sllong-sint
                • Lt-sllong-schar
                • Lt-sint-ushort
                • Lt-sint-ullong
                • Lt-sint-sshort
                • Lt-sint-sllong
                • Lt-schar-ushort
                • Lt-schar-ulong
                • Lt-schar-ullong
                • Lt-schar-uchar
                • Lt-schar-sshort
                • Lt-schar-slong
                • Lt-schar-sllong
                • Lt-schar-schar
                • Le-ushort-uint
                • Le-ushort-sint
                • Le-ulong-uint
                • Le-ulong-uchar
                • Le-ulong-slong
                • Le-ulong-sint
                • Le-ulong-schar
                • Le-ullong-uint
                • Le-ullong-sint
                • Le-uint-ushort
                • Le-uint-ulong
                • Le-uint-ullong
                • Le-uint-uint
                • Le-uint-uchar
                • Le-uint-sshort
                • Le-uint-slong
                • Le-uint-sllong
                • Le-uint-schar
                • Le-uchar-ulong
                • Le-uchar-uint
                • Le-uchar-uchar
                • Le-uchar-slong
                • Le-uchar-sint
                • Le-uchar-schar
                • Le-sshort-uint
                • Le-sshort-sint
                • Le-slong-ulong
                • Le-slong-uint
                • Le-slong-uchar
                • Le-slong-sshort
                • Le-slong-slong
                • Le-slong-sint
                • Le-slong-schar
                • Le-sllong-uint
                • Le-sllong-sint
                • Le-sint-ushort
                • Le-sint-ulong
                • Le-sint-ullong
                • Le-sint-uchar
                • Le-sint-sshort
                • Le-sint-slong
                • Le-sint-sllong
                • Le-sint-schar
                • Le-schar-ulong
                • Le-schar-uint
                • Le-schar-uchar
                • Le-schar-slong
                • Le-schar-sint
                • Le-schar-schar
                • Gt-ushort-ulong
                • Gt-ushort-uint
                • Gt-ushort-slong
                • Gt-ushort-sint
                • Gt-ulong-ushort
                • Gt-ulong-ulong
                • Gt-ulong-uint
                • Gt-ulong-uchar
                • Gt-ulong-sshort
                • Gt-ulong-slong
                • Gt-ulong-sint
                • Gt-ulong-schar
                • Gt-ullong-ulong
                • Gt-ullong-uint
                • Gt-ullong-uchar
                • Gt-ullong-slong
                • Gt-ullong-sint
                • Gt-ullong-schar
                • Gt-uint-ushort
                • Gt-uint-ulong
                • Gt-uint-ullong
                • Gt-uint-uint
                • Gt-uint-uchar
                • Gt-uint-sshort
                • Gt-uint-slong
                • Gt-uint-sllong
                • Gt-uint-schar
                • Gt-uchar-ulong
                • Gt-uchar-uint
                • Gt-uchar-uchar
                • Gt-uchar-slong
                • Gt-uchar-sint
                • Gt-uchar-schar
                • Gt-sshort-ulong
                • Gt-sshort-uint
                • Gt-sshort-slong
                • Gt-sshort-sint
                • Gt-sshort-schar
                • Gt-slong-ushort
                • Gt-slong-ulong
                • Gt-slong-uint
                • Gt-slong-uchar
                • Gt-slong-sshort
                • Gt-slong-slong
                • Gt-slong-sllong
                • Gt-slong-schar
                • Gt-sllong-uint
                • Gt-sllong-uchar
                • Gt-sllong-slong
                • Gt-sllong-sint
                • Gt-sllong-schar
                • Gt-sint-ushort
                • Gt-sint-ulong
                • Gt-sint-ullong
                • Gt-sint-uchar
                • Gt-sint-sshort
                • Gt-sint-sllong
                • Gt-schar-ulong
                • Gt-schar-uint
                • Gt-schar-uchar
                • Gt-schar-sshort
                • Gt-schar-slong
                • Gt-schar-sllong
                • Gt-schar-schar
                • Ge-ushort-uint
                • Ge-ushort-sint
                • Ge-ulong-uint
                • Ge-ulong-uchar
                • Ge-ulong-slong
                • Ge-ulong-sint
                • Ge-ulong-schar
                • Ge-ullong-uint
                • Ge-ullong-sint
                • Ge-uint-ushort
                • Ge-uint-ulong
                • Ge-uint-ullong
                • Ge-uint-uint
                • Ge-uint-uchar
                • Ge-uint-sshort
                • Ge-uint-slong
                • Ge-uint-sllong
                • Ge-uint-sint
                • Ge-uint-schar
                • Ge-uchar-ulong
                • Ge-uchar-uint
                • Ge-uchar-uchar
                • Ge-uchar-slong
                • Ge-uchar-sint
                • Ge-uchar-schar
                • Ge-sshort-uint
                • Ge-sshort-sint
                • Ge-slong-ulong
                • Ge-slong-uint
                • Ge-slong-uchar
                • Ge-slong-sint
                • Ge-slong-schar
                • Ge-sllong-uint
                • Ge-sllong-sint
                • Ge-sint-ushort
                • Ge-sint-ulong
                • Ge-sint-ullong
                • Ge-sint-uint
                • Ge-sint-uchar
                • Ge-sint-sshort
                • Ge-sint-slong
                • Ge-sint-sllong
                • Ge-sint-schar
                • Ge-schar-ulong
                • Ge-schar-uint
                • Ge-schar-uchar
                • Ge-schar-slong
                • Ge-schar-sint
                • Ge-schar-schar
                • Eq-ushort-ulong
                • Eq-ushort-uint
                • Eq-ushort-uchar
                • Eq-ushort-slong
                • Eq-ushort-sint
                • Eq-ushort-schar
                • Eq-ulong-ushort
                • Eq-ulong-ulong
                • Eq-ulong-ullong
                • Eq-ulong-uchar
                • Eq-ulong-sshort
                • Eq-ulong-sllong
                • Eq-ullong-ushort
                • Eq-ullong-ulong
                • Eq-ullong-uint
                • Eq-ullong-uchar
                • Eq-ullong-sshort
                • Eq-ullong-slong
                • Eq-ullong-sint
                • Eq-ullong-schar
                • Eq-uint-ushort
                • Eq-uint-ullong
                • Eq-uint-sshort
                • Eq-uint-sllong
                • Eq-uchar-ushort
                • Eq-uchar-ulong
                • Eq-uchar-ullong
                • Eq-uchar-uchar
                • Eq-uchar-sshort
                • Eq-uchar-sllong
                • Eq-uchar-schar
                • Eq-sshort-ulong
                • Eq-sshort-uint
                • Eq-sshort-uchar
                • Eq-sshort-sshort
                • Eq-sshort-slong
                • Eq-sshort-sllong
                • Eq-sshort-schar
                • Eq-slong-ushort
                • Eq-slong-ullong
                • Eq-slong-sshort
                • Eq-slong-slong
                • Eq-slong-sllong
                • Eq-sllong-ushort
                • Eq-sllong-ulong
                • Eq-sllong-uint
                • Eq-sllong-uchar
                • Eq-sllong-sshort
                • Eq-sllong-slong
                • Eq-sllong-sint
                • Eq-sllong-schar
                • Eq-sint-ushort
                • Eq-sint-ullong
                • Eq-sint-sllong
                • Eq-sint-sint
                • Eq-schar-ushort
                • Eq-schar-ullong
                • Eq-schar-uchar
                • Eq-schar-sshort
                • Eq-schar-sllong
                • Eq-schar-schar
                • Div-ushort-uint
                • Div-ushort-sint
                • Div-ulong-uint
                • Div-ulong-uchar
                • Div-ulong-slong
                • Div-ulong-sint
                • Div-ulong-schar
                • Div-uint-ushort
                • Div-uint-ulong
                • Div-uint-uint
                • Div-uint-uchar
                • Div-uint-sshort
                • Div-uint-slong
                • Div-uint-sint
                • Div-uint-schar
                • Div-uchar-uint
                • Div-uchar-sint
                • Div-sshort-uint
                • Div-sshort-sint
                • Div-slong-uint
                • Div-slong-uchar
                • Div-slong-sint
                • Div-slong-schar
                • Div-sllong-sint
                • Div-sint-ushort
                • Div-sint-ulong
                • Div-sint-uint
                • Div-sint-uchar
                • Div-sint-sshort
                • Div-sint-slong
                • Div-sint-schar
                • Div-schar-uint
                • Div-schar-slong
                • Div-schar-sint
                • Bitxor-uint-sint
                • Bitxor-sint-uint
                • Bitior-uint-sint
                • Bitior-sint-uint
                • Bitand-uint-sint
                • Bitand-uint-schar
                • Bitand-slong-sint
                • Bitand-sint-uint
                • Bitand-sint-uchar
                • Bitand-sint-schar
                • Add-ushort-ulong
                • Add-ushort-uint
                • Add-ushort-sint
                • Add-ulong-ushort
                • Add-ulong-ulong
                • Add-ulong-uchar
                • Add-ulong-sshort
                • Add-ulong-slong
                • Add-ulong-schar
                • Add-ullong-ulong
                • Add-ullong-uint
                • Add-ullong-uchar
                • Add-ullong-slong
                • Add-ullong-sint
                • Add-ullong-schar
                • Add-uint-ushort
                • Add-uint-ullong
                • Add-uint-uint
                • Add-uint-sshort
                • Add-uint-slong
                • Add-uchar-ulong
                • Add-uchar-sint
                • Add-sshort-ulong
                • Add-sshort-uint
                • Add-sshort-sint
                • Add-slong-ulong
                • Add-slong-ullong
                • Add-slong-uint
                • Add-slong-uchar
                • Add-slong-sint
                • Add-slong-schar
                • Add-sllong-sint
                • Add-sint-ushort
                • Add-sint-ullong
                • Add-sint-uchar
                • Add-sint-sshort
                • Add-sint-slong
                • Add-sint-schar
                • Add-schar-ulong
                • Add-schar-ullong
                • Add-schar-slong
                • Add-schar-sint
                • Sub-uint-sint
                • Sub-uint-schar
                • Sub-sint-uint
                • Sub-schar-uint
                • Shr-ushort
                • Shr-ulong-okp
                • Shr-ulong
                • Shr-ullong
                • Shr-uint-okp
                • Shr-uchar-okp
                • Shr-sshort
                • Shr-slong-okp
                • Shr-slong
                • Shr-sllong
                • Shr-sint-okp
                • Shr-schar-okp
                • Shl-ushort
                • Shl-ulong-okp
                • Shl-ulong
                • Shl-ullong
                • Shl-uint-okp
                • Shl-uchar-okp
                • Shl-sshort
                • Shl-sllong
                • Shl-schar-okp
                • Ne-ulong-uint
                • Ne-ulong-sint
                • Ne-uint-ulong
                • Ne-uint-uchar
                • Ne-uint-slong
                • Ne-uint-sint
                • Ne-uint-schar
                • Ne-uchar-uint
                • Ne-uchar-sint
                • Ne-slong-uint
                • Ne-slong-sint
                • Ne-sint-ulong
                • Ne-sint-uint
                • Ne-sint-uchar
                • Ne-sint-slong
                • Ne-sint-schar
                • Ne-schar-uint
                • Ne-schar-sint
                • Mul-uint-sint
                • Mul-sint-uint
                • Lt-ulong-sint
                • Lt-uint-slong
                • Lt-uint-sint
                • Lt-uint-schar
                • Lt-uchar-sint
                • Lt-slong-uint
                • Lt-slong-sint
                • Lt-sint-ulong
                • Lt-sint-uint
                • Lt-sint-uchar
                • Lt-sint-slong
                • Lt-sint-schar
                • Lt-schar-uint
                • Lt-schar-sint
                • Le-uint-sint
                • Le-sint-uint
                • Gt-uint-sint
                • Gt-slong-sint
                • Gt-sint-uint
                • Gt-sint-slong
                • Gt-sint-schar
                • Gt-schar-sint
                • Eq-ulong-uint
                • Eq-ulong-slong
                • Eq-ulong-sint
                • Eq-ulong-schar
                • Eq-uint-ulong
                • Eq-uint-uint
                • Eq-uint-uchar
                • Eq-uint-slong
                • Eq-uint-sint
                • Eq-uint-schar
                • Eq-uchar-uint
                • Eq-uchar-slong
                • Eq-uchar-sint
                • Eq-sshort-sint
                • Eq-slong-ulong
                • Eq-slong-uint
                • Eq-slong-uchar
                • Eq-slong-sint
                • Eq-slong-schar
                • Eq-sint-ulong
                • Eq-sint-uint
                • Eq-sint-uchar
                • Eq-sint-sshort
                • Eq-sint-slong
                • Eq-sint-schar
                • Eq-schar-ulong
                • Eq-schar-uint
                • Eq-schar-slong
                • Eq-schar-sint
                • Def-integer-operations-1-loop
                • Add-ulong-uint
                • Add-ulong-sint
                • Add-uint-ulong
                • Add-uint-uchar
                • Add-uint-sint
                • Add-uint-schar
                • Add-uchar-uint
                • Add-sint-ulong
                • Add-sint-uint
                • Add-schar-uint
                • Shr-uint
                • Shr-uchar
                • Shr-sint
                • Shr-schar
                • Shl-uint
                • Shl-uchar
                • Shl-slong
                • Shl-sint
                • Shl-schar
                • Minus-sint-okp
                • Lognot-sint
                • Sint-dec-const
                • Minus-ushort-okp
                • Minus-uchar-okp
                • Minus-sshort-okp
                • Minus-slong-okp
                • Minus-sllong-okp
                • Minus-sint
                • Minus-schar-okp
                • Lognot-ullong
                • Boolean-from-ushort
                • Boolean-from-ulong
                • Boolean-from-ullong
                • Boolean-from-uchar
                • Boolean-from-sshort
                • Boolean-from-slong
                • Boolean-from-sllong
                • Boolean-from-schar
                • Bitnot-ullong
                • Bitnot-sllong
                • Bitnot-sint
                • Plus-ushort
                • Plus-ulong
                • Plus-ullong
                • Plus-uchar
                • Plus-sshort
                • Plus-slong
                • Plus-sllong
                • Plus-sint
                • Plus-schar
                • Minus-ushort
                • Minus-ulong
                • Minus-ullong
                • Minus-uint
                • Minus-uchar
                • Minus-sshort
                • Minus-slong
                • Minus-sllong
                • Minus-schar
                • Lognot-ushort
                • Lognot-ulong
                • Lognot-uint
                • Lognot-uchar
                • Lognot-sshort
                • Lognot-slong
                • Lognot-sllong
                • Lognot-schar
                • Boolean-from-uint
                • Bitnot-ushort
                • Bitnot-ulong
                • Bitnot-uint
                • Bitnot-uchar
                • Bitnot-sshort
                • Bitnot-slong
                • Bitnot-schar
                • Plus-uint
                • Sint-hex-const
                • Ulong-oct-const
                • Ulong-hex-const
                • Ulong-dec-const
                • Ullong-oct-const
                • Ullong-hex-const
                • Ullong-dec-const
                • Uint-hex-const
                • Uint-dec-const
                • Slong-oct-const
                • Slong-hex-const
                • Slong-dec-const
                • Sllong-oct-const
                • Sllong-hex-const
                • Sllong-dec-const
                • Sint-oct-const
                • Uint-oct-const
              • Atc-arrays
              • Representation-of-integers
              • Representation-of-integer-conversions
              • Pointed-integers
              • Shallow-deep-embedding-relation
            • Insertion-sort
            • Pack
          • Soft
          • Bv
          • Imp-language
          • Ethereum
          • Event-macros
          • Java
          • Riscv
          • Bitcoin
          • Zcash
          • Yul
          • ACL2-programming-language
          • Prime-fields
          • Json
          • Syntheto
          • File-io-light
          • Cryptography
          • Number-theory
          • Axe
          • Lists-light
          • Builtins
          • Solidity
          • Helpers
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Axe
        • Execloader
      • Math
      • Testing-utilities
    • Representation-of-integer-operations

    Def-integer-operations-2

    Event to generate the ACL2 models of the C integer operations that involve two integer types.

    Signature
    (def-integer-operations-2 type1 type2) → event
    Arguments
    type1 — Guard (typep type1).
    type2 — Guard (typep type2).
    Returns
    event — Type (pseudo-event-formp event).

    These include all the strict pure binary operators.

    For all the operations except shifts, we treat two cases differently: when the two usual arithmetic conversions applied to the operand types yields the same as the two operand types (which must therefore be equal), we generate a definition that performs a direct computation; otherwise, we generate a definition that converts the operands to the common type and then calls the function for that type as operand types. For shift operations, we turn the second operand into an ACL2 integer and then we call the shift function generated by def-integer-operations-1; the result has the promoted type of the first operand.

    Definitions and Theorems

    Function: def-integer-operations-2

    (defun def-integer-operations-2 (type1 type2)
     (declare (xargs :guard (and (typep type1) (typep type2))))
     (declare (xargs :guard (and (type-nonchar-integerp type1)
                                 (type-nonchar-integerp type2))))
     (let ((__function__ 'def-integer-operations-2))
      (declare (ignorable __function__))
      (b* ((type1-string (integer-type-xdoc-string type1))
           (type2-string (integer-type-xdoc-string type2))
           (type (uaconvert-types type1 type2))
           (samep (and (equal type type1)
                       (equal type type2)))
           (signedp (type-signed-integerp type))
           (ptype1 (promote-type type1))
           (<type1> (integer-type-to-fixtype type1))
           (<type2> (integer-type-to-fixtype type2))
           (<type> (integer-type-to-fixtype type))
           (<ptype1> (integer-type-to-fixtype ptype1))
           (<type1>p (pack <type1> 'p))
           (<type2>p (pack <type2> 'p))
           (<type>p (pack <type> 'p))
           (<ptype1>p (pack <ptype1> 'p))
           (integer-from-<type1> (pack 'integer-from- <type1>))
           (integer-from-<type2> (pack 'integer-from- <type2>))
           (<type>-from-integer (pack <type> '-from-integer))
           (<type>-from-integer-mod (pack <type>-from-integer '-mod))
           (<type>-integerp (pack <type> '-integerp))
           (<type>-from-<type1> (pack <type> '-from- <type1>))
           (<type>-from-<type2> (pack <type> '-from- <type2>))
           (add-<type1>-<type2> (pack 'add- <type1> '- <type2>))
           (add-<type1>-<type2>-okp (pack add-<type1>-<type2> '-okp))
           (add-<type>-<type> (pack 'add- <type> '- <type>))
           (add-<type>-<type>-okp (pack add-<type>-<type> '-okp))
           (sub-<type1>-<type2> (pack 'sub- <type1> '- <type2>))
           (sub-<type1>-<type2>-okp (pack sub-<type1>-<type2> '-okp))
           (sub-<type>-<type> (pack 'sub- <type> '- <type>))
           (sub-<type>-<type>-okp (pack sub-<type>-<type> '-okp))
           (mul-<type1>-<type2> (pack 'mul- <type1> '- <type2>))
           (mul-<type1>-<type2>-okp (pack mul-<type1>-<type2> '-okp))
           (mul-<type>-<type> (pack 'mul- <type> '- <type>))
           (mul-<type>-<type>-okp (pack mul-<type>-<type> '-okp))
           (div-<type1>-<type2> (pack 'div- <type1> '- <type2>))
           (div-<type1>-<type2>-okp (pack div-<type1>-<type2> '-okp))
           (div-<type>-<type> (pack 'div- <type> '- <type>))
           (div-<type>-<type>-okp (pack div-<type>-<type> '-okp))
           (rem-<type1>-<type2> (pack 'rem- <type1> '- <type2>))
           (rem-<type1>-<type2>-okp (pack rem-<type1>-<type2> '-okp))
           (rem-<type>-<type> (pack 'rem- <type> '- <type>))
           (rem-<type>-<type>-okp (pack rem-<type>-<type> '-okp))
           (shl-<type1>-<type2> (pack 'shl- <type1> '- <type2>))
           (shl-<type1>-<type2>-okp (pack shl-<type1>-<type2> '-okp))
           (shl-<type1> (pack 'shl- <type1>))
           (shl-<type1>-okp (pack shl-<type1> '-okp))
           (shr-<type1>-<type2> (pack 'shr- <type1> '- <type2>))
           (shr-<type1>-<type2>-okp (pack shr-<type1>-<type2> '-okp))
           (shr-<type1> (pack 'shr- <type1>))
           (shr-<type1>-okp (pack shr-<type1> '-okp))
           (lt-<type1>-<type2> (pack 'lt- <type1> '- <type2>))
           (lt-<type>-<type> (pack 'lt- <type> '- <type>))
           (gt-<type1>-<type2> (pack 'gt- <type1> '- <type2>))
           (gt-<type>-<type> (pack 'gt- <type> '- <type>))
           (le-<type1>-<type2> (pack 'le- <type1> '- <type2>))
           (le-<type>-<type> (pack 'le- <type> '- <type>))
           (ge-<type1>-<type2> (pack 'ge- <type1> '- <type2>))
           (ge-<type>-<type> (pack 'ge- <type> '- <type>))
           (eq-<type1>-<type2> (pack 'eq- <type1> '- <type2>))
           (eq-<type>-<type> (pack 'eq- <type> '- <type>))
           (ne-<type1>-<type2> (pack 'ne- <type1> '- <type2>))
           (ne-<type>-<type> (pack 'ne- <type> '- <type>))
           (bitand-<type1>-<type2> (pack 'bitand- <type1> '- <type2>))
           (bitand-<type>-<type> (pack 'bitand- <type> '- <type>))
           (bitxor-<type1>-<type2> (pack 'bitxor- <type1> '- <type2>))
           (bitxor-<type>-<type> (pack 'bitxor- <type> '- <type>))
           (bitior-<type1>-<type2> (pack 'bitior- <type1> '- <type2>))
           (bitior-<type>-<type> (pack 'bitior- <type> '- <type>)))
       (cons
        'progn
        (cons
         '(set-ignore-ok t)
         (cons
          '(set-irrelevant-formals-ok t)
          (append
           (and
            signedp
            (cons
             (cons
              'defun-integer
              (cons
               add-<type1>-<type2>-okp
               (cons
                ':arg1-type
                (cons
                 <type1>p
                 (cons
                  ':arg2-type
                  (cons
                   <type2>p
                   (cons
                    ':res-type
                    (cons
                     'booleanp
                     (cons
                      ':short
                      (cons
                       (str::cat "Check if the addition of a value of "
                                 type1-string " and a value of "
                                 type2-string " is well-defined.")
                       (cons
                        ':body
                        (cons
                         (if samep
                          (cons
                           <type>-integerp
                           (cons
                            (cons
                             '+
                             (cons
                                  (cons integer-from-<type1> '(x))
                                  (cons (cons integer-from-<type2> '(y))
                                        'nil)))
                            'nil))
                          (cons
                           add-<type>-<type>-okp
                           (cons
                                (if (eq <type> <type1>)
                                    'x
                                  (cons <type>-from-<type1> '(x)))
                                (cons (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                         'nil))))))))))))
             'nil))
           (cons
            (cons
             'defun-integer
             (cons
              add-<type1>-<type2>
              (cons
               ':arg1-type
               (cons
                <type1>p
                (cons
                 ':arg2-type
                 (cons
                  <type2>p
                  (append
                   (and
                       signedp
                       (cons ':guard
                             (cons (cons add-<type1>-<type2>-okp '(x y))
                                   'nil)))
                   (cons
                    ':res-type
                    (cons
                     <type>p
                     (cons
                      ':short
                      (cons
                       (str::cat "Addition of a value of "
                                 type1-string " and a value of "
                                 type2-string " [C17:6.5.6].")
                       (cons
                        ':body
                        (cons
                         (if samep
                          (cons
                           (if signedp <type>-from-integer
                             <type>-from-integer-mod)
                           (cons
                            (cons
                             '+
                             (cons
                                  (cons integer-from-<type1> '(x))
                                  (cons (cons integer-from-<type2> '(y))
                                        'nil)))
                            'nil))
                          (cons
                           add-<type>-<type>
                           (cons
                                (if (eq <type> <type1>)
                                    'x
                                  (cons <type>-from-<type1> '(x)))
                                (cons (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                         (and
                          signedp
                          (cons
                           ':guard-hints
                           (cons
                            (cons
                             (cons
                              '"Goal"
                              (cons
                               ':in-theory
                               (cons
                                (cons
                                    'enable
                                    (cons add-<type1>-<type2>-okp 'nil))
                                'nil)))
                             'nil)
                            'nil))))))))))))))))
            (append
             (and
              signedp
              (cons
               (cons
                'defun-integer
                (cons
                 sub-<type1>-<type2>-okp
                 (cons
                  ':arg1-type
                  (cons
                   <type1>p
                   (cons
                    ':arg2-type
                    (cons
                     <type2>p
                     (cons
                      ':res-type
                      (cons
                       'booleanp
                       (cons
                        ':short
                        (cons
                         (str::cat
                              "Check if the subtraction of a value of "
                              type1-string " and a value of "
                              type2-string " is well-defined.")
                         (cons
                          ':body
                          (cons
                           (if samep
                            (cons
                             <type>-integerp
                             (cons
                              (cons
                               '-
                               (cons
                                  (cons integer-from-<type1> '(x))
                                  (cons (cons integer-from-<type2> '(y))
                                        'nil)))
                              'nil))
                            (cons
                             sub-<type>-<type>-okp
                             (cons
                                (if (eq <type> <type1>)
                                    'x
                                  (cons <type>-from-<type1> '(x)))
                                (cons (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                           'nil))))))))))))
               'nil))
             (cons
              (cons
               'defun-integer
               (cons
                sub-<type1>-<type2>
                (cons
                 ':arg1-type
                 (cons
                  <type1>p
                  (cons
                   ':arg2-type
                   (cons
                    <type2>p
                    (append
                     (and
                       signedp
                       (cons ':guard
                             (cons (cons sub-<type1>-<type2>-okp '(x y))
                                   'nil)))
                     (cons
                      ':res-type
                      (cons
                       <type>p
                       (cons
                        ':short
                        (cons
                         (str::cat "Subtraction of a value of "
                                   type1-string " and a value of "
                                   type2-string " [C17:6.5.6].")
                         (cons
                          ':body
                          (cons
                           (if samep
                            (cons
                             (if signedp <type>-from-integer
                               <type>-from-integer-mod)
                             (cons
                              (cons
                               '-
                               (cons
                                  (cons integer-from-<type1> '(x))
                                  (cons (cons integer-from-<type2> '(y))
                                        'nil)))
                              'nil))
                            (cons
                             sub-<type>-<type>
                             (cons
                                (if (eq <type> <type1>)
                                    'x
                                  (cons <type>-from-<type1> '(x)))
                                (cons (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                           (and
                            signedp
                            (cons
                             ':guard-hints
                             (cons
                              (cons
                               (cons
                                '"Goal"
                                (cons
                                 ':in-theory
                                 (cons
                                  (cons
                                    'enable
                                    (cons sub-<type1>-<type2>-okp 'nil))
                                  'nil)))
                               'nil)
                              'nil))))))))))))))))
              (append
               (and
                signedp
                (cons
                 (cons
                  'defun-integer
                  (cons
                   mul-<type1>-<type2>-okp
                   (cons
                    ':arg1-type
                    (cons
                     <type1>p
                     (cons
                      ':arg2-type
                      (cons
                       <type2>p
                       (cons
                        ':res-type
                        (cons
                         'booleanp
                         (cons
                          ':short
                          (cons
                           (str::cat
                            "Check if the multiplication of a value of "
                            type1-string " and a value of "
                            type2-string " is well-defined.")
                           (cons
                            ':body
                            (cons
                             (if samep
                              (cons
                               <type>-integerp
                               (cons
                                (cons
                                 '*
                                 (cons
                                  (cons integer-from-<type1> '(x))
                                  (cons (cons integer-from-<type2> '(y))
                                        'nil)))
                                'nil))
                              (cons
                               mul-<type>-<type>-okp
                               (cons
                                (if (eq <type> <type1>)
                                    'x
                                  (cons <type>-from-<type1> '(x)))
                                (cons (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                             'nil))))))))))))
                 'nil))
               (cons
                (cons
                 'defun-integer
                 (cons
                  mul-<type1>-<type2>
                  (cons
                   ':arg1-type
                   (cons
                    <type1>p
                    (cons
                     ':arg2-type
                     (cons
                      <type2>p
                      (append
                       (and
                        signedp
                        (cons
                             ':guard
                             (cons (cons mul-<type1>-<type2>-okp '(x y))
                                   'nil)))
                       (cons
                        ':res-type
                        (cons
                         <type>p
                         (cons
                          ':short
                          (cons
                           (str::cat "Multiplication of a value of "
                                     type1-string " and a value of "
                                     type2-string " [C17:6.5.5].")
                           (cons
                            ':body
                            (cons
                             (if samep
                              (cons
                               (if signedp <type>-from-integer
                                 <type>-from-integer-mod)
                               (cons
                                (cons
                                 '*
                                 (cons
                                  (cons integer-from-<type1> '(x))
                                  (cons (cons integer-from-<type2> '(y))
                                        'nil)))
                                'nil))
                              (cons
                               mul-<type>-<type>
                               (cons
                                (if (eq <type> <type1>)
                                    'x
                                  (cons <type>-from-<type1> '(x)))
                                (cons (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                             (and
                              signedp
                              (cons
                               ':guard-hints
                               (cons
                                (cons
                                 (cons
                                  '"Goal"
                                  (cons
                                   ':in-theory
                                   (cons
                                    (cons
                                     'enable
                                     (cons
                                          mul-<type1>-<type2>-okp 'nil))
                                    'nil)))
                                 'nil)
                                'nil))))))))))))))))
                (cons
                 (cons
                  'defun-integer
                  (cons
                   div-<type1>-<type2>-okp
                   (cons
                    ':arg1-type
                    (cons
                     <type1>p
                     (cons
                      ':arg2-type
                      (cons
                       <type2>p
                       (cons
                        ':res-type
                        (cons
                         'booleanp
                         (cons
                          ':short
                          (cons
                           (str::cat
                                "Check if the division of a value of "
                                type1-string " and a value of "
                                type2-string " is well-defined.")
                           (cons
                            ':body
                            (cons
                             (if samep
                              (if signedp
                               (cons
                                'and
                                (cons
                                 (cons
                                  'not
                                  (cons
                                   (cons
                                    'equal
                                    (cons
                                        (cons integer-from-<type2> '(y))
                                        '(0)))
                                   'nil))
                                 (cons
                                  (cons
                                   <type>-integerp
                                   (cons
                                    (cons
                                     'truncate
                                     (cons
                                      (cons integer-from-<type1> '(x))
                                      (cons
                                        (cons integer-from-<type2> '(y))
                                        'nil)))
                                    'nil))
                                  'nil)))
                               (cons
                                'not
                                (cons
                                 (cons
                                  'equal
                                  (cons (cons integer-from-<type2> '(y))
                                        '(0)))
                                 'nil)))
                              (cons
                               div-<type>-<type>-okp
                               (cons
                                (if (eq <type> <type1>)
                                    'x
                                  (cons <type>-from-<type1> '(x)))
                                (cons (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                             'nil))))))))))))
                 (cons
                  (cons
                   'defun-integer
                   (cons
                    div-<type1>-<type2>
                    (cons
                     ':arg1-type
                     (cons
                      <type1>p
                      (cons
                       ':arg2-type
                       (cons
                        <type2>p
                        (cons
                         ':guard
                         (cons
                          (cons div-<type1>-<type2>-okp '(x y))
                          (cons
                           ':res-type
                           (cons
                            <type>p
                            (cons
                             ':short
                             (cons
                              (str::cat "Division of a value of "
                                        type1-string " and a value of "
                                        type2-string " [C17:6.5.5].")
                              (cons
                               ':body
                               (cons
                                (if samep
                                 (cons
                                  (if signedp <type>-from-integer
                                    <type>-from-integer-mod)
                                  (cons
                                   (cons
                                    'truncate
                                    (cons
                                     (cons integer-from-<type1> '(x))
                                     (cons
                                        (cons integer-from-<type2> '(y))
                                        'nil)))
                                   'nil))
                                 (cons
                                  div-<type>-<type>
                                  (cons
                                   (if (eq <type> <type1>)
                                       'x
                                     (cons <type>-from-<type1> '(x)))
                                   (cons
                                      (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                                (cons
                                 ':guard-hints
                                 (cons
                                  (cons
                                   (cons
                                    '"Goal"
                                    (cons
                                     ':in-theory
                                     (cons
                                      (cons
                                       'enable
                                       (cons
                                          div-<type1>-<type2>-okp 'nil))
                                      'nil)))
                                   'nil)
                                  'nil))))))))))))))))
                  (cons
                   (cons
                    'defun-integer
                    (cons
                     rem-<type1>-<type2>-okp
                     (cons
                      ':arg1-type
                      (cons
                       <type1>p
                       (cons
                        ':arg2-type
                        (cons
                         <type2>p
                         (cons
                          ':res-type
                          (cons
                           'booleanp
                           (cons
                            ':short
                            (cons
                             (str::cat
                                 "Check if the remainder of a value of "
                                 type1-string " and a value of "
                                 type2-string " is well-defined.")
                             (cons
                              ':body
                              (cons
                               (if samep
                                (if signedp
                                 (cons
                                  'and
                                  (cons
                                   (cons
                                    'not
                                    (cons
                                     (cons
                                      'equal
                                      (cons
                                        (cons integer-from-<type2> '(y))
                                        '(0)))
                                     'nil))
                                   (cons
                                    (cons
                                     <type>-integerp
                                     (cons
                                      (cons
                                       'rem
                                       (cons
                                        (cons integer-from-<type1> '(x))
                                        (cons
                                         (cons
                                              integer-from-<type2> '(y))
                                         'nil)))
                                      'nil))
                                    'nil)))
                                 (cons
                                  'not
                                  (cons
                                   (cons
                                    'equal
                                    (cons
                                        (cons integer-from-<type2> '(y))
                                        '(0)))
                                   'nil)))
                                (cons
                                 rem-<type>-<type>-okp
                                 (cons
                                  (if (eq <type> <type1>)
                                      'x
                                    (cons <type>-from-<type1> '(x)))
                                  (cons
                                      (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                               'nil))))))))))))
                   (cons
                    (cons
                     'defun-integer
                     (cons
                      rem-<type1>-<type2>
                      (cons
                       ':arg1-type
                       (cons
                        <type1>p
                        (cons
                         ':arg2-type
                         (cons
                          <type2>p
                          (cons
                           ':guard
                           (cons
                            (cons rem-<type1>-<type2>-okp '(x y))
                            (cons
                             ':res-type
                             (cons
                              <type>p
                              (cons
                               ':short
                               (cons
                                (str::cat
                                     "Remainder of a value of "
                                     type1-string " and a value of "
                                     type2-string " [C17:6.5.5].")
                                (cons
                                 ':body
                                 (cons
                                  (if samep
                                   (cons
                                    (if signedp <type>-from-integer
                                      <type>-from-integer-mod)
                                    (cons
                                     (cons
                                      'rem
                                      (cons
                                       (cons integer-from-<type1> '(x))
                                       (cons
                                        (cons integer-from-<type2> '(y))
                                        'nil)))
                                     'nil))
                                   (cons
                                    rem-<type>-<type>
                                    (cons
                                     (if (eq <type> <type1>)
                                         'x
                                       (cons <type>-from-<type1> '(x)))
                                     (cons
                                      (if (eq <type> <type2>)
                                          'y
                                        (cons <type>-from-<type2> '(y)))
                                      'nil))))
                                  (cons
                                   ':guard-hints
                                   (cons
                                    (cons
                                     (cons
                                      '"Goal"
                                      (cons
                                       ':in-theory
                                       (cons
                                        (cons
                                           'enable
                                           (cons rem-<type1>-<type2>-okp
                                                 (and (not signedp)
                                                      (list 'rem))))
                                        'nil)))
                                     'nil)
                                    'nil))))))))))))))))
                    (cons
                     (cons
                      'defun-integer
                      (cons
                       shl-<type1>-<type2>-okp
                       (cons
                        ':arg1-type
                        (cons
                         <type1>p
                         (cons
                          ':arg2-type
                          (cons
                           <type2>p
                           (cons
                            ':res-type
                            (cons
                             'booleanp
                             (cons
                              ':short
                              (cons
                               (str::cat
                                "Check if the left shift of a value of "
                                type1-string " by a value of "
                                type2-string " is well-defined.")
                               (cons
                                ':body
                                (cons
                                 (cons
                                  shl-<type1>-okp
                                  (cons
                                   'x
                                   (cons
                                        (cons integer-from-<type2> '(y))
                                        'nil)))
                                 'nil))))))))))))
                     (cons
                      (cons
                       'defun-integer
                       (cons
                        shl-<type1>-<type2>
                        (cons
                         ':arg1-type
                         (cons
                          <type1>p
                          (cons
                           ':arg2-type
                           (cons
                            <type2>p
                            (cons
                             ':guard
                             (cons
                              (cons shl-<type1>-<type2>-okp '(x y))
                              (cons
                               ':res-type
                               (cons
                                <ptype1>p
                                (cons
                                 ':short
                                 (cons
                                  (str::cat
                                       "Left shift of a value of "
                                       type1-string " and a value of "
                                       type2-string " [C17:6.5.7].")
                                  (cons
                                   ':body
                                   (cons
                                    (cons
                                     shl-<type1>
                                     (cons
                                      'x
                                      (cons
                                        (cons integer-from-<type2> '(y))
                                        'nil)))
                                    (cons
                                     ':guard-hints
                                     (cons
                                      (cons
                                       (cons
                                        '"Goal"
                                        (cons
                                         ':in-theory
                                         (cons
                                          (cons
                                           'enable
                                           (cons shl-<type1>-<type2>-okp
                                                 'nil))
                                          'nil)))
                                       'nil)
                                      'nil))))))))))))))))
                      (cons
                       (cons
                        'defun-integer
                        (cons
                         shr-<type1>-<type2>-okp
                         (cons
                          ':arg1-type
                          (cons
                           <type1>p
                           (cons
                            ':arg2-type
                            (cons
                             <type2>p
                             (cons
                              ':res-type
                              (cons
                               'booleanp
                               (cons
                                ':short
                                (cons
                                 (str::cat
                                  "Check if the right shift of a value of "
                                  type1-string " by a value of "
                                  type2-string " is well-defined.")
                                 (cons
                                  ':body
                                  (cons
                                   (cons
                                    shr-<type1>-okp
                                    (cons
                                     'x
                                     (cons
                                        (cons integer-from-<type2> '(y))
                                        'nil)))
                                   'nil))))))))))))
                       (cons
                        (cons
                         'defun-integer
                         (cons
                          shr-<type1>-<type2>
                          (cons
                           ':arg1-type
                           (cons
                            <type1>p
                            (cons
                             ':arg2-type
                             (cons
                              <type2>p
                              (cons
                               ':guard
                               (cons
                                (cons shr-<type1>-<type2>-okp '(x y))
                                (cons
                                 ':res-type
                                 (cons
                                  <ptype1>p
                                  (cons
                                   ':short
                                   (cons
                                    (str::cat
                                         "Right shift of a value of "
                                         type1-string " and a value of "
                                         type2-string " [C17:6.5.7].")
                                    (cons
                                     ':body
                                     (cons
                                      (cons
                                       shr-<type1>
                                       (cons
                                        'x
                                        (cons
                                         (cons
                                              integer-from-<type2> '(y))
                                         'nil)))
                                      (cons
                                       ':guard-hints
                                       (cons
                                        (cons
                                         (cons
                                          '"Goal"
                                          (cons
                                           ':in-theory
                                           (cons
                                            (cons
                                             'enable
                                             (cons
                                                 shr-<type1>-<type2>-okp
                                                 'nil))
                                            'nil)))
                                         'nil)
                                        'nil))))))))))))))))
                        (cons
                         (cons
                          'defun-integer
                          (cons
                           lt-<type1>-<type2>
                           (cons
                            ':arg1-type
                            (cons
                             <type1>p
                             (cons
                              ':arg2-type
                              (cons
                               <type2>p
                               (cons
                                ':res-type
                                (cons
                                 'sintp
                                 (cons
                                  ':short
                                  (cons
                                   (str::cat
                                     "Less-than relation of a value of "
                                     type1-string " and a value of "
                                     type2-string " [C17:6.5.8].")
                                   (cons
                                    ':body
                                    (cons
                                     (if samep
                                      (cons
                                       'if
                                       (cons
                                        (cons
                                         '<
                                         (cons
                                          (cons
                                              integer-from-<type1> '(x))
                                          (cons
                                           (cons
                                              integer-from-<type2> '(y))
                                           'nil)))
                                        '((sint-from-integer 1)
                                          (sint-from-integer 0))))
                                      (cons
                                       lt-<type>-<type>
                                       (cons
                                        (if (eq <type> <type1>)
                                            'x
                                         (cons
                                              <type>-from-<type1> '(x)))
                                        (cons
                                         (if (eq <type> <type2>)
                                             'y
                                          (cons
                                              <type>-from-<type2> '(y)))
                                         'nil))))
                                     'nil))))))))))))
                         (cons
                          (cons
                           'defun-integer
                           (cons
                            gt-<type1>-<type2>
                            (cons
                             ':arg1-type
                             (cons
                              <type1>p
                              (cons
                               ':arg2-type
                               (cons
                                <type2>p
                                (cons
                                 ':res-type
                                 (cons
                                  'sintp
                                  (cons
                                   ':short
                                   (cons
                                    (str::cat
                                     "Greater-than relation of a value of "
                                     type1-string " and a value of "
                                     type2-string " [C17:6.5.8].")
                                    (cons
                                     ':body
                                     (cons
                                      (if samep
                                       (cons
                                        'if
                                        (cons
                                         (cons
                                          '>
                                          (cons
                                           (cons
                                              integer-from-<type1> '(x))
                                           (cons
                                            (cons
                                              integer-from-<type2> '(y))
                                            'nil)))
                                         '((sint-from-integer 1)
                                           (sint-from-integer 0))))
                                       (cons
                                        gt-<type>-<type>
                                        (cons
                                         (if (eq <type> <type1>)
                                             'x
                                          (cons
                                              <type>-from-<type1> '(x)))
                                         (cons
                                          (if (eq <type> <type2>)
                                              'y
                                           (cons
                                              <type>-from-<type2> '(y)))
                                          'nil))))
                                      'nil))))))))))))
                          (cons
                           (cons
                            'defun-integer
                            (cons
                             le-<type1>-<type2>
                             (cons
                              ':arg1-type
                              (cons
                               <type1>p
                               (cons
                                ':arg2-type
                                (cons
                                 <type2>p
                                 (cons
                                  ':res-type
                                  (cons
                                   'sintp
                                   (cons
                                    ':short
                                    (cons
                                     (str::cat
                                      "Less-than-or-equal-to relation of a value of "
                                      type1-string " and a value of "
                                      type2-string " [C17:6.5.8].")
                                     (cons
                                      ':body
                                      (cons
                                       (if samep
                                        (cons
                                         'if
                                         (cons
                                          (cons
                                           '<=
                                           (cons
                                            (cons
                                              integer-from-<type1> '(x))
                                            (cons
                                             (cons
                                              integer-from-<type2> '(y))
                                             'nil)))
                                          '((sint-from-integer 1)
                                            (sint-from-integer 0))))
                                        (cons
                                         le-<type>-<type>
                                         (cons
                                          (if (eq <type> <type1>)
                                              'x
                                           (cons
                                              <type>-from-<type1> '(x)))
                                          (cons
                                           (if (eq <type> <type2>)
                                               'y
                                            (cons
                                              <type>-from-<type2> '(y)))
                                           'nil))))
                                       'nil))))))))))))
                           (cons
                            (cons
                             'defun-integer
                             (cons
                              ge-<type1>-<type2>
                              (cons
                               ':arg1-type
                               (cons
                                <type1>p
                                (cons
                                 ':arg2-type
                                 (cons
                                  <type2>p
                                  (cons
                                   ':res-type
                                   (cons
                                    'sintp
                                    (cons
                                     ':short
                                     (cons
                                      (str::cat
                                       "Greater-than-or-equal-to relation of a value of "
                                       type1-string " and a value of "
                                       type2-string " [C17:6.5.8].")
                                      (cons
                                       ':body
                                       (cons
                                        (if samep
                                         (cons
                                          'if
                                          (cons
                                           (cons
                                            '>=
                                            (cons
                                             (cons
                                              integer-from-<type1> '(x))
                                             (cons
                                              (cons integer-from-<type2>
                                                    '(y))
                                              'nil)))
                                           '((sint-from-integer 1)
                                             (sint-from-integer 0))))
                                         (cons
                                          ge-<type>-<type>
                                          (cons
                                           (if (eq <type> <type1>)
                                               'x
                                            (cons
                                              <type>-from-<type1> '(x)))
                                           (cons
                                            (if (eq <type> <type2>)
                                                'y
                                             (cons
                                              <type>-from-<type2> '(y)))
                                            'nil))))
                                        'nil))))))))))))
                            (cons
                             (cons
                              'defun-integer
                              (cons
                               eq-<type1>-<type2>
                               (cons
                                ':arg1-type
                                (cons
                                 <type1>p
                                 (cons
                                  ':arg2-type
                                  (cons
                                   <type2>p
                                   (cons
                                    ':res-type
                                    (cons
                                     'sintp
                                     (cons
                                      ':short
                                      (cons
                                       (str::cat
                                         "Equality of a value of "
                                         type1-string " and a value of "
                                         type2-string " [C17:6.5.9].")
                                       (cons
                                        ':body
                                        (cons
                                         (if samep
                                          (cons
                                           'if
                                           (cons
                                            (cons
                                             '=
                                             (cons
                                              (cons integer-from-<type1>
                                                    '(x))
                                              (cons
                                               (cons
                                                    integer-from-<type2>
                                                    '(y))
                                               'nil)))
                                            '((sint-from-integer 1)
                                              (sint-from-integer 0))))
                                          (cons
                                           eq-<type>-<type>
                                           (cons
                                            (if (eq <type> <type1>)
                                                'x
                                             (cons
                                              <type>-from-<type1> '(x)))
                                            (cons
                                             (if (eq <type> <type2>)
                                                 'y
                                               (cons <type>-from-<type2>
                                                     '(y)))
                                             'nil))))
                                         'nil))))))))))))
                             (cons
                              (cons
                               'defun-integer
                               (cons
                                ne-<type1>-<type2>
                                (cons
                                 ':arg1-type
                                 (cons
                                  <type1>p
                                  (cons
                                   ':arg2-type
                                   (cons
                                    <type2>p
                                    (cons
                                     ':res-type
                                     (cons
                                      'sintp
                                      (cons
                                       ':short
                                       (cons
                                        (str::cat
                                         "Non-equality of a value of "
                                         type1-string " and a value of "
                                         type2-string " [C17:6.5.9].")
                                        (cons
                                         ':body
                                         (cons
                                          (if samep
                                           (cons
                                            'if
                                            (cons
                                             (cons
                                              '/=
                                              (cons
                                               (cons
                                                    integer-from-<type1>
                                                    '(x))
                                               (cons
                                                (cons
                                                    integer-from-<type2>
                                                    '(y))
                                                'nil)))
                                             '((sint-from-integer 1)
                                               (sint-from-integer 0))))
                                           (cons
                                            ne-<type>-<type>
                                            (cons
                                             (if (eq <type> <type1>)
                                                 'x
                                               (cons <type>-from-<type1>
                                                     '(x)))
                                             (cons
                                              (if (eq <type> <type2>)
                                                  'y
                                               (cons <type>-from-<type2>
                                                     '(y)))
                                              'nil))))
                                          'nil))))))))))))
                              (cons
                               (cons
                                'defun-integer
                                (cons
                                 bitand-<type1>-<type2>
                                 (cons
                                  ':arg1-type
                                  (cons
                                   <type1>p
                                   (cons
                                    ':arg2-type
                                    (cons
                                     <type2>p
                                     (cons
                                      ':res-type
                                      (cons
                                       <type>p
                                       (cons
                                        ':short
                                        (cons
                                         (str::cat
                                          "Bitwise conjunction of a value of "
                                          type1-string
                                          " and a value of "
                                          type2-string " [C17:6.5.10].")
                                         (cons
                                          ':body
                                          (cons
                                           (if samep
                                            (cons
                                             <type>-from-integer
                                             (cons
                                              (cons
                                               'logand
                                               (cons
                                                (cons
                                                    integer-from-<type1>
                                                    '(x))
                                                (cons
                                                 (cons
                                                    integer-from-<type2>
                                                    '(y))
                                                 'nil)))
                                              'nil))
                                            (cons
                                             bitand-<type>-<type>
                                             (cons
                                              (if (eq <type> <type1>)
                                                  'x
                                               (cons <type>-from-<type1>
                                                     '(x)))
                                              (cons
                                               (if (eq <type> <type2>)
                                                   'y
                                                (cons
                                                     <type>-from-<type2>
                                                     '(y)))
                                               'nil))))
                                           (and
                                            samep
                                            (cons
                                             ':prepwork
                                             (cons
                                              '((local
                                                 (include-book
                                                     "ihs/logops-lemmas"
                                                     :dir :system)))
                                              (cons
                                               ':guard-hints
                                               (cons
                                                (cons
                                                 (cons
                                                  '"Goal"
                                                  (cons
                                                   ':in-theory
                                                   (cons
                                                    (cons
                                                     'enable
                                                     (cons
                                                      <type>-integerp
                                                      (cons
                                                       <type>p
                                                       (cons
                                                        integer-from-<type1>
                                                        'nil))))
                                                    'nil)))
                                                 'nil)
                                                'nil)))))))))))))))))
                               (cons
                                (cons
                                 'defun-integer
                                 (cons
                                  bitxor-<type1>-<type2>
                                  (cons
                                   ':arg1-type
                                   (cons
                                    <type1>p
                                    (cons
                                     ':arg2-type
                                     (cons
                                      <type2>p
                                      (cons
                                       ':res-type
                                       (cons
                                        <type>p
                                        (cons
                                         ':short
                                         (cons
                                          (str::cat
                                           "Bitwise exclusive disjunction of a value of "
                                           type1-string
                                           " and a value of "
                                           type2-string
                                           " [C17:6.5.11].")
                                          (cons
                                           ':body
                                           (cons
                                            (if samep
                                             (cons
                                              <type>-from-integer
                                              (cons
                                               (cons
                                                'logxor
                                                (cons
                                                 (cons
                                                    integer-from-<type1>
                                                    '(x))
                                                 (cons
                                                  (cons
                                                    integer-from-<type2>
                                                    '(y))
                                                  'nil)))
                                               'nil))
                                             (cons
                                              bitxor-<type>-<type>
                                              (cons
                                               (if (eq <type> <type1>)
                                                   'x
                                                (cons
                                                     <type>-from-<type1>
                                                     '(x)))
                                               (cons
                                                (if (eq <type> <type2>)
                                                    'y
                                                 (cons
                                                     <type>-from-<type2>
                                                     '(y)))
                                                'nil))))
                                            (and
                                             samep
                                             (cons
                                              ':prepwork
                                              (cons
                                               '((local
                                                  (include-book
                                                   "centaur/bitops/ihs-extensions"
                                                   :dir :system)))
                                               (cons
                                                ':guard-hints
                                                (cons
                                                 (cons
                                                  (cons
                                                   '"Goal"
                                                   (cons
                                                    ':in-theory
                                                    (cons
                                                     (cons
                                                      'enable
                                                      (cons
                                                       <type>-integerp
                                                       (cons
                                                        <type>p
                                                        (cons
                                                         integer-from-<type1>
                                                         'nil))))
                                                     'nil)))
                                                  'nil)
                                                 'nil)))))))))))))))))
                                (cons
                                 (cons
                                  'defun-integer
                                  (cons
                                   bitior-<type1>-<type2>
                                   (cons
                                    ':arg1-type
                                    (cons
                                     <type1>p
                                     (cons
                                      ':arg2-type
                                      (cons
                                       <type2>p
                                       (cons
                                        ':res-type
                                        (cons
                                         <type>p
                                         (cons
                                          ':short
                                          (cons
                                           (str::cat
                                            "Bitwise inclusive disjunction of a value of "
                                            type1-string
                                            " and a value of "
                                            type2-string
                                            " [C17:6.5.12].")
                                           (cons
                                            ':body
                                            (cons
                                             (if samep
                                              (cons
                                               <type>-from-integer
                                               (cons
                                                (cons
                                                 'logior
                                                 (cons
                                                  (cons
                                                    integer-from-<type1>
                                                    '(x))
                                                  (cons
                                                   (cons
                                                    integer-from-<type2>
                                                    '(y))
                                                   'nil)))
                                                'nil))
                                              (cons
                                               bitior-<type>-<type>
                                               (cons
                                                (if (eq <type> <type1>)
                                                    'x
                                                 (cons
                                                     <type>-from-<type1>
                                                     '(x)))
                                                (cons
                                                 (if (eq <type> <type2>)
                                                     'y
                                                  (cons
                                                     <type>-from-<type2>
                                                     '(y)))
                                                 'nil))))
                                             (and
                                              samep
                                              (cons
                                               ':prepwork
                                               (cons
                                                '((local
                                                   (include-book
                                                    "centaur/bitops/ihs-extensions"
                                                    :dir :system)))
                                                (cons
                                                 ':guard-hints
                                                 (cons
                                                  (cons
                                                   (cons
                                                    '"Goal"
                                                    (cons
                                                     ':in-theory
                                                     (cons
                                                      (cons
                                                       'enable
                                                       (cons
                                                        <type>-integerp
                                                        (cons
                                                         <type>p
                                                         (cons
                                                          integer-from-<type1>
                                                          'nil))))
                                                      'nil)))
                                                   'nil)
                                                  'nil)))))))))))))))))
                                 'nil)))))))))))))))))))))))))))))

    Theorem: pseudo-event-formp-of-def-integer-operations-2

    (defthm pseudo-event-formp-of-def-integer-operations-2
      (b* ((event (def-integer-operations-2 type1 type2)))
        (pseudo-event-formp event))
      :rule-classes :rewrite)