diff --git a/pymbolic/interop/matchpy/__init__.py b/pymbolic/interop/matchpy/__init__.py
index e355695329e8429c0e32e2f10804a3b7aa8b8408..b506df90bdf62670f73f63e1eefc10d6e0599476 100644
--- a/pymbolic/interop/matchpy/__init__.py
+++ b/pymbolic/interop/matchpy/__init__.py
@@ -124,6 +124,10 @@ class PymbolicOp(abc.ABC, Operation):
     """
     unpacked_args_to_init: ClassVar[bool] = True
 
+    @abc.abstractproperty
+    def variable_name(self):
+        pass
+
     @property
     def operands(self) -> Tuple[Expression]:
         return tuple(getattr(self, field.name)