Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat(analysis/convex/cone/basic): add has_add, add_zero_class, and add_comm_semigroup instances to convex_cone #16213

Closed
wants to merge 38 commits into from
Closed
Changes from 37 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
331d094
add dual_of_dual
apurvnakade Jul 23, 2022
818edea
Merge branch 'master' into apurva/dual-of-dual
apurvnakade Jul 30, 2022
41695bd
fix merge error
apurvnakade Jul 30, 2022
4dbccad
Apply suggestions from code review
apurvnakade Aug 10, 2022
e676c6e
Add the 0 convex_cone.
apurvnakade Aug 10, 2022
ab93e72
Add a few comments.
apurvnakade Aug 10, 2022
6c857f1
Add suggestions
apurvnakade Aug 10, 2022
896b601
Add doc strings.
apurvnakade Aug 10, 2022
b6744ab
Fix lint error.
apurvnakade Aug 10, 2022
85e1aae
Remove small redundancy
apurvnakade Aug 10, 2022
e320327
Merge branch 'master' into apurva/dual-of-dual
apurvnakade Aug 10, 2022
73c6659
Remove duplicates from merging
apurvnakade Aug 10, 2022
f9297b9
Fix lint.
apurvnakade Aug 10, 2022
d7fe142
Move has_zero to previous section.
apurvnakade Aug 10, 2022
66e0418
Fix mem_coe -> coe_mem
apurvnakade Aug 11, 2022
fe85834
Minor rename.
apurvnakade Aug 11, 2022
0c62fa1
Apply suggestions from code review
apurvnakade Aug 11, 2022
4e45414
Trying coe fix.
apurvnakade Aug 11, 2022
8022b48
Finally, fix coe errors using set_like
apurvnakade Aug 12, 2022
8a089ca
Fix name
apurvnakade Aug 15, 2022
0a510c0
Apply suggestions from code review
apurvnakade Aug 21, 2022
974766a
Merge branch 'apurva/dual-of-dual' of github.com:leanprover-community…
apurvnakade Aug 21, 2022
37c2c3b
Apply suggestions from code review
apurvnakade Aug 21, 2022
3a4cb08
Add `has_add`
apurvnakade Aug 23, 2022
7f19912
Merge branch 'apurva/dual-of-dual' into apurva/cone-has-add
apurvnakade Aug 23, 2022
f90fa0f
Add add_comm_semigroup
apurvnakade Aug 23, 2022
c1fd6f6
Compactify `add_zero_class`
apurvnakade Aug 24, 2022
cb536a4
Merge branch 'master' into apurva/cone-has-add
apurvnakade Aug 25, 2022
09cdda9
Fix indentation
apurvnakade Aug 25, 2022
11dbd77
Remove redundant coe_add
apurvnakade Aug 25, 2022
8907dd7
Trying out direct def of has_add
apurvnakade Aug 25, 2022
bed25bc
Add reducible to set.has_add
apurvnakade Aug 25, 2022
10ac3a8
Add reducible to set.has_add
apurvnakade Aug 25, 2022
41b4388
Minor fix
apurvnakade Aug 25, 2022
9660089
Fix lint error
apurvnakade Aug 25, 2022
ed32f48
Revert "Add reducible to set.has_add"
apurvnakade Aug 25, 2022
0a91839
Merge branch 'master' into apurva/cone-has-add
apurvnakade Aug 31, 2022
32d145d
Update src/analysis/convex/cone/basic.lean
apurvnakade Sep 22, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions src/analysis/convex/cone/basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -365,6 +365,32 @@ instance : has_zero (convex_cone 𝕜 E) := ⟨⟨0, λ _ _, by simp, λ _, by s

lemma pointed_zero : (0 : convex_cone 𝕜 E).pointed := by rw [pointed, mem_zero]

instance : has_add (convex_cone 𝕜 E) := ⟨ λ K₁ K₂,
{ carrier := {z | ∃ (x y : E), x ∈ K₁ ∧ y ∈ K₂ ∧ x + y = z},
smul_mem' :=
begin
rintro c hc _ ⟨x, y, hx, hy, rfl⟩,
rw smul_add,
use [c • x, c • y, K₁.smul_mem hc hx, K₂.smul_mem hc hy],
end,
add_mem' :=
begin
rintro _ ⟨x₁, x₂, hx₁, hx₂, rfl⟩ y ⟨y₁, y₂, hy₁, hy₂, rfl⟩,
use [x₁ + y₁, x₂ + y₂, K₁.add_mem hx₁ hy₁, K₂.add_mem hx₂ hy₂],
abel,
end } ⟩

@[simp] lemma mem_add {K₁ K₂ : convex_cone 𝕜 E} {a : E} :
a ∈ K₁ + K₂ ↔ ∃ (x y : E), x ∈ K₁ ∧ y ∈ K₂ ∧ x + y = a := iff.rfl

instance : add_zero_class (convex_cone 𝕜 E) :=
⟨0, has_add.add, λ _, by {ext, simp}, λ _, by {ext, simp}⟩

instance : add_comm_semigroup (convex_cone 𝕜 E) :=
{ add := has_add.add,
add_assoc := λ _ _ _, set_like.coe_injective $ by apply set.add_comm_semigroup.add_assoc,
add_comm := λ _ _, set_like.coe_injective $ by apply set.add_comm_semigroup.add_comm }
apurvnakade marked this conversation as resolved.
Show resolved Hide resolved

end module
end ordered_semiring

Expand Down