Section Steps_comp.
Variable (sig tau: finType) (X:Type) (cX: codable sig X).
Variable (I : Retract sig tau).
Definition CaseList_size (xs : list X) : Vector.t (nat->nat) 2 :=
match xs with
| nil => [|id;id|]
| x :: xs => [|CaseList_size0 x; CaseList_size1 x|]
end.

Lemma CaseList_SpecT_size (xs : list X) (ss : Vector.t nat 2) :
TripleT
(≃≃(([], withSpace  [|Contains _ xs; Void |] ss))) (CaseList_steps xs) (CaseList sigX)
(fun yout => ≃≃([yout = match xs with [] => false | _ => true end],withSpace
(match xs with
|   x::xs' => [|Contains _ xs'; Contains _ x|]
|    nil => [|Contains _ xs; Void|]
end)
(appSize (CaseList_size xs) ss))).