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        {==}

Uses (6)

Used by (1)