Zulip Chat Archive
Stream: general
Topic: help proving well-foundedness
Scott Morrison (Jun 19 2019 at 09:44):
I am terrible at proving well-foundedness, apparently (or maybe just bad at telling when something is well-founded in the first place). Can anyone provide the proof of well-foundedness here:
universe u inductive pgame : Type (u+1) | mk : ∀ α β : Type u, (α → pgame) → (β → pgame) → pgame namespace pgame def left_moves : pgame → Type u | (mk l _ _ _) := l def right_moves : pgame → Type u | (mk _ r _ _) := r def move_left : Π (g : pgame), left_moves g → pgame | (mk l _ L _) i := L i def move_right : Π (g : pgame), right_moves g → pgame | (mk _ r _ R) j := R j inductive r : pgame → pgame → Prop | left : Π (x : pgame) (i : x.left_moves), r (x.move_left i) x | right : Π (x : pgame) (j : x.right_moves), r (x.move_right j) x | trans : Π (x y z : pgame), r x y → r y z → r x z theorem wf_r : well_founded r := begin sorry end end pgame
Mario Carneiro (Jun 19 2019 at 10:00):
theorem wf_r : well_founded r := ⟨λ x, begin induction x with l r L R IHl IHr, refine ⟨_, λ y h, _⟩, generalize_hyp e : mk l r L R = x at h, induction h with _ i _ j a b _ h1 h2 IH1 IH2; subst e, { apply IHl }, { apply IHr }, { exact acc.inv (IH2 rfl) h1 } end⟩
Scott Morrison (Jun 19 2019 at 10:02):
Wow! Not trivial. I feel less bad failing to do that. :-)
Mario Carneiro (Jun 19 2019 at 10:03):
the transitivity part is tricky. Usually I would have used the lemma that says the transitive closure of a wf relation is wf
Last updated: Dec 20 2023 at 11:08 UTC