code: def test_mul_bound():
      analyzer = tvm.arith.Analyzer()
      x, y = te.var("x"), te.var("y")
  
      analyzer.update(x, tvm.arith.ConstIntBound(-2, 4))
      analyzer.update(y, tvm.arith.ConstIntBound(4, 10))
      bd = analyzer.const_int_bound(x * y + 20)
      assert bd.min_value == 0
      assert bd.max_value == 60
  
      analyzer.update(x, tvm.arith.ConstIntBound(-3, 4), override=True)
      analyzer.update(y, tvm.arith.ConstIntBound(-8, 2), override=True)
      bd = analyzer.const_int_bound(x * y)
      assert bd.min_value == -32
      assert bd.max_value == 24
  
      analyzer.update(
          x, tvm.arith.ConstIntBound(bd.NEG_INF, 4), override=True
      )
      analyzer.update(y, tvm.arith.ConstIntBound(-8, 2), override=True)
      bd = analyzer.const_int_bound(x * y)
      assert bd.min_value == bd.NEG_INF
      assert bd.max_value == bd.POS_INF
  
imports: import tvm
  import tvm.testing
  from tvm import te
label_desc: Use image node_id 4 for calling a global function with example usage: test_mul_bound() without return types