2014-01-05 10:32:47 -08:00
|
|
|
(* import("tactic.lua") *)
|
2014-01-05 12:05:08 -08:00
|
|
|
definition f(a : Bool) : Bool := not a.
|
|
|
|
definition g(a b : Bool) : Bool := a \/ b.
|
2013-12-01 10:41:05 -08:00
|
|
|
|
2014-01-08 00:38:39 -08:00
|
|
|
theorem T1 (a b : Bool) : (g a b) → (f b) → a := _.
|
2013-12-26 15:54:53 -08:00
|
|
|
unfold_all
|
|
|
|
disj_hyp
|
|
|
|
exact
|
|
|
|
absurd
|
2013-12-01 10:41:05 -08:00
|
|
|
done.
|
|
|
|
|
2014-01-05 10:32:47 -08:00
|
|
|
(*
|
2014-01-08 00:38:39 -08:00
|
|
|
simple_tac = Repeat(unfold_tac()) .. Repeat(OrElse(conj_hyp_tac(), assumption_tac(), absurd_tac(), conj_hyp_tac(), disj_hyp_tac()))
|
2014-01-05 10:32:47 -08:00
|
|
|
*)
|
2013-12-01 10:41:05 -08:00
|
|
|
|
2014-01-05 12:05:08 -08:00
|
|
|
definition h(a b : Bool) : Bool := g a b.
|
2013-12-01 10:41:05 -08:00
|
|
|
|
2014-01-08 00:38:39 -08:00
|
|
|
theorem T2 (a b : Bool) : (h a b) → (f b) → a := _.
|
2013-12-26 15:54:53 -08:00
|
|
|
simple_tac
|
2013-12-01 10:41:05 -08:00
|
|
|
done.
|
|
|
|
|
2014-01-05 12:05:08 -08:00
|
|
|
print environment 1.
|