You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Lean中无需选择公理,如何从exists_unique构造定义内的元素?

构造不依赖选择公理的函数G

要构造这个良定义的函数,核心是利用∃!u, P V u的唯一性——这个条件保证了满足P V u的元素是唯一确定的,因此不需要依赖选择公理就能直接提取该元素。以下是两种可行的实现方式:

方法一:直接使用exists_unique.elim

exists_unique.elim可以直接拆解“存在唯一元素”的命题,提取出该元素并利用唯一性确保返回值的确定性:

variables {Ω : Type} (P:set Ω → Ω → Prop)(a:Ω)

def G :set Ω → Ω:=
begin
  intro V,
  by_cases h: ∃!u : Ω, P V u,
  -- 存在唯一u时,提取该u作为返回值
  { exact exists_unique.elim h (λ u _ _, u) },
  -- 不存在时返回预设的a
  { exact a },
end

方法二:模式匹配拆解exists_unique

Lean的rcases命令可以直接对exists_unique类型的命题做模式匹配,拆分出元素、元素满足条件的证明,以及唯一性条件,然后直接返回该元素:

variables {Ω : Type} (P:set Ω → Ω → Prop)(a:Ω)

def G :set Ω → Ω:=
begin
  intro V,
  by_cases h: ∃!u : Ω, P V u,
  {
    -- 拆分∃!u为:u本身、P V u的证明、唯一性条件
    rcases h with ⟨u, h_P, h_unique⟩,
    exact u,
  },
  { exact a },
end

为什么不需要选择公理?

选择公理用于处理“仅知道存在元素,但不唯一”的场景,需要从多个候选元素中任意选择一个。而这里的∃!u已经保证了元素的唯一性,我们不需要“选择”,直接取那个唯一确定的元素即可,因此整个构造是构造性的,不依赖选择公理。

内容的提问来源于stack exchange,提问作者Vicent Pons llopis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:45:33