Zulip Chat Archive
Stream: general
Topic: is this choice computable?
Kenny Lau (Sep 04 2018 at 12:29):
Can the two sorry
s be filled in?
variables (ι : Type*) (β : ι → Type*) [Π i, has_zero (β i)] def pointed_sigma.aux : Type* := option Σ i, β i inductive pointed_sigma.r : pointed_sigma.aux ι β → pointed_sigma.aux ι β → Prop | refl : Π x, pointed_sigma.r x x | zero_left : Π i, pointed_sigma.r none (some ⟨i, 0⟩) | zero_right : Π i, pointed_sigma.r (some ⟨i, 0⟩) none | zero : Π i j, pointed_sigma.r (some ⟨i, 0⟩) (some ⟨j, 0⟩) instance pointed_sigma.setoid : setoid (pointed_sigma.aux ι β) := { r := pointed_sigma.r ι β, iseqv := begin refine ⟨λ x, _, λ x y h, _, λ x y z h1 h2, _⟩, { constructor }, { cases h; constructor }, { cases h1; cases h2; constructor } end } def pointed_sigma : Type* := quotient (pointed_sigma.setoid ι β) namespace pointed_sigma instance : has_zero (pointed_sigma ι β) := ⟨⟦none⟧⟩ def of (i : ι) (x : β i) : pointed_sigma ι β := ⟦some ⟨i, x⟩⟧ def choice : Π (i j : ι) (x : β i) (H : ∃ y, of ι β i x = of ι β j y), β j := sorry theorem choice_eq (i j : ι) (x : β i) (H) : of ι β i x = of ι β j (choice ι β i j x H) := sorry end pointed_sigma
Kenny Lau (Sep 04 2018 at 12:30):
So I have a bunch of pointed types, indexed by the type ι
.
Kenny Lau (Sep 04 2018 at 12:30):
I'm building the pointed union of these pointed types.
Kenny Lau (Sep 04 2018 at 12:30):
(The point is represented by zero.)
Kenny Lau (Sep 04 2018 at 12:31):
So for each i : ι
, I have a function from the pointed set indexed by i
to the union.
Kenny Lau (Sep 04 2018 at 12:31):
I'm wondering if I can reverse this operation, i.e. given an element of the pointed union, with a proof that it is from some element of the pointed set indexed by i
, I would like to give back this element of the pointed set.
Reid Barton (Sep 04 2018 at 13:58):
I suspect you need decidable equality on I
Kenny Lau (Sep 04 2018 at 14:02):
that's also what I suspect, but I can't prove
Last updated: Dec 20 2023 at 11:08 UTC