WORD_ARITH_ss : ssfrag
- SIMP_CONV (pure_ss++WORD_ARITH_ss) [] ``3w * b + a + 2w * b - a * 4w`` <<HOL message: inventing new type variable names: 'a>> > val it = |- 3w * b + a + 2w * b - a * 4w = $- 3w * a + 5w * b : thm - SIMP_CONV (pure_ss++WORD_ARITH_ss) [] ``INT_MINw + INT_MAXw + UINT_MAXw`` <<HOL message: inventing new type variable names: 'a>> > val it = |- INT_MINw + INT_MAXw + UINT_MAXw = $- 2w : thm
More simplification occurs when the word length is known.
- SIMP_CONV (pure_ss++WORD_ARITH_ss) [] ``3w * b + a + 2w * b - a * 4w:word2`` > val it = |- 3w * b + a + 2w * b - a * 4w = a + b : thm - SIMP_CONV (pure_ss++WORD_ARITH_ss) [] ``w2n (33w:word4)``; > val it = |- w2n 33w = 1 : thm