2014-08-25 02:58:48 +00:00
|
|
|
|
import logic
|
2014-09-03 23:00:38 +00:00
|
|
|
|
open tactic
|
2014-07-03 03:45:10 +00:00
|
|
|
|
|
2015-04-28 00:46:13 +00:00
|
|
|
|
notation `(` h `|` r:(foldl `|` (e r, tactic.or_else r e) h) `)` := r
|
|
|
|
|
|
2014-07-03 03:45:10 +00:00
|
|
|
|
definition basic_tac : tactic
|
2015-04-06 16:24:09 +00:00
|
|
|
|
:= repeat (apply @and.intro | assumption)
|
2014-07-03 03:45:10 +00:00
|
|
|
|
|
2014-08-21 17:36:44 +00:00
|
|
|
|
set_begin_end_tactic basic_tac -- basic_tac is automatically applied to each element of a proof-qed block
|
2014-07-03 03:45:10 +00:00
|
|
|
|
|
2014-07-22 16:43:18 +00:00
|
|
|
|
theorem tst (a b : Prop) (H : ¬ a ∨ ¬ b) (Hb : b) : ¬ a ∧ b :=
|
2014-08-21 17:36:44 +00:00
|
|
|
|
begin
|
2014-09-05 04:25:21 +00:00
|
|
|
|
assume Ha, or.elim H
|
2014-08-28 01:34:09 +00:00
|
|
|
|
(assume Hna, @absurd _ false Ha Hna)
|
2015-05-03 00:32:03 +00:00
|
|
|
|
(assume Hnb, @absurd _ false Hb Hnb),
|
|
|
|
|
now
|
2014-08-28 01:34:09 +00:00
|
|
|
|
end
|