def neither_below

bendtorch-core@0.1.0.0 · src/autograd/reduce_PROOF.bend:513

import bendtorch-core@0.1.0.0/src/autograd/reduce_PROOF.bend as ReducePROOF
import Base
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith

513def neither_below(+left: Nat, +right: Nat, first: {Nat.is_lt(left, right) == False{} : Bool},
514  second: {Nat.is_lt(right, left) == False{} : Bool}) -> {left == right : Nat}:
515  match left right:
516    case 0n 0n:
517      {==}
518    case 0n 1n+r:
519      Empty.absurd({0n == 1n+r : Nat}, Arith.clash_true(first))
520    case 1n+l 0n:
521      Empty.absurd({1n+l == 0n : Nat}, Arith.clash_true(second))
522    case 1n+l 1n+r:
523      Equal.cong(Nat, Nat, n => 1n+n, l, r, neither_below(l, r, first, second))

Uses (6)

Used by (1)