-- 题目 1 namespace Exercise1 -- 原子命题符号集合 S inductive SentSym | p | q | r deriving Repr, DecidableEq open SentSym -- 真值表:使用 Prop 作为真值类型,包含所有原子命题符号的真值赋值 variable (env : SentSym → Prop) -- WFF 定义(符号版本) inductive WFF | p_atm : SentSym → WFF | p_not : WFF → WFF | p_and : WFF → WFF → WFF | p_or : WFF → WFF → WFF | p_imp : WFF → WFF → WFF | p_iff : WFF → WFF → WFF deriving Repr, DecidableEq open WFF -- v̄ 是 env 的扩展,递归定义 v̄(φ):WFF φ 在 env 下的真值 def vbar : WFF → Prop | p_atm s => env s | p_not φ => ¬ vbar φ | p_and φ ψ => vbar φ ∧ vbar ψ | p_or φ ψ => vbar φ ∨ vbar ψ | p_imp φ ψ => vbar φ → vbar ψ | p_iff φ ψ => vbar φ ↔ vbar ψ -- 证明:对任意 env,它的扩展是唯一的,即:若 v̄1 和 v̄2 都是 env 的扩展,则对任意 φ,v̄1(φ) ↔ v̄2(φ) theorem vbar_equiv (vbar1 vbar2 : WFF → Prop) : ∀ φ : WFF, vbar1 φ ↔ vbar2 φ := by sorry end Exercise1 -- 题目 2 namespace Exercise2 inductive WFF | p_atm : String → WFF | p_not : WFF → WFF | p_and : WFF → WFF → WFF | p_or : WFF → WFF → WFF | p_imp : WFF → WFF → WFF | p_iff : WFF → WFF → WFF deriving Repr, DecidableEq open WFF -- 对任意WFF α,定义其对偶 α*,把所有原子命题符号替换为它们的否定,把 ∧ 替换为 ∨,∨ 替换为 ∧ def dual : WFF → WFF | p_atm p => sorry | p_not φ => sorry | p_and φ ψ => sorry | p_or φ ψ => sorry | p_imp φ ψ => sorry | p_iff φ ψ => sorry -- 定义 WFF 的真值函数 eval def eval (env : String → Prop) : WFF → Prop | p_atm p => env p | p_not φ => ¬ eval env φ | p_and φ ψ => eval env φ ∧ eval env ψ | p_or φ ψ => eval env φ ∨ eval env ψ | p_imp φ ψ => eval env φ → eval env ψ | p_iff φ ψ => eval env φ ↔ eval env ψ -- 证明:对任意 WFF α,α* 和 ¬α 等价,即在任意真值表下真值相等 theorem dual_equiv (α : WFF) : ∀ env : String → Prop, eval env (dual α) ↔ ¬ eval env α := by sorry end Exercise2 -- 题目 3 namespace Exercise3 inductive WFF | p_atm : String → WFF | p_not : WFF → WFF | p_and : WFF → WFF → WFF | p_or : WFF → WFF → WFF | nand : WFF → WFF → WFF | nor : WFF → WFF → WFF deriving Repr, DecidableEq open WFF def eval (env : String → Prop) : WFF → Prop | p_atm p => env p | p_not φ => ¬ eval env φ | p_and φ ψ => eval env φ ∧ eval env ψ | p_or φ ψ => eval env φ ∨ eval env ψ | nand φ ψ => ¬ (eval env φ ∧ eval env ψ) | nor φ ψ => ¬ (eval env φ ∨ eval env ψ) -- 定义自身完备性:一个二元运算 f 是自身完备的,当且仅当它可以仅用 f 构造公式表示 ¬、∧、∨ def is_self_complete (f : WFF → WFF → WFF) : Prop := sorry -- 证明:| (NAND) 和 ↓ (NOR) 都是自身完备的 theorem nand_self_complete : is_self_complete (λ α β => nand α β) := by sorry theorem nor_self_complete : is_self_complete (λ α β => nor α β) := by sorry end Exercise3 -- 题目 4 namespace Exercise4 inductive WFF | p_atm : String → WFF -- 原子命题 | p_not : WFF → WFF -- ¬ | maj : WFF → WFF → WFF → WFF -- 三元多数运算 #(多数投票) deriving Repr, DecidableEq open WFF -- 定义公式在给定环境下的语义 def eval (env : String → Prop) : WFF → Prop | p_atm p => env p | p_not φ => ¬ eval env φ | maj φ ψ θ => sorry -- 证明:{¬, #} 不完备,即:存在一个WFF α,无法仅用 ¬ 和 # 构造出与 α 等价的 WFF theorem neg_maj_not_complete : Prop := by -- 你需要补充完整命题 sorry end Exercise4