src/HOL/Word/Word.thy
changeset 60754 02924903a6fd
parent 60429 d3d1e185cd63
child 61076 bdc1e2f0a86a
equal deleted inserted replaced
60753:80ca4a065a48 60754:02924903a6fd
  1560         (put_simpset HOL_ss ctxt
  1560         (put_simpset HOL_ss ctxt
  1561           |> fold Splitter.add_split @{thms uint_splits}
  1561           |> fold Splitter.add_split @{thms uint_splits}
  1562           |> fold Simplifier.add_cong @{thms power_False_cong})),
  1562           |> fold Simplifier.add_cong @{thms power_False_cong})),
  1563       rewrite_goals_tac ctxt @{thms word_size}, 
  1563       rewrite_goals_tac ctxt @{thms word_size}, 
  1564       ALLGOALS  (fn n => REPEAT (resolve_tac ctxt [allI, impI] n) THEN
  1564       ALLGOALS  (fn n => REPEAT (resolve_tac ctxt [allI, impI] n) THEN
  1565                          REPEAT (etac conjE n) THEN
  1565                          REPEAT (eresolve_tac ctxt [conjE] n) THEN
  1566                          REPEAT (dtac @{thm word_of_int_inverse} n 
  1566                          REPEAT (dresolve_tac ctxt @{thms word_of_int_inverse} n 
  1567                                  THEN assume_tac ctxt n 
  1567                                  THEN assume_tac ctxt n 
  1568                                  THEN assume_tac ctxt n)),
  1568                                  THEN assume_tac ctxt n)),
  1569       TRYALL arith_tac' ]
  1569       TRYALL arith_tac' ]
  1570   end
  1570   end
  1571 
  1571 
  2061       ALLGOALS (full_simp_tac
  2061       ALLGOALS (full_simp_tac
  2062         (put_simpset HOL_ss ctxt
  2062         (put_simpset HOL_ss ctxt
  2063           |> fold Splitter.add_split @{thms unat_splits}
  2063           |> fold Splitter.add_split @{thms unat_splits}
  2064           |> fold Simplifier.add_cong @{thms power_False_cong})),
  2064           |> fold Simplifier.add_cong @{thms power_False_cong})),
  2065       rewrite_goals_tac ctxt @{thms word_size}, 
  2065       rewrite_goals_tac ctxt @{thms word_size}, 
  2066       ALLGOALS  (fn n => REPEAT (resolve_tac ctxt [allI, impI] n) THEN      
  2066       ALLGOALS (fn n => REPEAT (resolve_tac ctxt [allI, impI] n) THEN
  2067                          REPEAT (etac conjE n) THEN
  2067                          REPEAT (eresolve_tac ctxt [conjE] n) THEN
  2068                          REPEAT (dtac @{thm of_nat_inverse} n THEN atac n)),
  2068                          REPEAT (dresolve_tac ctxt @{thms of_nat_inverse} n THEN assume_tac ctxt n)),
  2069       TRYALL arith_tac' ] 
  2069       TRYALL arith_tac' ] 
  2070   end
  2070   end
  2071 
  2071 
  2072 fun unat_arith_tac ctxt = SELECT_GOAL (EVERY (unat_arith_tacs ctxt))
  2072 fun unat_arith_tac ctxt = SELECT_GOAL (EVERY (unat_arith_tacs ctxt))
  2073 *}
  2073 *}