#eval"4.18.0-rc1" Lean.versionString: StringLean.versionString #eval"4.18.0" Lean.versionStringCore: StringLean.versionStringCore #eval"leanprover/lean4:4.18.0-rc1" Lean.toolchain: StringLean.toolchain #eval"leanprover/lean4" Lean.origin: StringLean.origin #eval"69a1d0485e241a494d69d3e2c98ad988f4396dcd" Lean.githash: StringLean.githash
"4.18.0-rc1"
Lean.versionString: String
"4.18.0"
Lean.versionStringCore: String
"leanprover/lean4:4.18.0-rc1"
Lean.toolchain: String
"leanprover/lean4"
Lean.origin: String
"69a1d0485e241a494d69d3e2c98ad988f4396dcd"
Lean.githash: String
theorem test: ∀ (p q : Prop), p → q → (p ∧ q ↔ q ∧ p)test (p: Propp q: Propq : Prop: TypeProp) (hp: php : p: Propp) (hq: qhq : q: Propq): p: Propp ∧ q: Propq ↔ q: Propq ∧ p: Propp := byGoals accomplished! 🐙 apply Iff.intro: ∀ {a b : Prop}, (a → b) → (b → a) → (a ↔ b)Iff.introp, q: Prophp: phq: qmpp ∧ q → q ∧ pp, q: Prophp: phq: qmprq ∧ p → p ∧ q .p, q: Prophp: phq: qmpp ∧ q → q ∧ p intro h: p ∧ qhp, q: Prophp: phq: qh: p ∧ qmpq ∧ p apply And.intro: ∀ {a b : Prop}, a → b → a ∧ bAnd.introp, q: Prophp: phq: qh: p ∧ qmp.leftqp, q: Prophp: phq: qh: p ∧ qmp.rightp .p, q: Prophp: phq: qh: p ∧ qmp.leftq exact hq: qhqGoals accomplished! 🐙 .p, q: Prophp: phq: qh: p ∧ qmp.rightp exact hp: phpGoals accomplished! 🐙 .p, q: Prophp: phq: qmprq ∧ p → p ∧ q intro h: q ∧ php, q: Prophp: phq: qh: q ∧ pmprp ∧ q apply And.intro: ∀ {a b : Prop}, a → b → a ∧ bAnd.introp, q: Prophp: phq: qh: q ∧ pmpr.leftpp, q: Prophp: phq: qh: q ∧ pmpr.rightq .p, q: Prophp: phq: qh: q ∧ pmpr.leftp exact hp: phpGoals accomplished! 🐙 .p, q: Prophp: phq: qh: q ∧ pmpr.rightq exact hq: qhqGoals accomplished! 🐙
test: ∀ (p q : Prop), p → q → (p ∧ q ↔ q ∧ p)
p: Prop
q: Prop
Prop: Type
hp: p
hq: q
Goals accomplished! 🐙
Iff.intro: ∀ {a b : Prop}, (a → b) → (b → a) → (a ↔ b)
p, q: Prophp: phq: qmpp ∧ q → q ∧ p
p, q: Prophp: phq: qmprq ∧ p → p ∧ q
h: p ∧ q
p, q: Prophp: phq: qh: p ∧ qmpq ∧ p
And.intro: ∀ {a b : Prop}, a → b → a ∧ b
p, q: Prophp: phq: qh: p ∧ qmp.leftq
p, q: Prophp: phq: qh: p ∧ qmp.rightp
h: q ∧ p
p, q: Prophp: phq: qh: q ∧ pmprp ∧ q
p, q: Prophp: phq: qh: q ∧ pmpr.leftp
p, q: Prophp: phq: qh: q ∧ pmpr.rightq