2014-01-05 20:05:08 +00:00
|
|
|
import tactic.
|
|
|
|
import Int.
|
2013-12-26 23:54:53 +00:00
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
variable f : Int -> Int -> Bool
|
|
|
|
variable P : Int -> Int -> Bool
|
|
|
|
axiom Ax1 (x y : Int) (H : P x y) : (f x y)
|
|
|
|
theorem T1 (a : Int) : (P a a) => (f a a).
|
2013-12-26 23:54:53 +00:00
|
|
|
apply Discharge.
|
|
|
|
apply Ax1.
|
|
|
|
exact.
|
|
|
|
done.
|
2014-01-05 20:05:08 +00:00
|
|
|
variable b : Int
|
|
|
|
axiom Ax2 (x : Int) : (f x b)
|
2014-01-05 18:32:47 +00:00
|
|
|
(*
|
2013-12-26 23:54:53 +00:00
|
|
|
simple_tac = Repeat(OrElse(imp_tac(), assumption_tac(), apply_tac("Ax2"), apply_tac("Ax1")))
|
2014-01-05 18:32:47 +00:00
|
|
|
*)
|
2014-01-05 20:05:08 +00:00
|
|
|
theorem T2 (a : Int) : (P a a) => (f a a).
|
2013-12-26 23:54:53 +00:00
|
|
|
simple_tac.
|
|
|
|
done.
|
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
theorem T3 (a : Int) : (P a a) => (f a a).
|
2013-12-26 23:54:53 +00:00
|
|
|
Repeat (OrElse (apply Discharge) exact (apply Ax2) (apply Ax1)).
|
|
|
|
done.
|
2013-12-05 11:22:12 +00:00
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
print environment 2.
|