This PR reverts #12000, which introduced a regression where `simp` incorrectly rejects valid rewrites for perm lemmas. The issue is that `NameGenerator.mkChild` creates names that don't maintain the ordering assumption used by `acLt` for perm lemma decisions. For example, after the change: - Child generator creates names like `_uniq.102.2` - Parent continues with `_uniq.7` - But `Name.lt (.num (.num `_uniq 102) 2) (.num `_uniq 7)` is true This causes fvars created later (in async tasks) to compare as smaller than fvars created earlier, breaking the assumption that later fvars compare greater according to `Name.lt`. Fixes #12136. 🤖 Prepared with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
32 lines
972 B
Text
32 lines
972 B
Text
{"textDocument": {"uri": "file:///completionPrefixIssue.lean"},
|
|
"position": {"line": 1, "character": 64}}
|
|
{"items":
|
|
[{"label": "veryLongDefinitionName",
|
|
"kind": 6,
|
|
"data":
|
|
["«external:file:///completionPrefixIssue.lean»", 1, 64, 0, "f_uniq.35"]},
|
|
{"label": "veryLongDefinitionNameVeryLongDefinitionName",
|
|
"kind": 21,
|
|
"data":
|
|
["«external:file:///completionPrefixIssue.lean»",
|
|
1,
|
|
64,
|
|
0,
|
|
"cveryLongDefinitionNameVeryLongDefinitionName"]}],
|
|
"isIncomplete": false}
|
|
Resolution of veryLongDefinitionName:
|
|
{"label": "veryLongDefinitionName",
|
|
"kind": 6,
|
|
"detail": "Nat",
|
|
"data":
|
|
["«external:file:///completionPrefixIssue.lean»", 1, 64, 0, "f_uniq.35"]}
|
|
Resolution of veryLongDefinitionNameVeryLongDefinitionName:
|
|
{"label": "veryLongDefinitionNameVeryLongDefinitionName",
|
|
"kind": 21,
|
|
"detail": "Nat",
|
|
"data":
|
|
["«external:file:///completionPrefixIssue.lean»",
|
|
1,
|
|
64,
|
|
0,
|
|
"cveryLongDefinitionNameVeryLongDefinitionName"]}
|