Sets in subtypes #
This file is about sets in Set A
when A
is a set.
It defines notation ↓∩
for sets in a type pulled down to sets in a subtype, as an inverse
operation to the coercion that lifts sets in a subtype up to sets in the ambient type.
This module also provides lemmas for ↓∩
and this coercion.
Notation #
Let α
be a Type
, A B : Set α
two sets in α
, and C : Set A
a set in the subtype ↑A
.
A ↓∩ B
denotes(Subtype.val ⁻¹' B : Set A)
(that is,{x : ↑A | ↑x ∈ B}
).↑C
denotesSubtype.val '' C
(that is,{x : α | ∃ y ∈ C, ↑y = x}
).
This notation, (together with the ↑
notation for Set.CoeHead
in Mathlib.Data.Set.Functor
)
is scoped to the Set.Notation
namespace.
To enable it, use open Set.Notation
.
Naming conventions #
Theorem names refer to ↓∩
as preimage_val
.
Tags #
subsets
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given two sets A
and B
, A ↓∩ B
denotes the intersection of A
and B
as a set in Set A
.
The notation is short for ((↑) ⁻¹' B : Set A)
, while giving hints to the elaborator
that both A
and B
are terms of Set α
for the same α
.
This set is the same as {x : ↑A | ↑x ∈ B}
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The following simp lemmas try to transform operations in the subtype into operations in the ambient type, if possible.
Relations between restriction and coercion.