Theorem: FilterBasis.eq_iInf_principal
File: Mathlib/Order/Filter/Bases.lean

tactic: ext U
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
this : Directed (fun x x_1 => x ≥ x_1) fun s => 𝓟 ↑s
⊢ B.filter = ⨅ s, 𝓟 ↑s
state_after: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
this : Directed (fun x x_1 => x ≥ x_1) fun s => 𝓟 ↑s
U : Set α
⊢ U ∈ B.filter ↔ U ∈ ⨅ s, 𝓟 ↑s

tactic: simp [mem_filter_iff, mem_iInf_of_directed this]
state_before: case a
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
this : Directed (fun x x_1 => x ≥ x_1) fun s => 𝓟 ↑s
U : Set α
⊢ U ∈ B.filter ↔ U ∈ ⨅ s, 𝓟 ↑s
state_after: no goals

tactic: rintro ⟨U, U_in⟩ ⟨V, V_in⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
⊢ Directed (fun x x_1 => x ≥ x_1) fun s => 𝓟 ↑s
state_after: case mk.mk
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
⊢ ∃ z,
    (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨U, U_in⟩) ((fun s => 𝓟 ↑s) z) ∧
      (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨V, V_in⟩) ((fun s => 𝓟 ↑s) z)

tactic: rcases B.inter_sets U_in V_in with ⟨W, W_in, W_sub⟩
state_before: case mk.mk
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
⊢ ∃ z,
    (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨U, U_in⟩) ((fun s => 𝓟 ↑s) z) ∧
      (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨V, V_in⟩) ((fun s => 𝓟 ↑s) z)
state_after: case mk.mk.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
W : Set α
W_in : W ∈ B.sets
W_sub : W ⊆ U ∩ V
⊢ ∃ z,
    (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨U, U_in⟩) ((fun s => 𝓟 ↑s) z) ∧
      (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨V, V_in⟩) ((fun s => 𝓟 ↑s) z)

tactic: use ⟨W, W_in⟩
state_before: case mk.mk.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
W : Set α
W_in : W ∈ B.sets
W_sub : W ⊆ U ∩ V
⊢ ∃ z,
    (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨U, U_in⟩) ((fun s => 𝓟 ↑s) z) ∧
      (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨V, V_in⟩) ((fun s => 𝓟 ↑s) z)
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
W : Set α
W_in : W ∈ B.sets
W_sub : W ⊆ U ∩ V
⊢ (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨U, U_in⟩) ((fun s => 𝓟 ↑s) ⟨W, W_in⟩) ∧
    (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨V, V_in⟩) ((fun s => 𝓟 ↑s) ⟨W, W_in⟩)

tactic: simp only [ge_iff_le, le_principal_iff, mem_principal, Subtype.coe_mk]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
W : Set α
W_in : W ∈ B.sets
W_sub : W ⊆ U ∩ V
⊢ (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨U, U_in⟩) ((fun s => 𝓟 ↑s) ⟨W, W_in⟩) ∧
    (fun x x_1 => x ≥ x_1) ((fun s => 𝓟 ↑s) ⟨V, V_in⟩) ((fun s => 𝓟 ↑s) ⟨W, W_in⟩)
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
W : Set α
W_in : W ∈ B.sets
W_sub : W ⊆ U ∩ V
⊢ W ⊆ U ∧ W ⊆ V

tactic: exact subset_inter_iff.mp W_sub
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
B : FilterBasis α
U : Set α
U_in : U ∈ B.sets
V : Set α
V_in : V ∈ B.sets
W : Set α
W_in : W ∈ B.sets
W_sub : W ⊆ U ∩ V
⊢ W ⊆ U ∧ W ⊆ V
state_after: no goals