| fillsgn(n, by0 ' + bytes1) = by ' + bytes0, 1 + # bytes1 < n, 0 ≤ b2i(by0) ⊦ bytes1 = [], i2b(0) = by |
⊦ # bytes < n ∧ 0 ≤ bytes2int(bytes) → fillsgn(n, bytes) = mklist(i2b(0), n - # bytes) + bytes
Used simplifier rules: bytes2int-ge-zero: ⊦ 0 ≤ bytes2int(by ' + bytes) ↔ 0 ≤ b2i(by);%bytes2int-ge-zero: ⊦ 0 ≤ bytes2int(by ' + bytes) ↔ 0 ≤ b2i(by);% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ m < n → (n ≤ m ↔ false);% ⊦ ¬ m < n ↔ n ≤ m;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ # by ' = 0 +1;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;% ⊦ by ' + bytes = bytes0 → by ∈ bytes0; (forward)% ⊦ by ∈ bytes + bytes0 ↔ ¬ ¬(by ∈ bytes ∨ by ∈ bytes0);% ⊦ by ∈ by0 ' ↔ by = by0;% ⊦ by ∈ mklist(by0, n) → by = by0; (forward)%⊦ ¬ by ∈ bytes → ( bytes + by0 ' + bytes0 = by ' + bytes1 ↔ bytes = [] ∧ by0 = by ∧ bytes0 = bytes1);% ⊦ mklist(by, m) = [] ↔ m = 0;% ⊦ m + n = n + m;% ⊦ n < m → m - n ≠ 0; Used terms: by0 ' + bytes1, n