Documentation

ConNF.ModelData.CoherentData

Coherent data #

In this file, we define the type of coherent data below a particular proper type index.

Main declarations #

TODO: We're going to try allowing model data at level ⊥ to vary. That is, we use (β : TypeIndex) → [LeLevel β] → ModelData β instead of (β : Λ) → [LeLevel β] → ModelData β.

class ConNF.LeData [Params] [Level] :
Type (u + 1)

A convenience typeclass to hold data below the current level.

Instances
    theorem ConNF.LeData.ext_iff {inst✝ : Params} {inst✝¹ : Level} {x y : LeData} :
    theorem ConNF.LeData.ext {inst✝ : Params} {inst✝¹ : Level} {x y : LeData} (data : data = data) (positions : positions ≍ positions) :
    x = y
    Instances
      theorem ConNF.PreCoherentData.ext {inst✝ : Params} {inst✝¹ : Level} {x y : PreCoherentData} (data : LeData.data = LeData.data) (positions : LeData.positions ≍ LeData.positions) (allPermSderiv : @allPermSderiv inst✝ inst✝¹ x ≍ @allPermSderiv inst✝ inst✝¹ y) (singleton : @singleton inst✝ inst✝¹ x ≍ @singleton inst✝ inst✝¹ y) :
      x = y
      theorem ConNF.PreCoherentData.ext_iff {inst✝ : Params} {inst✝¹ : Level} {x y : PreCoherentData} :
      x = y ↔ LeData.data = LeData.data ∧ LeData.positions ≍ LeData.positions ∧ @allPermSderiv inst✝ inst✝¹ x ≍ @allPermSderiv inst✝ inst✝¹ y ∧ @singleton inst✝ inst✝¹ x ≍ @singleton inst✝ inst✝¹ y
      Equations
      • One or more equations did not get rendered due to their size.
      @[simp]
      @[simp]
      theorem ConNF.allPerm_deriv_sderiv [Params] [Level] [PreCoherentData] {β γ δ : TypeIndex} [LeLevel β] [LeLevel γ] [LeLevel δ] (ρ : AllPerm β) (A : β ↝ γ) (h : δ < γ) :
      ρ ⇘ (A ↘ h) = ρ ⇘ A ↘ h

      Note that in earlier versions of the proof we additionally used the following assumption.

      typedMem_tSetForget {β : Λ} {γ : TypeIndex} [LeLevel β] [LeLevel γ]
        (hγ : γ < β) (x : TSet β) (y : StrSet γ) :
        y ∈[hγ] xᵁ → ∃ z : TSet γ, y = zᵁ
      
      Instances
        theorem ConNF.CoherentData.ext {inst✝ : Params} {inst✝¹ : Level} {x y : CoherentData} (data : LeData.data = LeData.data) (positions : LeData.positions ≍ LeData.positions) (allPermSderiv : @PreCoherentData.allPermSderiv inst✝ inst✝¹ x.toPreCoherentData ≍ @PreCoherentData.allPermSderiv inst✝ inst✝¹ y.toPreCoherentData) (singleton : @singleton inst✝ inst✝¹ x.toPreCoherentData ≍ @singleton inst✝ inst✝¹ y.toPreCoherentData) :
        x = y
        @[simp]
        theorem ConNF.allPermDeriv_forget [Params] [Level] [CoherentData] {β γ : TypeIndex} [LeLevel β] [iγ : LeLevel γ] (A : β ↝ γ) (ρ : AllPerm β) :
        (ρ ⇘ A)ᵁ = ρᵁ ⇘ A
        theorem ConNF.allPerm_inv_sderiv [Params] [Level] [CoherentData] {β γ : TypeIndex} [LeLevel β] [iγ : LeLevel γ] (h : γ < β) (ρ : AllPerm β) :
        ρ⁻¹ ↘ h = (ρ ↘ h)⁻¹
        theorem ConNF.TSet.mem_smul_iff [Params] [Level] [CoherentData] {β γ : TypeIndex} [LeLevel β] [iγ : LeLevel γ] {x : TSet γ} {y : TSet β} (h : γ < β) (ρ : AllPerm β) :
        x ∈[h] ρ • y ↔ ρ⁻¹ ↘ h • x ∈[h] y
        @[simp]
        theorem ConNF.CoherentData.smul_singleton [Params] [Level] [CoherentData] {β γ : Λ} [LeLevel ↑β] [LeLevel ↑γ] (hγ : ↑γ < ↑β) (x : TSet ↑γ) (ρ : AllPerm ↑β) :
        ρ • singleton hγ x = singleton hγ (ρ ↘ hγ • x)