• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • 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
        • Soft
        • C
          • Syntax-for-tools
          • Atc
          • Language
            • Abstract-syntax
              • Tyspecseq
              • Expr
              • Binop
                • Binopp
                • Binop-fix
                • Binop-case
                • Binop-kind
                • Binop-equiv
                • Binop-add
                • Binop-sub
                • Binop-shr
                • Binop-shl
                • Binop-rem
                • Binop-ne
                • Binop-mul
                • Binop-lt
                • Binop-logor
                • Binop-logand
                • Binop-le
                • Binop-gt
                • Binop-ge
                • Binop-eq
                • Binop-div
                • Binop-bitxor
                • Binop-bitior
                • Binop-bitand
                • Binop-asg-xor
                • Binop-asg-sub
                • Binop-asg-shr
                • Binop-asg-shl
                • Binop-asg-rem
                • Binop-asg-mul
                • Binop-asg-ior
                • Binop-asg-div
                • Binop-asg-and
                • Binop-asg-add
                • Binop-asg
              • Fileset
              • Obj-declor
              • Ident
              • Iconst
              • Obj-adeclor
              • Const
              • Fundef
              • Unop
              • File
              • Tag-declon
              • Fun-declor
              • Obj-declon
              • Iconst-length
              • Abstract-syntax-operations
              • Label
              • Struct-declon
              • Initer
              • Ext-declon
              • Fun-adeclor
              • Expr-option
              • Iconst-base
              • Initer-option
              • Iconst-option
              • Tyspecseq-option
              • Stmt-option
              • Scspecseq
              • Param-declon
              • Obj-declon-option
              • File-option
              • Tyname
              • Transunit
              • Fun-declon
              • Transunit-result
              • Param-declon-list
              • Struct-declon-list
              • Expr-list
              • Tyspecseq-list
              • Ident-set
              • Ident-list
              • Ext-declon-list
              • Unop-list
              • Tyname-list
              • Fundef-list
              • Fun-declon-list
              • Binop-list
              • Stmt-fixtypes
              • Expr-fixtypes
            • Integer-ranges
            • Implementation-environments
            • Dynamic-semantics
            • Static-semantics
            • Grammar
            • Integer-formats
            • Types
            • Portable-ascii-identifiers
            • Values
            • Integer-operations
            • Computation-states
            • Object-designators
            • Operations
            • Errors
            • Tag-environments
            • Function-environments
            • Character-sets
            • Flexible-array-member-removal
            • Arithmetic-operations
            • Pointer-operations
            • Bytes
            • Keywords
            • Real-operations
            • Array-operations
            • Scalar-operations
            • Structure-operations
          • Representation
          • Transformation-tools
          • Insertion-sort
          • Pack
        • Bv
        • Imp-language
        • Event-macros
        • Java
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Abstract-syntax

Binop

Fixtype of binary operators [C17:6.5.5-14] [C17:6.5.16].

This is a tagged union type, introduced by fty::deftagsum.

Member Tags → Types
:mul → binop-mul
:div → binop-div
:rem → binop-rem
:add → binop-add
:sub → binop-sub
:shl → binop-shl
:shr → binop-shr
:lt → binop-lt
:gt → binop-gt
:le → binop-le
:ge → binop-ge
:eq → binop-eq
:ne → binop-ne
:bitand → binop-bitand
:bitxor → binop-bitxor
:bitior → binop-bitior
:logand → binop-logand
:logor → binop-logor
:asg → binop-asg
:asg-mul → binop-asg-mul
:asg-div → binop-asg-div
:asg-rem → binop-asg-rem
:asg-add → binop-asg-add
:asg-sub → binop-asg-sub
:asg-shl → binop-asg-shl
:asg-shr → binop-asg-shr
:asg-and → binop-asg-and
:asg-xor → binop-asg-xor
:asg-ior → binop-asg-ior

We capture all of them. The C grammar does not have a nonterminal for binary operators (it has one for unary operators [C17:6.5.3]), but the grammar rules for binary operations implicitly describe them.

These are multiplication, division, remainder, addition, subtraction, shift (left and right), relations (less than (or equal to) and greater than (or equal to)), equality (and non-equality), bitwise conjunction, bitwise exclusive disjunction, bitwise inclusive disjunction, logical conjunction, logical disjunction, assignment (simple and compound).

Subtopics

Binopp
Recognizer for binop structures.
Binop-fix
Fixing function for binop structures.
Binop-case
Case macro for the different kinds of binop structures.
Binop-kind
Get the kind (tag) of a binop structure.
Binop-equiv
Basic equivalence relation for binop structures.
Binop-add
Binop-sub
Binop-shr
Binop-shl
Binop-rem
Binop-ne
Binop-mul
Binop-lt
Binop-logor
Binop-logand
Binop-le
Binop-gt
Binop-ge
Binop-eq
Binop-div
Binop-bitxor
Binop-bitior
Binop-bitand
Binop-asg-xor
Binop-asg-sub
Binop-asg-shr
Binop-asg-shl
Binop-asg-rem
Binop-asg-mul
Binop-asg-ior
Binop-asg-div
Binop-asg-and
Binop-asg-add
Binop-asg