Zulip Chat Archive

Stream: new members

Topic: How to do it properly in lean


Chris B (Mar 02 2022 at 17:06):

@T.X. Xia

Here's one that's more compact, but I don't necessarily think there's a "right way", yours is fine. Some people prefer using tactic mode for these kinds of propositional shuffling exercises.

example (p : α  Prop) : ( x, p x)  ¬ ( x, ¬ p x) :=
  Iff.intro
    (fun x, hpx h => h x hpx)
    (fun hna => Classical.byContradiction $ fun hne => hna (fun x hpx => absurd x, hpx hne))

The doc generation stuff for lean 4 is still a wip, but there's a hosted instance of the prelude/std/mathlib docs on the leanprover-community site. The Classical section is here: https://leanprover-community.github.io/mathlib4_docs/Init/Classical.html

Classical is just a namespace which can be split up, so you can't directly go to def in vscode, but for specific definitions you should be able to right click and go to definition.

Chris B (Mar 02 2022 at 17:09):

There's also a lot of interplay between decidable and classical, so some declarations that might be of interest are probably in other sections like Mathlib.Logic.Basic.


Last updated: Dec 20 2023 at 11:08 UTC