2013-12-26 23:54:53 +00:00
|
|
|
(** import("tactic.lua") **)
|
2013-12-01 18:41:05 +00:00
|
|
|
Definition f(a : Bool) : Bool := not a.
|
|
|
|
Definition g(a b : Bool) : Bool := a \/ b.
|
|
|
|
|
|
|
|
Theorem T1 (a b : Bool) : (g a b) => (f b) => a := _.
|
2013-12-26 23:54:53 +00:00
|
|
|
unfold_all
|
|
|
|
apply Discharge
|
|
|
|
apply Discharge
|
|
|
|
disj_hyp
|
|
|
|
exact
|
|
|
|
absurd
|
2013-12-01 18:41:05 +00:00
|
|
|
done.
|
|
|
|
|
|
|
|
(**
|
2013-12-26 23:54:53 +00:00
|
|
|
simple_tac = Repeat(unfold_tac()) .. Repeat(OrElse(imp_tac(), conj_hyp_tac(), assumption_tac(), absurd_tac(), conj_hyp_tac(), disj_hyp_tac()))
|
2013-12-01 18:41:05 +00:00
|
|
|
**)
|
|
|
|
|
|
|
|
Definition h(a b : Bool) : Bool := g a b.
|
|
|
|
|
|
|
|
Theorem T2 (a b : Bool) : (h a b) => (f b) => a := _.
|
2013-12-26 23:54:53 +00:00
|
|
|
simple_tac
|
2013-12-01 18:41:05 +00:00
|
|
|
done.
|
|
|
|
|
|
|
|
Show Environment 1.
|