diff --git a/hercules_ir/src/dc_normalization.rs b/hercules_ir/src/dc_normalization.rs
index 06c45fea4df90d4691ad24a209504d02e5fb190d..e9f8f23aa7c05d47601c4a88087775ad82257ec0 100644
--- a/hercules_ir/src/dc_normalization.rs
+++ b/hercules_ir/src/dc_normalization.rs
@@ -95,15 +95,16 @@ pub trait DynamicConstantView {
         }
 
         if let Some(const_val) = constant_val {
-            fields.insert(self.add_dynconst(DynamicConstant::Constant(const_val)));
+            // Since dynamic constants are non-negative, ignore the constant if it is 0
+            if const_val != 0 {
+                fields.insert(self.add_dynconst(DynamicConstant::Constant(const_val)));
+            }
         }
 
-        assert!(
-            fields.len() > 0,
-            "Min of 0 dynamic constant expressions is undefined"
-        );
-
-        if fields.len() <= 1 {
+        if fields.len() == 0 {
+            // The minimum of 0 dynamic constants is 0 since dynamic constants are non-negative
+            self.add_dynconst(DynamicConstant::Constant(0))
+        } else if fields.len() <= 1 {
             *fields.first().unwrap()
         } else {
             self.add_dynconst(DynamicConstant::Min(fields.into_iter().collect()))