ProofShift.ns.odd_even: def of bend-osdev-word64@0.1.1.0 Import: import bend-osdev-word64@0.1.1.0/proof_shift.bend as ProofShift Lines 116-124 of bend-osdev-word64@0.1.1.0/proof_shift.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-word64@0.1.1.0/proof_shift.bend&start_line=116&end_line=124 import Base # 1 + 2a = 2b never holds; 2a = 2b gives a = b def ns.odd_even(a: Nat, b: Nat, e: {1n+Nat.double(a) == Nat.double(b) : Nat}) -> Empty: match a b: case _ 0n: ns.sz(Nat.double(a), e) case 0n 1n+ +q: ns.sz(Nat.double(q), Equal.sym(Nat, 0n, 1n+Nat.double(q), ns.succ_inj(0n, 1n+Nat.double(q), e))) case 1n+ +p 1n+ +q: ns.odd_even(p, q, ns.succ_inj(1n+Nat.double(p), Nat.double(q), ns.succ_inj(2n+Nat.double(p), 1n+Nat.double(q), e))) Uses (6): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Empty https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.double https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_shift.bend&name=ns.succ_inj https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_shift.bend&name=ns.sz