Built with Alectryon. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
Hover-Settings: Show types: Show goals:
import Mathlib.Data.Set.Basic
import Mathlib.Data.Set.Finite
import Mathlib.Order.Filter.Basic
import Mathlib.Tactic.Explode

theorem 
Filter.ext_iff₁: ∀ {α : Type u_1} (f g : Filter α), f = g ↔ ∀ (s : Set α), s ∈ f ↔ s ∈ g
Filter.ext_iff₁
(
f: Filter α
f
g: Filter α
g
:
Filter: Type u_1 → Type u_1
Filter
α: Type u_1
α
) :
f: Filter α
f
=
g: Filter α
g
(
s: Set α
s
,
s: Set α
s
f: Filter α
f
s: Set α
s
g: Filter α
g
) :=

Goals accomplished! 🐙

Goals accomplished! 🐙
theorem
Filter.ext_iff₂: ∀ {α : Type u_1} (f g : Filter α), f = g ↔ ∀ (s : Set α), s ∈ f ↔ s ∈ g
Filter.ext_iff₂
(
f: Filter α
f
g: Filter α
g
:
Filter: Type u_1 → Type u_1
Filter
α: Type u_1
α
) :
f: Filter α
f
=
g: Filter α
g
(
s: Set α
s
,
s: Set α
s
f: Filter α
f
s: Set α
s
g: Filter α
g
) :=

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α

mp
f = g (s : Set α), s f s g
α: Type u_1
f, g: Filter α
( (s : Set α), s f s g) f = g
α: Type u_1
f, g: Filter α

mp
f = g (s : Set α), s f s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g

mp
(s : Set α), s f s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α

mp
s f s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α

mp.mp
s f s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s g s f
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α

mp.mp
s f s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_f: s f

mp.mp
s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_f: s f

mp.mp
s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_f: s f

mp.mp
s f
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_f: s f

mp.mp
s f

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α

mp.mpr
s g s f
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_g: s g

mp.mpr
s f
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_g: s g

mp.mpr
s f
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_g: s g

mp.mpr
s g
α: Type u_1
f, g: Filter α
f_eq_g: f = g
s: Set α
s_mem_g: s g

mp.mpr
s g

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α

mpr
( (s : Set α), s f s g) f = g
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g

mpr
f = g
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g

mpr
f = g
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g

mpr
f.sets = g.sets
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g

mpr
f.sets = g.sets
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g

mpr
f.sets = g.sets
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g

mpr
(x : Set α), x f.sets x g.sets
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g

mpr
(x : Set α), x f.sets x g.sets
α: Type u_1
f, g: Filter α
set_mem_iff: (s : Set α), s f s g
s: Set α

mpr
s f.sets s g.sets
α: Type u_1
f, g: Filter α
s: Set α
set_mem_iff: s f s g

mpr
s f.sets s g.sets

Goals accomplished! 🐙
theorem
Filter.ext_iff₃: ∀ {α : Type u_1} (f g : Filter α), f = g ↔ ∀ (s : Set α), s ∈ f ↔ s ∈ g
Filter.ext_iff₃
(
f: Filter α
f
g: Filter α
g
:
Filter: Type u_1 → Type u_1
Filter
α: Type u_1
α
) :
f: Filter α
f
=
g: Filter α
g
(
s: Set α
s
,
s: Set α
s
f: Filter α
f
s: Set α
s
g: Filter α
g
) :=

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α

f = g (s : Set α), s f s g

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α

f = g f.sets = g.sets
α: Type u_1
f, g: Filter α

f.sets = g.sets f.sets = g.sets

Goals accomplished! 🐙
_: Prop
α: Type u_1
f, g: Filter α

f = g (s : Set α), s f s g

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α

f.sets = g.sets (x : Set α), x f.sets x g.sets
α: Type u_1
f, g: Filter α

( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets

Goals accomplished! 🐙
_: Prop
α: Type u_1
f, g: Filter α

f = g (s : Set α), s f s g

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α

( (x : Set α), x f.sets x g.sets) (x : Set α), x f x g

Goals accomplished! 🐙

Goals accomplished! 🐙
theorem
Filter.ext_iff₄: ∀ {α : Type u_1} (f g : Filter α), f = g ↔ ∀ (s : Set α), s ∈ f ↔ s ∈ g
Filter.ext_iff₄
(
f: Filter α
f
g: Filter α
g
:
Filter: Type u_1 → Type u_1
Filter
α: Type u_1
α
) :
f: Filter α
f
=
g: Filter α
g
(
s: Set α
s
,
s: Set α
s
f: Filter α
f
s: Set α
s
g: Filter α
g
) :=

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α

f = g (s : Set α), s f s g

Goals accomplished! 🐙
α: Type u_1
f, g, fg: Filter α
x: Set α

(x fg.sets) = (x fg)
α: Type u_1
f, g, fg: Filter α
x: Set α

(x fg.sets) = (x fg)
α: Type u_1
f, g, fg: Filter α
x: Set α

(x fg) = (x fg)

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

f = g (s : Set α), s f s g

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

f = g f.sets = g.sets
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

f.sets = g.sets f.sets = g.sets

Goals accomplished! 🐙
_: Prop
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

f = g (s : Set α), s f s g

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

f.sets = g.sets (x : Set α), x f.sets x g.sets
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets

Goals accomplished! 🐙
_: Prop
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

f = g (s : Set α), s f s g

Goals accomplished! 🐙
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)

( (x : Set α), x f.sets x g.sets) (x : Set α), x f x g
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)
x: Set α

x f.sets x g.sets
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)
x: Set α

x f.sets x g.sets
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)
x: Set α

x f x g.sets
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)
x: Set α

x f x g.sets
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)
x: Set α

x f x g.sets
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)
x: Set α

x f x g
α: Type u_1
f, g: Filter α
mem_sets_eq_mem: (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)
x: Set α

