equal
deleted
inserted
replaced
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> |