| zh[zbrar[n].child] = mkznode(r1, zbrar0, boolvar1, boolvar2, m0), zh[r] = mkznode(r0, zbrar, false, boolvar0, m), r ∈ zh, n < m ∧ zbrar[n].branch? ∧ zbrar[n].child ∈ zh → ¬ boolvar2, ∀ n0. n0 < m ∧ n0 < n ∧ zbrar[n0].branch? ∧ zbrar[n0].child ∈ zh → ¬ zh[zbrar[n0].child].dirty ⊦ ∀ n0. n0 < m ∧ ¬ n < n0 ∧ zbrar[n0].branch? ∧ zbrar[n0].child ∈ zh → ¬ zh[zbrar[n0].child].dirty |
zh[zbrar[n].child] = mkznode(r1, zbrar0, boolvar1, boolvar2, m0), zh[r] = mkznode(r0, zbrar, false, boolvar0, m), zbrar[n0].branch?, zh[zbrar[n0].child].dirty, n0 < m, r ∈ zh, zbrar[n0].child ∈ zh, n0 ≤ n, n < m ∧ zbrar[n].branch? ∧ zbrar[n].child ∈ zh → ¬ boolvar2, ∀ n0. n0 < m ∧ n0 < n ∧ zbrar[n0].branch? ∧ zbrar[n0].child ∈ zh → ¬ zh[zbrar[n0].child].dirty ⊦
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n ↔ ¬ n ≤ m; (ss)