ProofValue.wv.nowrap: def of bend-osdev-word64@0.1.1.0 Import: import bend-osdev-word64@0.1.1.0/proof_value.bend as ProofValue Lines 424-432 of bend-osdev-word64@0.1.1.0/proof_value.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&start_line=424&end_line=432 import Base import bend-osdev-u32@0.1.0.0/LAWS.bend as UL import bend-osdev-u32@0.1.0.0/LAWS_order.bend as UO def wv.nowrap(+n: Nat, x: Nat, +s: Nat, +a: Nat, +b: Nat, +c: Nat, e: {Nat.add(s, wv.Q(n, x)) == Nat.add(a, b) : Nat}, h: {Nat.is_le(Nat.add(a, b), c) == True{} : Bool}, hc: {Nat.is_lt(c, wv.Q(n, 1n)) == True{} : Bool}) -> {s == Nat.add(a, b) : Nat}: match x: case 0n: Equal.trans(Nat, s, Nat.add(s, 0n), Nat.add(a, b), Equal.sym(Nat, Nat.add(s, 0n), s, UL.nat_add_zero(s)), Equal.trans(Nat, Nat.add(s, 0n), Nat.add(s, wv.Q(n, 0n)), Nat.add(a, b), Equal.cong(Nat, Nat, v => Nat.add(s, v), 0n, wv.Q(n, 0n), Equal.sym(Nat, wv.Q(n, 0n), 0n, wv.q0(n))), e)) case 1n+ +x1: +q1 = wv.Q(n, 1n) +s1 = UO.nat_le_lt_trans(Nat.add(a, b), c, q1, h, hc) +s2 = UO.nat_le_trans(q1, Nat.add(q1, wv.Q(n, x1)), Nat.add(s, wv.Q(n, 1n+x1)), UO.nat_le_add_r(q1, wv.Q(n, x1)), wn.le_rw2(Nat.add(q1, wv.Q(n, x1)), Nat.add(s, Nat.add(q1, wv.Q(n, x1))), Nat.add(s, wv.Q(n, 1n+x1)), Equal.cong(Nat, Nat, v => Nat.add(s, v), Nat.add(q1, wv.Q(n, x1)), wv.Q(n, 1n+x1), Equal.sym(Nat, wv.Q(n, 1n+x1), Nat.add(q1, wv.Q(n, x1)), wv.qs(n, x1))), UL.nat_le_add(Nat.add(q1, wv.Q(n, x1)), s))) Empty.absurd({s == Nat.add(a, b) : Nat}, wn.lt_irrefl(Nat.add(a, b), wn.lt_rw2(Nat.add(a, b), Nat.add(s, wv.Q(n, 1n+x1)), Nat.add(a, b), e, UO.nat_lt_le_trans(Nat.add(a, b), q1, Nat.add(s, wv.Q(n, 1n+x1)), s1, s2)))) Uses (21): 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=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.is_lt https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS.bend&name=nat_add_zero 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_order.bend&name=nat_le_add_r https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS_order.bend&name=nat_le_lt_trans https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS_order.bend&name=nat_le_trans https://jend.leeeet.dev/definition.txt?path=bend-osdev-u32@0.1.0.0/LAWS_order.bend&name=nat_lt_le_trans https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wn.le_rw2 https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wn.lt_irrefl https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wn.lt_rw2 https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wv.Q https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wv.q0 https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wv.qs