header {* Distributive law for the sum of 2 *} (* This is similar to Distributive_Law, but assumes a distributive law Λ4 over (SpK,ΣΣ4,F) instead of (S,ΣΣ4,F): *) theory Stream_Distributive_Law4 imports Stream_Integrate_New_Op4 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 Λ4 :: "('a × 'a F) SpK => 'a ΣΣ4 F" axiomatization where Λ4_natural: "Λ4 o SpKmap (f ** Fmap f) = Fmap (T1_map f) o Λ4" *) end