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: May 02 2025 at 03:31 UTC