Our development successfully compiles with the following versions (in Linux):
-
coq (= 8.15.2)
-
coq-ext-lib (= 0.11.8)
-
coq-iris (= 4.0.0)
-
coq-itree (= 4.0.0)
-
coq-ordinal (= 0.5.2)
-
coq-paco (= 4.1.2)
-
coq-stdpp (= 1.8.0)
All packages can be installed from OPAM archive for Coq
- make -j[N] -k
Sec. 2 BACKGROUND
- Definition of Contextual refinement
$⊑_{ctx}$ -->refat ems/ModSem.v - Rules in Fig. 2 -->
RefFactsat lib/Algebra.v, andModSem_RefFactsat ems/ModSemFacts.v - Fig. 4 -->
RPT0,RPT1,SUCC,PUT,T_MAIN,M_MAIN,S_MAINat imp/example/Repeat.v
Sec. 3 TUTORIAL
- Sec 3.1, Fig. 3 --> iris/IPMDemo.v
- Sec 3.2, Example involving Fig. 4 --> Theorem
main_rcl,main_ref,Persistent_rpt0,rpt0_specat imp/example/Repeat.v
Sec. 5 REFINEMENT COMPOSITION LOGIC
- Sec. 5.1, Fig. 6 (Definition of MRAs) --> Module
MRASat lib/Algebra.v - Definition of mProp -->
mPropat iris/IPM.v - Fig. 5 and Fig. 7 --> Provided in iris/IPM.v. For examples,
-- Set of modules -->
Own-- The refines modality -->Refines-- The persistence modality -->Pers-- The magic wand -->Wand - Fig. 8 -->
mProp_bi_mixinandmProp_bupd_mixinin iris/IPM.v
Sec. 6 MORE ON ALGEBRAS
- Def.2 (Definition of MRA) --> Module
MRAat lib/Algebra.v - Sec. 6.2 --> Provided in iris/homomorphisms.v
Sec. 7 DERIVED PATTERNS AND THEIR APPLICATIONS
- Sec. 7.1, Definition of layered refinement, rules of layer calculus, and the example -->
SECTION CALin iris/IPM.v - Sec. 7.2, Definition of fancy update -->
IUpdat iris/IPM.v - Sec. 7.2, example --> Provided in imp/example/Stealing.v
- Sec. 7.3, accessor pattern -->
SubIPropat iris/IPM.v
Sec. 8 A CONCRETE INSTANCE OF MRA
- Fig.13 --> Collected in FreeSim/Behavior.v
- The core operator -->
core_hat ems/ModSemE.v - findDef -->
prog: callE ~> itree Esat ems/ModSem.v - Theorem 8.1 --> Proved by
ModSem_MRAat ems/ModSemFacts.v
Integrating conditional refinement into RCL
- wrapper modality -->
Wrapin iris/IPM.v - Rules for the wrapper modality --> Module
WAin lib/Algebra.v - Conditional refinement. -->
CondRefinesin iris/IPM.v - An example involving Rpt --> Section
CCRin imp/example/Repeat.v