838 w_T_primdef: "w_T == mk_word32 (EQUIV COMP0)" |
837 w_T_primdef: "w_T == mk_word32 (EQUIV COMP0)" |
839 |
838 |
840 lemma w_T_def: "w_T = mk_word32 (EQUIV COMP0)" |
839 lemma w_T_def: "w_T = mk_word32 (EQUIV COMP0)" |
841 by (import word32 w_T_def) |
840 by (import word32 w_T_def) |
842 |
841 |
843 constdefs |
842 definition word_suc :: "word32 => word32" where |
844 word_suc :: "word32 => word32" |
|
845 "word_suc == %T1::word32. mk_word32 (EQUIV (Suc (Eps (dest_word32 T1))))" |
843 "word_suc == %T1::word32. mk_word32 (EQUIV (Suc (Eps (dest_word32 T1))))" |
846 |
844 |
847 lemma word_suc: "ALL T1::word32. word_suc T1 = mk_word32 (EQUIV (Suc (Eps (dest_word32 T1))))" |
845 lemma word_suc: "ALL T1::word32. word_suc T1 = mk_word32 (EQUIV (Suc (Eps (dest_word32 T1))))" |
848 by (import word32 word_suc) |
846 by (import word32 word_suc) |
849 |
847 |
850 constdefs |
848 definition word_add :: "word32 => word32 => word32" where |
851 word_add :: "word32 => word32 => word32" |
|
852 "word_add == |
849 "word_add == |
853 %(T1::word32) T2::word32. |
850 %(T1::word32) T2::word32. |
854 mk_word32 (EQUIV (Eps (dest_word32 T1) + Eps (dest_word32 T2)))" |
851 mk_word32 (EQUIV (Eps (dest_word32 T1) + Eps (dest_word32 T2)))" |
855 |
852 |
856 lemma word_add: "ALL (T1::word32) T2::word32. |
853 lemma word_add: "ALL (T1::word32) T2::word32. |
857 word_add T1 T2 = |
854 word_add T1 T2 = |
858 mk_word32 (EQUIV (Eps (dest_word32 T1) + Eps (dest_word32 T2)))" |
855 mk_word32 (EQUIV (Eps (dest_word32 T1) + Eps (dest_word32 T2)))" |
859 by (import word32 word_add) |
856 by (import word32 word_add) |
860 |
857 |
861 constdefs |
858 definition word_mul :: "word32 => word32 => word32" where |
862 word_mul :: "word32 => word32 => word32" |
|
863 "word_mul == |
859 "word_mul == |
864 %(T1::word32) T2::word32. |
860 %(T1::word32) T2::word32. |
865 mk_word32 (EQUIV (Eps (dest_word32 T1) * Eps (dest_word32 T2)))" |
861 mk_word32 (EQUIV (Eps (dest_word32 T1) * Eps (dest_word32 T2)))" |
866 |
862 |
867 lemma word_mul: "ALL (T1::word32) T2::word32. |
863 lemma word_mul: "ALL (T1::word32) T2::word32. |
868 word_mul T1 T2 = |
864 word_mul T1 T2 = |
869 mk_word32 (EQUIV (Eps (dest_word32 T1) * Eps (dest_word32 T2)))" |
865 mk_word32 (EQUIV (Eps (dest_word32 T1) * Eps (dest_word32 T2)))" |
870 by (import word32 word_mul) |
866 by (import word32 word_mul) |
871 |
867 |
872 constdefs |
868 definition word_1comp :: "word32 => word32" where |
873 word_1comp :: "word32 => word32" |
|
874 "word_1comp == |
869 "word_1comp == |
875 %T1::word32. mk_word32 (EQUIV (ONE_COMP (Eps (dest_word32 T1))))" |
870 %T1::word32. mk_word32 (EQUIV (ONE_COMP (Eps (dest_word32 T1))))" |
876 |
871 |
877 lemma word_1comp: "ALL T1::word32. |
872 lemma word_1comp: "ALL T1::word32. |
878 word_1comp T1 = mk_word32 (EQUIV (ONE_COMP (Eps (dest_word32 T1))))" |
873 word_1comp T1 = mk_word32 (EQUIV (ONE_COMP (Eps (dest_word32 T1))))" |
879 by (import word32 word_1comp) |
874 by (import word32 word_1comp) |
880 |
875 |
881 constdefs |
876 definition word_2comp :: "word32 => word32" where |
882 word_2comp :: "word32 => word32" |
|
883 "word_2comp == |
877 "word_2comp == |
884 %T1::word32. mk_word32 (EQUIV (TWO_COMP (Eps (dest_word32 T1))))" |
878 %T1::word32. mk_word32 (EQUIV (TWO_COMP (Eps (dest_word32 T1))))" |
885 |
879 |
886 lemma word_2comp: "ALL T1::word32. |
880 lemma word_2comp: "ALL T1::word32. |
887 word_2comp T1 = mk_word32 (EQUIV (TWO_COMP (Eps (dest_word32 T1))))" |
881 word_2comp T1 = mk_word32 (EQUIV (TWO_COMP (Eps (dest_word32 T1))))" |
888 by (import word32 word_2comp) |
882 by (import word32 word_2comp) |
889 |
883 |
890 constdefs |
884 definition word_lsr1 :: "word32 => word32" where |
891 word_lsr1 :: "word32 => word32" |
|
892 "word_lsr1 == %T1::word32. mk_word32 (EQUIV (LSR_ONE (Eps (dest_word32 T1))))" |
885 "word_lsr1 == %T1::word32. mk_word32 (EQUIV (LSR_ONE (Eps (dest_word32 T1))))" |
893 |
886 |
894 lemma word_lsr1: "ALL T1::word32. |
887 lemma word_lsr1: "ALL T1::word32. |
895 word_lsr1 T1 = mk_word32 (EQUIV (LSR_ONE (Eps (dest_word32 T1))))" |
888 word_lsr1 T1 = mk_word32 (EQUIV (LSR_ONE (Eps (dest_word32 T1))))" |
896 by (import word32 word_lsr1) |
889 by (import word32 word_lsr1) |
897 |
890 |
898 constdefs |
891 definition word_asr1 :: "word32 => word32" where |
899 word_asr1 :: "word32 => word32" |
|
900 "word_asr1 == %T1::word32. mk_word32 (EQUIV (ASR_ONE (Eps (dest_word32 T1))))" |
892 "word_asr1 == %T1::word32. mk_word32 (EQUIV (ASR_ONE (Eps (dest_word32 T1))))" |
901 |
893 |
902 lemma word_asr1: "ALL T1::word32. |
894 lemma word_asr1: "ALL T1::word32. |
903 word_asr1 T1 = mk_word32 (EQUIV (ASR_ONE (Eps (dest_word32 T1))))" |
895 word_asr1 T1 = mk_word32 (EQUIV (ASR_ONE (Eps (dest_word32 T1))))" |
904 by (import word32 word_asr1) |
896 by (import word32 word_asr1) |
905 |
897 |
906 constdefs |
898 definition word_ror1 :: "word32 => word32" where |
907 word_ror1 :: "word32 => word32" |
|
908 "word_ror1 == %T1::word32. mk_word32 (EQUIV (ROR_ONE (Eps (dest_word32 T1))))" |
899 "word_ror1 == %T1::word32. mk_word32 (EQUIV (ROR_ONE (Eps (dest_word32 T1))))" |
909 |
900 |
910 lemma word_ror1: "ALL T1::word32. |
901 lemma word_ror1: "ALL T1::word32. |
911 word_ror1 T1 = mk_word32 (EQUIV (ROR_ONE (Eps (dest_word32 T1))))" |
902 word_ror1 T1 = mk_word32 (EQUIV (ROR_ONE (Eps (dest_word32 T1))))" |
912 by (import word32 word_ror1) |
903 by (import word32 word_ror1) |
938 MSB_primdef: "MSB == %T1::word32. MSBn (Eps (dest_word32 T1))" |
929 MSB_primdef: "MSB == %T1::word32. MSBn (Eps (dest_word32 T1))" |
939 |
930 |
940 lemma MSB_def: "ALL T1::word32. MSB T1 = MSBn (Eps (dest_word32 T1))" |
931 lemma MSB_def: "ALL T1::word32. MSB T1 = MSBn (Eps (dest_word32 T1))" |
941 by (import word32 MSB_def) |
932 by (import word32 MSB_def) |
942 |
933 |
943 constdefs |
934 definition bitwise_or :: "word32 => word32 => word32" where |
944 bitwise_or :: "word32 => word32 => word32" |
|
945 "bitwise_or == |
935 "bitwise_or == |
946 %(T1::word32) T2::word32. |
936 %(T1::word32) T2::word32. |
947 mk_word32 (EQUIV (OR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
937 mk_word32 (EQUIV (OR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
948 |
938 |
949 lemma bitwise_or: "ALL (T1::word32) T2::word32. |
939 lemma bitwise_or: "ALL (T1::word32) T2::word32. |
950 bitwise_or T1 T2 = |
940 bitwise_or T1 T2 = |
951 mk_word32 (EQUIV (OR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
941 mk_word32 (EQUIV (OR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
952 by (import word32 bitwise_or) |
942 by (import word32 bitwise_or) |
953 |
943 |
954 constdefs |
944 definition bitwise_eor :: "word32 => word32 => word32" where |
955 bitwise_eor :: "word32 => word32 => word32" |
|
956 "bitwise_eor == |
945 "bitwise_eor == |
957 %(T1::word32) T2::word32. |
946 %(T1::word32) T2::word32. |
958 mk_word32 (EQUIV (EOR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
947 mk_word32 (EQUIV (EOR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
959 |
948 |
960 lemma bitwise_eor: "ALL (T1::word32) T2::word32. |
949 lemma bitwise_eor: "ALL (T1::word32) T2::word32. |
961 bitwise_eor T1 T2 = |
950 bitwise_eor T1 T2 = |
962 mk_word32 (EQUIV (EOR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
951 mk_word32 (EQUIV (EOR (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
963 by (import word32 bitwise_eor) |
952 by (import word32 bitwise_eor) |
964 |
953 |
965 constdefs |
954 definition bitwise_and :: "word32 => word32 => word32" where |
966 bitwise_and :: "word32 => word32 => word32" |
|
967 "bitwise_and == |
955 "bitwise_and == |
968 %(T1::word32) T2::word32. |
956 %(T1::word32) T2::word32. |
969 mk_word32 (EQUIV (AND (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
957 mk_word32 (EQUIV (AND (Eps (dest_word32 T1)) (Eps (dest_word32 T2))))" |
970 |
958 |
971 lemma bitwise_and: "ALL (T1::word32) T2::word32. |
959 lemma bitwise_and: "ALL (T1::word32) T2::word32. |
1152 by (import word32 ADD_TWO_COMP) |
1140 by (import word32 ADD_TWO_COMP) |
1153 |
1141 |
1154 lemma ADD_TWO_COMP2: "ALL x::word32. word_add (word_2comp x) x = w_0" |
1142 lemma ADD_TWO_COMP2: "ALL x::word32. word_add (word_2comp x) x = w_0" |
1155 by (import word32 ADD_TWO_COMP2) |
1143 by (import word32 ADD_TWO_COMP2) |
1156 |
1144 |
1157 constdefs |
1145 definition word_sub :: "word32 => word32 => word32" where |
1158 word_sub :: "word32 => word32 => word32" |
|
1159 "word_sub == %(a::word32) b::word32. word_add a (word_2comp b)" |
1146 "word_sub == %(a::word32) b::word32. word_add a (word_2comp b)" |
1160 |
1147 |
1161 lemma word_sub: "ALL (a::word32) b::word32. word_sub a b = word_add a (word_2comp b)" |
1148 lemma word_sub: "ALL (a::word32) b::word32. word_sub a b = word_add a (word_2comp b)" |
1162 by (import word32 word_sub) |
1149 by (import word32 word_sub) |
1163 |
1150 |
1164 constdefs |
1151 definition word_lsl :: "word32 => nat => word32" where |
1165 word_lsl :: "word32 => nat => word32" |
|
1166 "word_lsl == %(a::word32) n::nat. word_mul a (n2w (2 ^ n))" |
1152 "word_lsl == %(a::word32) n::nat. word_mul a (n2w (2 ^ n))" |
1167 |
1153 |
1168 lemma word_lsl: "ALL (a::word32) n::nat. word_lsl a n = word_mul a (n2w (2 ^ n))" |
1154 lemma word_lsl: "ALL (a::word32) n::nat. word_lsl a n = word_mul a (n2w (2 ^ n))" |
1169 by (import word32 word_lsl) |
1155 by (import word32 word_lsl) |
1170 |
1156 |
1171 constdefs |
1157 definition word_lsr :: "word32 => nat => word32" where |
1172 word_lsr :: "word32 => nat => word32" |
|
1173 "word_lsr == %(a::word32) n::nat. (word_lsr1 ^^ n) a" |
1158 "word_lsr == %(a::word32) n::nat. (word_lsr1 ^^ n) a" |
1174 |
1159 |
1175 lemma word_lsr: "ALL (a::word32) n::nat. word_lsr a n = (word_lsr1 ^^ n) a" |
1160 lemma word_lsr: "ALL (a::word32) n::nat. word_lsr a n = (word_lsr1 ^^ n) a" |
1176 by (import word32 word_lsr) |
1161 by (import word32 word_lsr) |
1177 |
1162 |
1178 constdefs |
1163 definition word_asr :: "word32 => nat => word32" where |
1179 word_asr :: "word32 => nat => word32" |
|
1180 "word_asr == %(a::word32) n::nat. (word_asr1 ^^ n) a" |
1164 "word_asr == %(a::word32) n::nat. (word_asr1 ^^ n) a" |
1181 |
1165 |
1182 lemma word_asr: "ALL (a::word32) n::nat. word_asr a n = (word_asr1 ^^ n) a" |
1166 lemma word_asr: "ALL (a::word32) n::nat. word_asr a n = (word_asr1 ^^ n) a" |
1183 by (import word32 word_asr) |
1167 by (import word32 word_asr) |
1184 |
1168 |
1185 constdefs |
1169 definition word_ror :: "word32 => nat => word32" where |
1186 word_ror :: "word32 => nat => word32" |
|
1187 "word_ror == %(a::word32) n::nat. (word_ror1 ^^ n) a" |
1170 "word_ror == %(a::word32) n::nat. (word_ror1 ^^ n) a" |
1188 |
1171 |
1189 lemma word_ror: "ALL (a::word32) n::nat. word_ror a n = (word_ror1 ^^ n) a" |
1172 lemma word_ror: "ALL (a::word32) n::nat. word_ror a n = (word_ror1 ^^ n) a" |
1190 by (import word32 word_ror) |
1173 by (import word32 word_ror) |
1191 |
1174 |