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 Xis 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