Zulip Chat Archive
Stream: new members
Topic: infimum of bdd_below int set
Yakov Pechersky (Jul 12 2021 at 22:21):
What's the right way to invoke Inf
on a set int
when I know it is nonempty and bdd_below
?
import group_theory.subgroup
example (H : add_subgroup ℤ) (x : ℤ) (hx : x ∈ H) (xpos : 0 < x) :
∃! (b : ℤ), 0 < b ∧ b ∈ H ∧ (∀ (c ∈ H), 0 < c → b ≤ c) :=
begin
set bs : set ℤ := {b : ℤ | b ∈ H ∧ 0 < b} with hbs,
have bsbdd : bdd_below bs,
{ use 0,
simp_rw [mem_lower_bounds, hbs, set.mem_set_of_eq, and_imp],
intros x hx xpos,
exact xpos.le },
have bsnonempty : bs.nonempty := ⟨x, hx, xpos⟩,
use (Inf bs), -- fails here
sorry
end
Eric Wieser (Jul 12 2021 at 22:24):
Wait for Floris' PR?
Yakov Pechersky (Jul 12 2021 at 22:26):
Which one is that?
Eric Wieser (Jul 12 2021 at 22:27):
Eric Wieser (Jul 12 2021 at 22:28):
I fixed some whitespace and was rewarded with a deterministic timeout
Yakov Pechersky (Jul 12 2021 at 22:46):
OK, at least that PR taught me something new, which I can use in the meantime:
import group_theory.subgroup
example (H : add_subgroup ℤ) (x : ℤ) (hx : x ∈ H) (xpos : 0 < x) :
∃! (b : ℤ), 0 < b ∧ b ∈ H ∧ (∀ (c ∈ H), 0 < c → b ≤ c) :=
begin
set bs : set ℤ := {b : ℤ | b ∈ H ∧ 0 < b} with hbs,
classical,
obtain ⟨lb, hlb, hlb'⟩ := @int.exists_least_of_bdd (∈ bs) ⟨0, λ z hz, hz.right.le⟩ ⟨x, hx, xpos⟩,
simp only [and_imp, set.mem_set_of_eq] at hlb hlb',
refine ⟨lb, ⟨hlb.right, hlb.left, hlb'⟩, _⟩,
simp only [and_imp],
intros c cpos hc IH,
exact le_antisymm (IH _ hlb.left hlb.right) (hlb' _ hc cpos)
end
Yakov Pechersky (Jul 12 2021 at 22:47):
@Eric Wieser I've hit that timeout before, in that exact lemma. I've tried to break it up into pieces, but have failed. It really abuses defeq across quotients.
Last updated: Dec 20 2023 at 11:08 UTC