This commit is contained in:
Michael Zhang 2025-01-02 11:52:55 -05:00
parent aec6a34fb4
commit 644909da5d
2 changed files with 105 additions and 31 deletions

View file

@ -3,47 +3,77 @@
module ThesisWork.Pi3S2.SuccStr where
open import Cubical.Foundations.Prelude
open import Data.Nat using ( ; zero ; suc)
SuccStr : (I : Type) (S : I I) (i : I) (n : ) I
SuccStr I S i zero = i
SuccStr I S i (suc n) = S (SuccStr I S i n)
private
variable
' '' : Level
-- Examples of successor structures:
-- An indexing parameter that has only the successor operation
-- Can be used to index into sequences
-- Defined in FVD 4.1.2.
record SuccStr ( : Level) : Type (-suc ) where
field
A : Type
suc : A A
module _ {S : SuccStr } where
open import Cubical.Data.Nat renaming (suc to nsuc)
open SuccStr S
_+ˢ_ : (i : A) (n : ) A
i zero = i
i nsuc n = suc (i n)
module _ where
-- ( , λ n . n + 1)
-SuccStr : (i : ) (n : )
-SuccStr = SuccStr suc
open import Cubical.Data.Int
open SuccStr
-SuccStr : SuccStr -zero
-SuccStr .A =
-SuccStr .suc = suc
module _ where
open import Data.Integer using () renaming (suc to zsuc)
-- OLD: This doesn't work because we don't want the type of SuccStr to be
-- parameterized by the base type of the structure; instead, we want it to be
-- contained within the structure and have the structure expose a uniform
-- type
-- ( , λ n . n + 1)
-SuccStr : (i : ) (n : )
-SuccStr = SuccStr zsuc
-- SuccStr : (I : Type) (S : I → I) → (i : I) → (n : ) → I
-- SuccStr I S i zero = i
-- SuccStr I S i (suc n) = S (SuccStr I S i n)
module _ where
open import Data.Fin
open import Data.Product
-- -- Examples of successor structures:
inc-k-inv : {k : } ( × Fin k) ( × Fin k)
inc-k-inv {k} (n , zero) = (suc n) , opposite zero
inc-k-inv {k} (n , suc k1) = n , inject₁ k1
-- module _ where
-- -- ( , λ n . n + 1)
-- -SuccStr : (i : ) → (n : ) →
-- -SuccStr = SuccStr suc
inc : {k : } ( × Fin k) ( × Fin k)
inc {k} (n , k1) =
let result = inc-k-inv (n , opposite k1) in
(fst result) , opposite (snd result)
-- module _ where
-- open import Data.Integer using () renaming (suc to zsuc)
_ : inc {k = 3} (5 , from 2) (6 , zero)
_ = refl
-- -- ( , λ n . n + 1)
-- -SuccStr : (i : ) → (n : ) →
-- -SuccStr = SuccStr zsuc
-- _ : inc {k = 3} (5 , inject₁ (from 1)) ≡ (6 , zero)
-- _ = {! refl !}
-- module _ where
-- open import Data.Fin
-- open import Data.Product
_ : inc {k = 5} (5 , from 4) (6 , zero)
_ = refl
-- inc-k-inv : {k : } → ( × Fin k) → ( × Fin k)
-- inc-k-inv {k} (n , zero) = (suc n) , opposite zero
-- inc-k-inv {k} (n , suc k1) = n , inject₁ k1
-k-SuccStr : (k : ) ( × Fin k) ( × Fin k)
-k-SuccStr k = SuccStr ( × Fin k) inc
-- inc : {k : } → ( × Fin k) → ( × Fin k)
-- inc {k} (n , k1) =
-- let result = inc-k-inv (n , opposite k1) in
-- (fst result) , opposite (snd result)
-- _ : inc {k = 3} (5 , from 2) ≡ (6 , zero)
-- _ = refl
-- -- _ : inc {k = 3} (5 , inject₁ (from 1)) ≡ (6 , zero)
-- -- _ = {! refl !}
-- _ : inc {k = 5} (5 , from 4) ≡ (6 , zero)
-- _ = refl
-- -k-SuccStr : (k : ) → ( × Fin k) → → ( × Fin k)
-- -k-SuccStr k = SuccStr ( × Fin k) inc

View file

@ -1,3 +1,47 @@
{-# OPTIONS --cubical #-}
module ThesisWork.Spectrum where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Pointed
open import Cubical.Foundations.Structure
open import Cubical.Foundations.Equiv
open import Cubical.Data.Sigma
open import Cubical.Homotopy.Loopspace
open import ThesisWork.Pi3S2.SuccStr
private
variable
' '' : Level
-- A prespectrum is a pair consisting of a sequence of pointed types
-- (Y : Z → U) and a sequence of pointed maps e: (n : Z) → Yₙ →∗ ΩYₙ₊₁.
-- We will give a definition in terms of a successor structure tho.
record Prespectrum (N : SuccStr ) : Type (-suc ) where
open SuccStr N
field
Y : A Pointed
e : (n : A) Y n Ω (Y (suc n))
-Prespectrum : Type (-suc -zero)
-Prespectrum = Prespectrum -SuccStr
isPointedEquiv : {A : Pointed } {B : Pointed '} (f : A B) Type (-max ')
isPointedEquiv {A = A} {B = B} f = isEquiv (f .fst) × (f .fst (A .snd) B .snd)
isPtEquivToPtEquiv : {A : Pointed } {B : Pointed '} (f : A B) isPointedEquiv f A ≃∙ B
isPtEquivToPtEquiv f (fEqv , fPt) = (f .fst , fEqv) , fPt
-- An Ω-spectrum or spectrum is a prespectrum (Y, e) where eₙ is a
-- pointed equivalence for all n.
record IsSpectrum {N : SuccStr } (P : Prespectrum N) : Type where
open Prespectrum P
open SuccStr N
field
eIsEquiv : (n : A) isPointedEquiv (e n)
Spectrum : SuccStr Type (-suc )
Spectrum { = } N = Σ (Prespectrum N) IsSpectrum
-Spectrum : Type (-suc -zero)
-Spectrum = Spectrum -SuccStr