code: def _get_constrs_no_operation(self, gadget):
          
          # Constraints on memory locations.
          # mem_constrs = [self.analyzer.get_memory("pre") != self.analyzer.get_memory("post")]
          mem_constrs = [self.analyzer.get_memory_curr("pre").__neq__(self.analyzer.get_memory_curr("post"))]
  
          # Constraints on flags.
          flags_constrs = []
  
          for name in self._arch_info.registers_flags:
              var_initial = self.analyzer.get_register_expr(name, mode="pre")
              var_final = self.analyzer.get_register_expr(name, mode="post")
  
              flags_constrs += [var_initial != var_final]
  
          # Constraints on registers.
          reg_constrs = []
  
          for name in self._arch_info.registers_gp_base:
              var_initial = self.analyzer.get_register_expr(name, mode="pre")
              var_final = self.analyzer.get_register_expr(name, mode="post")
  
              reg_constrs += [var_initial != var_final]
  
          # Make a big OR expression.
          constrs = mem_constrs + flags_constrs + reg_constrs
          constrs = [reduce(lambda c, acc: acc | c, constrs[1:], constrs[0])]
  
          return constrs
docs: Verify NoOperation gadgets.