Commit c74f5c5
committed
feat(Combinatorics/SimpleGraph): add
Standard "labeled ↔ unlabeled" toolage for `Copy` / `Embedding` ↔ `UnlabeledCopy` /
`UnlabeledEmbedding`, mirroring the `Quot.mk` / `Quot.out` pattern:
* `Copy.toUnlabeledCopy : Copy G H → G.UnlabeledCopy H` — canonical projection (computable).
* `UnlabeledCopy.out : G.UnlabeledCopy H → Copy G H` — non-canonical representative
(noncomputable, via `exists_toSubgraph_eq_val.choose`).
* `Copy.toUnlabeledCopy_val` and `UnlabeledCopy.toSubgraph_out` are the matching simp specs.
Mirrored on the Embedding side: `Embedding.toUnlabeledEmbedding` /
`UnlabeledEmbedding.out` with their respective spec lemmas.
Refactor existing inlined anonymous-constructor / `.choose`+`.choose_spec` call sites to
use the new functions:
* `unlabeledCopyCount_le_copyCount` / `unlabeledEmbeddingCount_le_embeddingCount`
* `Copy.equivSigma` / `Embedding.equivSigma` in `Automorphism.lean`
* `Copy.fiberEquivAutOf` / `Embedding.fiberEquivAutOf` in `Automorphism.lean`
Both `Copy.toUnlabeledCopy` and `Embedding.toUnlabeledEmbedding` are marked `@[expose]`
so their `_val` spec lemmas (which are `rfl`) work across modules.toUnlabeledCopy / out Quot-style pair1 parent 00f0743 commit c74f5c5
3 files changed
Lines changed: 36 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
98 | | - | |
| 97 | + | |
99 | 98 | | |
100 | 99 | | |
101 | 100 | | |
102 | 101 | | |
103 | 102 | | |
104 | | - | |
| 103 | + | |
105 | 104 | | |
106 | 105 | | |
107 | 106 | | |
| |||
151 | 150 | | |
152 | 151 | | |
153 | 152 | | |
154 | | - | |
155 | | - | |
| 153 | + | |
156 | 154 | | |
157 | 155 | | |
158 | 156 | | |
159 | 157 | | |
160 | 158 | | |
161 | | - | |
| 159 | + | |
162 | 160 | | |
163 | 161 | | |
164 | 162 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
493 | 493 | | |
494 | 494 | | |
495 | 495 | | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
496 | 502 | | |
497 | 503 | | |
498 | 504 | | |
499 | 505 | | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
500 | 513 | | |
501 | 514 | | |
502 | 515 | | |
| |||
517 | 530 | | |
518 | 531 | | |
519 | 532 | | |
520 | | - | |
521 | | - | |
522 | | - | |
523 | | - | |
524 | | - | |
525 | | - | |
| 533 | + | |
| 534 | + | |
526 | 535 | | |
527 | 536 | | |
528 | 537 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
324 | 324 | | |
325 | 325 | | |
326 | 326 | | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
327 | 334 | | |
328 | 335 | | |
329 | 336 | | |
330 | 337 | | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
331 | 346 | | |
332 | 347 | | |
333 | 348 | | |
| |||
352 | 367 | | |
353 | 368 | | |
354 | 369 | | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
| 370 | + | |
| 371 | + | |
362 | 372 | | |
363 | 373 | | |
364 | 374 | | |
| |||
0 commit comments