Section CaseOpton.
Variable (X : Type) (sigX : finType) (codX : codable sigX X).
Definition CaseOption_size (o : option X) : Vector.t (nat->nat) 1 :=
match o with
| None => [|CaseOption_size_None|]
| Some _ => [|CaseOption_size_Some|]
end.

Lemma CaseOption_SpecT_size (o : option X) (ss : Vector.t nat 1) :
TripleT
(≃≃(([], withSpace  [|Contains _ o |] ss))) (CaseOption_steps) (CaseOption sigX)
(fun yout => ≃≃([yout = match o with None => false | _ => true end ],withSpace
(match o with
|  Some x => [|Contains _ x|]
|  None  => [|Void|]
end)
(appSize (CaseOption_size o) ss))).