src/Doc/Implementation/Isar.thy
changeset 60754 02924903a6fd
parent 59498 50b60f501b05
child 61416 b9a3324e4e62
equal deleted inserted replaced
60753:80ca4a065a48 60754:02924903a6fd
   363 begin
   363 begin
   364   fix A B :: bool
   364   fix A B :: bool
   365   assume a: A and b: B
   365   assume a: A and b: B
   366 
   366 
   367   have "A \<and> B"
   367   have "A \<and> B"
   368     apply (tactic \<open>rtac @{thm conjI} 1\<close>)
   368     apply (tactic \<open>resolve_tac @{context} @{thms conjI} 1\<close>)
   369     using a apply (tactic \<open>resolve_tac @{context} facts 1\<close>)
   369     using a apply (tactic \<open>resolve_tac @{context} facts 1\<close>)
   370     using b apply (tactic \<open>resolve_tac @{context} facts 1\<close>)
   370     using b apply (tactic \<open>resolve_tac @{context} facts 1\<close>)
   371     done
   371     done
   372 
   372 
   373   have "A \<and> B"
   373   have "A \<and> B"
   374     using a and b
   374     using a and b
   375     ML_val \<open>@{Isar.goal}\<close>
   375     ML_val \<open>@{Isar.goal}\<close>
   376     apply (tactic \<open>Method.insert_tac facts 1\<close>)
   376     apply (tactic \<open>Method.insert_tac facts 1\<close>)
   377     apply (tactic \<open>(rtac @{thm conjI} THEN_ALL_NEW atac) 1\<close>)
   377     apply (tactic \<open>(resolve_tac @{context} @{thms conjI} THEN_ALL_NEW assume_tac @{context}) 1\<close>)
   378     done
   378     done
   379 end
   379 end
   380 
   380 
   381 text \<open>\medskip The next example implements a method that simplifies
   381 text \<open>\medskip The next example implements a method that simplifies
   382   the first subgoal by rewrite rules that are given as arguments.\<close>
   382   the first subgoal by rewrite rules that are given as arguments.\<close>