Instance CompSpecs : compspecs.Definition Vprog : varspecs.Definition t_struct_tree := Tstruct _tree noattr.Definition key := Z.Inductive tree : Type :=
 | E : tree
 | T: tree -> key -> V -> tree -> tree.Inductive tree : Type :=
 | E : tree
 | T: tree -> key -> V -> tree -> tree.Inductive tree : Type :=
 | E : tree
 | T: tree -> key -> V -> tree -> tree.Definition empty_tree : tree := E.Fixpoint pushdown_left (a: tree) (bc: tree) : tree :=
 match bc with
 | E => a
 | T b y vy c => T (pushdown_left a b) y vy c
 end.Definition key_store_ (s: tree val) (x: key): Prop :=
  exists v, key_store s x v.

(* Specifications: *)
Lemma if_trueb: forall {A: Type} b (a1 a2: A), b = true -> (if b then a1 else a2) = a1.
Lemma if_falseb: forall {A: Type} b (a1 a2: A), b = false -> (if b then a1 else a2) = a2.