2014-11-30 05:34:26 +00:00
|
|
|
import logic
|
|
|
|
|
|
|
|
variables {A : Type} {a a' : A}
|
|
|
|
|
2015-02-25 21:58:39 +00:00
|
|
|
definition to_eq₁ (H : a == a') : a = a' :=
|
2014-11-30 05:34:26 +00:00
|
|
|
begin
|
2015-02-25 22:30:42 +00:00
|
|
|
assert H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a,
|
2014-11-30 05:34:26 +00:00
|
|
|
intro Ht,
|
|
|
|
exact (eq.refl (eq.rec_on Ht a)),
|
|
|
|
show a = a', from
|
|
|
|
heq.rec_on H H₁ (eq.refl A)
|
|
|
|
end
|
2015-02-25 21:58:39 +00:00
|
|
|
|
|
|
|
definition to_eq₂ (H : a == a') : a = a' :=
|
|
|
|
begin
|
|
|
|
have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a,
|
|
|
|
begin
|
|
|
|
intro Ht,
|
|
|
|
exact (eq.refl (eq.rec_on Ht a))
|
|
|
|
end,
|
|
|
|
show a = a', from
|
|
|
|
heq.rec_on H H₁ (eq.refl A)
|
|
|
|
end
|
|
|
|
|
|
|
|
definition to_eq₃ (H : a == a') : a = a' :=
|
|
|
|
begin
|
|
|
|
have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a,
|
|
|
|
by intro Ht; exact (eq.refl (eq.rec_on Ht a)),
|
|
|
|
show a = a', from
|
|
|
|
heq.rec_on H H₁ (eq.refl A)
|
|
|
|
end
|
|
|
|
|
|
|
|
definition to_eq₄ (H : a == a') : a = a' :=
|
|
|
|
begin
|
|
|
|
have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a,
|
|
|
|
from assume Ht, eq.refl (eq.rec_on Ht a),
|
|
|
|
show a = a', from
|
|
|
|
heq.rec_on H H₁ (eq.refl A)
|
|
|
|
end
|
|
|
|
|
|
|
|
definition to_eq₅ (H : a == a') : a = a' :=
|
|
|
|
begin
|
|
|
|
have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a,
|
|
|
|
proof
|
|
|
|
λ Ht, eq.refl (eq.rec_on Ht a)
|
|
|
|
qed,
|
|
|
|
show a = a', from
|
|
|
|
heq.rec_on H H₁ (eq.refl A)
|
|
|
|
end
|
|
|
|
|
|
|
|
definition to_eq₆ (H : a == a') : a = a' :=
|
|
|
|
begin
|
|
|
|
have H₁ : ∀ (Ht : A = A), eq.rec_on Ht a = a, from
|
|
|
|
assume Ht,
|
|
|
|
eq.refl (eq.rec_on Ht a),
|
|
|
|
show a = a', from
|
|
|
|
heq.rec_on H H₁ (eq.refl A)
|
|
|
|
end
|