split
n : Nat
s : Setoid (Fin n)
inst✝ : DecidableRel Setoid.r
i j : Fin n
hij : Setoid.r i j
i' : Fin n
hi' : (Fin.find? fun b => decide (Setoid.r i b)) = some i'
⊢ (let_fun this := ⋯;
    encodeSubtype (repr s) ⟨i', this⟩) =
    match h : Fin.find? fun b => decide (Setoid.r j b) with
    | some j_1 =>
      let_fun this := ⋯;
      encodeSubtype (repr s) ⟨j_1, this⟩
    | none => absurd ⋯ ⋯
case h_1
n : Nat
s : Setoid (Fin n)
inst✝ : DecidableRel Setoid.r
i j : Fin n
hij : Setoid.r i j
i' : Fin n
hi' : (Fin.find? fun b => decide (Setoid.r i b)) = some i'
j✝ : Fin n
heq✝ : (Fin.find? fun b => decide (Setoid.r j b)) = some j✝
⊢ (let_fun this := ⋯;
    encodeSubtype (repr s) ⟨i', this⟩) =
    let_fun this := ⋯;
    encodeSubtype (repr s) ⟨j✝, this⟩

case h_2
n : Nat
s : Setoid (Fin n)
inst✝ : DecidableRel Setoid.r
i j : Fin n
hij : Setoid.r i j
i' : Fin n
hi' : (Fin.find? fun b => decide (Setoid.r i b)) = some i'
heq✝ : (Fin.find? fun b => decide (Setoid.r j b)) = none
⊢ (let_fun this := ⋯;
    encodeSubtype (repr s) ⟨i', this⟩) =
    absurd ⋯ ⋯