Zulip Chat Archive

Stream: Equational

Topic: exists_greedy_chain experiment


Michael Bucko (Nov 09 2024 at 22:18):

A small experiment (#mwe) with exists_greedy_chain.

import equational_theories.Mathlib.Order.Greedy
import Mathlib.Order.Basic

universe u₁ u₂

theorem Exists.greedyChainRec
  {α : Type u₁} {β : Type u₂} [Preorder α] [Countable β]
  (task : β → Set α)
  (h : ∀ (a : α) (b : β), ∃ (a' : α), a ≤ a' ∧ a' ∈ task b)
  : ∀ (a₀ : α), ∃ (c : Set α),
    IsChain (· ≤ ·) c ∧
    a₀ ∈ c ∧
    (∀ x ∈ c, a₀ ≤ x) ∧
    ∀ (b : β), ∃ a ∈ c, a ∈ task b := by
  intro a₀
  let chain_build := λ (a : α) =>
    exists_greedy_chain task h a
  have build_step := λ (a : α) =>
    ∃ (a' : α), a ≤ a' ∧ ∀ (b : β), ∃ (x : α), x ∈ task b ∧ a ≤ x
  have chain := chain_build a₀
  obtain ⟨c, hc_chain, hc_mem, hc_bound, hc_task⟩ := chain
  exact ⟨c,
    hc_chain,
    hc_mem,
    hc_bound,
    hc_task⟩

Michael Bucko (Nov 12 2024 at 06:28):

@Amir Livne Bar-on have a look here. I already experimented with exists_greedy_chain


Last updated: Feb 28 2026 at 14:05 UTC