You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(agda): remove TERMINATING pragma via mutual block split
_≡ᵛ_ used {-# TERMINATING #-} because Agda's termination checker could
not see the lexicographic (type-index, list-length) measure through the
TList and TRecord recursive cases.
Fix: split into a mutual block — _≡ᵛ_, eqList, eqRecord.
- _≡ᵛ_ {TList τ} delegates entirely to eqList (no self-recursion)
- eqList terminates by structural List induction, calls _≡ᵛ_ on elements
(τ < TList τ — strict subterm of type index)
- eqRecord terminates by structural field-list induction, calls _≡ᵛ_ on
parts (τ and TRecord fs are both strict subterms of TRecord ((f,τ)∷fs))
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments