def gt.adc_inc
bend-osdev-gf@0.1.1.0 · proof_tab.bend:62
import bend-osdev-gf@0.1.1.0/proof_tab.bend as ProofTab
import Base
62
63def gt.adc_inc(n: Nat, a: Word(n), b: Word(n)) -> {Word.adc(n, a, Word.inc(n, b), False{}, False{}) == Word.adc(n, a, b, False{}, True{}) : Word(n)}:
64 match n:
65 case 0n:
66 match a b:
67 case WNil{} WNil{}:
68 {==}
69 case 1n+p:
70 match a b:
71 case WCon{False{}, at} WCon{False{}, bt}:
72 {==}
73 case WCon{True{}, at} WCon{False{}, bt}:
74 {==}
75 case WCon{False{}, +at} WCon{True{}, +bt}:
76 gt.wcon2(p, False{}, False{}, Word.adc(p, at, Word.inc(p, bt), False{}, False{}), Word.adc(p, at, bt, False{}, True{}), {==}, gt.adc_inc(p, at, bt))
77 case WCon{True{}, +at} WCon{True{}, +bt}:
78 gt.wcon2(p, True{}, True{}, Word.adc(p, at, Word.inc(p, bt), False{}, False{}), Word.adc(p, at, bt, False{}, True{}), {==}, gt.adc_inc(p, at, bt))