diff --git a/src/language/node_processor/AffectationProcessor.hpp b/src/language/node_processor/AffectationProcessor.hpp
index 1675793a66009eb04246334d7218dd98b2d95c21..c58ea1670440107fadf2d350aaa75b76ae0de29f 100644
--- a/src/language/node_processor/AffectationProcessor.hpp
+++ b/src/language/node_processor/AffectationProcessor.hpp
@@ -423,6 +423,9 @@ class AffectationToTupleProcessor final : public INodeProcessor
           }
         } else if constexpr (std::is_same_v<ValueT, TinyVector<1>> and std::is_arithmetic_v<T>) {
           *m_lhs = std::vector{TinyVector<1>{static_cast<double>(v)}};
+        } else if constexpr (is_tiny_vector_v<ValueT> and std::is_same_v<T, int64_t>) {
+          Assert(v == 0);
+          *m_lhs = std::vector<ValueT>{zero};
         } else {
           // LCOV_EXCL_START
           throw ParseError("unexpected error: unexpected right hand side type in affectation", m_node.begin());
diff --git a/tests/test_ASTBuilder.cpp b/tests/test_ASTBuilder.cpp
index 2399a78617d6a6f30774fbc70be735d5850967d3..7353fa9a46d6d08542c62d4bee89299c930fc5a1 100644
--- a/tests/test_ASTBuilder.cpp
+++ b/tests/test_ASTBuilder.cpp
@@ -620,6 +620,41 @@ clog << "log " << l << "\n";
      +-(language::literal:"log ")
      +-(language::name:l)
      `-(language::literal:"\n")
+)";
+      CHECK_AST(data, result);
+    }
+
+    SECTION("tuple list simplification")
+    {
+      std::string_view data = R"(
+let x:(R^2), x=((0,0),(2,3));
+let y:(R^2), y=((0));
+)";
+
+      std::string_view result = R"(
+(root)
+ +-(language::var_declaration)
+ |   +-(language::name:x)
+ |   +-(language::tuple_type_specifier)
+ |   |   `-(language::vector_type)
+ |   |       +-(language::R_set)
+ |   |       `-(language::integer:2)
+ |   +-(language::name:x)
+ |   `-(language::expression_list)
+ |       +-(language::tuple_expression)
+ |       |   +-(language::integer:0)
+ |       |   `-(language::integer:0)
+ |       `-(language::tuple_expression)
+ |           +-(language::integer:2)
+ |           `-(language::integer:3)
+ `-(language::var_declaration)
+     +-(language::name:y)
+     +-(language::tuple_type_specifier)
+     |   `-(language::vector_type)
+     |       +-(language::R_set)
+     |       `-(language::integer:2)
+     +-(language::name:y)
+     `-(language::integer:0)
 )";
       CHECK_AST(data, result);
     }
diff --git a/tests/test_AffectationToTupleProcessor.cpp b/tests/test_AffectationToTupleProcessor.cpp
index b778fdeaefa7eb9822694844c70eebf1327d87e2..bb7f8a29901f630f80760e92fc026a4765ba755b 100644
--- a/tests/test_AffectationToTupleProcessor.cpp
+++ b/tests/test_AffectationToTupleProcessor.cpp
@@ -122,6 +122,11 @@ let t :(R^2); t = ((1,2),0);
 )",
                              "t", (std::vector<TinyVector<2>>{TinyVector<2>{1, 2}, TinyVector<2>{0, 0}}));
 
+    CHECK_AFFECTATION_RESULT(R"(
+let t :(R^2); t = (0);
+)",
+                             "t", (std::vector<TinyVector<2>>{TinyVector<2>{0, 0}}));
+
     CHECK_AFFECTATION_RESULT(R"(
 let x : R^1, x = 1;
 let t :(R^1); t = (x,2);