Documentation

Strata.Languages.GOTO.Expr

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Equations
      Instances For
        @[implicit_reducible]
        Equations
        • One or more equations did not get rendered due to their size.
        • UnaryMinus : Unary

          unary_minus_exprt

        • UnaryPlus : Unary

          unary_plus_exprt

        • Not : Unary

          not_exprt

        • Bitnot : Unary

          bitnot_exprt

        • Old : Unary

          history_exprt with ID_old

        • ArrayOf : Unary

          array_of_exprt (constant map/array)

        • Typecast : Unary

          typecast_exprt

        • UnaryMinusOverflow : Unary

          unary_minus_overflow_exprt

        • Dereference : Unary

          dereference_exprt (*p)

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

            Representation of identifiers specific to binary expressions, binary_exprt.

            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[implicit_reducible]
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[implicit_reducible]
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[implicit_reducible]
                        Equations
                        • One or more equations did not get rendered due to their size.
                        • Nondet : SideEffect

                          side_effect_expr_nondett

                        • Assign : SideEffect

                          side_effect_expr_assignt

                        • Allocate : SideEffect

                          side_effect_exprt with ID_allocate (native dynamic-object allocation; operands = [size, zeroInitFlag], type is the result pointer).

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

                                  GOTO Expressions

                                  For now, we have primarily focused on expr_protectedt class.

                                  We will also confine ourselves to expressions that can appear at the lowest level of CProver IRs -- i.e., GOTO assembly instructions.

                                  • The interpretation of Expr depends on the id field. CBMC pre-defines some IDs here: util/irep_ids.def.

                                  • type : Ty
                                  • operands : List Expr
                                  • sourceLoc : SourceLocation
                                  • namedFields : List (String × Expr)

                                    Named fields for expressions that need additional data (e.g., side_effect_exprt has a statement field).

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

                                          Get a named field from the expression.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def CProverGOTO.Expr.setNamedField (e : Expr) (name : String) (value : Expr) :

                                            Set a named field in the expression.

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              def CProverGOTO.Expr.symbol (name : String) (type : Ty) :

                                              Symbol expression

                                              Equations
                                              Instances For
                                                def CProverGOTO.Expr.constant (value : String) (type : Ty) :

                                                Constant expression

                                                Equations
                                                Instances For
                                                  def CProverGOTO.Expr.nondet (name : String) (type : Ty) :

                                                  Nondet expression

                                                  Equations
                                                  Instances For
                                                    def CProverGOTO.Expr.neg (operand : Expr) :

                                                    Unary minus

                                                    Equations
                                                    Instances For
                                                      def CProverGOTO.Expr.not (operand : Expr) :

                                                      Logical not

                                                      Equations
                                                      Instances For
                                                        def CProverGOTO.Expr.typecast (operand : Expr) (targetType : Ty) :

                                                        Typecast expression

                                                        Equations
                                                        Instances For
                                                          def CProverGOTO.Expr.dereference (ptr : Expr) (pointee : Ty) :

                                                          Dereference (*ptr) yielding a value of type pointee.

                                                          Equations
                                                          Instances For
                                                            def CProverGOTO.Expr.allocate (size zeroFlag : Expr) (ptrTy : Ty) :

                                                            Native dynamic-object allocation (side_effect ID_allocate): allocate size bytes, optionally zero-initialized, returning a pointer of type ptrTy. Mirrors CBMC's __CPROVER_allocate.

                                                            Equations
                                                            Instances For

                                                              Cast a bitvector expression to its signed interpretation.

                                                              Equations
                                                              Instances For
                                                                def CProverGOTO.Expr.div (left right : Expr) :

                                                                Division

                                                                Equations
                                                                Instances For
                                                                  def CProverGOTO.Expr.mod (left right : Expr) :

                                                                  Modulo

                                                                  Equations
                                                                  Instances For
                                                                    def CProverGOTO.Expr.gt (left right : Expr) :

                                                                    Greater than

                                                                    Equations
                                                                    Instances For
                                                                      def CProverGOTO.Expr.lt (left right : Expr) :

                                                                      Less than

                                                                      Equations
                                                                      Instances For
                                                                        def CProverGOTO.Expr.eq (left right : Expr) :

                                                                        Equal

                                                                        Equations
                                                                        Instances For
                                                                          def CProverGOTO.Expr.ite (cond then_expr else_expr : Expr) :

                                                                          If-then-else

                                                                          Equations
                                                                          Instances For

                                                                            Non-deterministic side effects

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

                                                                              Check whether an expression contains quantifiers over types that CBMC's SMT2 backend cannot encode (e.g., struct_tag, regex).