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