code: def test_z3_proof_floordiv_eq_simplify(self):
      import z3
      from sympy import Eq, Lt
  
      a = sympy.Symbol("a", positive=True, integer=True)
      a_ = z3.Int("a")
  
      # (a + 10) // 3 == 3
      # =====================================
      # 3 * 3 <= a + 10         (always true)
      #          a + 10 < 4 * 3 (not sure)
      solver = z3.SolverFor("QF_NRA")
  
      # Add assertions for 'a_'.
      solver.add(a_ > 0)
  
      expr = Eq(FloorDiv(a + 10, 3), 3)
      r_expr, _ = try_solve(expr, a)
  
      # Check 'try_solve' really returns the 'expected' below.
      expected = Lt(a, (3 + 1) * 3 - 10)
      self.assertEqual(r_expr, expected)
  
      # Check whether there is an integer 'a_' such that the
      # equation below is satisfied.
      solver.add(
          # expr
          (z3.ToInt((a_ + 10) / 3.0) == 3)
          !=
          # expected
          (a_ < (3 + 1) * 3 - 10)
      )
  
      # Assert that there's no such an integer.
      # i.e. the transformation is sound.
      r = solver.check()
      self.assertEqual(r, z3.unsat)
  
imports: import itertools
  import sys
  import sympy
  from typing import Callable, List, Tuple, Type
  from torch.testing._internal.common_device_type import skipIf
  from torch.testing._internal.common_utils import TEST_Z3, instantiate_parametrized_tests, parametrize, run_tests, TestCase
  from torch.utils._sympy.functions import FloorDiv
  from torch.utils._sympy.solve import INEQUALITY_TYPES, mirror_rel_op, try_solve
  from torch.utils._sympy.value_ranges import ValueRangeAnalysis, ValueRanges
  from torch.utils._sympy.reference import ReferenceAnalysis, PythonReferenceAnalysis
  from torch.utils._sympy.interp import sympy_interp
  from torch.utils._sympy.singleton_int import SingletonInt
  from sympy.core.relational import is_ge, is_le, is_gt, is_lt
  import functools
  import torch.fx
label_desc: Use image node_id 11 for calling the TestSympySolve obj's underlying member method code with example usage: obj.test_z3_proof_floordiv_eq_simplify() without return types