fact: Fixpoint word_split {n m} (w : word (n + m)) {struct n} : word n * word m := match n return word (n + m) -> word n * word m with | 0 => fun w => (WO, w) | S n' => fun w' => let (wn, wm) := word_split (wtl w') in (WS (whd w') wn, wm) end w.
imports: Fiat.Common.Coq__8_4__8_5__Compat Bedrock.Word Coq.ZArith.ZArith Coq.NArith.NArith Coq.Arith.Arith Coq.Numbers.Natural.Peano.NPeano Coq.Logic.Eqdep_dec Fiat.Narcissus.Common.Specs