# Documentation

Lean.Meta.Tactic.Congr

Preprocessor before applying congruence theorem. Tries to close new goals using Eq.refl, HEq.refl, and assumption. It also tries to apply heq_of_eq.

Equations
• One or more equations did not get rendered due to their size.

Try to apply a simp congruence theorem.

Equations
• One or more equations did not get rendered due to their size.

Try to apply a hcongr congruence theorem, and then tries to close resulting goals using Eq.refl, HEq.refl, and assumption.

Equations
• One or more equations did not get rendered due to their size.

Try to apply implies_congr.

Equations
• One or more equations did not get rendered due to their size.

Given a goal of the form ⊢ f as = f bs, ⊢ (p → q) = (p' → q'), or ⊢ HEq (f as) (f bs), try to apply congruence. It takes proof irrelevance into account, and the fact that Decidable p is a subsingleton.

Equations
• One or more equations did not get rendered due to their size.
def Lean.MVarId.congrN (mvarId : Lean.MVarId) (depth : optParam Nat 1000000) (closePre : ) (closePost : ) :

Given a goal of the form ⊢ f as = f bs, ⊢ (p → q) = (p' → q'), or ⊢ HEq (f as) (f bs), try to apply congruence. It takes proof irrelevance into account, and the fact that Decidable p is a subsingleton.

• Applies congr recursively up to depth depth.
• If closePre := true, it will attempt to close new goals using Eq.refl, HEq.refl, and assumption with reducible transparency.
• If closePost := true, it will try again on goals on which congr failed to make progress with default transparency.
Equations
• One or more equations did not get rendered due to their size.
def Lean.MVarId.congrN.post (closePost : ) (mvarId : Lean.MVarId) :
Equations
• One or more equations did not get rendered due to their size.
def Lean.MVarId.congrN.go (closePre : ) (closePost : ) (n : Nat) (mvarId : Lean.MVarId) :
Equations
• One or more equations did not get rendered due to their size.