WORD_LOGIC_sswordsLib.WORD_LOGIC_ss : ssfrag
Simplification fragment for words.
The fragment WORD_LOGIC_ss does AC simplification for
word conjunction, disjunction and 1’s complement (negation). If the word
length is known then further simplification occurs, in particular for
~(n2w n).
- SIMP_CONV (pure_ss++WORD_LOGIC_ss) [] “3w !! 12w && a !! ~4w !! a && 16w”
<<HOL message: inventing new type variable names: 'a>>
> val it = |- 3w !! 12w && a !! ~4w !! a && 16w = 28w && a !! $- 5w : thm
More simplification occurs when the word length is known.
- SIMP_CONV (pure_ss++WORD_LOGIC_ss) [] “~12w !! ~14w : word8”
> val it = |- ~12w !! ~14w = 243w : thm
The term $- 1w represents UINT_MAXw, which
is the supremum in bitwise operations.
wordsLib.WORD_LOGIC_CONV,
wordsLib.WORD_CONV,
fcpLib.FCP_ss, wordsLib.BIT_ss, wordsLib.SIZES_ss, wordsLib.WORD_ARITH_ss,
wordsLib.WORD_SHIFT_ss,
wordsLib.WORD_ARITH_EQ_ss,
wordsLib.WORD_BIT_EQ_ss,
wordsLib.WORD_EXTRACT_ss,
wordsLib.WORD_MUL_LSL_ss,
wordsLib.WORD_ss