def un.double_inj
bend-osdev-u32@0.1.0.0 · PROOF.bend:2070
import bend-osdev-u32@0.1.0.0/PROOF.bend as PROOF
import Base
2070def un.double_inj(a: Nat, b: Nat, e: {Nat.double(a) == Nat.double(b) : Nat}) -> {a == b : Nat}:
2071 match a b:
2072 case 0n 0n:
2073 {==}
2074 case 0n 1n+ +q:
2075 Empty.absurd({0n == 1n+q : Nat}, un.sz(1n+Nat.double(q), Equal.sym(Nat, 0n, 2n+Nat.double(q), e)))
2076 case 1n+ +p 0n:
2077 Empty.absurd({1n+p == 0n : Nat}, un.sz(1n+Nat.double(p), e))
2078 case 1n+ +p 1n+ +q:
2079 un.succ_cong(p, q, un.double_inj(p, q, un.succ_inj(Nat.double(p), Nat.double(q), un.succ_inj(1n+Nat.double(p), 1n+Nat.double(q), e))))