Zulip Chat Archive

Stream: new members

Topic: push_neg without \not?


George Tsoukalas (Mar 13 2024 at 19:51):

Hi,

I was experimenting with push_neg and I am a bit confused. If I give an example of the form

example : ¬ ( n : , n > 0) := by push_neg

Lean has no problem pushing the negation through towards the center of the statement. But if I instead write

example : ( n : , n > 0)  False := by push_neg

push_neg makes no progress. Even though, to my knowledge, the two statements are definitionally equivalent? How can I rewrite this example to include a negation symbol?

Kyle Miller (Mar 13 2024 at 20:00):

They're defeq, but just like simp and rw, it acts on the syntactical form of the expression. The definition docs#Not needs to be unfolded to see the defeq. We could modify push_neg to recognize -> False as being equivalent to Not (and have it normalize it to Not as well).

Barring that, you can use docs#imp_false


Last updated: May 02 2025 at 03:31 UTC