Section list_in_time.
Variable (X : Type).
Context {H : registered X}.
Context (eqbX : X -> X -> bool).
Context {Xeq : eqbClass eqbX}.
Context {XeqbComp : eqbCompT X}.
Definition c__listInDecb := 21.
Fixpoint list_in_decb_time (l : list X) (e : X) :=
match l with
| [] => c__listInDecb
| x :: l => eqbTime (X := X) (size (enc x)) (size (enc e)) + c__listInDecb + list_in_decb_time l e
end.
Global Instance term_list_in_decb : computableTime' (@list_in_decb X eqbX) (fun l _ => (5, fun x _ => (list_in_decb_time l x, tt))).
Definition c__list_incl_decb := 22.
Fixpoint list_incl_decb_time (a b : list X) :=
match a with
| [] => c__list_incl_decb
| (x::a) => list_in_decb_time b x + list_incl_decb_time a b + c__list_incl_decb
end.
Global Instance term_list_incl_decb : computableTime' (@list_incl_decb X eqbX)
(fun a _ => (5, fun b _ => (list_incl_decb_time a b, tt))).

Lemma dupfreeb_iff (l : list X) : dupfreeb l = true <-> dupfree l.