Zulip Chat Archive
Stream: new members
Topic: no struct
Iocta (Aug 18 2020 at 20:37):
structure positive_nats :=
(s : set ℕ)
(positive : ∀ n ∈ s, n > 0)
def zero_singleton : set ℕ := {0}
How do I say "you can't instantiate positive_nats
with zero_singleton
"?
Yakov Pechersky (Aug 18 2020 at 20:44):
What would you do with that statement?
Iocta (Aug 18 2020 at 20:50):
It provides a counterexample to "any set nat
can be a positive_nats
."
Kevin Buzzard (Aug 18 2020 at 20:51):
example : ¬ (∃ X : positive_nats, X.s = zero_singleton) := sorry
Kevin Buzzard (Aug 18 2020 at 20:54):
PS you should write 0 < n
not n > 0
; all the lemmas use <
so it makes life easier.
Kyle Miller (Aug 18 2020 at 20:55):
structure positive_nats :=
(s : set ℕ)
(positive : ∀ n ∈ s, 0 < n)
def zero_singleton : set ℕ := {0}
example (X : positive_nats) : X.s ≠ zero_singleton :=
begin
intro h,
have hz : 0 ∈ X.s, rw h, dunfold zero_singleton, simp,
have hpos := X.positive 0 hz,
linarith,
end
Kevin Buzzard (Aug 18 2020 at 21:00):
example (X : positive_nats) : X.s ≠ zero_singleton :=
λ h, lt_irrefl 0 $ X.positive 0 $ h.symm ▸ set.mem_singleton 0
Iocta (Aug 18 2020 at 21:08):
lemma no_positive_nats_zero_singleton (X : positive_nats) : X.s ≠ zero_singleton :=
λ h, lt_irrefl 0 $ X.positive 0 $ h.symm ▸ set.mem_singleton 0
example : ¬ (∀ nats: set ℕ, ∃ (X: positive_nats), X.s = nats ) :=
begin
intro h,
specialize h zero_singleton,
cases h with pn hpn,
apply no_positive_nats_zero_singleton pn hpn,
end
Iocta (Aug 18 2020 at 21:49):
@Kevin Buzzard Why X
is capitalized there?
Iocta (Aug 18 2020 at 21:50):
(is there a convention this choice conforms to?)
Mario Carneiro (Aug 18 2020 at 22:07):
It's a set?
Mario Carneiro (Aug 18 2020 at 22:08):
or at least set-ish thing
Kevin Buzzard (Aug 18 2020 at 22:15):
@Iocta you made the structure so you make the conventions. We call groups G, abelian groups A, monoids M, topological spaces X, etc. But you didn't name any instances of your structure so I made a convention for you, that's all. If a computer scientist had got to it first they would probably have called it \alpha, which is their version of X.
Mario Carneiro (Aug 18 2020 at 22:16):
Real computer scientists are laughing at this
Mario Carneiro (Aug 18 2020 at 22:17):
Actually I think the \alpha naming convention goes back to polymorphic type systems like system F
Mario Carneiro (Aug 18 2020 at 22:17):
so more type theory than CS
Kenny Lau (Aug 19 2020 at 06:35):
import tactic
structure positive_nats :=
(s : set ℕ)
(positive : ∀ n ∈ s, 0 < n)
def zero_singleton : set ℕ := {0}
example : ∀ X : positive_nats, X.s ≠ zero_singleton
| ⟨_, h⟩ rfl := by cases h 0 rfl
Last updated: Dec 20 2023 at 11:08 UTC