src/HOL/Word/Word.thy
changeset 44890 22f665a2e91c
parent 44821 a92f65e174cf
child 44938 98e05fc1ce7d
equal deleted inserted replaced
44889:340df9f3491f 44890:22f665a2e91c
   653 lemma word_size_bl: "size w = size (to_bl w)"
   653 lemma word_size_bl: "size w = size (to_bl w)"
   654   unfolding word_size by auto
   654   unfolding word_size by auto
   655 
   655 
   656 lemma to_bl_use_of_bl:
   656 lemma to_bl_use_of_bl:
   657   "(to_bl w = bl) = (w = of_bl bl \<and> length bl = length (to_bl w))"
   657   "(to_bl w = bl) = (w = of_bl bl \<and> length bl = length (to_bl w))"
   658   by (fastsimp elim!: word_bl.Abs_inverse [simplified])
   658   by (fastforce elim!: word_bl.Abs_inverse [simplified])
   659 
   659 
   660 lemma to_bl_word_rev: "to_bl (word_reverse w) = rev (to_bl w)"
   660 lemma to_bl_word_rev: "to_bl (word_reverse w) = rev (to_bl w)"
   661   unfolding word_reverse_def by (simp add: word_bl.Abs_inverse)
   661   unfolding word_reverse_def by (simp add: word_bl.Abs_inverse)
   662 
   662 
   663 lemma word_rev_rev [simp] : "word_reverse (word_reverse w) = w"
   663 lemma word_rev_rev [simp] : "word_reverse (word_reverse w) = w"
  3700     apply (erule test_bit_split [THEN conjunct1])
  3700     apply (erule test_bit_split [THEN conjunct1])
  3701    apply (erule test_bit_split [THEN conjunct2])
  3701    apply (erule test_bit_split [THEN conjunct2])
  3702   apply (case_tac "word_split c")
  3702   apply (case_tac "word_split c")
  3703   apply (frule test_bit_split)
  3703   apply (frule test_bit_split)
  3704   apply (erule trans)
  3704   apply (erule trans)
  3705   apply (fastsimp intro ! : word_eqI simp add : word_size)
  3705   apply (fastforce intro ! : word_eqI simp add : word_size)
  3706   done
  3706   done
  3707 
  3707 
  3708 -- {* this odd result is analogous to @{text "ucast_id"}, 
  3708 -- {* this odd result is analogous to @{text "ucast_id"}, 
  3709       result to the length given by the result type *}
  3709       result to the length given by the result type *}
  3710 
  3710