otrsToAdditiveTrs :: Signature -> [Rule] -> [Rule]
otrsToAdditiveTrs sig rules = zipWith diff rules (inits patterns)
  where patterns = [lhs | Rule lhs _ <- rules]
        diff (Rule lhs rhs) lhss = Rule (complement sig lhs (sum lhss)) rhs
        sum = foldr Plus Bottom
otrsToAdditiveTrs :: Signature -> [Rule] -> [Rule]
otrsToAdditiveTrs sig rules = zipWith diff rules (inits patterns)
  where patterns = [lhs | Rule lhs _ <- rules]
        diff (Rule lhs rhs) lhss = Rule (complement sig lhs (sum lhss)) rhs
        sum = foldr Plus Bottom
otrsToAdditiveTrs sig rules = zipWith diff rules (inits patterns)
  where patterns = [lhs | Rule lhs _ <- rules]
        diff (Rule lhs rhs) lhss = Rule (complement sig lhs (sum lhss)) rhs
        sum = foldr Plus Bottom