ProofValue.wv.q_two: def of bend-osdev-word64@0.1.1.0 Import: import bend-osdev-word64@0.1.1.0/proof_value.bend as ProofValue Lines 377-383 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=377&end_line=383 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.q_two(+n: Nat, +y: Nat, +s: Nat, +a: Nat, +b: Nat, ha: {Nat.is_lt(a, wv.Q(n, 1n)) == True{} : Bool}, hb: {Nat.is_lt(b, wv.Q(n, 1n)) == True{} : Bool}) -> {Nat.is_lt(Nat.add(a, b), Nat.add(s, wv.Q(n, 2n+y))) == True{} : Bool}: +q1 = wv.Q(n, 1n) +e2 = Equal.trans(Nat, wv.Q(n, 2n+y), Nat.add(q1, wv.Q(n, 1n+y)), Nat.add(q1, Nat.add(q1, wv.Q(n, y))), wv.qs(n, 1n+y), Equal.cong(Nat, Nat, v => Nat.add(q1, v), wv.Q(n, 1n+y), Nat.add(q1, wv.Q(n, y)), wv.qs(n, y))) +s1 = wn.add_lt_mono(a, q1, b, q1, ha, hb) +s2 = Equal.trans(Bool, Nat.is_le(Nat.add(q1, q1), Nat.add(q1, Nat.add(q1, wv.Q(n, y)))), Nat.is_le(q1, Nat.add(q1, wv.Q(n, y))), True{}, wn.le_add_l(q1, q1, Nat.add(q1, wv.Q(n, y))), UO.nat_le_add_r(q1, wv.Q(n, y))) +s4 = UO.nat_le_trans(Nat.add(q1, q1), Nat.add(q1, Nat.add(q1, wv.Q(n, y))), Nat.add(s, wv.Q(n, 2n+y)), s2, UO.nat_le_trans(Nat.add(q1, Nat.add(q1, wv.Q(n, y))), wv.Q(n, 2n+y), Nat.add(s, wv.Q(n, 2n+y)), wn.le_rw2(Nat.add(q1, Nat.add(q1, wv.Q(n, y))), Nat.add(q1, Nat.add(q1, wv.Q(n, y))), wv.Q(n, 2n+y), Equal.sym(Nat, wv.Q(n, 2n+y), Nat.add(q1, Nat.add(q1, wv.Q(n, y))), e2), UL.nat_le_refl(Nat.add(q1, Nat.add(q1, wv.Q(n, y))))), UL.nat_le_add(wv.Q(n, 2n+y), s))) UO.nat_lt_le_trans(Nat.add(a, b), Nat.add(q1, q1), Nat.add(s, wv.Q(n, 2n+y)), s1, s4) Uses (18): 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.is_lt 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_refl 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_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.add_lt_mono https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wn.le_add_l 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=wv.Q https://jend.leeeet.dev/definition.txt?path=bend-osdev-word64@0.1.1.0/proof_value.bend&name=wv.qs