def natural_equal

bendtorch-core@0.1.0.0 · src/tensor/lifecycle.bend:138

import bendtorch-core@0.1.0.0/src/tensor/lifecycle.bend as Lifecycle
import Base

138def natural_equal(+a: Nat, +b: Nat, equal: {True{} == Nat.is_eq(a, b) : Bool}) -> {a == b : Nat}:
139  match a b:
140    case 0n 0n:
141      {==}
142    case 0n 1n+q:
143      Empty.absurd({0n == 1n+q : Nat}, false_true(equal))
144    case 1n+p 0n:
145      Empty.absurd({1n+p == 0n : Nat}, false_true(equal))
146    case 1n+p 1n+q:
147      Equal.cong(Nat, Nat, x => 1n+x, p, q, natural_equal(p, q, equal))

Uses (6)

Used by (37)