equal
deleted
inserted
replaced
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 |