@@ -430,20 +430,19 @@ lemma pi_eq_empty_iff : s.pi t = ∅ ↔ ∃ i, is_empty (α i) ∨ i ∈ s ∧
430
430
begin
431
431
rw [← not_nonempty_iff_eq_empty, pi_nonempty_iff],
432
432
push_neg,
433
- refine exists_congr (λ i, ⟨λ h, (is_empty_or_nonempty (α i)).imp_right _, _⟩),
434
- { rintro ⟨x⟩,
435
- exact ⟨(h x).1 , by simp [eq_empty_iff_forall_not_mem, h]⟩ },
436
- { rintro (h | h) x,
437
- { exact h.elim' x },
438
- { simp [h] } }
433
+ refine exists_congr (λ i, _),
434
+ casesI is_empty_or_nonempty (α i); simp [*, forall_and_distrib, eq_empty_iff_forall_not_mem],
439
435
end
440
436
441
- lemma univ_pi_eq_empty_iff : pi univ t = ∅ ↔ ∃ i, t i = ∅ :=
437
+ @[simp] lemma univ_pi_eq_empty_iff : pi univ t = ∅ ↔ ∃ i, t i = ∅ :=
442
438
by simp [← not_nonempty_iff_eq_empty, univ_pi_nonempty_iff]
443
439
444
440
@[simp] lemma univ_pi_empty [h : nonempty ι] : pi univ (λ i, ∅ : Π i, set (α i)) = ∅ :=
445
441
univ_pi_eq_empty_iff.2 $ h.elim $ λ x, ⟨x, rfl⟩
446
442
443
+ @[simp] lemma disjoint_univ_pi : disjoint (pi univ t₁) (pi univ t₂) ↔ ∃ i, disjoint (t₁ i) (t₂ i) :=
444
+ by simp only [disjoint_iff_inter_eq_empty, ← pi_inter_distrib, univ_pi_eq_empty_iff]
445
+
447
446
@[simp] lemma range_dcomp (f : Π i, α i → β i) :
448
447
range (λ (g : Π i, α i), (λ i, f i (g i))) = pi univ (λ i, range (f i)) :=
449
448
begin
@@ -525,6 +524,18 @@ lemma eval_image_pi (hs : i ∈ s) (ht : (s.pi t).nonempty) : eval i '' s.pi t =
525
524
(λ f : Π i, α i, f i) '' pi univ t = t i :=
526
525
eval_image_pi (mem_univ i) ht
527
526
527
+ lemma pi_subset_pi_iff : pi s t₁ ⊆ pi s t₂ ↔ (∀ i ∈ s, t₁ i ⊆ t₂ i) ∨ pi s t₁ = ∅ :=
528
+ begin
529
+ refine ⟨λ h, or_iff_not_imp_right.2 _, λ h, h.elim pi_mono (λ h', h'.symm ▸ empty_subset _)⟩,
530
+ rw [← ne.def, ne_empty_iff_nonempty],
531
+ intros hne i hi,
532
+ simpa only [eval_image_pi hi hne, eval_image_pi hi (hne.mono h)]
533
+ using image_subset (λ f : Π i, α i, f i) h
534
+ end
535
+
536
+ lemma univ_pi_subset_univ_pi_iff : pi univ t₁ ⊆ pi univ t₂ ↔ (∀ i, t₁ i ⊆ t₂ i) ∨ ∃ i, t₁ i = ∅ :=
537
+ by simp [pi_subset_pi_iff]
538
+
528
539
lemma eval_preimage [decidable_eq ι] {s : set (α i)} :
529
540
eval i ⁻¹' s = pi univ (update (λ i, univ) i s) :=
530
541
by { ext x, simp [@forall_update_iff _ (λ i, set (α i)) _ _ _ _ (λ i' y, x i' ∈ y)] }
0 commit comments