proposition: Lemma compose_2_term_1 (b : monoid_monoid_action lambda_algebra_monoid) (a a' : A) : aaction compose_2_λ (weqvecfun 3 [( aaction term_1_λ (weqvecfun 1 [(pr1 b)]); a; a' )]) = pr1 (maction b (term_2 a a')).
proof: Proof. cbn -[weqvecfun aaction]. set (v := weqvecfun _ [(pr1 b; a; a')]). unfold compose, aaction. rewrite <- (pr_action _ (make_stn 3 0 (idpath true)) v : _ = pr1 b). rewrite <- (pr_action _ (make_stn 3 1 (idpath true)) v : _ = a). rewrite <- (pr_action _ (make_stn 3 2 (idpath true)) v : _ = a'). rewrite (move_action_through_vector_1 A _ _). rewrite (move_action_through_vector_2 A _ _ _). rewrite <- comp_action. rewrite <- comp_action. rewrite (move_action_through_vector_2 A _ _ _). rewrite (move_action_through_vector_3 A _ _ _ _). rewrite <- comp_action. rewrite <- comp_action. apply (maponpaths (λ x, aaction x v)). cbn -[weqvecfun]. apply compose_2_term_1_λ. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.Algebra.Monoids UniMath.CategoryTheory.Categories.HSET.Core UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Limits.BinProducts UniMath.Combinatorics.StandardFiniteSets UniMath.Combinatorics.Tuples UniMath.Combinatorics.Vectors UniMath.AlgebraicTheories.AlgebraicTheories UniMath.AlgebraicTheories.Algebras UniMath.AlgebraicTheories.AlgebraMorphisms UniMath.AlgebraicTheories.Examples.LambdaCalculus UniMath.AlgebraicTheories.Examples.EndomorphismTheory UniMath.AlgebraicTheories.FundamentalTheorem.SpecificUtilities.LambdaTerms UniMath.AlgebraicTheories.FundamentalTheorem.CommonUtilities.MonoidActions UniMath.AlgebraicTheories.LambdaTheories UniMath.AlgebraicTheories.LambdaCalculus UniMath.AlgebraicTheories.LambdaTheoryCategory