def na.add_sub
bend-osdev-cipher-modes@0.1.0.0 · PROOF.bend:280
import bend-osdev-cipher-modes@0.1.0.0/PROOF.bend as PROOF
import Base
280def na.add_sub(+a: Nat, +b: Nat) -> {Nat.is_le(a, b) == True{} : Bool} -> {Nat.add(a, Nat.sub(b, a)) == b : Nat}:
281 match a b:
282 case 0n 0n:
283 h => {==}
284 case 0n 1n+bp:
285 h => {==}
286 case 1n+ap 0n:
287 h => bo.absurd({Nat.add(1n+ap, Nat.sub(0n, 1n+ap)) == 0n : Nat}, h)
288 case 1n+ap 1n+bp:
289 h => %na.add_sub(ap, bp)(h) : {1n+Nat.add(ap, Nat.sub(bp, ap)) == 1n+_ : Nat}
290 {==}