| m0 < # zbrar, n ≤ m ⊦ shr(zbrar, n, m)[m0] = (m0 ≤ n ∨ m < m0 ⊃ zbrar[m0];zbrar[m0 - 1]) |
m0 < # zbrar, n ≤ m ⊦ (¬ n < m0 ∨ m < m0 ⊃ zbrar[m0];zbrar[m0 - 1]) = (m0 ≤ n ∨ m < m0 ⊃ zbrar[m0];zbrar[m0 - 1])
Used simplifier rules: shr: ⊦ shr(zbrar, n, m) = copy(zbrar, n, zbrar, n + 1, m - n);% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m + n - n + n1 = m - n1; (s)% ⊦ m + 1 ≤ n ↔ m < n; (s)% ⊦ n ≤ n0 → (m + (n0 - n)) + n = m + n0; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m < n + 1 ↔ ¬ n < m; (s)%⊦ m0 < # zbrar → copy(zbrar0, n, zbrar, n0, m)[m0] = (m0 < n0 ∨ n0 + m ≤ m0 ⊃ zbrar[m0];zbrar0[m0 + n - n0]); (s)