| gstore[adr] = mkgnode(nd, m, boolvar, boolvar0), fi1 = fi, gstore1 = gstore, remove-refsize0(gstore0) = gstore0, elems nx ∩ jro0 = ∅, dom gstore0 ∪ elems nx = dom gstore ∪ jro0, fi0.inos < pmaxino, fi.inos < jmaxino, p_os < pmaxino, jro < jmaxino, inv(gstore0), inv(gstore \ jro0), key-cons(key, nd), refsize-cons(gstore0, range fi0), refsize-cons(gstore, range fi), ri-inj(fi0), ri-inj(fi), adr ∈ gstore, pmaxino ≤ jmaxino, fi0.lebs ⊆ dom gstore0, fi.lebs ⊆ dom gstore, jvalid ∧ nx ≠ [] → valid-journal-head(nx, gstore, jro0) ⊦ ⟪gjournal_index_store#(key, adr, fi0, jro0, gstore0, nx, pmaxino, p_os, jvalid0; jmaxino, fi, gstore)⟫ ( jro < jmaxino ∧ pmaxino ≤ jmaxino ∧ fi1.inos ∪ (key.inode? ⊃ ∅ ++ key.ino;∅) < jmaxino ∧ jmaxino ≠ 0 ∧ (jvalid ∧ nx ≠ [] → valid-journal-head(nx, gstore, jro0)) ∧ fi1[key, adr].lebs ⊆ dom gstore ∧ refsize-cons(gstore, range fi1[key, adr]) ∧ inv(gstore \ jro0) ∧ dom gstore0 ∪ elems nx = dom gstore ∪ jro0 ∧ ri-inj(fi1[key, adr]) ∧ gstore =○refsize gstore1 ∧ fi = fi1[key, adr]), jmaxino = 0, pmaxino = 0, dups(nx), adr ∈ fi |
gstore[adr] = mkgnode(nd, m, boolvar, boolvar0), fi1 = fi, gstore1 = gstore, remove-refsize0(gstore0) = gstore0, elems nx ∩ jro0 = ∅, dom gstore0 ∪ elems nx = dom gstore ∪ jro0, jmaxino ≠ 0, pmaxino ≠ 0, jro < jmaxino, p_os < pmaxino, fi.inos < jmaxino, fi0.inos < pmaxino, inv(gstore \ jro0), inv(gstore0), key-cons(key, nd), refsize-cons(gstore, range fi), refsize-cons(gstore0, range fi0), ri-inj(fi), ri-inj(fi0), adr ∈ gstore, pmaxino ≤ jmaxino, fi.lebs ⊆ dom gstore, fi0.lebs ⊆ dom gstore0, ¬ dups(nx), ¬ adr ∈ fi, jvalid ∧ nx ≠ [] → valid-journal-head(nx, gstore, jro0) ⊦ ⟪gjournal_index_store#(key, adr, fi0, jro0, gstore0, nx, pmaxino, p_os, jvalid0; jmaxino, fi, gstore)⟫ ( jro < jmaxino ∧ pmaxino ≤ jmaxino ∧ fi1.inos ∪ (key.inode? ⊃ ∅ ++ key.ino;∅) < jmaxino ∧ jmaxino ≠ 0 ∧ (jvalid ∧ nx ≠ [] → valid-journal-head(nx, gstore, jro0)) ∧ fi1[key, adr].lebs ⊆ dom gstore ∧ refsize-cons(gstore, range fi1[key, adr]) ∧ inv(gstore \ jro0) ∧ dom gstore0 ∪ elems nx = dom gstore ∪ jro0 ∧ ri-inj(fi1[key, adr]) ∧ gstore =○refsize gstore1 ∧ fi = fi1[key, adr])