/-- Construct a realizer for the inf of two filters -/
protected def inf {f g : Filter α} (F : f.Realizer) (G : g.Realizer) : (f ⊓ g).Realizer :=
  ⟨F.σ × G.σ,
    { f := fun ⟨s, t⟩ ↦ F.F s ∩ G.F t
      pt := (F.F.pt, G.F.pt)
      inf := fun ⟨a, a'⟩ ⟨b, b'⟩ ↦ (F.F.inf a b, G.F.inf a' b')
      inf_le_left := fun _ _ ↦ inter_subset_inter (F.F.inf_le_left _ _) (G.F.inf_le_left _ _)
      inf_le_right := fun _ _ ↦ inter_subset_inter (F.F.inf_le_right _ _) (G.F.inf_le_right _ _) },
    by
      cases F; cases G; substs f g; 

Proof state:
case mk.mk
α : Type u_1
β : Type u_2
σ : Type u_3
τ : Type u_4
σ✝¹ : Type ?u.33500
F✝¹ : CFilter (Set α) σ✝¹
σ✝ : Type ?u.33555
F✝ : CFilter (Set α) σ✝
⊢ CFilter.toFilter
      {
        f := fun x =>
          match x with
          | (s, t) =>
            CFilter.f { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F s ∩
              CFilter.f { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F t,
        pt :=
          ({ σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F.pt,
            { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F.pt),
        inf := fun x x_1 =>
          match x with
          | (a, a') =>
            match x_1 with
            | (b, b') =>
              (CFilter.inf { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F a b,
                CFilter.inf { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F a' b'),
        inf_le_left :=
          (_ :
            ∀
              (x x_1 :
                { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.σ ×
                  { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.σ),
              CFilter.f { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F
                    (CFilter.inf { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F x.1
                      x_1.1) ∩
                  CFilter.f { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F
                    (CFilter.inf { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F x.2
                      x_1.2) ⊆
                CFilter.f { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F x.1 ∩
                  CFilter.f { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F x.2),
        inf_le_right :=
          (_ :
            ∀
              (x x_1 :
                { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.σ ×
                  { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.σ),
              CFilter.f { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F
                    (CFilter.inf { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F x.1
                      x_1.1) ∩
                  CFilter.f { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F
                    (CFilter.inf { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F x.2
                      x_1.2) ⊆
                CFilter.f { σ := σ✝¹, F := F✝¹, eq := (_ : CFilter.toFilter F✝¹ = CFilter.toFilter F✝¹) }.F x_1.1 ∩
                  CFilter.f { σ := σ✝, F := F✝, eq := (_ : CFilter.toFilter F✝ = CFilter.toFilter F✝) }.F x_1.2) } =
    CFilter.toFilter F✝¹ ⊓ CFilter.toFilter F✝

Next tactic:
simp only [CFilter.toFilter, Prod.exists]