| (mkbag(A, # A) -- A[m + 1]) ++ a = mkbag(A0, # A0), m + 1 < # A, m < # A ⊦ (mkbag(A, # A) -- A[m] -- A[m + 1]) ++ a ++ A[m] = (mkbag(A, # A) -- A[m + 1]) ++ a, a = A[m + 1] |
(mkbag(A, # A) -- A[m + 1]) ++ a = mkbag(A0, # A0), m < # A, m + 1 < # A ⊦ (mkbag(A, # A) -- A[m] -- A[m + 1]) ++ A[m] = mkbag(A, # A) -- A[m + 1], a = A[m + 1]
Used simplifier rules: ⊦ bag0 ++ a ++ b = bag1 ++ a ↔ bag0 ++ b = bag1; (ss)