| ⊦ ⟪jvalid := jvalid2; index_format#(jmaxino2, LEB_SIZE, ROOT_INO + 1; ; fi0, fi, jro0, gstore0, gstore, nx, pmaxino, p_os, jvalid1, err); if err ≠ ESUCCESS then debug#("gjournal: persistence format failed"); jro := ∅⟫ ( err = ESUCCESS → jvalid1 ∧ jro < ROOT_INO + 1 ∧ p_os < pmaxino ∧ pmaxino ≤ ROOT_INO + 1 ∧ fi0.inos < ROOT_INO + 1 ∧ fi.inos < pmaxino ∧ ROOT_INO + 1 ≠ 0 ∧ pmaxino ≠ 0 ∧ (true ∧ nx ≠ [] → valid-journal-head(nx, gstore0, jro0)) ∧ fi0.lebs ⊆ dom gstore0 ∧ fi.lebs ⊆ dom gstore ∧ refsize-cons(gstore0, range fi0) ∧ refsize-cons(gstore, range fi) ∧ inv(gstore0 \ jro0) ∧ inv(gstore) ∧ elems nx ∩ jro0 = ∅ ∧ ¬ dups(nx) ∧ dom gstore ∪ elems nx = dom gstore0 ∪ jro0 ∧ remove-refsize0(gstore) = gstore ∧ ri-inj(fi0) ∧ ri-inj(fi)) |
⊦ ⟪index_format#(jmaxino2, LEB_SIZE, ROOT_INO + 1; ; fi0, fi, jro0, gstore0, gstore, nx, pmaxino, p_os, jvalid1, err); if err ≠ ESUCCESS then debug#("gjournal: persistence format failed"); jro := ∅⟫ ( err = ESUCCESS → jvalid1 ∧ jro < ROOT_INO + 1 ∧ p_os < pmaxino ∧ pmaxino ≤ ROOT_INO + 1 ∧ fi0.inos < ROOT_INO + 1 ∧ fi.inos < pmaxino ∧ ROOT_INO + 1 ≠ 0 ∧ pmaxino ≠ 0 ∧ (true ∧ nx ≠ [] → valid-journal-head(nx, gstore0, jro0)) ∧ fi0.lebs ⊆ dom gstore0 ∧ fi.lebs ⊆ dom gstore ∧ refsize-cons(gstore0, range fi0) ∧ refsize-cons(gstore, range fi) ∧ inv(gstore0 \ jro0) ∧ inv(gstore) ∧ elems nx ∩ jro0 = ∅ ∧ ¬ dups(nx) ∧ dom gstore ∪ elems nx = dom gstore0 ∪ jro0 ∧ remove-refsize0(gstore) = gstore ∧ ri-inj(fi0) ∧ ri-inj(fi))