@@ -666,6 +666,22 @@ lemma piecewise_eq_on (f g : α → β) : eq_on (s.piecewise f g) f s :=
666
666
lemma piecewise_eq_on_compl (f g : α → β) : eq_on (s.piecewise f g) g sᶜ :=
667
667
λ _, piecewise_eq_of_not_mem _ _ _
668
668
669
+ lemma piecewise_le {δ : α → Type *} [Π i, preorder (δ i)] {s : set α} [Π j, decidable (j ∈ s)]
670
+ {f₁ f₂ g : Π i, δ i} (h₁ : ∀ i ∈ s, f₁ i ≤ g i) (h₂ : ∀ i ∉ s, f₂ i ≤ g i) :
671
+ s.piecewise f₁ f₂ ≤ g :=
672
+ λ i, if h : i ∈ s then by simp * else by simp *
673
+
674
+ lemma le_piecewise {δ : α → Type *} [Π i, preorder (δ i)] {s : set α} [Π j, decidable (j ∈ s)]
675
+ {f₁ f₂ g : Π i, δ i} (h₁ : ∀ i ∈ s, g i ≤ f₁ i) (h₂ : ∀ i ∉ s, g i ≤ f₂ i) :
676
+ g ≤ s.piecewise f₁ f₂ :=
677
+ @piecewise_le α (λ i, order_dual (δ i)) _ s _ _ _ _ h₁ h₂
678
+
679
+ lemma piecewise_le_piecewise {δ : α → Type *} [Π i, preorder (δ i)] {s : set α}
680
+ [Π j, decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : Π i, δ i} (h₁ : ∀ i ∈ s, f₁ i ≤ g₁ i)
681
+ (h₂ : ∀ i ∉ s, f₂ i ≤ g₂ i) :
682
+ s.piecewise f₁ f₂ ≤ s.piecewise g₁ g₂ :=
683
+ by apply piecewise_le; intros; simp *
684
+
669
685
@[simp, priority 990 ]
670
686
lemma piecewise_insert_of_ne {i j : α} (h : i ≠ j) [∀i, decidable (i ∈ insert j s)] :
671
687
(insert j s).piecewise f g i = s.piecewise f g i :=
@@ -710,10 +726,25 @@ lemma piecewise_preimage (f g : α → β) (t) :
710
726
s.piecewise f g ⁻¹' t = s.ite (f ⁻¹' t) (g ⁻¹' t) :=
711
727
ext $ λ x, by by_cases x ∈ s; simp [*, set.ite]
712
728
713
- lemma comp_piecewise (h : β → γ) {f g : α → β} {x : α} :
714
- h (s.piecewise f g x) = s.piecewise (h ∘ f) (h ∘ g) x :=
729
+ lemma apply_piecewise {δ' : α → Sort *} (h : Π i, δ i → δ' i) {x : α} :
730
+ h x (s.piecewise f g x) = s.piecewise (λ x, h x (f x)) (λ x, h x (g x)) x :=
731
+ by by_cases hx : x ∈ s; simp [hx]
732
+
733
+ lemma apply_piecewise₂ {δ' δ'' : α → Sort *} (f' g' : Π i, δ' i) (h : Π i, δ i → δ' i → δ'' i)
734
+ {x : α} :
735
+ h x (s.piecewise f g x) (s.piecewise f' g' x) =
736
+ s.piecewise (λ x, h x (f x) (f' x)) (λ x, h x (g x) (g' x)) x :=
715
737
by by_cases hx : x ∈ s; simp [hx]
716
738
739
+ lemma piecewise_op {δ' : α → Sort *} (h : Π i, δ i → δ' i) :
740
+ s.piecewise (λ x, h x (f x)) (λ x, h x (g x)) = λ x, h x (s.piecewise f g x) :=
741
+ funext $ λ x, (apply_piecewise _ _ _ _).symm
742
+
743
+ lemma piecewise_op₂ {δ' δ'' : α → Sort *} (f' g' : Π i, δ' i) (h : Π i, δ i → δ' i → δ'' i) :
744
+ s.piecewise (λ x, h x (f x) (f' x)) (λ x, h x (g x) (g' x)) =
745
+ λ x, h x (s.piecewise f g x) (s.piecewise f' g' x) :=
746
+ funext $ λ x, (apply_piecewise₂ _ _ _ _ _ _).symm
747
+
717
748
@[simp] lemma piecewise_same : s.piecewise f f = f :=
718
749
by { ext x, by_cases hx : x ∈ s; simp [hx] }
719
750
0 commit comments