999f23cbc0
This is the correct fix for the id declaration pretty printing discrepancy reported by Daniel. TODO: decide whether we need another eq-mode where names are ignored. For example, in blast, it makes sense to increase sharing by ignoring binder names.
50 lines
2.7 KiB
Text
50 lines
2.7 KiB
Text
[fixed, fixed, eq, eq]
|
||
λ (A : Type) (s : has_add A) (a a_1 : A) (e_3 : a = a_1) (a_2 a_3 : A) (e_4 : a_2 = a_3), congr (congr_arg add e_3) e_4
|
||
:
|
||
∀ (A : Type) (s : has_add A) (a a_1 : A), a = a_1 → (∀ (a_2 a_3 : A), a_2 = a_3 → a + a_2 = a_1 + a_3)
|
||
[fixed, eq, eq]
|
||
λ (A : Type) (a a_1 : list A) (e_2 : a = a_1) (a_2 a_3 : list A) (e_3 : a_2 = a_3), congr (congr_arg perm e_2) e_3
|
||
:
|
||
∀ (A : Type) (a a_1 : list A), a = a_1 → (∀ (a_2 a_3 : list A), a_2 = a_3 → perm a a_2 = perm a_1 a_3)
|
||
[eq, eq, cast, cast]
|
||
λ (x x_1 : ℕ) (e_1 : x = x_1) (y y_1 : ℕ) (e_2 : y = y_1) (a : p x) (a_1 : p x_1) (a_1 : q x y) (a_2 : q x_1 y_1),
|
||
eq.drec (eq.drec (eq.refl (f x y (eq.rec a (eq.refl x)) (eq.rec (eq.rec a_1 (eq.refl y)) (eq.refl x)))) e_2) e_1
|
||
:
|
||
∀ (x x_1 : ℕ),
|
||
x = x_1 →
|
||
(∀ (y y_1 : ℕ),
|
||
y = y_1 → (∀ (a : p x) (a_1 : p x_1) (a_2 : q x y) (a_3 : q x_1 y_1), f x y a a_2 = f x_1 y_1 a_1 a_3))
|
||
[fixed, eq, eq, cast, cast, cast, cast, cast, cast]
|
||
λ (A : Type) (n n_1 : A) (e_2 : n = n_1) (m m_1 : A) (e_3 : m = m_1) (H₁ : p n) (H₁_1 : p n_1) (H₂ : p m)
|
||
(H₂_1 : p m_1) (H₃ : q n n H₁ H₁) (H₃_1 : q n_1 n_1 H₁_1 H₁_1) (H₄ : q n m H₁ H₂)
|
||
(H₄_1 : q n_1 m_1 H₁_1 H₂_1) (H₅ : r n m H₁ H₂ H₄) (H₅_1 : r n_1 m_1 H₁_1 H₂_1 H₄_1)
|
||
(H₆ : r n n H₁ H₁ H₃) (H₆_1 : r n_1 n_1 H₁_1 H₁_1 H₃_1),
|
||
eq.drec
|
||
(eq.drec
|
||
(eq.refl
|
||
(h A n m (eq.rec H₁ (eq.refl n)) (eq.rec H₂ (eq.refl m)) (eq.drec H₃ (eq.refl n))
|
||
(eq.drec (eq.drec H₄ (eq.refl m)) (eq.refl n))
|
||
(eq.drec (eq.drec H₅ (eq.refl m)) (eq.refl n))
|
||
(eq.drec H₆ (eq.refl n))))
|
||
e_3)
|
||
e_2
|
||
:
|
||
∀ (A : Type) (n n_1 : A),
|
||
n = n_1 →
|
||
(∀ (m m_1 : A),
|
||
m = m_1 →
|
||
(∀ (H₁ : p n) (H₁_1 : p n_1) (H₂ : p m) (H₂_1 : p m_1) (H₃ : q n n H₁ H₁)
|
||
(H₃_1 : q n_1 n_1 H₁_1 H₁_1) (H₄ : q n m H₁ H₂) (H₄_1 : q n_1 m_1 H₁_1 H₂_1)
|
||
(H₅ : r n m H₁ H₂ H₄) (H₅_1 : r n_1 m_1 H₁_1 H₂_1 H₄_1) (H₆ : r n n H₁ H₁ H₃)
|
||
(H₆_1 : r n_1 n_1 H₁_1 H₁_1 H₃_1),
|
||
h A n m H₁ H₂ H₃ H₄ H₅ H₆ = h A n_1 m_1 H₁_1 H₂_1 H₃_1 H₄_1 H₅_1 H₆_1))
|
||
[eq, cast, fixed, eq, eq]
|
||
λ (c c_1 : Prop) (e_1 : c = c_1) (H : decidable c) (H_1 : decidable c_1) (A : Type) (t t_1 : A) (e_4 : t = t_1)
|
||
(e e_2 : A) (e_5 : e = e_2),
|
||
eq.trans (eq.drec (eq.drec (eq.drec (eq.refl (ite c t e)) e_5) e_4) e_1)
|
||
(congr_fun (congr_fun (congr_fun (congr (eq.refl (ite c_1)) (subsingleton.elim (eq.rec H e_1) H_1)) A) t_1) e_2)
|
||
:
|
||
∀ (c c_1 : Prop),
|
||
c = c_1 →
|
||
(∀ (H : decidable c) (H_1 : decidable c_1) (A : Type) (t t_1 : A),
|
||
t = t_1 → (∀ (e e_1 : A), e = e_1 → ite c t e = ite c_1 t_1 e_1))
|