PROOFText.wsh.gm: def of bend-osdev-word64@0.1.1.0 Import: import bend-osdev-word64@0.1.1.0/PROOF_text.bend as PROOFText Lines 505-506 of bend-osdev-word64@0.1.1.0/PROOF_text.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-word64@0.1.1.0/PROOF_text.bend&start_line=505&end_line=506 import Base import bend-osdev-u32@0.1.0.0/u32.bend as U import bend-osdev-u32@0.1.0.0/LAWS.bend as UL def wsh.gm(+y: Nat, +z: Nat, +h: {Nat.is_le(y, z) == True{} : Bool}) -> {Nat.is_le(Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)), Nat.add(U.U32Nat.dbl(6n, z), U.U32Nat.dbl(5n, z))) == True{} : Bool}: Equal.trans(Bool, Nat.is_le(Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)), Nat.add(U.U32Nat.dbl(6n, z), U.U32Nat.dbl(5n, z))), Nat.is_le(Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)), Nat.add(Nat.add(U.U32Nat.dbl(6n, Nat.sub(z, y)), U.U32Nat.dbl(5n, Nat.sub(z, y))), Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)))), True{}, Equal.sym(Bool, Nat.is_le(Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)), Nat.add(Nat.add(U.U32Nat.dbl(6n, Nat.sub(z, y)), U.U32Nat.dbl(5n, Nat.sub(z, y))), Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)))), Nat.is_le(Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)), Nat.add(U.U32Nat.dbl(6n, z), U.U32Nat.dbl(5n, z))), Equal.cong(Nat, Bool, zz => Nat.is_le(Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)), zz), Nat.add(Nat.add(U.U32Nat.dbl(6n, Nat.sub(z, y)), U.U32Nat.dbl(5n, Nat.sub(z, y))), Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y))), Nat.add(U.U32Nat.dbl(6n, z), U.U32Nat.dbl(5n, z)), Equal.trans(Nat, Nat.add(Nat.add(U.U32Nat.dbl(6n, Nat.sub(z, y)), U.U32Nat.dbl(5n, Nat.sub(z, y))), Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y))), Nat.add(U.U32Nat.dbl(6n, Nat.add(Nat.sub(z, y), y)), U.U32Nat.dbl(5n, Nat.add(Nat.sub(z, y), y))), Nat.add(U.U32Nat.dbl(6n, z), U.U32Nat.dbl(5n, z)), wr.t13(Nat.sub(z, y), y), Equal.cong(Nat, Nat, zz => Nat.add(U.U32Nat.dbl(6n, zz), U.U32Nat.dbl(5n, zz)), Nat.add(Nat.sub(z, y), y), z, UL.nat_le_witness(y, z, h))))), UL.nat_le_add(Nat.add(U.U32Nat.dbl(6n, y), U.U32Nat.dbl(5n, y)), Nat.add(U.U32Nat.dbl(6n, Nat.sub(z, y)), U.U32Nat.dbl(5n, Nat.sub(z, y))))) Uses (12): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.cong https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.trans https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_le https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.sub https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=nat_le_add https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=nat_le_witness https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/u32.bend&name=U32Nat.dbl https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/PROOF_text.bend&name=wr.t13