Documentation

MDP.Optimization

theorem iSup_iSup_eq_iSup {α : Type u_1} {ι : Type u_2} [CompleteLattice α] [SemilatticeSup ι] (f : ιια) (hf₁ : Monotone f) (hf₂ : ∀ (i : ι), Monotone (f i)) :
⨆ (i : ι), ⨆ (j : ι), f i j = ⨆ (i : ι), f i i
inductive Optimization :
Instances For
    def Optimization.opt {α : Type u_2} (O : Optimization) [Lattice α] (a b : α) :
    α
    Equations
    Instances For
      @[simp]
      theorem Optimization.opt_apply {α : Type u_2} (O : Optimization) [Lattice α] {γ : Type u_3} {x : γ} (f g : γα) :
      O.opt f g x = O.opt (f x) (g x)
      @[simp]
      theorem Optimization.opt_OrderHom_apply {α : Type u_2} (O : Optimization) [Lattice α] {γ : Type u_3} {x : γ} [Preorder γ] (f g : γ →o α) :
      (O.opt f g) x = O.opt (f x) (g x)
      theorem Optimization.opt_le {α : Type u_2} (O : Optimization) [Lattice α] {a b c d : α} (hac : a c) (hbd : b d) :
      O.opt a b O.opt c d
      @[simp]
      theorem Optimization.𝒜_opt {α : Type u_2} [Lattice α] {a b : α} :
      Angelic.opt a b = ab
      @[simp]
      theorem Optimization.𝒟_opt {α : Type u_2} [Lattice α] {a b : α} :
      Demonic.opt a b = ab
      def Optimization.iOpt {ι : Type u_1} {α : Type u_2} (O : Optimization) [CompleteLattice α] :
      (ια) →o α
      Equations
      Instances For
        def Optimization.sOpt {ι : Type u_1} {α : Type u_2} (O : Optimization) [CompleteLattice α] (S : Set ι) :
        (ια) →o α
        Equations
        Instances For
          theorem Optimization.sOpt_eq_iOpt {ι : Type u_1} {α : Type u_2} (O : Optimization) [CompleteLattice α] (S : Set ι) (f : ια) :
          (O.sOpt S) f = O.iOpt fun (a : S) => f a
          @[simp]
          theorem Optimization.sOpt_singleton {ι : Type u_1} {α : Type u_2} (O : Optimization) [CompleteLattice α] {i : ι} {f : ια} :
          (O.sOpt {i}) f = f i
          @[simp]
          theorem Optimization.sOpt_pair {ι : Type u_1} {α : Type u_2} (O : Optimization) [CompleteLattice α] {a b : ι} {f : ια} :
          (O.sOpt {a, b}) f = O.opt (f a) (f b)
          @[simp]
          theorem Optimization.𝒜_iOpt {ι : Type u_1} {α : Type u_2} [CompleteLattice α] {f : ια} :
          @[simp]
          theorem Optimization.𝒟_iOpt {ι : Type u_1} {α : Type u_2} [CompleteLattice α] {f : ια} :
          @[simp]
          theorem Optimization.𝒜_sOpt {ι : Type u_1} {α : Type u_2} [CompleteLattice α] {S : Set ι} {f : ια} :
          (Angelic.sOpt S) f = α_1S, f α_1
          @[simp]
          theorem Optimization.𝒟_sOpt {ι : Type u_1} {α : Type u_2} [CompleteLattice α] {S : Set ι} {f : ια} :
          (Demonic.sOpt S) f = α_1S, f α_1
          @[simp]
          theorem Optimization.iOpt_apply {ι : Type u_1} {α : Type u_2} (O : Optimization) [CompleteLattice α] {β : Type u_3} {s : β} {f : ιβα} :
          O.iOpt f s = O.iOpt fun (x : ι) => f x s
          @[simp]
          theorem Optimization.iOpt_const {ι : Type u_1} {α : Type u_2} (O : Optimization) [CompleteLattice α] [Nonempty ι] {x : α} :
          (O.iOpt fun (x_1 : ι) => x) = x
          theorem Optimization.ENNReal_add_iOpt {ι : Type u_1} (O : Optimization) {a : ENNReal} [Nonempty ι] {f : ιENNReal} :
          (O.iOpt fun (i : ι) => a + f i) = a + O.iOpt f
          theorem Optimization.ENNReal_iOpt_add {ι : Type u_1} (O : Optimization) {a : ENNReal} [Nonempty ι] {f : ιENNReal} :
          (O.iOpt fun (i : ι) => f i + a) = O.iOpt f + a
          theorem Optimization.ENNReal_mul_iOpt {ι : Type u_1} (O : Optimization) [Nonempty ι] {f : ιENNReal} {a : ENNReal} (ha : a ) :
          (O.iOpt fun (i : ι) => a * f i) = a * O.iOpt f
          theorem Optimization.ENNReal_iOpt_mul {ι : Type u_1} (O : Optimization) [Nonempty ι] {f : ιENNReal} {a : ENNReal} (ha : a ) :
          (O.iOpt fun (i : ι) => f i * a) = O.iOpt f * a