lean4-htt/src/Lean/Meta
Kyle Miller ac600853c0
fix: let the congr tactic handle "under-applied" applications (#9225)
This PR improves the `congr` tactic so that it can handle function
applications with fewer arguments than the arity of the head function.
This also fixes a bug where `congr` could not make progress with
`Set`-valued functions in Mathlib, since `Set` was being unfolded and
making such functions have an apparently higher arity.

This addresses issue #2128 for the `congr` tactic, but not `simp` and
others.
2025-07-08 11:48:08 +00:00
..
ArgsPacker
Constructions refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Match refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Tactic fix: let the congr tactic handle "under-applied" applications (#9225) 2025-07-08 11:48:08 +00:00
AbstractMVars.lean feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
AbstractNestedProofs.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
ACLt.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
AppBuilder.lean feat: eliminate letFun support, deprecate let_fun syntax (#9086) 2025-06-30 02:10:18 +00:00
ArgsPacker.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Basic.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
BinderNameHint.lean chore: fix spelling mistakes (#7328) 2025-04-07 01:15:48 +00:00
Canonicalizer.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Check.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
CheckTactic.lean
Closure.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
Coe.lean doc: add documentation for builtin attributes (#8173) 2025-06-11 09:04:37 +00:00
CoeAttr.lean
CollectFVars.lean
CollectMVars.lean refactor: migrate all usages of old slice notation (#9000) 2025-06-27 18:52:07 +00:00
CompletionName.lean
CongrTheorems.lean fix: let the congr tactic handle "under-applied" applications (#9225) 2025-07-08 11:48:08 +00:00
Constructions.lean
CtorRecognizer.lean
DecLevel.lean chore: simproc and helper theorems for grind (#9151) 2025-07-02 03:57:12 +00:00
Diagnostics.lean
DiscrTree.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
DiscrTreeTypes.lean
Eqns.lean feat: transform nondependent lets into haves in declarations and equation lemmas (#8373) 2025-06-29 19:45:45 +00:00
Eval.lean refactor: introduce VisibilityMap in Lean.Environment, use it to split base in preparation for private import (#8145) 2025-04-28 10:17:18 +00:00
ExprDefEq.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
ExprLens.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
ExprTraverse.lean
ForEachExpr.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
FunInfo.lean fix: let the congr tactic handle "under-applied" applications (#9225) 2025-07-08 11:48:08 +00:00
GeneralizeTelescope.lean
GeneralizeVars.lean
GetUnfoldableConst.lean fix: unknown identifier ranges (#8362) 2025-05-22 10:05:31 +00:00
GlobalInstances.lean
Hint.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
IndPredBelow.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Inductive.lean
InferType.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Injective.lean refactor: migrate all usages of old slice notation (#9000) 2025-06-27 18:52:07 +00:00
Instances.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
IntInstTesters.lean
Iterator.lean
KAbstract.lean feat: add the nondep field of Expr.letE to the C++ data model (#8751) 2025-06-14 23:10:27 +00:00
KExprMap.lean
LazyDiscrTree.lean refactor: migrate all usages of old slice notation (#9000) 2025-06-27 18:52:07 +00:00
LetToHave.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
LevelDefEq.lean
LitValues.lean chore: remove prime from Fin.ofNat' (#8515) 2025-05-28 11:51:00 +00:00
Match.lean
MatchUtil.lean
NatInstTesters.lean feat: Nat divisibility constraints in cutsat (#7495) 2025-03-15 03:46:47 +00:00
Offset.lean
Order.lean chore: fix spelling mistakes (#8324) 2025-05-14 06:52:16 +00:00
PPGoal.lean feat: use nondep flag in Expr.letE and LocalContext.ldecl (#8804) 2025-06-22 21:54:57 +00:00
PProdN.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
RecursorInfo.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Reduce.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
ReduceEval.lean
SizeOf.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Sorry.lean
Structure.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
SynthInstance.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00
Tactic.lean feat: extract_lets and lift_lets tactics (#6432) 2025-04-21 08:57:01 +00:00
Transform.lean fix: exposed wellfounded recursion (#9173) 2025-07-03 16:48:15 +00:00
TransparencyMode.lean
TryThis.lean chore: fix spelling mistakes (#8324) 2025-05-14 06:52:16 +00:00
UnificationHint.lean
WHNF.lean refactor: migrate to new ranges (#8841) 2025-07-07 12:41:53 +00:00