/-- Construct a realizer for filter bind -/
protected def bind {f : Filter α} {m : α → Filter β} (F : f.Realizer) (G : ∀ i, (m i).Realizer) :
    (f.bind m).Realizer :=
  ⟨Σs : F.σ, ∀ i ∈ F.F s, (G i).σ,
    { f := fun ⟨s, f⟩ ↦ ⋃ i ∈ F.F s, (G i).F (f i (by assumption))
      pt := ⟨F.F.pt, fun i _ ↦ (G i).F.pt⟩
      inf := fun ⟨a, f⟩ ⟨b, f'⟩ ↦
        ⟨F.F.inf a b, fun i h ↦
          (G i).F.inf (f i (F.F.inf_le_left _ _ h)) (f' i (F.F.inf_le_right _ _ h))⟩
      inf_le_left := fun _ _ _ ↦ by
        simp only [mem_iUnion, forall_exists_index]
        exact fun i h₁ h₂ ↦ ⟨i, F.F.inf_le_left _ _ h₁, (G i).F.inf_le_left _ _ h₂⟩
      inf_le_right := fun _ _ _ ↦ by
        simp only [mem_iUnion, forall_exists_index]
        exact fun i h₁ h₂ ↦ ⟨i, F.F.inf_le_right _ _ h₁, (G i).F.inf_le_right _ _ h₂⟩ },
    filter_eq <| Set.ext fun _ ↦ by
      cases' F with _ F _; 

Proof state:
case mk
α : Type u_1
β : Type u_2
σ : Type u_3
τ : Type u_4
f : Filter α
m : α → Filter β
G : (i : α) → Realizer (m i)
x✝ : Set β
σ✝ : Type ?u.42857
F : CFilter (Set α) σ✝
eq✝ : CFilter.toFilter F = f
⊢ x✝ ∈
      (CFilter.toFilter
          {
            f := fun x =>
              match x with
              | { fst := s, snd := f_1 } =>
                ⋃ i, ⋃ (h : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F s), CFilter.f (G i).F (f_1 i h),
            pt := { fst := { σ := σ✝, F := F, eq := eq✝ }.F.pt, snd := fun i x => (G i).F.pt },
            inf := fun x x_1 =>
              match x with
              | { fst := a, snd := f_1 } =>
                match x_1 with
                | { fst := b, snd := f' } =>
                  { fst := CFilter.inf { σ := σ✝, F := F, eq := eq✝ }.F a b,
                    snd := fun i h =>
                      CFilter.inf (G i).F (f_1 i (_ : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F a))
                        (f' i (_ : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F b)) },
            inf_le_left :=
              (_ :
                ∀
                  (x x_1 :
                    (s : { σ := σ✝, F := F, eq := eq✝ }.σ) ×
                      ((i : α) → i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F s → (G i).σ)),
                  ∀
                    x_2 ∈
                      (fun x =>
                          match x with
                          | { fst := s, snd := f_1 } =>
                            ⋃ i, ⋃ (h : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F s), CFilter.f (G i).F (f_1 i h))
                        ((fun x x_3 =>
                            match x with
                            | { fst := a, snd := f_1 } =>
                              match x_3 with
                              | { fst := b, snd := f' } =>
                                { fst := CFilter.inf { σ := σ✝, F := F, eq := eq✝ }.F a b,
                                  snd := fun i h =>
                                    CFilter.inf (G i).F (f_1 i (_ : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F a))
                                      (f' i (_ : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F b)) })
                          x x_1),
                    x_2 ∈
                      (fun x =>
                          match x with
                          | { fst := s, snd := f_1 } =>
                            ⋃ i, ⋃ (h : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F s), CFilter.f (G i).F (f_1 i h))
                        x),
            inf_le_right :=
              (_ :
                ∀
                  (x x_1 :
                    (s : { σ := σ✝, F := F, eq := eq✝ }.σ) ×
                      ((i : α) → i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F s → (G i).σ)),
                  ∀
                    x_2 ∈
                      (fun x =>
                          match x with
                          | { fst := s, snd := f_1 } =>
                            ⋃ i, ⋃ (h : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F s), CFilter.f (G i).F (f_1 i h))
                        ((fun x x_3 =>
                            match x with
                            | { fst := a, snd := f_1 } =>
                              match x_3 with
                              | { fst := b, snd := f' } =>
                                { fst := CFilter.inf { σ := σ✝, F := F, eq := eq✝ }.F a b,
                                  snd := fun i h =>
                                    CFilter.inf (G i).F (f_1 i (_ : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F a))
                                      (f' i (_ : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F b)) })
                          x x_1),
                    x_2 ∈
                      (fun x =>
                          match x with
                          | { fst := s, snd := f_1 } =>
                            ⋃ i, ⋃ (h : i ∈ CFilter.f { σ := σ✝, F := F, eq := eq✝ }.F s), CFilter.f (G i).F (f_1 i h))
                        x_1) }).sets ↔
    x✝ ∈ (bind f m).sets

Next tactic:
subst f