proposition: Lemma PI_bterm_int_eq : forall xint k (t : bterm k), P xint t.
proof: Proof. intros xint k t. apply (bterm_ind (@P xint k) (@Q xint k)). intros v Hv. unfold P, f1, f2. simpl bterm_int. rewrite val_peval_D, termpoly_v_eq_2, meval_xi, Vnth_map. pattern (xint v) at 1. rewrite <- (Vnth_vec_of_val xint (NatCompat.gt_le_S (NatCompat.le_lt_n_Sm Hv))). refl. intros f ts. unfold Q. intro H. unfold P, f1, f2. simpl bterm_int. rewrite val_peval_D. simpl. unfold P in H. gen (Vmap_eq H). intro H'. rewrite peval_comp. f_equal. rewrite !Vmap_map. unfold f1 in H'. unfold f2 in H'. hyp. unfold Q, P. simpl. trivial. intros t' n' ts' H1 H2. unfold Q. simpl. intuition. Qed.
imports: CoLoR(ATerm ABterm ListUtil VecUtil PositivePolynom AInterpretation ZUtil NaryFunction ARelation RelUtil LogicUtil SN Polynom MonotonePolynom NatUtil ATrs BoundNat AWFMInterpretation ZUtil ACompat AMannaNess)