2014-01-05 20:05:08 +00:00
|
|
|
import Int.
|
|
|
|
variable P : Int -> Int -> Bool
|
2014-01-01 19:35:21 +00:00
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
theorem T1 (R1 : not (exists x y, P x y)) : forall x y, not (P x y) :=
|
2014-01-08 08:38:39 +00:00
|
|
|
fun a b,
|
2014-01-09 16:33:52 +00:00
|
|
|
(not_exists_elim (not_exists_elim R1 a)) b
|
2014-01-01 19:35:21 +00:00
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
axiom Ax : forall x, exists y, P x y
|
2014-01-01 19:35:21 +00:00
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
theorem T2 : exists x y, P x y :=
|
2014-02-12 16:49:19 +00:00
|
|
|
by_contradiction (fun R : not (exists x y, P x y),
|
2014-01-08 08:38:39 +00:00
|
|
|
let L1 : forall x y, not (P x y) := fun a b,
|
2014-01-09 16:33:52 +00:00
|
|
|
(not_exists_elim ((not_exists_elim R) a)) b,
|
2014-01-08 08:38:39 +00:00
|
|
|
L2 : exists y, P 0 y := Ax 0
|
2014-01-09 16:33:52 +00:00
|
|
|
in exists_elim L2 (fun (w : Int) (H : P 0 w),
|
2014-01-08 08:38:39 +00:00
|
|
|
absurd H (L1 0 w))).
|
2014-01-01 19:35:21 +00:00
|
|
|
|
2014-01-05 20:05:08 +00:00
|
|
|
theorem T3 (A : (Type U)) (P : A -> A -> Bool) (a : A) (H1 : forall x, exists y, P x y) : exists x y, P x y :=
|
2014-02-12 16:49:19 +00:00
|
|
|
by_contradiction (fun R : not (exists x y, P x y),
|
2014-01-08 08:38:39 +00:00
|
|
|
let L1 : forall x y, not (P x y) := fun a b,
|
2014-01-09 16:33:52 +00:00
|
|
|
(not_exists_elim ((not_exists_elim R) a)) b,
|
2014-01-08 08:38:39 +00:00
|
|
|
L2 : exists y, P a y := H1 a
|
2014-01-09 16:33:52 +00:00
|
|
|
in exists_elim L2 (fun (w : A) (H : P a w),
|
2014-01-08 08:38:39 +00:00
|
|
|
absurd H ((L1 a) w))).
|