fact: Fixpoint R1 (st : nat) : BV := match st return BV with | O => V1 | S t => appbv (highs (R1 t)) (Mux (lowbit (R1 t)) (consbv (lowbit (BV_full_adder_sum (R2 t) V2 false)) nilbv) (consbv (lowbit (R2 t)) nilbv)) end with R2 (st : nat) : BV := match st return BV with | O => BV_null size | S t => appbv (highs (Mux (lowbit (R1 t)) (BV_full_adder_sum (R2 t) V2 false) (R2 t))) (Mux (lowbit (R1 t)) (consbv (BV_full_adder_carry (R2 t) V2 false) nilbv) (consbv false nilbv)) end.
imports: BV Adder Gt