x f x g
-- 19
Filter.ext_iff₁ : : Type u_1} (f g : Filter α), f = g (s : Set α), s f s g 0 α Type u_1 1 f Filter α 2 g Filter α 3 _auxLemma.1 (f = g) = (f.sets = g.sets) 4 _auxLemma.2 (f.sets = g.sets) = (x : Set α), x f.sets x g.sets 5 x Set α 6 _auxLemma.3 (x f.sets) = (x f) 7 6 congrArg Iff (x f.sets) = Iff (x f) 8 _auxLemma.3 (x g.sets) = (x g) 9 7,8 congr (x f.sets x g.sets) = (x f x g) 105,9 I (x : Set α), (x f.sets x g.sets) = (x f x g) 1110 forall_congr ( (a : Set α), a f.sets a g.sets) = (a : Set α), a f a g 124,11 Eq.trans (f.sets = g.sets) = (a : Set α), a f a g 133,12 Eq.trans (f = g) = (a : Set α), a f a g 1413 congrArg (f = g (x : Set α), x f x g) = (( (a : Set α), a f a g) (x : Set α), x f x g) 15 iff_self (( (x : Set α), x f x g) (x : Set α), x f x g) = True 1614,15 Eq.trans (f = g (x : Set α), x f x g) = True 1716 of_eq_true f = g (x : Set α), x f x g 180,1,2,17 I : Type u_1} (f g : Filter α), f = g (x : Set α), x f x g
-- 38
Filter.ext_iff₂ : : Type u_1} (f g : Filter α), f = g (s : Set α), s f s g 0 α Type u_1 1 f Filter α 2 g Filter α 3 f_eq_g f = g 4 s Set α 5 s_mem_f s f 6 3 Eq.symm g = f 7 6 congrArg (s g) = (s f) 8 7 id (s g) = (s f) 9 8,5 Eq.mpr s g 105,9 I s f s g 11 s_mem_g s g 123 congrArg (s f) = (s g) 1312 id (s f) = (s g) 1413,11 Eq.mpr s f 1511,14 I s g s f 1610,15 Iff.intro s f s g 173,4,16 I f = g (s : Set α), s f s g 18 set_mem_iff (s : Set α), s f s g 19 Filter.filter_eq_iff f = g f.sets = g.sets 2019 propext (f = g) = (f.sets = g.sets) 2120 congrArg (f = g) = (f.sets = g.sets) 2221 id (f = g) = (f.sets = g.sets) 23 Set.ext_iff f.sets = g.sets (x : Set α), x f.sets x g.sets 2423 propext (f.sets = g.sets) = (x : Set α), x f.sets x g.sets 2524 congrArg (f.sets = g.sets) = (x : Set α), x f.sets x g.sets 2625 id (f.sets = g.sets) = (x : Set α), x f.sets x g.sets 27 s Set α 2818 E s f s g 2927,28 I (s : Set α), s f s g 3026,29 Eq.mpr f.sets = g.sets 3122,30 Eq.mpr f = g 3218,31 I ( (s : Set α), s f s g) f = g 3317,32 Iff.intro f = g (s : Set α), s f s g 340,1,2,33 I : Type u_1} (f g : Filter α), f = g (s : Set α), s f s g
-- 31
Filter.ext_iff₃ : : Type u_1} (f g : Filter α), f = g (s : Set α), s f s g 0 α Type u_1 1 f Filter α 2 g Filter α 3 Filter.filter_eq_iff f = g f.sets = g.sets 4 3 propext (f = g) = (f.sets = g.sets) 5 4 congrArg (f = g f.sets = g.sets) = (f.sets = g.sets f.sets = g.sets) 6 5 id (f = g f.sets = g.sets) = (f.sets = g.sets f.sets = g.sets) 7 Iff.rfl f.sets = g.sets f.sets = g.sets 8 6,7 Eq.mpr f = g f.sets = g.sets 9 Set.ext_iff f.sets = g.sets (x : Set α), x f.sets x g.sets 109 propext (f.sets = g.sets) = (x : Set α), x f.sets x g.sets 1110 congrArg (f.sets = g.sets (x : Set α), x f.sets x g.sets) = (( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets) 1211 id (f.sets = g.sets (x : Set α), x f.sets x g.sets) = (( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets) 13 Iff.rfl ( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets 1412,13 Eq.mpr f.sets = g.sets (x : Set α), x f.sets x g.sets 158,14 Trans.trans f = g (x : Set α), x f.sets x g.sets 16 x Set α 17 _auxLemma.3 (x f.sets) = (x f) 1817 congrArg Iff (x f.sets) = Iff (x f) 19 _auxLemma.3 (x g.sets) = (x g) 2018,19 congr (x f.sets x g.sets) = (x f x g) 2116,20 I (x : Set α), (x f.sets x g.sets) = (x f x g) 2221 forall_congr ( (a : Set α), a f.sets a g.sets) = (a : Set α), a f a g 2322 congrArg (( (a : Set α), a f.sets a g.sets) (x : Set α), x f x g) = (( (a : Set α), a f a g) (x : Set α), x f x g) 24 iff_self (( (x : Set α), x f x g) (x : Set α), x f x g) = True 2523,24 Eq.trans (( (a : Set α), a f.sets a g.sets) (x : Set α), x f x g) = True 2625 of_eq_true ( (a : Set α), a f.sets a g.sets) (x : Set α), x f x g 2715,26 Trans.trans f = g (x : Set α), x f x g 280,1,2,27 I : Type u_1} (f g : Filter α), f = g (x : Set α), x f x g
-- 60
Filter.ext_iff₄ : : Type u_1} (f g : Filter α), f = g (s : Set α), s f s g 0 α Type u_1 1 f Filter α 2 g Filter α 3 fg Filter α 4 x Set α 5 Filter.mem_sets x fg.sets x fg 6 5 propext (x fg.sets) = (x fg) 7 6 congrArg ((x fg.sets) = (x fg)) = ((x fg) = (x fg)) 8 7 id ((x fg.sets) = (x fg)) = ((x fg) = (x fg)) 9 Eq.refl (x fg) = (x fg) 108,9 Eq.mpr (x fg.sets) = (x fg) 113,4,10 I (fg : Filter α) (x : Set α), (x fg.sets) = (x fg) 12 mem_sets_eq_mem (fg : Filter α) (x : Set α), (x fg.sets) = (x fg) 13 Filter.filter_eq_iff f = g f.sets = g.sets 1413 propext (f = g) = (f.sets = g.sets) 1514 congrArg (f = g f.sets = g.sets) = (f.sets = g.sets f.sets = g.sets) 1615 id (f = g f.sets = g.sets) = (f.sets = g.sets f.sets = g.sets) 17 Iff.rfl f.sets = g.sets f.sets = g.sets 1816,17 Eq.mpr f = g f.sets = g.sets 19 Set.ext_iff f.sets = g.sets (x : Set α), x f.sets x g.sets 2019 propext (f.sets = g.sets) = (x : Set α), x f.sets x g.sets 2120 congrArg (f.sets = g.sets (x : Set α), x f.sets x g.sets) = (( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets) 2221 id (f.sets = g.sets (x : Set α), x f.sets x g.sets) = (( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets) 23 Iff.rfl ( (x : Set α), x f.sets x g.sets) (x : Set α), x f.sets x g.sets 2422,23 Eq.mpr f.sets = g.sets (x : Set α), x f.sets x g.sets 2518,24 Trans.trans f = g (x : Set α), x f.sets x g.sets 26 a Prop 27 a Prop 28 e_a a = a 29 b Prop 30 b Prop 31 e_b b = b 32 Eq.refl (a b) = (a b) 3332,31 Eq.rec (a b) = (a b) 3429,30,31,33 I (b b_1 : Prop), b = b_1 (a b) = (a b_1) 3534,28 Eq.rec (b b_1 : Prop), b = b_1 (a b) = (a b_1) 3626,27,28,35 I (a a_1 : Prop), a = a_1 (b b_1 : Prop), b = b_1 (a b) = (a_1 b_1) 37 x Set α 3812 E (x f.sets) = (x f) 3938 congrArg (x f.sets x g.sets) = (x f x g.sets) 4012 E (x g.sets) = (x g) 4140 congrArg (x f x g.sets) = (x f x g) 42 Eq.refl (x f x g) = (x f x g) 4341,42 Eq.trans (x f x g.sets) = (x f x g) 4439,43 Eq.trans (x f.sets x g.sets) = (x f x g) 4537,44 I (x : Set α), (x f.sets x g.sets) = (x f x g) 4645 forall_congr ( (a : Set α), a f.sets a g.sets) = (a : Set α), a f a g 47 Eq.refl ( (x : Set α), x f x g) = (x : Set α), x f x g 4836,46,47 E (( (x : Set α), x f.sets x g.sets) (x : Set α), x f x g) = (( (x : Set α), x f x g) (x : Set α), x f x g) 4948 id (( (x : Set α), x f.sets x g.sets) (x : Set α), x f x g) = (( (x : Set α), x f x g) (x : Set α), x f x g) 50 Iff.rfl ( (x : Set α), x f x g) (x : Set α), x f x g 5149,50 Eq.mpr ( (x : Set α), x f.sets x g.sets) (x : Set α), x f x g 5225,51 Trans.trans f = g (x : Set α), x f x g 5312,52 I ( (fg : Filter α) (x : Set α), (x fg.sets) = (x fg)) (f = g (x : Set α), x f x g) 5411,53 letFun f = g (s : Set α), s f s g 550,1,2,54 I : Type u_1} (f g : Filter α), f = g (s : Set α), s f s g
theorem
Set.mem_iff: ∀ {α : Type u_1} (p : α → Prop) (y : α), y ∈ {x | p x} ↔ p y
Set.mem_iff
(
p: α → Prop
p
:
α: Type u_1
α
Prop: Type
Prop
) (
y: α
y
:
α: Type u_1
α
) :
y: α
y
{
x: α
x
:
α: Type u_1
α
|
p: α → Prop
p
x: α
x
}
p: α → Prop
p
y: α
y
:=

Goals accomplished! 🐙

Goals accomplished! 🐙
example: {α : Type u_1} → Filter α
example
:
Filter: Type u_1 → Type u_1
Filter
α: Type u_1
α
:= { sets := {
s: Set α
s
:
Set: Type u_1 → Type u_1
Set
α: Type u_1
α
|
Set.Finite: {α : Type u_1} → Set α → Prop
Set.Finite
s: Set α
s
} univ_sets :=

Goals accomplished! 🐙
α: Type ?u.1247

Set.univ {s | sᶜ.Finite}
α: Type ?u.1247

Set.univᶜ.Finite
α: Type ?u.1247

∅.Finite
α: Type ?u.1247

∅.Finite

Goals accomplished! 🐙
sets_of_superset :=

Goals accomplished! 🐙
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: s {s | sᶜ.Finite}
«s ⊆ t»: s t

t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: s {s | sᶜ.Finite}
«s ⊆ t»: s t

t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: s t

t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: s t

t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: s t

t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: s t

t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: s t

tᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: s t

tᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: s t

tᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: t s

tᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: t s

tᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«s ⊆ t»: t s

tᶜ.Finite

Goals accomplished! 🐙
inter_sets :=

Goals accomplished! 🐙
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: s {s | sᶜ.Finite}
«tᶜ is finite»: t {s | sᶜ.Finite}

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: s {s | sᶜ.Finite}
«tᶜ is finite»: t {s | sᶜ.Finite}

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: t {s | sᶜ.Finite}

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: t {s | sᶜ.Finite}

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: t {s | sᶜ.Finite}

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: t {s | sᶜ.Finite}

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

s t {s | sᶜ.Finite}
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

(s t)ᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

(s t)ᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

(s t)ᶜ.Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

(s t).Finite
α: Type ?u.1247
s, t: Set α
«sᶜ is finite»: sᶜ.Finite
«tᶜ is finite»: tᶜ.Finite

(s t).Finite

Goals accomplished! 🐙
}
example: {α : Type u_1} → Filter α
example
:
Filter: Type u_1 → Type u_1
Filter
α: Type u_1
α
where sets := {
s: Set α
s
:
Set: Type u_1 → Type u_1
Set
α: Type u_1
α
|
Set.Finite: {α : Type u_1} → Set α → Prop
Set.Finite
s: Set α
s
} univ_sets :=

Goals accomplished! 🐙

Goals accomplished! 🐙
sets_of_superset
«sᶜ is finite»: x✝ ∈ {s | sᶜ.Finite}
«s is finite»
«s ⊆ t»: x✝ ⊆ y✝
«s t»
:=
«sᶜ is finite»: x✝ ∈ {s | sᶜ.Finite}
«s is finite»
.
subset: ∀ {α : Type u_1} {s : Set α}, s.Finite → ∀ {t : Set α}, t ⊆ s → t.Finite
subset
<|
Set.compl_subset_compl: ∀ {α : Type u_1} {s t : Set α}, sᶜ ⊆ tᶜ ↔ t ⊆ s
Set.compl_subset_compl
.
mpr: ∀ {a b : Prop}, (a ↔ b) → b → a
mpr
«s ⊆ t»: x✝ ⊆ y✝
«s t»
-- equivelent to: -- sets_of_superset := by -- intros s t «sᶜ is finite» «s ⊆ t» -- have «tᶜ ⊆ sᶜ» := Set.compl_subset_compl.mpr «s ⊆ t» -- exact Set.Finite.subset «sᶜ is finite» «tᶜ ⊆ sᶜ» -- hint: https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Filter.cofinite#doc inter_sets :=

Goals accomplished! 🐙

Goals accomplished! 🐙