Structural sets #
In this file, we define structural sets, which serve as the environment inside which we will construct the types of our model
Main declarations #
ConNF.StrSet
: The type family of structural sets.
@[irreducible]
Equations
- ConNF.StrSet none = ConNF.Atom
- ConNF.StrSet (some α) = ((β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StrSet β))
Instances For
theorem
ConNF.StrSet.coe_eq
[ConNF.Params]
(α : ConNF.Λ)
:
ConNF.StrSet ↑α = ((β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StrSet β))
Equations
- ConNF.StrSet.botEquiv = Equiv.cast ⋯
Instances For
def
ConNF.StrSet.coeEquiv
[ConNF.Params]
{α : ConNF.Λ}
:
ConNF.StrSet ↑α ≃ ((β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StrSet β))
Equations
- ConNF.StrSet.coeEquiv = Equiv.cast ⋯
Instances For
Extensionality for structural sets at proper type indices. If two structural sets have the same extensions at every lower type index, then they are the same.
@[irreducible]
def
ConNF.StrSet.strPerm_smul
[ConNF.Params]
{α : ConNF.TypeIndex}
:
ConNF.StrPerm α → ConNF.StrSet α → ConNF.StrSet α
Equations
- ConNF.StrSet.strPerm_smul π x_3 = ConNF.StrSet.botEquiv.symm (π ConNF.Path.nil • ConNF.StrSet.botEquiv x_3)
- ConNF.StrSet.strPerm_smul π x_3 = ConNF.StrSet.coeEquiv.symm fun (β : ConNF.TypeIndex) (hβ : β < ↑α) => ConNF.StrSet.strPerm_smul (π ↘ hβ) '' ConNF.StrSet.coeEquiv x_3 β hβ
Instances For
theorem
ConNF.StrSet.strPerm_smul_bot_def
[ConNF.Params]
(π : ConNF.StrPerm ⊥)
(x : ConNF.StrSet ⊥)
:
ConNF.StrSet.strPerm_smul π x = ConNF.StrSet.botEquiv.symm (π ConNF.Path.nil • ConNF.StrSet.botEquiv x)
theorem
ConNF.StrSet.strPerm_smul_coe_def
[ConNF.Params]
{α : ConNF.Λ}
(π : ConNF.StrPerm ↑α)
(x : ConNF.StrSet ↑α)
:
ConNF.StrSet.strPerm_smul π x = ConNF.StrSet.coeEquiv.symm fun (β : ConNF.TypeIndex) (hβ : β < ↑α) =>
ConNF.StrSet.strPerm_smul (π ↘ hβ) '' ConNF.StrSet.coeEquiv x β hβ
instance
ConNF.StrSet.instSMulStrPerm
[ConNF.Params]
{α : ConNF.TypeIndex}
:
SMul (ConNF.StrPerm α) (ConNF.StrSet α)
Equations
- ConNF.StrSet.instSMulStrPerm = { smul := ConNF.StrSet.strPerm_smul }
theorem
ConNF.StrSet.strPerm_smul_bot_def'
[ConNF.Params]
(π : ConNF.StrPerm ⊥)
(x : ConNF.StrSet ⊥)
:
theorem
ConNF.StrSet.strPerm_smul_coe_def'
[ConNF.Params]
{α : ConNF.Λ}
(π : ConNF.StrPerm ↑α)
(x : ConNF.StrSet ↑α)
:
@[simp]
@[simp]
theorem
ConNF.StrSet.strPerm_smul_coe
[ConNF.Params]
{α : ConNF.Λ}
(π : ConNF.StrPerm ↑α)
(x : ConNF.StrSet ↑α)
:
theorem
ConNF.StrSet.one_strPerm_smul
[ConNF.Params]
{α : ConNF.TypeIndex}
(x : ConNF.StrSet α)
:
ConNF.StrSet.strPerm_smul 1 x = x
theorem
ConNF.StrSet.mul_strPerm_smul
[ConNF.Params]
{α : ConNF.TypeIndex}
(π₁ π₂ : ConNF.StrPerm α)
(x : ConNF.StrSet α)
:
ConNF.StrSet.strPerm_smul (π₁ * π₂) x = ConNF.StrSet.strPerm_smul π₁ (ConNF.StrSet.strPerm_smul π₂ x)
instance
ConNF.StrSet.instMulActionStrPerm
[ConNF.Params]
{α : ConNF.TypeIndex}
:
MulAction (ConNF.StrPerm α) (ConNF.StrSet α)
Equations
- ConNF.StrSet.instMulActionStrPerm = MulAction.mk ⋯ ⋯
Notation for typed membership #
class
ConNF.TypedMem
[ConNF.Params]
(X : Type u_1)
(Y : Type u_2)
(β α : outParam ConNF.TypeIndex)
:
Type (max u_1 u_2)
Instances
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
ConNF.instTypedMemStrSet
[ConNF.Params]
{β α : ConNF.TypeIndex}
:
ConNF.TypedMem (ConNF.StrSet β) (ConNF.StrSet α) β α
Equations
- One or more equations did not get rendered due to their size.
theorem
ConNF.StrSet.mem_iff
[ConNF.Params]
{α : ConNF.Λ}
{β : ConNF.TypeIndex}
{x : ConNF.StrSet β}
{y : ConNF.StrSet ↑α}
(h : β < ↑α)
:
Extensionality for structural sets at proper type indices. If two structural sets have the same extensions at every lower type index, then they are the same.
theorem
ConNF.StrSet.mem_smul_iff
[ConNF.Params]
{α β : ConNF.TypeIndex}
{x : ConNF.StrSet β}
{y : ConNF.StrSet α}
(h : β < α)
(π : ConNF.StrPerm α)
: