Inductive extract_trivial_liftx {A}: list (environ->A) -> list A -> Prop :=
| ETL_nil: extract_trivial_liftx nil nil
| ETL_cons: forall a al bl,
extract_trivial_liftx al bl ->
extract_trivial_liftx (`a :: al) (a::bl).

(* Specifications: *)
Lemma fold_right_and_app_low:
forall (Q1 Q2 : list Prop),
fold_right and True (Q1 ++ Q2)  =
(fold_right and True Q1  /\ fold_right and True Q2).
Lemma fold_right_and_app_lifted:
forall (Q1 Q2: list (environ -> Prop)),
fold_right `(and) `(True) (Q1 ++ Q2)  =
`(and) (fold_right `(and) `(True) Q1) (fold_right `(and) `(True) Q2).