def li.len_take

bend-osdev-cipher-modes@0.1.0.0 · PROOF.bend:266

import bend-osdev-cipher-modes@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B

266def li.len_take(+n: Nat, +xs: List<&2, U32>) -> {Nat.is_le(n, B.len(xs)) == True{} : Bool} -> {B.len(B.take(n, xs)) == n : Nat}:
267  match n:
268    case 0n:
269      h => {==}
270    case 1n+p:
271      match xs:
272        case Nil{}:
273          h => bo.absurd({B.len(B.take(1n+p, Nil{})) == 1n+p : Nat}, h)
274        case Con{+x, +t}:
275          h => %li.len_take(p, t)(h) : {1n+B.len(B.take(p, t)) == 1n+_ : Nat}
276            {==}

Uses (8)

Used by (3)