Closed Trebor-Huang closed 2 weeks ago
Because transp
on record types only computes when projected from; you can normalise projectionwise to see what each field computes to. More generally, reflexive transports should not be expected to reduce to the base in general (or quantified-over) types, and we exploit this to reduce the sizes of normal forms, particularly when eta-expansion applies. Transport doesn't eagerly reduce on functions or paths, either (you have to apply them).
Consider the following code
Agda correctly recognizes
a = (true , 3)
, but using the VSCode plugin to normalizea
via C-c C-n, I gettransp (λ i → Σ Bool (λ _ → ℕ)) i0 (true , 3)
back. Why is this happening? In my actual case there's like hundreds of trivialtransp
stacked on the actual result, and I can't read anything.