Documentation

Pretty.Supports.Merge

theorem merge_first_dom :
∀ {α : Type} {F : Factory α} {m₂ : Meas} {ms₂ : List Meas} {m₁ : Meas} (ms₁ : List Meas), pareto F (m₂ :: ms₂)dominates F m₁ m₂ = truen, merge F (m₁ :: ms₁, m₂ :: ms₂) = m₁ :: merge F (ms₁, List.drop n ms₂) ∀ (m : Meas), m List.take n ms₂dominates F m₁ m = true
theorem merge_second_dom :
∀ {α : Type} {F : Factory α} {m₁ : Meas} {ms₁ : List Meas} {m₂ : Meas} (ms₂ : List Meas), pareto F (m₁ :: ms₁)dominates F m₂ m₁ = true¬dominates F m₁ m₂ = truen, merge F (m₁ :: ms₁, m₂ :: ms₂) = m₂ :: merge F (List.drop n ms₁, ms₂) ∀ (m : Meas), m List.take n ms₁dominates F m₂ m = true
theorem merge_head_either :
∀ {α : Type} {F : Factory α} {m₁ : Meas} {ms₁ : List Meas} {m₂ : Meas} {ms₂ : List Meas}, pareto F (m₁ :: ms₁)pareto F (m₂ :: ms₂)m₁ = List.head (merge F (m₁ :: ms₁, m₂ :: ms₂)) (_ : merge F (m₁ :: ms₁, m₂ :: ms₂) []) m₂ = List.head (merge F (m₁ :: ms₁, m₂ :: ms₂)) (_ : merge F (m₁ :: ms₁, m₂ :: ms₂) [])
theorem merge_preserves_pareto :
∀ {α : Type} {F : Factory α} {ms₁ ms₂ : List Meas}, pareto F ms₁pareto F ms₂pareto F (merge F (ms₁, ms₂))
theorem merge_pareto_subset :
∀ {α : Type} {m : Meas} {F : Factory α} {ms₁ ms₂ : List Meas}, m merge F (ms₁, ms₂)pareto F ms₁pareto F ms₂m ms₁ m ms₂
theorem merge_dom₁ :
∀ {α : Type} {F : Factory α} {ms₁ ms₂ : List Meas} {m : Meas}, pareto F ms₁pareto F ms₂m ms₁m_better, m_better merge F (ms₁, ms₂) dominates F m_better m = true
theorem merge_dom₂ :
∀ {α : Type} {F : Factory α} {ms₁ ms₂ : List Meas} {m : Meas}, pareto F ms₁pareto F ms₂m ms₂m_better, m_better merge F (ms₁, ms₂) dominates F m_better m = true