Аналіз I, Додаток A.4: Змінні та квантифікатори

Деякі приклади використання змінних та квантифікаторів у Lean

namespace VariableExample1variable (X:Type) (x y:X)
x = x : Prop
x = y : Prop
-- #check x+y = y+x -- тут не будуть перевірятися типи end VariableExample1namespace VariableExample2variable (x:ℝ)
x + 3 : ℝ
x + 3 = 5 : Prop
example (h: x = 2) : x + 3 = 5 := x:ℝh:x = 2⊢ x + 3 = 5 All goals completed! 🐙example (h: x ≠ 2) : x + 3 ≠ 5 := x:ℝh:x ≠ 2⊢ x + 3 ≠ 5 x:ℝh:x + 3 = 5⊢ x = 2 All goals completed! 🐙example : ¬ ∀ (x:ℝ), x + 3 = 5 := x:ℝ⊢ ¬∀ (x : ℝ), x + 3 = 5 x:ℝ⊢ ∃ x, ¬x + 3 = 5 x:ℝ⊢ ¬0 + 3 = 5 All goals completed! 🐙example : ¬ ∀ (x:ℝ), x + 3 ≠ 5 := x:ℝ⊢ ¬∀ (x : ℝ), x + 3 ≠ 5 x:ℝ⊢ ∃ x, x + 3 = 5 x:ℝ⊢ 2 + 3 = 5 All goals completed! 🐙example : ∃ (x:ℝ), x + 3 = 5 := x:ℝ⊢ ∃ x, x + 3 = 5 x:ℝ⊢ 2 + 3 = 5 All goals completed! 🐙example : ∀ (x:ℝ), (x+1)^2 = x^2 + 2*x + 1 := x:ℝ⊢ ∀ (x : ℝ), (x + 1) ^ 2 = x ^ 2 + 2 * x + 1 x✝:ℝx:ℝ⊢ (x + 1) ^ 2 = x ^ 2 + 2 * x + 1 All goals completed! 🐙end VariableExample2

Для цього прикладу тут використовується фіктивне твердження.

example : 0 = 0 := ⊢ 0 = 0 x:ℕ := 342⊢ 0 = 0 have : x + 155 = 497 := ⊢ 0 = 0 x:ℕ := 342⊢ 342 + 155 = 497 All goals completed! 🐙 All goals completed! 🐙
example : ¬ ∀ (x:ℝ), x + 155 = 497 := ⊢ ¬∀ (x : ℝ), x + 155 = 497 ⊢ ∃ x, ¬x + 155 = 497 ⊢ ¬0 + 155 = 497 All goals completed! 🐙example : ¬ ∀ x > (0:ℝ), x^2 > x := ⊢ ¬∀ x > 0, x ^ 2 > x ⊢ ∃ x, 0 < x ∧ x ^ 2 ≤ x ⊢ 0 < 0.5 ∧ 0.5 ^ 2 ≤ 0.5 All goals completed! 🐙/- Наведений нижче код не перевірятиме тип. example : ∀ (x:ℝ), x + 3 = 5 := by use 2 sorry -/ example : ∀ x, (3 < x ∧ x < 2) → (6 < 2*x ∧ 2*x < 4) := ⊢ ∀ (x : ℕ), 3 < x ∧ x < 2 → 6 < 2 * x ∧ 2 * x < 4 x:ℕ⊢ 3 < x ∧ x < 2 → 6 < 2 * x ∧ 2 * x < 4 x:ℕh:3 < x ∧ x < 2⊢ 6 < 2 * x ∧ 2 * x < 4 x:ℕh1:3 < xh2:x < 2⊢ 6 < 2 * x ∧ 2 * x < 4 -- попередні три рядки можна забуцкати в `intro x ⟨ h1, h2 ⟩` x:ℕh1:3 < xh2:x < 2⊢ 6 < 2 * xx:ℕh1:3 < xh2:x < 2⊢ 2 * x < 4 x:ℕh1:3 < xh2:x < 2⊢ 6 < 2 * x All goals completed! 🐙 All goals completed! 🐙example : ∃ (x:ℝ), x^2 + 2*x - 8 = 0 := ⊢ ∃ x, x ^ 2 + 2 * x - 8 = 0 ⊢ 2 ^ 2 + 2 * 2 - 8 = 0 All goals completed! 🐙example : ¬ ∃ x, (3 < x ∧ x < 2) ∧ (6 < 2*x ∧ 2*x < 4) := ⊢ ¬∃ x, (3 < x ∧ x < 2) ∧ 6 < 2 * x ∧ 2 * x < 4 ⊢ ∀ (x : ℕ), 3 < x → x < 2 → 6 < 2 * x → 4 ≤ 2 * x x:ℕh1:3 < xh2:x < 2h3:6 < 2 * x⊢ 4 ≤ 2 * x All goals completed! 🐙