21 lines
542 B
Text
21 lines
542 B
Text
|
import macros
|
||
|
|
||
|
scope
|
||
|
variable A : Type
|
||
|
variable R : A → A → Bool
|
||
|
axiom Symm {x y : A} : R x y → R y x
|
||
|
axiom Trans {x y z : A} : R x y → R y z → R x z
|
||
|
|
||
|
theorem ReflIf (Linked : ∀ x, ∃ y, R x y) : ∀ x, R x x :=
|
||
|
take x, obtain (w : A) (Hw : R x w), from Linked x,
|
||
|
let lemma1 : R w x := Symm Hw
|
||
|
in Trans Hw lemma1
|
||
|
|
||
|
theorem ReflIf2 (Linked : ∀ x, ∃ y, R x y) : ∀ x, R x x :=
|
||
|
λ x, exists_elim (Linked x)
|
||
|
(λ w Hw,
|
||
|
Trans Hw (Symm Hw))
|
||
|
end
|
||
|
|
||
|
print environment 1
|