theorem
implies_congr
{p₁ : Sort u}
{p₂ : Sort u}
{q₁ : Sort v}
{q₂ : Sort v}
(h₁ : p₁ = p₂)
(h₂ : q₁ = q₂)
:
(p₁ → q₁) = (p₂ → q₂)
theorem
implies_congr_ctx
{p₁ : Prop}
{p₂ : Prop}
{q₁ : Prop}
{q₂ : Prop}
(h₁ : p₁ = p₂)
(h₂ : p₂ → q₁ = q₂)
:
(p₁ → q₁) = (p₂ → q₂)
theorem
implies_dep_congr_ctx
{p₁ : Prop}
{p₂ : Prop}
{q₁ : Prop}
(h₁ : p₁ = p₂)
{q₂ : p₂ → Prop}
(h₂ : ∀ (h : p₂), q₁ = q₂ h)
:
(p₁ → q₁) = ((h : p₂) → q₂ h)
theorem
forall_congr
{α : Sort u}
{p : α → Prop}
{q : α → Prop}
(h : ∀ (a : α), p a = q a)
:
((a : α) → p a) = ((a : α) → q a)
theorem
let_val_congr
{α : Sort u}
{β : Sort v}
{a : α}
{a' : α}
(b : α → β)
(h : a = a')
:
(let x := a;
b x) = let x := a';
b x
theorem
let_body_congr
{α : Sort u}
{β : α → Sort v}
{b : (a : α) → β a}
{b' : (a : α) → β a}
(a : α)
(h : ∀ (x : α), b x = b' x)
:
(let x := a;
b x) = let x := a;
b' x
@[simp]