🐱

User Profile :: PathKitty

Member since: 2022-03-14 (π Day!)
🐱
PathKitty
✦ Path Induction Princess ✦

🛡 MODERATOR
★★★★★
Currently Online
Forum Activity
82% — Very Active
987 Posts
312 Topics
4.2/day Post Rate
2,341 Rep ♥
Username PathKitty _
Rank ✦ Path Induction Princess ✦
Role Moderator — Cubical Agda, HoTT, Type Theory subforums
Joined 2022-03-14 (π Day 🥧)
Last Active Just now
Location Inside a fiber bundle, probably
Specialties
Proof Assistant Cubical Agda (--cubical flag always on 😼)
Fav. Axiom Univalence, obviously. (J-refl counts too nyaa~)
Gender cat girl (type-theoretic sense)
Website pathkitty.isarabbithole.com
GitHub github.com/PathKitty
🏆 Achievements
🏆 1000 Post Approacher
⭐ Top Moderator 2023
📘 Tutorial Author
🔷 Cubical Core Contributor
💖 Community Favourite
∞ ∞-Groupoid Guru
✍ Signature
-- PathKitty's J-eliminator, because every path needs a motive. nya~
-- J : The fundamental path eliminator ✦ J : {A : Type}(P : (x y : A)x yType ℓ')(d : (x : A)P x x refl)(x y : A)(p : x y)P x y p J P d x .x refl = d x -- ↑ computes definitionally on refl ✧ (╹◡╹)∫
📝

Recent Posts by PathKitty

Showing 5 of 987

Nyaa~ great question! The key insight is that in Cubical Agda, we trade the J-refl computation rule for a proper interval type. Path induction still works — you just prove it via transp and contractibility of singletons:

singl : {A : Type}ATypesingl a = Σ b (a  b)

isContrSingl : (a : A)isContr (singl a)
isContrSingl a = (a , refl) , λ p  ...

Once you have contractibility, deriving J is just transport along the contraction path. The motive P gets evaluated at the centre of contraction, which is (a, refl). Very elegant, very purrfect. (ฅ^•ﻌ•^ฅ)

Okay so I keep seeing confusion about this in the newcomer threads. Let me settle it once and for all 🐱

Quote originally by MeowtinLöf:
"Are identity types and path types the same thing in Cubical Agda?"

Short answer: no, but they're equivalent! The cubical identity type Id and the path type _≡_ are equivalent via univalence, so all results transport between them. However, path types satisfy extra definitional equalities that identity types don't — and that matters for computation! The J eliminator for the cubical Id type does compute definitionally on refl, which is the best of both worlds (≧◡≦)

I finally finished this proof, meow! The key is defining the circle as a HIT with base : S¹ and loop : base ≡ base, then using the encode-decode method:

data  : Type where
  base : 
  loop : base  base

encode : (x : )base  xhelix x
decode : (x : )helix xbase  x

Where helix : S¹ → Type encodes ℤ at the base, twisted by the successor function over the loop. The whole proof is like 80 lines in Cubical Agda — much shorter than the Book HoTT version! Having HITs with native path constructors makes everything so much cleaner. (✿◠‿◠)

When someone asks me if two types are equal and I pull out the full univalence axiom infrastructure just to prove Bool ≡ Bool:

(ノ°益°)ノ ⌨️  ua : A ≃ B → A ≡ B
    ≃ is just ≡ in disguise, fight me

Anyway yes, moderator hat on: please do use spoiler tags for large code blocks in this thread, I'll start pinning the formatting guide again if I have to 🐾

Hewwo everyone! I wrote a proper intro guide to HITs in Cubical Agda since the existing resources are scattered. TL;DR:

  • HITs = inductive types with path constructors (constructors living in identity types)
  • Cubical Agda lets you define them directly with data declarations — no axioms needed!
  • You get computational univalence and proper transp reductions over HITs
  • Pattern matching on HIT path constructors requires cubical boundary conditions to typecheck

Full guide in the Resources section. This is a living document; reply with corrections or questions and I'll update it. Nya~ (=^▽^=)

View all 987 posts »
📖

About PathKitty

Hi! I'm PathKitty, resident moderator and certified path-induction enthusiast on CGPA (✿╹◡╹)

I moderate the Cubical Agda, Homotopy Type Theory, and Type Theory subforums. My main research interests are path induction, identity types, and synthetic homotopy theory — all formalized in Cubical Agda.

I think J is deeply beautiful and anyone who disagrees needs to read the HoTT Book more carefully. (The computation rule J-refl holding definitionally via the cubical identity type is one of my favourite theorems. Seriously.)

Also I write a blog at pathkitty.isarabbithole.com about category theory, proof assistants, and occasionally about cat cafés. Feel free to DM/PM me with questions — I promise I won't bite. 🐾

Pro tip from your friendly mod: always include a minimal reproducible example when posting a type error. It helps everyone and I'll respond faster, nya~!