Structural sets #
A structural set is an object of the supertype structure that our model resides inside. In this file, we define structural sets.
Main declarations #
ConNF.StructSet
: The type of structural sets.
@[irreducible]
A structural set is an object that may become a t-set, an element of the model. The type of structural sets forms a model of TTT without extensionality.
Equations
- ConNF.StructSet none = ConNF.Atom
- ConNF.StructSet (some α) = ((β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StructSet β))
Instances For
The "identity" equivalence between Atom
and StructSet ⊥
.
Equations
- ConNF.StructSet.toBot = Equiv.cast ⋯
Instances For
The "identity" equivalence between StructSet ⊥
and Atom
.
Equations
- ConNF.StructSet.ofBot = Equiv.cast ⋯
Instances For
def
ConNF.StructSet.toCoe
[ConNF.Params]
{α : ConNF.Λ}
:
((β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StructSet β)) ≃ ConNF.StructSet ↑α
The "identity" equivalence between ∀ β < α, Set (StructSet β)
and StructSet α
.
Equations
- ConNF.StructSet.toCoe = Equiv.cast ⋯
Instances For
def
ConNF.StructSet.ofCoe
[ConNF.Params]
{α : ConNF.Λ}
:
ConNF.StructSet ↑α ≃ ((β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StructSet β))
The "identity" equivalence between StructSet α
and ∀ β < α, Set (StructSet β)
.
Equations
- ConNF.StructSet.ofCoe = Equiv.cast ⋯
Instances For
@[simp]
theorem
ConNF.StructSet.toBot_symm
[ConNF.Params]
:
ConNF.StructSet.toBot.symm = ConNF.StructSet.ofBot
@[simp]
theorem
ConNF.StructSet.ofBot_symm
[ConNF.Params]
:
ConNF.StructSet.ofBot.symm = ConNF.StructSet.toBot
@[simp]
theorem
ConNF.StructSet.toCoe_symm
[ConNF.Params]
{α : ConNF.Λ}
:
ConNF.StructSet.toCoe.symm = ConNF.StructSet.ofCoe
@[simp]
theorem
ConNF.StructSet.ofCoe_symm
[ConNF.Params]
{α : ConNF.Λ}
:
ConNF.StructSet.ofCoe.symm = ConNF.StructSet.toCoe
@[simp]
theorem
ConNF.StructSet.toBot_ofBot
[ConNF.Params]
(a : ConNF.StructSet ⊥)
:
ConNF.StructSet.toBot (ConNF.StructSet.ofBot a) = a
@[simp]
theorem
ConNF.StructSet.ofBot_toBot
[ConNF.Params]
(a : ConNF.Atom)
:
ConNF.StructSet.ofBot (ConNF.StructSet.toBot a) = a
@[simp]
theorem
ConNF.StructSet.toCoe_ofCoe
[ConNF.Params]
{α : ConNF.Λ}
(a : ConNF.StructSet ↑α)
:
ConNF.StructSet.toCoe (ConNF.StructSet.ofCoe a) = a
@[simp]
theorem
ConNF.StructSet.ofCoe_toCoe
[ConNF.Params]
{α : ConNF.Λ}
(a : (β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StructSet β))
:
ConNF.StructSet.ofCoe (ConNF.StructSet.toCoe a) = a
@[simp]
@[simp]
@[simp]
theorem
ConNF.StructSet.toCoe_inj
[ConNF.Params]
{α : ConNF.Λ}
{a : (β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StructSet β)}
{b : (β : ConNF.TypeIndex) → β < ↑α → Set (ConNF.StructSet β)}
:
@[simp]
theorem
ConNF.StructSet.ofCoe_inj
[ConNF.Params]
{α : ConNF.Λ}
{a : ConNF.StructSet ↑α}
{b : ConNF.StructSet ↑α}
:
theorem
ConNF.StructSet.coe_ext
[ConNF.Params]
{α : ConNF.Λ}
{a : ConNF.StructSet ↑α}
{b : ConNF.StructSet ↑α}
:
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.