proposition: Lemma commutativity_Conv_Cons_1 (Lambda:T_over_B_distributive) (BS: BT_coalgebroid) (x:BS.(bs_states)) : Lam_coiterator Lambda BS x (=) Cons (fst (lift_B_ _ _ (Beta Lambda) (lift_B_ _ _ (lift_T_ _ _ (Lam_coiterator Lambda BS)) (bs_transition BS x)))) (snd (lift_B_ _ _ (Beta Lambda) (lift_B_ _ _ (lift_T_ _ _ (Lam_coiterator Lambda BS)) (bs_transition BS x)))).
proof: Proof. rewrite (hd_tl_id (Lam_coiterator Lambda BS x)). destruct (commutativity_Conv_hd_tl Lambda BS x) as [hyp_hd hyp_tl]. constructor. rewrite hyp_hd; reflexivity. unfold tl at 1. match goal with | [ id1 : ?X1 (=) ?X2 |- _ ] => apply trans_bisimilar with X2; trivial end. apply refl_bisimilar. Qed.
imports: IntensionalLambdaBisimulation ZStreamCoalgebra