ASM_REWRITE_TAC : thm list -> tactic
   - let val asm = [Term `P x`]
         val goal = Term `P x = Q x`
     in
     ASM_REWRITE_TAC[] (asm, goal)
     end;
   val it = ([([`P x`], `Q x`)], fn) : tactic_result
   - let val asm = [Term `~P x`]
         val goal = Term `P x = Q x`
     in
     ASM_REWRITE_TAC[] (asm, goal)
     end;
   val it = ([([`~P x`], `~Q x`)], fn) : tactic_result