module Интуиционистское_Исчисление_Высказываний where {- Часть 1 | Интуиционистское исчиcление высказываний -} open import Вспомогательные_определения {- Сначала определим логическую часть - позитивный фрагмент интуиционистского исчисления высказываний. -} {- Φ набирается как \GF или \Phi Чтобы узнать как набрать символ, наведите на него курсор и M-x describe-char -} {- Определение 1.1. Множество формул Φ задается индуктивно. Пусть V - некоторое бесконечное множество переменных (в нашем случае множество строк String). Тогда ∙ всякая переменная является формулой ∙ если φ, ψ - формулы, то φ ⊃ ψ - формула. -} infixr 10 _⊃_ data Φ : Множество where ппер : Строка → Φ _⊃_ : Φ → Φ → Φ {- Определение 1.2. Контекст (обозн. Γ) - Список формул -} Контекст = Список Φ {- Определение 1.3. Доказательство (формулы φ в контексте Γ) в ИИВ - дерево вывода, где ∙ Корень - Γ ⊢ φ - то, что доказывается ∙ Лист - аксиома ∙ Каждый узел связан с родительским по правилу вывода -} {- Определение 1.4. Отношение выводимости ⊢ ⊆ L(Φ) × Φ задается индуктивно правилами вывода. -} {- =================================== ПРАВИЛА ВЫВОДА ПФ ИИВ 1) Группа аксиом: -------- (Ax) φ, Γ ⊢ φ 2) Логическая группа: φ, Γ ⊢ ψ --------- (⊃I) Γ ⊢ φ ⊃ ψ Γ ⊢ φ ⊃ ψ Γ ⊢ φ ------------------- (⊃E) Γ ⊢ ψ 3) Структурная группа: Γ ⊢ φ --------(Ослабление) ψ, Γ ⊢ φ Δ, φ, ψ, Γ ⊢ σ --------------(Обмен) Δ, ψ, φ, Γ ⊢ σ =================================== -} {- Комментарий. Аксиома - Аксиома. Мы можем делать предположения. Не требует предусловий. ⊃В - Введение импликации (alias теорема Эрбрана, теорема о Дедукции). В нашей системе, в отличие от Гильбертовской, мы берем ее без доказательства ⊃У - Удаление импликации (alias Modus Ponens). Широко известное правило отделения. -} infix 4 _⊢_ data _⊢_ : Контекст → Φ → Множество where Аксиома : ∀ {Γ φ} → --------- φ ∷ Γ ⊢ φ ⊃В : ∀ {Γ φ ψ} → φ ∷ Γ ⊢ ψ → ------------- Γ ⊢ φ ⊃ ψ ⊃У : ∀ {Γ φ ψ} → Γ ⊢ φ ⊃ ψ → Γ ⊢ φ → ------------------------ Γ ⊢ ψ postulate Ослабление : ∀ {Γ φ ψ} → Γ ⊢ φ → ψ ∷ Γ ⊢ φ Обмен : ∀ {n Γ φ} → Γ ⊢ φ → обмен n Γ ⊢ φ {- В качестве примера докажем φ ⊃ φ, А также певвые две аксиомы Гильберта -} private Пример1 : ∀ {φ} → [] ⊢ φ ⊃ φ Пример1 {φ} = ⊃В Аксиома Пример2 : ∀{φ ψ} → [] ⊢ φ ⊃ (ψ ⊃ φ) Пример2 {φ} {ψ} = ⊃В (⊃В (Ослабление Аксиома)) Пример3 : ∀{φ ψ ν} → [] ⊢ (φ ⊃ (ψ ⊃ ν)) ⊃ (φ ⊃ ψ) ⊃ (φ ⊃ ν) Пример3 {φ} {ψ} {ν} = ⊃В (⊃В (⊃В (⊃У {Γ}{ψ}{ν} (⊃У{Γ}{φ}{ψ ⊃ ν}(Обмен {3} {Γ} (Ослабление (Ослабление Аксиома))) Аксиома) (⊃У (Ослабление Аксиома) Аксиома)))) where Γ = φ ∷ (φ ⊃ ψ) ∷ (φ ⊃ (ψ ⊃ ν)) ∷ []