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
The README.agda is the entry, which gives the overview of our Agda formalisation.
Roughly, the paper presents several small QTASs in Section 3 and two main calculi in Section 3, 4 and 5.
The several systems are formalized in root folder and two calculi have several own projection folder.
We have tried our best to match the notation from Agda code with the paper, so the Agda script is readable to people with some experience in proof assistant. However, we prove the details about each theorem shown in the paper, to help better review this artifact.
Bidirectional typing, let-argument-go-first and the corresponding QTASs
Figure
Agda
File Location
Comments (if any)
Fig. 1 Bidirectional typing of STLC
_⊢b_#_⦂_
AllOrNothing.agda
Our formorlisation is different from classic bidirecitonal type system (shown in Fig.1), we add a App2 rule and change Lit rule to a inference mode, to better connect to QTASs, which is explained in paper line 420.
Fig. 2 Let arguments go first
_~_⊢_⇒_
Application.agda
Lit and Var shown in paper are syntactic sugar when application stack is empty, while in Agda we show in expanded version.
Fig. 3. STLC with all-or-nothing counters
_⊢d_#_⦂_
AllOrNothing.agda
Fig. 4. STLC with application counters
_⊢d_#_⦂_
Application.agda
Fig. 5. All-in-one QTAS
_⊢d_#_⦂_
AllInOne.agda
we have the same judgment defined in STLC/Decl.agda
Fig. 6 Typing derivation
ex-derivation
STLC/Decl.agda
Fig. 7 Elaboration rules
_⊢1_⦂_⟶_
STLC/Annotatability.agda
_⊢2_⦂_⟶_ and _⊢3_⦂_⟶_ are two other versions of elaboration rules
Theorem
Agda
File Location
Comments (if any)
Theorem 3.1 (Soundness)
sound, sound-inf, sound-chk
AllOrNothing.agda
sound is the general form, the theorem shown on the paepr are corollaries.