def AP.padp
bend-osdev-array@0.1.0.1 · PROOF.bend:400
import bend-osdev-array@0.1.0.1/PROOF.bend as PROOF
import Base
400def AP.padp(n: Nat, d: Nat, h: {Nat.is_lt(d, n) == True{} : Bool}) -> {Word.shr.pad(n, AP.pw(n, d)) == AP.pw(1n+n, d) : Word(1n+n)}:
401 match n:
402 case 0n:
403 match d:
404 case 0n:
405 Empty.absurd({Word.shr.pad(0n, AP.pw(0n, 0n)) == AP.pw(1n, 0n) : Word(1n)}, AP.ft(h))
406 case 1n+e:
407 Empty.absurd({Word.shr.pad(0n, AP.pw(0n, 1n+e)) == AP.pw(1n, 1n+e) : Word(1n)}, AP.ft(h))
408 case 1n+ +q:
409 match d:
410 case 0n:
411 AP.wcon_cong(1n+q, True{}, Word.shr.pad(q, Word.zero(q)), Word.zero(1n+q), AP.padz(q))
412 case 1n+ +e:
413 AP.wcon_cong(1n+q, False{}, Word.shr.pad(q, AP.pw(q, e)), AP.pw(1n+q, e), AP.padp(q, e, h))