Zulip Chat Archive

Stream: maths

Topic: omega with atoms?


Kevin Buzzard (Nov 26 2019 at 16:39):

Should I expect omega to kill this goal:

1 goal
n : ℕ,
G_C G_L : list ℤ,
hG : length G_C + length G_L = n + 1,
iv : ℕ,
hi : iv < length G_C
⊢ iv + (length G_C - iv - 1) + length G_L = n

It doesn't seem to, I get the clear tactic failed, target type depends on 'G_C' error. Is this just a bug? If I do this

      generalize hc : length G_C = c,
      rw hc at *,
      clear hc G_C,
      generalize hl : length G_L = l,
      rw hl at *,
      clear hl G_L,
      omega,

then it works fine, i.e. I tell Lean that length G_C is just a constant natural. I also had to do the clears or else I get other errors. Is this just the same bug in omega?

Rob Lewis (Nov 26 2019 at 16:43):

It's omega being overly sensitive about the context again. You can post it here. https://github.com/leanprover-community/mathlib/issues/1484

Rob Lewis (Nov 26 2019 at 16:44):

These things need @Seul Baek 's attention though. I don't really want to start touching the omega internals myself.

Seul Baek (Nov 28 2019 at 21:45):

Sorry for taking a long time to fix with things. I pushed a bugfix which now makes omega treat any non-constant integer or natural number as a variable. I think it should now work with terms like length l or fib n.

Kevin Buzzard (Nov 28 2019 at 22:17):

Thanks @Seul Baek ! There's no hurry, it's an open source project and I'm sure you have other things to do, but I really appreciate it. I have an MSc student who is extensively using omega! If I remember correctly, you told me how it worked in Amsterdam :D

Rob Lewis (Nov 28 2019 at 22:24):

Yes, thank you Seul! Just looking at the size of the PR, I'm very glad I didn't try this myself.


Last updated: Dec 20 2023 at 11:08 UTC