Built with
Alectryon . Bubbles (
) indicate interactive fragments: hover for details, tap to reveal contents. Use
Ctrl+↑ Ctrl+↓ to navigate,
Ctrl+🖱️ to focus. On Mac, use
⌘ instead of
Ctrl .
Hover-Settings: Show types:
Show goals:
Hello
Inspecting Lean
#eval Lean.versionString : String
Lean.versionString
#eval Lean.versionStringCore : String
Lean.versionStringCore
#eval "leanprover/lean4:4.13.0-rc3"
Lean.toolchain
#eval Lean.origin
#eval "01d414ac36dc28f3e424dabd36d818873fea655c"
Lean.githash
Proofs
theorem test : ∀ (p q : Prop), p → q → (p ∧ q ↔ q ∧ p)
test ( p q : Prop ) ( hp : p ) ( hq : q ): p ∧ q ↔ q ∧ p := by
apply Iff.intro : ∀ {a b : Prop}, (a → b) → (b → a) → (a ↔ b)
Iff.introp, q : Prop hp : p hq : q
mp p ∧ q → q ∧ p
. p, q : Prop hp : p hq : q
mp p ∧ q → q ∧ p
intro p, q : Prop hp : p hq : q
mp p ∧ q → q ∧ p
h Warning: unused variable `h `
note: this linter can be disabled with `set_option linter.unusedVariables false` p, q : Prop hp : p hq : q h : p ∧ q
mp q ∧ p
apply And.intro : ∀ {a b : Prop}, a → b → a ∧ b
And.introp, q : Prop hp : p hq : q h : p ∧ q
mp.left q
. p, q : Prop hp : p hq : q h : p ∧ q
mp.left q
exact hq
. p, q : Prop hp : p hq : q h : p ∧ q
mp.right p
exact hp
. p, q : Prop hp : p hq : q
mpr q ∧ p → p ∧ q
intro p, q : Prop hp : p hq : q
mpr q ∧ p → p ∧ q
h Warning: unused variable `h `
note: this linter can be disabled with `set_option linter.unusedVariables false` p, q : Prop hp : p hq : q h : q ∧ p
mpr p ∧ q
apply And.intro : ∀ {a b : Prop}, a → b → a ∧ b
And.introp, q : Prop hp : p hq : q h : q ∧ p
mpr.left p
. p, q : Prop hp : p hq : q h : q ∧ p
mpr.left p
exact hp
. p, q : Prop hp : p hq : q h : q ∧ p
mpr.right q
exact hq