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.18.0-rc1" Lean.toolchain
#eval Lean.origin
#eval "69a1d0485e241a494d69d3e2c98ad988f4396dcd" 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 h 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 h 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