header {* Distributive law for the sum of 2 *} (* This is similar to Distributive_Law, but assumes a distributive law Λ_step over (SpK,ΣΣ_step,F) instead of (S,ΣΣ_step,F): *) theory Distributive_Law_step imports Integrate_New_Op_step begin (* We assume (S,ΣΣ,F)-distributive law, where: -- S is the syntactic signature and T is its term extension (free algebra extension) -- F is the behavior functor *) (* (* Distributive law: *) consts Λ_step :: "('a × 'a F) SpK => 'a ΣΣ_step F" axiomatization where Λ_step_natural: "Λ_step o SpKmap (f ** Fmap f) = Fmap (T1_map f) o Λ_step" *) end