proposition: Lemma algebraic_appBodyL : forall M (Mapp: isApp M), ~isFunApp M -> algebraic M -> algebraic (appBodyL Mapp).
proof: Proof. intros M Mapp Mhead Malg. inversion Malg; term_inv M. destruct (isApp_dec (buildT T1)). apply AlgApp; trivial. unfold isFunApp in * . rewrite (appHead_app Tr I) in Mhead; trivial. intros. apply H1. apply appUnit_left with I; trivial. apply H1. apply appUnit_left with I; simpl. unfold isAppUnit; rewrite appUnits_notApp; auto with datatypes. Qed.
imports: CoLoR(RelExtras ListExtras TermsEta LogicUtil) Coq(Morphisms)