src/HOL/Word/Word.thy
changeset 54742 7a86358a3c0b
parent 54489 03ff4d1e6784
child 54743 b9ae4a2f615b
equal deleted inserted replaced
54741:010eefa0a4f3 54742:7a86358a3c0b
  1461       full_simp_tac (uint_arith_simpset ctxt) 1,
  1461       full_simp_tac (uint_arith_simpset ctxt) 1,
  1462       ALLGOALS (full_simp_tac
  1462       ALLGOALS (full_simp_tac
  1463         (put_simpset HOL_ss ctxt
  1463         (put_simpset HOL_ss ctxt
  1464           |> fold Splitter.add_split @{thms uint_splits}
  1464           |> fold Splitter.add_split @{thms uint_splits}
  1465           |> fold Simplifier.add_cong @{thms power_False_cong})),
  1465           |> fold Simplifier.add_cong @{thms power_False_cong})),
  1466       rewrite_goals_tac @{thms word_size}, 
  1466       rewrite_goals_tac ctxt @{thms word_size}, 
  1467       ALLGOALS  (fn n => REPEAT (resolve_tac [allI, impI] n) THEN      
  1467       ALLGOALS  (fn n => REPEAT (resolve_tac [allI, impI] n) THEN      
  1468                          REPEAT (etac conjE n) THEN
  1468                          REPEAT (etac conjE n) THEN
  1469                          REPEAT (dtac @{thm word_of_int_inverse} n 
  1469                          REPEAT (dtac @{thm word_of_int_inverse} n 
  1470                                  THEN atac n 
  1470                                  THEN atac n 
  1471                                  THEN atac n)),
  1471                                  THEN atac n)),
  1962       full_simp_tac (unat_arith_simpset ctxt) 1,
  1962       full_simp_tac (unat_arith_simpset ctxt) 1,
  1963       ALLGOALS (full_simp_tac
  1963       ALLGOALS (full_simp_tac
  1964         (put_simpset HOL_ss ctxt
  1964         (put_simpset HOL_ss ctxt
  1965           |> fold Splitter.add_split @{thms unat_splits}
  1965           |> fold Splitter.add_split @{thms unat_splits}
  1966           |> fold Simplifier.add_cong @{thms power_False_cong})),
  1966           |> fold Simplifier.add_cong @{thms power_False_cong})),
  1967       rewrite_goals_tac @{thms word_size}, 
  1967       rewrite_goals_tac ctxt @{thms word_size}, 
  1968       ALLGOALS  (fn n => REPEAT (resolve_tac [allI, impI] n) THEN      
  1968       ALLGOALS  (fn n => REPEAT (resolve_tac [allI, impI] n) THEN      
  1969                          REPEAT (etac conjE n) THEN
  1969                          REPEAT (etac conjE n) THEN
  1970                          REPEAT (dtac @{thm of_nat_inverse} n THEN atac n)),
  1970                          REPEAT (dtac @{thm of_nat_inverse} n THEN atac n)),
  1971       TRYALL arith_tac' ] 
  1971       TRYALL arith_tac' ] 
  1972   end
  1972   end