Phc.sv_eq_n: def of bend-collections-laws-crypto@1.0.0.0 Import: import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/phc.bend as Phc Lines 529-700 of bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/phc.bend: https://jend.leeeet.dev/read.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/phc.bend&start_line=529&end_line=700 import Base import bend-collections-laws-crypto@1.0.0.0/proofs/lib/nat.bend as N import bend-collections-laws-crypto@1.0.0.0/src/crypto/argon2/phc.bend as PH def sv_eq_n(+a: Nat, +b: Nat, +c: Nat, +ha: {Nat.is_lt(a, 4n) == True{} : Bool}, +hb: {Nat.is_lt(b, 4n) == True{} : Bool}, +hc: {Nat.is_lt(c, 4n) == True{} : Bool}) -> {PH.sv(PH.sext(u(a), u(b), u(c))) == u(b) : U32}: match a b c: case 0n 0n 0n: {==} case 0n 0n 1n: {==} case 0n 0n 2n: {==} case 0n 0n 3n: {==} case 0n 1n 0n: {==} case 0n 1n 1n: {==} case 0n 1n 2n: {==} case 0n 1n 3n: {==} case 0n 2n 0n: {==} case 0n 2n 1n: {==} case 0n 2n 2n: {==} case 0n 2n 3n: {==} case 0n 3n 0n: {==} case 0n 3n 1n: {==} case 0n 3n 2n: {==} case 0n 3n 3n: {==} case 1n 0n 0n: {==} case 1n 0n 1n: {==} case 1n 0n 2n: {==} case 1n 0n 3n: {==} case 1n 1n 0n: {==} case 1n 1n 1n: {==} case 1n 1n 2n: {==} case 1n 1n 3n: {==} case 1n 2n 0n: {==} case 1n 2n 1n: {==} case 1n 2n 2n: {==} case 1n 2n 3n: {==} case 1n 3n 0n: {==} case 1n 3n 1n: {==} case 1n 3n 2n: {==} case 1n 3n 3n: {==} case 2n 0n 0n: {==} case 2n 0n 1n: {==} case 2n 0n 2n: {==} case 2n 0n 3n: {==} case 2n 1n 0n: {==} case 2n 1n 1n: {==} case 2n 1n 2n: {==} case 2n 1n 3n: {==} case 2n 2n 0n: {==} case 2n 2n 1n: {==} case 2n 2n 2n: {==} case 2n 2n 3n: {==} case 2n 3n 0n: {==} case 2n 3n 1n: {==} case 2n 3n 2n: {==} case 2n 3n 3n: {==} case 3n 0n 0n: {==} case 3n 0n 1n: {==} case 3n 0n 2n: {==} case 3n 0n 3n: {==} case 3n 1n 0n: {==} case 3n 1n 1n: {==} case 3n 1n 2n: {==} case 3n 1n 3n: {==} case 3n 2n 0n: {==} case 3n 2n 1n: {==} case 3n 2n 2n: {==} case 3n 2n 3n: {==} case 3n 3n 0n: {==} case 3n 3n 1n: {==} case 3n 3n 2n: {==} case 3n 3n 3n: {==} case 4n+r _ _: Empty.absurd({PH.sv(PH.sext(u(4n+r), u(b), u(c))) == u(b) : U32}, N.lt_zero_absurd(r, ha)) case 0n 4n+r _: Empty.absurd({PH.sv(PH.sext(u(0n), u(4n+r), u(c))) == u(4n+r) : U32}, N.lt_zero_absurd(r, hb)) case 0n 0n 4n+r: Empty.absurd({PH.sv(PH.sext(u(0n), u(0n), u(4n+r))) == u(0n) : U32}, N.lt_zero_absurd(r, hc)) case 0n 1n 4n+r: Empty.absurd({PH.sv(PH.sext(u(0n), u(1n), u(4n+r))) == u(1n) : U32}, N.lt_zero_absurd(r, hc)) case 0n 2n 4n+r: Empty.absurd({PH.sv(PH.sext(u(0n), u(2n), u(4n+r))) == u(2n) : U32}, N.lt_zero_absurd(r, hc)) case 0n 3n 4n+r: Empty.absurd({PH.sv(PH.sext(u(0n), u(3n), u(4n+r))) == u(3n) : U32}, N.lt_zero_absurd(r, hc)) case 1n 4n+r _: Empty.absurd({PH.sv(PH.sext(u(1n), u(4n+r), u(c))) == u(4n+r) : U32}, N.lt_zero_absurd(r, hb)) case 1n 0n 4n+r: Empty.absurd({PH.sv(PH.sext(u(1n), u(0n), u(4n+r))) == u(0n) : U32}, N.lt_zero_absurd(r, hc)) case 1n 1n 4n+r: Empty.absurd({PH.sv(PH.sext(u(1n), u(1n), u(4n+r))) == u(1n) : U32}, N.lt_zero_absurd(r, hc)) case 1n 2n 4n+r: Empty.absurd({PH.sv(PH.sext(u(1n), u(2n), u(4n+r))) == u(2n) : U32}, N.lt_zero_absurd(r, hc)) case 1n 3n 4n+r: Empty.absurd({PH.sv(PH.sext(u(1n), u(3n), u(4n+r))) == u(3n) : U32}, N.lt_zero_absurd(r, hc)) case 2n 4n+r _: Empty.absurd({PH.sv(PH.sext(u(2n), u(4n+r), u(c))) == u(4n+r) : U32}, N.lt_zero_absurd(r, hb)) case 2n 0n 4n+r: Empty.absurd({PH.sv(PH.sext(u(2n), u(0n), u(4n+r))) == u(0n) : U32}, N.lt_zero_absurd(r, hc)) case 2n 1n 4n+r: Empty.absurd({PH.sv(PH.sext(u(2n), u(1n), u(4n+r))) == u(1n) : U32}, N.lt_zero_absurd(r, hc)) case 2n 2n 4n+r: Empty.absurd({PH.sv(PH.sext(u(2n), u(2n), u(4n+r))) == u(2n) : U32}, N.lt_zero_absurd(r, hc)) case 2n 3n 4n+r: Empty.absurd({PH.sv(PH.sext(u(2n), u(3n), u(4n+r))) == u(3n) : U32}, N.lt_zero_absurd(r, hc)) case 3n 4n+r _: Empty.absurd({PH.sv(PH.sext(u(3n), u(4n+r), u(c))) == u(4n+r) : U32}, N.lt_zero_absurd(r, hb)) case 3n 0n 4n+r: Empty.absurd({PH.sv(PH.sext(u(3n), u(0n), u(4n+r))) == u(0n) : U32}, N.lt_zero_absurd(r, hc)) case 3n 1n 4n+r: Empty.absurd({PH.sv(PH.sext(u(3n), u(1n), u(4n+r))) == u(1n) : U32}, N.lt_zero_absurd(r, hc)) case 3n 2n 4n+r: Empty.absurd({PH.sv(PH.sext(u(3n), u(2n), u(4n+r))) == u(2n) : U32}, N.lt_zero_absurd(r, hc)) case 3n 3n 4n+r: Empty.absurd({PH.sv(PH.sext(u(3n), u(3n), u(4n+r))) == u(3n) : U32}, N.lt_zero_absurd(r, hc)) Uses (9): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Empty.absurd https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_lt https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/phc.bend&name=u https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/proofs/lib/nat.bend&name=lt_zero_absurd https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/src/crypto/argon2/phc.bend&name=sext https://jend.leeeet.dev/definition.txt?path=bend-collections-laws-crypto@1.0.0.0/src/crypto/argon2/phc.bend&name=sv