[Merged by Bors] - feat(Combinatorics/SimpleGraph): Add a theorem about cliques in induced subgraphs#20705
[Merged by Bors] - feat(Combinatorics/SimpleGraph): Add a theorem about cliques in induced subgraphs#20705
Conversation
|
messageFile.md |
|
messageFile.md |
pimotte
left a comment
There was a problem hiding this comment.
Thanks for your PR!
Looks good to me in general, I left some small remarks. Also note that this is the first time I'm reviewing something for mathlib, so chances are someone more knowledgeable will have some more feedback later:)
|
|
||
| /-- If a set of vertices `A` is a clique in subgraph of `G` induced by a superset of `A`, | ||
| it's embedding is a clique in `G`. -/ | ||
| theorem induce_isClique {S : Subgraph G} {F : Set α} {A : Set F} (c : (S.induce F).coe.IsClique A) : |
There was a problem hiding this comment.
Depending on what you need it for it might also make sense to use coeSpanning instead along with an hypothesis of the form (h : A ⊆ F). I think this is also fine, it just depends on your usecase. Also holds for the other lemma's.
There was a problem hiding this comment.
Do you mean something like this?
theorem spanning_isClique {S : Subgraph G} {A : Set S.verts} (c : S.spanningCoe.IsClique A) :
G.IsClique (Subtype.val '' A) := by
I could also add those, if that's a use case that's expected to come up. The induced subgraph way perfect for my situation :)
There was a problem hiding this comment.
I meant something along these lines (but yours is also a valid alternative):
theorem induce_isClique {S : Subgraph G} {F A : Set α} (h : A ⊆ F) (c : (S.induce F).spanningCoe.IsClique A) :
G.IsClique A := by sorry
In any case, if you don't need either of these I'd personally say to just leave it at this until we do, but I'm happy to be overruled by someone with a better big picture overview:)
|
messageFile.md |
YaelDillies
left a comment
There was a problem hiding this comment.
Thank you for the PR, and you Pim for the review! Here are a few more comments.
| simp only [isNIndepSet_iff, coe_map, card_map, and_congr_left_iff] | ||
| exact fun _ ↦ induce_isIndepSet_iff G |
There was a problem hiding this comment.
I would expect something like this to work
| simp only [isNIndepSet_iff, coe_map, card_map, and_congr_left_iff] | |
| exact fun _ ↦ induce_isIndepSet_iff G | |
| simp [isNIndepSet_iff, induce_isIndepSet_iff] |
There was a problem hiding this comment.
I would expect the same, but there is something really odd happening. your suggestion of
simp [isNIndepSet_iff, isIndepSet_induce]
cannot prove the goal, but
simp [isNIndepSet_iff, (isIndepSet_induce)]
can! I did not believe my eyes, but the ci build seems to agree with me (see the latest two commits). I am now very confused.
There was a problem hiding this comment.
Wait! Did you see this @YaelDillies ? Isn't there some kind of problem here?
What proof? I assume you're aware of @b-mehta's formalisation of Ramsey numbers? Just making sure you're not duplicating effort, there's enough to do like this 😉 |
Co-authored-by: Yaël Dillies <[email protected]> Co-authored-by: Pim Otte <[email protected]>
|
please_merge_master.md |
Co-authored-by: Yaël Dillies <[email protected]>
|
please_merge_master.md |
|
please_merge_master.md |
PR summary b8b04d349dImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
Thanks for the pointer! :) I am aware of a |
YaelDillies
left a comment
There was a problem hiding this comment.
Thanks!
maintainer delegate
|
🚀 Pull request has been placed on the maintainer queue by YaelDillies. |
Co-authored-by: Yaël Dillies <[email protected]>
YaelDillies
left a comment
There was a problem hiding this comment.
Thanks!
maintainer merge
|
🚀 Pull request has been placed on the maintainer queue by YaelDillies. |
|
Thanks! bors merge |
…ced subgraphs (#20705) Add theorems giving a clique in the supergraph if there is a clique in a subgraph induced by a superset of the clique, as well as theorems about independent sets in induced subgraphs on G. Co-authored-by: ooovi <[email protected]>
|
Pull request successfully merged into master. Build succeeded: |
* origin/master: (823 commits) chore(Computability): fix naming of lemmas about Sum.inl, Sum.inr, Sum.casesOn (#22156) feat: `Fintype Ordering` (#22154) chore: more renamings to fit the naming convention (#22148) feat(CategoryTheory): any monomorphism in a Grothendieck abelian category is a transfinite composition of pushouts of monomorphisms in a small family (#22157) chore: rename `{Continuous., continuous_}sum_map` to `sumMap` (#22155) chore: remove initial space followed by `-/` (#22158) chore: make arg in HeightOneSpectrum.valuation explicit (#22139) feat(Data/List): `List.maximum` is monotone (#22091) chore(Combinatorics/SimpleGraph): extract WalkDecomp from Walk (#21981) feat: if a monoid M acts, then so does (s : S) with [SubmonoidClass S M] (#21123) chore: backport changes to `getElem` lemmas (#22146) feat(CategoryTheory): generating monomorphisms in Grothendieck abelian categories (#22150) feat: rename variables to fit doc (#22143) feat(CategoryTheory): IsDetecting.isIso_iff_of_mono (#22135) feat(CategoryTheory): truncations of transfinite compositions (#22149) chore: simplify a proof (#22134) feat(CategoryTheory): monomorphisms are stable under coproducts in Grothendieck abelian categories (#22133) feat(Order): Set.Ici.isSuccLimit_coe (#22103) chore(Analysis/Convex/Normed): split into smaller files (#22015) feat(Algebra/Algebra/Lie): max nilpotent ideal <= radical (#22140) refactor(LinearIndependent): refactor to use LinearIndepOn (#21886) chore: rename some more `Foo.sum_elim` -> `sumElim` (#22130) chore: rename Injective.sum_elim and friends (#22129) chore: fix naming oversight from #22070 (#22128) chore: fix spelling mistakes (#22136) feat(RingTheory/Ideal/Quotient): define transtition map between ring or module quotient by powers of ideal (#21900) fix: initialize_simps_projections print warning when projection data already exists (#20339) chore: rename ContMDiff.sum_{elim,map} (#22131) feat(CategoryTheory): characterization of injective objects in terms of lifting properties (#22104) chore(Lean,Tactic): un-indent some doc-strings (#22118) feat(Algebra/MvPolynomial): add `comp` versions of rename lemmas (#21259) chose: add deprecation (#22124) feat(CategoryTheory/Abelian/GrothendieckCategory): computing colimits in Subobject (#22123) feat(CategoryTheory/Subobject): hasCardinalLT_of_mono (#22122) feat: add `DenseRange.piMap` (#22114) feat(Algebra/Algebra/Lie): define the maximal nilpotent ideal of Lie algebras (#22061) chore(Data/Finset): don't import algebra when defining `Finset.card` (#21866) feat: a function on a discrete space is smooth (#22113) feat: commutative group objects in additive categories (#21521) style(Geometry/Manifold): remove superfluous indentation in doc-strings (#22117) chore: rename PushNeg.lean to Push.lean (#22108) feat: add Is{Open,Closed}Embedding.sum_elim (#22070) feat(RingTheory/Perfectoid): define the untilt map and generalize pretilt (#21563) feature(Topology/Algebra/Module/WeakBilin): Linear map from F into the topological dual of E with the weak topology (#21078) feat(CategoryTheory/Abelian): the exact sequence attached to a pushout square (#22110) chore(ChartedSpace.lean): group constructions together (#22107) feat(CategoryTheory/MorphismProperty): more basic API (#22099) chore(Data/Fintype): split `Fintype/Card.lean` (#21840) chore(SetTheory/Cardinal/Cofinality): make `IsStrongLimit` into a structure (#21971) feat(Combinatorics/SimpleGraph): Add a theorem about cliques in induced subgraphs (#20705) ...
Add theorems giving a clique in the supergraph if there is a clique in a subgraph induced by a superset of the clique, as well as theorems about independent sets in induced subgraphs on G.
I needed these theorems for a proof about Ramsey numbers. Maybe it would be interesting to have in the
mathlib?